aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon J. Gerraty <sjg@FreeBSD.org>2013-03-08 22:02:08 +0000
committerSimon J. Gerraty <sjg@FreeBSD.org>2013-03-08 22:02:08 +0000
commit8fe4beee0430001da2da7dde791d5595429ccd59 (patch)
treeb7d327f1876607d44d9f3b4ea7098b677750b716
parent9c6f3ad90fa295300c9f108200e6f4c5dba5115c (diff)
downloadsrc-8fe4beee0430001da2da7dde791d5595429ccd59.tar.gz
src-8fe4beee0430001da2da7dde791d5595429ccd59.zip
Allow staging to be help up (by .WAIT) until other
bits of all: are done.
Notes
Notes: svn path=/projects/bmake/; revision=248076
-rw-r--r--share/mk/bsd.incs.mk2
-rw-r--r--share/mk/bsd.lib.mk4
-rw-r--r--share/mk/bsd.nls.mk2
-rw-r--r--share/mk/bsd.sys.mk21
-rw-r--r--share/mk/meta.stage.mk29
5 files changed, 38 insertions, 20 deletions
diff --git a/share/mk/bsd.incs.mk b/share/mk/bsd.incs.mk
index 9d614be4a2a9..c84f97aa28b5 100644
--- a/share/mk/bsd.incs.mk
+++ b/share/mk/bsd.incs.mk
@@ -99,7 +99,7 @@ buildincludes: stage_as
.endif
.endif
.if !empty(INCSLINKS)
-stage_files: stage_symlinks
+staging: stage_symlinks
STAGE_SYMLINKS.INCS= ${INCSLINKS}
.endif
.endif
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index fa7ebcc3b7cc..b0a63775c363 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -114,10 +114,6 @@ PO_FLAG=-pg
.if !defined(_SKIP_BUILD)
all: beforebuild .WAIT
beforebuild: objwarn
-.if !defined(.PARSEDIR)
-# this is a no-op
-.WAIT:
-.endif
.endif
.include <bsd.symver.mk>
diff --git a/share/mk/bsd.nls.mk b/share/mk/bsd.nls.mk
index 3d2efc120e29..bf8305cb459e 100644
--- a/share/mk/bsd.nls.mk
+++ b/share/mk/bsd.nls.mk
@@ -63,7 +63,7 @@ NLSDIR?= ${SHAREDIR}/nls
#
.if ${MK_STAGING_PROG} == "yes"
.if !defined(_SKIP_BUILD)
-all: stage_symlinks
+staging: stage_symlinks
.endif
STAGE_SYMLINKS.NLS= ${NLSSYMLINKS}
STAGE_SYMLINKS_DIR.NLS= ${STAGE_OBJTOP}
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index a5c3a10171d7..ac20086a19cd 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -142,16 +142,21 @@ PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \
.PHONY: ${PHONY_NOTMAIN}
.NOTMAIN: ${PHONY_NOTMAIN}
+.if !defined(.PARSEDIR)
+# this is a no-op
+.WAIT:
+.endif
+
.if ${MK_STAGING} != "no"
.if defined(_SKIP_BUILD) || !make(all)
-stage_libs stage_files stage_as stage_links stage_symlinks:
+staging stage_libs stage_files stage_as stage_links stage_symlinks:
.else
# allow targets like beforeinstall to be leveraged
DESTDIR= ${STAGE_OBJTOP}
-.if target(beforeinstall)
+.if commands(beforeinstall)
.if !empty(_LIBS) || ${MK_STAGING_PROG} != "no"
-stage_files: beforeinstall
+staging: beforeinstall
.endif
.endif
@@ -167,7 +172,7 @@ stage_as.prog: ${PROG}
.else
STAGE_SETS+= prog
stage_files.prog: ${PROG}
-all: stage_files
+staging: stage_files
.endif
.endif
.endif
@@ -182,24 +187,24 @@ beforebuild: buildincludes
.for t in stage_libs stage_files stage_as
.if target($t)
-all: $t
+staging: $t
.endif
.endfor
.if !empty(STAGE_AS_SETS)
-all: stage_as
+staging: stage_as
.endif
.if !empty(_LIBS) || ${MK_STAGING_PROG} != "no"
.if !empty(LINKS)
-all: stage_links
+staging: stage_links
STAGE_SETS+= links
STAGE_LINKS.links= ${LINKS}
.endif
.if !empty(SYMLINKS)
-all: stage_symlinks
+staging: stage_symlinks
STAGE_SETS+= links
STAGE_SYMLINKS.links= ${SYMLINKS}
.endif
diff --git a/share/mk/meta.stage.mk b/share/mk/meta.stage.mk
index c09af35a9579..2bc9fbdcfdd4 100644
--- a/share/mk/meta.stage.mk
+++ b/share/mk/meta.stage.mk
@@ -1,4 +1,4 @@
-# $Id: meta.stage.mk,v 1.20 2013/03/08 00:00:57 sjg Exp $
+# $Id: meta.stage.mk,v 1.22 2013/03/08 17:52:11 sjg Exp $
#
# @(#) Copyright (c) 2011, Simon J. Gerraty
#
@@ -114,8 +114,7 @@ _STAGE_BASENAME_USE: .USE ${.TARGET:T}
@${STAGE_FILE_SCRIPT}; StageFiles ${.TARGET:H:${STAGE_DIR_FILTER}} ${.TARGET:T}
.if !empty(STAGE_INCSDIR)
-CLEANFILES += stage_incs
-
+STAGE_TARGETS += stage_incs
STAGE_INCS ?= ${.ALLSRC:N.dirdep}
stage_incs: .dirdep
@@ -124,7 +123,7 @@ stage_incs: .dirdep
.endif
.if !empty(STAGE_LIBDIR)
-CLEANFILES += stage_libs
+STAGE_TARGETS += stage_libs
STAGE_LIBS ?= ${.ALLSRC:N.dirdep}
@@ -161,6 +160,7 @@ STAGE_SYMLINKS.$s ?= ${.ALLSRC:N.dirdep}
STAGE_LINKS_DIR.$s ?= ${STAGE_OBJTOP}
STAGE_SYMLINKS_DIR.$s ?= ${STAGE_OBJTOP}
+STAGE_TARGETS += stage_files
.if $s != "_default"
stage_files: stage_files.$s
stage_files.$s: .dirdep
@@ -170,6 +170,7 @@ stage_files: .dirdep
@${STAGE_FILE_SCRIPT}; StageFiles ${FLAGS.$@} ${STAGE_FILES_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_FILES.$s}
@touch $@
+STAGE_TARGETS += stage_links
.if $s != "_default"
stage_links: stage_links.$s
stage_links.$s: .dirdep
@@ -179,6 +180,7 @@ stage_links: .dirdep
@${STAGE_LINKS_SCRIPT}; StageLinks ${STAGE_LINKS_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_LINKS.$s}
@touch $@
+STAGE_TARGETS += stage_symlinks
.if $s != "_default"
stage_symlinks: stage_symlinks.$s
stage_symlinks.$s: .dirdep
@@ -194,6 +196,8 @@ stage_symlinks: .dirdep
.if !empty(STAGE_AS_SETS)
CLEANFILES += ${STAGE_AS_SETS:@s@stage*$s@}
+STAGE_TARGETS += stage_as
+
# sometimes things need to be renamed as they are staged
# each ${file} will be staged as ${STAGE_AS_${file:T}}
# one could achieve the same with SYMLINKS
@@ -208,7 +212,20 @@ stage_as.$s: .dirdep
.endfor
.endif
-# if we have to do any of these, do them in this order
-.ORDER: stage_incs stage_libs stage_files stage_as stage_links stage_symlinks
+CLEANFILES += ${STAGE_TARGETS}
+
+# stage_*links usually needs to follow any others.
+.for t in ${STAGE_TARGETS:N*links:O:u}
+.ORDER: $t stage_links
+.ORDER: $t stage_symlinks
+.endfor
+
+# make sure this exists
+staging:
+
+# generally we want staging to wait until everything else is done
+STAGING_WAIT ?= .WAIT
+
+all: ${STAGING_WAIT} staging
.endif