# $FreeBSD: src/share/mk/bsd.dep.mk,v 1.27.2.3 2002/12/23 16:33:37 ru Exp $
-# $DragonFly: src/share/mk/bsd.dep.mk,v 1.9 2006/02/13 13:27:20 corecode Exp $
#
# The include file <bsd.dep.mk> handles Makefile dependencies.
#
# MKDEP Options for ${MKDEPCMD} [not set]
#
# MKDEPCMD Makefile dependency list program [mkdep]
-#
+#
# SRCS List of source files (c, c++, assembler)
#
#
CLEANFILES?=
.for _LSRC in ${SRCS:M*.l:N*/*}
-.for _LC in ${_LSRC:S/.l/.c/}
+.for _LC in ${_LSRC:R}.c
${_LC}: ${_LSRC}
${LEX} -t ${LFLAGS} ${.ALLSRC} > ${.TARGET}
SRCS:= ${SRCS:S/${_LSRC}/${_LC}/}
-CLEANFILES:= ${CLEANFILES} ${_LC}
+CLEANFILES+= ${_LC}
.endfor
.endfor
.for _YSRC in ${SRCS:M*.y:N*/*}
-.for _YC in ${_YSRC:S/.y/.c/}
+.for _YC in ${_YSRC:R}.c
SRCS:= ${SRCS:S/${_YSRC}/${_YC}/}
-CLEANFILES:= ${CLEANFILES} ${_YC}
+CLEANFILES+= ${_YC}
.if !empty(YFLAGS:M-d) && !empty(SRCS:My.tab.h)
.ORDER: ${_YC} y.tab.h
${_YC} y.tab.h: ${_YSRC}
${YACC} ${YFLAGS} ${.ALLSRC}
cp y.tab.c ${_YC}
-SRCS:= ${SRCS} y.tab.h
-CLEANFILES:= ${CLEANFILES} y.tab.c y.tab.h
+CLEANFILES+= y.tab.c y.tab.h
.elif !empty(YFLAGS:M-d)
.for _YH in ${_YC:S/.c/.h/}
.ORDER: ${_YC} ${_YH}
${_YC} ${_YH}: ${_YSRC}
${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
-SRCS:= ${SRCS} ${_YH}
-CLEANFILES:= ${CLEANFILES} ${_YH}
+SRCS+= ${_YH}
+CLEANFILES+= ${_YH}
.endfor
.else
${_YC}: ${_YSRC}
.if defined(SRCS)
depend: beforedepend _dependincs ${DEPENDFILE} afterdepend
+# Tell bmake not to look for generated files via .PATH
+.NOPATH: ${DEPENDFILE}
+
# Different types of sources are compiled with slightly different flags.
# Split up the sources, and filter out headers and non-applicable flags.
# Separate flag groups out of the sources and treat them differently.
.endfor
_DEPENDFILES= ${FLAGS_GROUPS:S/^/.depend_/g}
-.ORDER: ${_DEPENDFILES}
${DEPENDFILE}: ${_DEPENDFILES}
${DEPENDFILE}: _EXTRADEPEND
.endif
-.ORDER: ${_DEPENDFILES} ${DEPENDFILE} afterdepend
.else
depend: beforedepend _dependincs afterdepend
.endif
.if !target(beforedepend)
beforedepend:
-.else
-.ORDER: beforedepend ${_DEPENDFILES} ${DEPENDFILE}
-.ORDER: beforedepend afterdepend
.endif
.if !target(afterdepend)
afterdepend:
.endif
.if defined(INCS) && make(depend)
-
-_dependincs: ${INCS} ${SRCS}
-
-.ORDER: _dependincs depend
-
+_dependincs: buildincludes .WAIT installincludes
.else
-
_dependincs:
-
.endif
+
+.ORDER: beforedepend _dependincs ${DEPENDFILE} afterdepend
# $FreeBSD: src/share/mk/bsd.obj.mk,v 1.30.2.10 2003/02/15 05:36:25 kris Exp $
-# $DragonFly: src/share/mk/bsd.obj.mk,v 1.5 2005/10/08 11:31:29 corecode Exp $
#
# The include file <bsd.obj.mk> handles creating the 'obj' directory
# and cleaning up object files, etc.
.if defined(MAKEOBJDIRPREFIX)
CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
+.elif defined(MAKEOBJDIR) && ${MAKEOBJDIR:M/*} != ""
+CANONICALOBJDIR:=${MAKEOBJDIR}
.else
CANONICALOBJDIR:=/usr/obj${.CURDIR}
.endif
rm -f ${.CURDIR}/obj; \
fi
+# Tell bmake not to look for generated files via .PATH
+.if !empty(CLEANFILES)
+.NOPATH: ${CLEANFILES}
+.endif
+
.if !target(clean)
clean:
.if defined(CLEANFILES) && !empty(CLEANFILES)
# from: @(#)sys.mk 8.2 (Berkeley) 3/21/94
# $FreeBSD: src/share/mk/sys.mk,v 1.45.2.6 2002/12/23 16:33:37 ru Exp $
-# $DragonFly: src/share/mk/sys.mk,v 1.21 2008/05/19 10:26:02 corecode Exp $
unix ?= We run FreeBSD, not UNIX.
# prevent buildworld from breaking.
#
.if !defined(MACHINE_PLATFORM)
-MACHINE_PLATFORM=pc32
+MACHINE_PLATFORM!=sysctl -n hw.platform
.endif
.if ${MACHINE} == "pc32"
MACHINE=i386
# XXX hint for bsd.port.mk
OBJFORMAT?= elf
+# Tell bmake to expand -V VAR be default
+.MAKE.EXPAND_VARIABLES= yes
+
+.if !defined(.PARSEDIR)
+# Not using bmake, which is aggressive about search .PATH
+# It is sometimes necessary to curb its enthusiam with .NOPATH
+# The following allows us to quietly ignore .NOPATH when no using bmake.
+.NOTMAIN: .NOPATH
+.NOPATH:
+
+.endif
rearg:
optind = 1; /* since we're called more than once */
optreset = 1;
-#define OPTFLAGS "ABC:D:E:I:PSV:Xd:ef:ij:km:nqrstvx:"
+#define OPTFLAGS "ABC:D:E:I:J:PSV:Xd:ef:ij:km:nqrstvx:"
for (;;) {
if ((optind < argc) && strcmp(argv[optind], "--") == 0) {
found_dd = true;
Path_AddDir(&cli->parseIncPath, optarg);
MFLAGS_append("-I", optarg);
break;
+ case 'J':
+ /* Allow make child of bmake parent (No-op) */
+ break;
case 'V':
Lst_AtEnd(&cli->variables, estrdup(optarg));
MFLAGS_append("-V", optarg);