dc24ddd41e
to use ``.if defined()'' inside bsd.own.mk to test for defines in individual makefiles. For example, setting DEBUG_FLAGS in Makefile didn't take the desired effect on the STRIP assignment. Added bsd.init.mk (like in NetBSD) that handles the inclusion of ../Makefile.inc and bsd.own.mk from all bsd.*.mk files that "build something". Back out bsd.own.mk,v 1.15: moved OBJFORMAT initialization back to sys.mk (several source tree makefiles want to check it early) and removed MACHINE_ARCH initialization (it's hard to see from looking at the commitlogs what the problem was at the time, but now it serves no purpose). Prohibit the direct inclusion of bsd.man.mk and bsd.libnames.mk. Protect bsd.obj.mk from repetitive inclusion. Prohibiting the direct inclusion of bsd.obj.mk might be a good idea too.
88 lines
2.2 KiB
Makefile
88 lines
2.2 KiB
Makefile
# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
|
|
# $FreeBSD$
|
|
#
|
|
# The include file <bsd.subdir.mk> contains the default targets
|
|
# for building subdirectories.
|
|
#
|
|
# For all of the directories listed in the variable SUBDIRS, the
|
|
# specified directory will be visited and the target made. There is
|
|
# also a default target which allows the command "make subdir" where
|
|
# subdir is any directory listed in the variable SUBDIRS.
|
|
#
|
|
#
|
|
# +++ variables +++
|
|
#
|
|
# DISTRIBUTION Name of distribution. [bin]
|
|
#
|
|
# SUBDIR A list of subdirectories that should be built as well.
|
|
# Each of the targets will execute the same target in the
|
|
# subdirectories.
|
|
#
|
|
# +++ targets +++
|
|
#
|
|
# distribute:
|
|
# This is a variant of install, which will
|
|
# put the stuff into the right "distribution".
|
|
#
|
|
# afterdistribute, afterinstall, all, all-man, beforeinstall, checkdpadd,
|
|
# clean, cleandepend, cleandir, depend, install, lint, maninstall,
|
|
# obj, objlink, realinstall, regress, tags
|
|
#
|
|
|
|
.include <bsd.init.mk>
|
|
|
|
_SUBDIRUSE: .USE
|
|
@for entry in ${SUBDIR}; do \
|
|
(if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \
|
|
${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH}"; \
|
|
edir=$${entry}.${MACHINE_ARCH}; \
|
|
cd ${.CURDIR}/$${edir}; \
|
|
else \
|
|
${ECHODIR} "===> ${DIRPRFX}$$entry"; \
|
|
edir=$${entry}; \
|
|
cd ${.CURDIR}/$${edir}; \
|
|
fi; \
|
|
${MAKE} ${.TARGET:realinstall=install} \
|
|
DIRPRFX=${DIRPRFX}$$edir/); \
|
|
done
|
|
|
|
${SUBDIR}::
|
|
@if test -d ${.TARGET}.${MACHINE_ARCH}; then \
|
|
cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \
|
|
else \
|
|
cd ${.CURDIR}/${.TARGET}; \
|
|
fi; \
|
|
${MAKE} all
|
|
|
|
|
|
.for __target in all all-man checkdpadd clean cleandepend cleandir depend lint \
|
|
maninstall obj objlink regress tags \
|
|
install.debug reinstall.debug
|
|
.if !target(${__target})
|
|
${__target}: _SUBDIRUSE
|
|
.endif
|
|
.endfor
|
|
|
|
.if !target(install)
|
|
.if !target(beforeinstall)
|
|
beforeinstall:
|
|
.endif
|
|
.if !target(afterinstall)
|
|
afterinstall:
|
|
.endif
|
|
install: afterinstall
|
|
afterinstall: realinstall
|
|
realinstall: beforeinstall _SUBDIRUSE
|
|
.endif
|
|
|
|
DISTRIBUTION?= bin
|
|
.if !target(afterdistribute)
|
|
afterdistribute:
|
|
.endif
|
|
.if !target(distribute)
|
|
distribute: _SUBDIRUSE
|
|
.for dist in ${DISTRIBUTION}
|
|
cd ${.CURDIR} ; ${MAKE} afterdistribute DESTDIR=${DISTDIR}/${dist}
|
|
.endfor
|
|
.endif
|