Replace the out-of-place includes/files/config handling in bsd.subdir.mk with

more typical ALL_SUBDIR_TARGETS entries and target hooks in bsd.incs.mk,
bsd.files.mk and bsd.confs.mk.

This allows the targets to be NOPs if unneeded and still work with the
shortcut 'make includes' to build and then install in a parallel-safe manner.

Sort and re-indent the ALL_SUBDIR_TARGETS with the new entries.

Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Bryan Drewery 2015-10-14 02:37:30 +00:00
parent 737bc5014c
commit 7b87723296
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289282
4 changed files with 15 additions and 20 deletions

View File

@ -84,4 +84,7 @@ STAGE_TARGETS+= stage_config
.endif
.endif
config: buildconfig installconfig
.ORDER: buildconfig installconfig
.endif # ${MK_INCLUDES} != "no"

View File

@ -94,4 +94,7 @@ buildfiles: stage_as
.endif
.endif
files: buildfiles installfiles
.ORDER: buildfiles installfiles
.endif # !target(__<bsd.files.mk>__)

View File

@ -99,4 +99,7 @@ STAGE_SYMLINKS.INCS= ${INCSLINKS}
.endif
.endif
includes: buildincludes installincludes
.ORDER: buildincludes installincludes
.endif # ${MK_INCLUDES} != "no"

View File

@ -32,9 +32,12 @@
.if !target(__<bsd.subdir.mk>__)
__<bsd.subdir.mk>__:
ALL_SUBDIR_TARGETS= all all-man checkdpadd clean cleandepend cleandir \
cleanilinks cleanobj depend distribute lint maninstall manlint obj \
objlink realinstall regress tags ${SUBDIR_TARGETS}
ALL_SUBDIR_TARGETS= all all-man buildconfig buildfiles buildincludes \
checkdpadd clean cleandepend cleandir cleanilinks \
cleanobj config depend distribute files includes \
installconfig installfiles installincludes lint \
maninstall manlint obj objlink realinstall regress tags \
${SUBDIR_TARGETS}
.include <bsd.init.mk>
@ -123,23 +126,6 @@ _sub.${__target}: _SUBDIR
.endif
.endfor
# This is to support 'make includes' calling 'make buildincludes' and
# 'make installincludes' in the proper order, and to support these
# targets as SUBDIR_TARGETS.
.for __target in files includes config
.for __stage in build install
${__stage}${__target}:
.if make(${__stage}${__target})
${__stage}${__target}: _sub.${__stage}${__target}
_sub.${__stage}${__target}: _SUBDIR
.endif
.endfor
.if !target(${__target})
${__target}: .MAKE
${_+_}cd ${.CURDIR}; ${MAKE} build${__target}; ${MAKE} install${__target}
.endif
.endfor
.endif
.if !target(install)