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:
parent
737bc5014c
commit
7b87723296
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289282
@ -84,4 +84,7 @@ STAGE_TARGETS+= stage_config
|
||||
.endif
|
||||
.endif
|
||||
|
||||
config: buildconfig installconfig
|
||||
.ORDER: buildconfig installconfig
|
||||
|
||||
.endif # ${MK_INCLUDES} != "no"
|
||||
|
@ -94,4 +94,7 @@ buildfiles: stage_as
|
||||
.endif
|
||||
.endif
|
||||
|
||||
files: buildfiles installfiles
|
||||
.ORDER: buildfiles installfiles
|
||||
|
||||
.endif # !target(__<bsd.files.mk>__)
|
||||
|
@ -99,4 +99,7 @@ STAGE_SYMLINKS.INCS= ${INCSLINKS}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
includes: buildincludes installincludes
|
||||
.ORDER: buildincludes installincludes
|
||||
|
||||
.endif # ${MK_INCLUDES} != "no"
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user