Limit testing for an up-to-date version of make(1) to the world and

buildworld targets by default, but allow it to be done for all user
targets by introducing a boolean option, named ALWAYS_CHECK_MAKE.

This change is by no means perfect and I don't even want to claim
this to be a solution. It does however address the fact that not
everybody likes to see make(1) rebuilt simply because the regression
test failed for some reason or other, including pilot error. It
therefore serves the purpose of keeping the crowd happy until we
have something better or simply reached a compromise.

The reasons for changing the default behaviour are:
o  It avoids a negative, possibly non-intuitive option,
o  It's according to POLA and fond of feet,
o  Only buildworld is documented to do its best to be
   successful at reasonably cost.

Reviewed by: gad, imp, obrien, peter
This commit is contained in:
Marcel Moolenaar 2003-08-28 04:03:13 +00:00
parent c8fb1af26c
commit d911f786ab
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=119519
2 changed files with 24 additions and 1 deletions

View file

@ -86,10 +86,23 @@ BINMAKE= \
-m ${.CURDIR}/share/mk
_MAKE= PATH=${PATH} ${BINMAKE} -f Makefile.inc1
#
# Make sure we have an up-to-date make(1). Only world and buildworld
# should do this as those are the initial targets used for upgrades.
# The user can define ALWAYS_CHECK_MAKE to have this check performed
# for all targets.
#
.if defined(ALWAYS_CHECK_MAKE)
${TGTS} ${BITGTS}: upgrade_checks
.else
buildworld: upgrade_checks
.endif
#
# Handle the user-driven targets, using the source relative mk files.
#
${TGTS} ${BITGTS}: upgrade_checks
${TGTS} ${BITGTS}:
@cd ${.CURDIR}; \
${_MAKE} ${.TARGET}

View file

@ -93,6 +93,16 @@ that are used for all builds, or are used by the
.Pa makefiles
for things other than builds.
.Bl -tag -width Ar
.It Va ALWAYS_CHECK_MAKE
.Pq Vt bool
Instructs the top-level makefile in the source tree (normally
.Pa /usr/src )
to always check if
.Xr make 1
is up-to-date.
Normally this is only done for the world and buildworld targets to handle
upgrades from older versions of
.Fx .
.It Va CFLAGS
.Pq Vt str
Controls the compiler setting when compiling C code.