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

View File

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