Ensure make -j N universe works correctly, by checking for an up-to-date

make before starting the universe targets themselves.  Otherwise, all of
the targets would attempt to build make simultaneously, overwriting each
other's copies of the make object files and executable.  This could lead
to strange errors, for example when partially-written make executables
are invoked.

Also amend r216620, to make the rest of universe wait properly until the
upgrade_checks target is finished, by adding universe_${target}_prologue
to the .ORDER target.  Otherwise, make will be too smart for its own
good, and start building the universe targets simultaneously with the
prologues anyway.

MFC after:	1 week
This commit is contained in:
Dimitry Andric 2013-04-09 20:21:35 +00:00
parent 9f905daf6e
commit a3058216b5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=249316

View File

@ -361,7 +361,7 @@ MAKEFAIL=tee -a ${FAILFILE}
MAKEFAIL=cat MAKEFAIL=cat
.endif .endif
universe: universe_prologue universe: universe_prologue upgrade_checks
universe_prologue: universe_prologue:
@echo "--------------------------------------------------------------" @echo "--------------------------------------------------------------"
@echo ">>> make universe started on ${STARTTIME}" @echo ">>> make universe started on ${STARTTIME}"
@ -371,7 +371,7 @@ universe_prologue:
.endif .endif
.for target in ${TARGETS} .for target in ${TARGETS}
universe: universe_${target} universe: universe_${target}
.ORDER: universe_prologue universe_${target} universe_epilogue .ORDER: universe_prologue upgrade_checks universe_${target}_prologue universe_${target} universe_epilogue
universe_${target}: universe_${target}_prologue universe_${target}: universe_${target}_prologue
universe_${target}_prologue: universe_${target}_prologue:
@echo ">> ${target} started on `LC_ALL=C date`" @echo ">> ${target} started on `LC_ALL=C date`"