git: d9a65c5de1c9 - main - Merge bmake-20250308
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 19 Mar 2025 21:12:01 UTC
The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=d9a65c5de1c9f30ae71ce0be8fb88be9d20d216d commit d9a65c5de1c9f30ae71ce0be8fb88be9d20d216d Merge: 91d8ee3579ef 397f57656d61 Author: Simon J. Gerraty <sjg@FreeBSD.org> AuthorDate: 2025-03-19 21:06:16 +0000 Commit: Simon J. Gerraty <sjg@FreeBSD.org> CommitDate: 2025-03-19 21:10:44 +0000 Merge bmake-20250308 contrib/bmake/ChangeLog | 17 +++ contrib/bmake/Makefile | 8 +- contrib/bmake/VERSION | 2 +- contrib/bmake/bmake.cat1 | 2 +- contrib/bmake/bsd.after-import.mk | 39 ++++-- contrib/bmake/job.c | 251 +++++++++++++------------------------- contrib/bmake/main.c | 22 +--- contrib/bmake/make.h | 3 +- contrib/bmake/mk/ChangeLog | 13 ++ contrib/bmake/mk/install-mk | 6 +- contrib/bmake/mk/jobs.mk | 6 +- contrib/bmake/mk/meta.autodep.mk | 20 ++- contrib/bmake/mk/meta.stage.mk | 29 ++++- contrib/bmake/mk/sys.vars.mk | 7 +- contrib/bmake/os.sh | 10 +- usr.bin/bmake/Makefile | 104 ++++++++-------- usr.bin/bmake/Makefile.config | 4 +- usr.bin/bmake/unit-tests/Makefile | 2 +- 18 files changed, 265 insertions(+), 280 deletions(-) diff --cc contrib/bmake/Makefile index 939b71c5e12c,000000000000..ba2b2e742d35 mode 100644,000000..100644 --- a/contrib/bmake/Makefile +++ b/contrib/bmake/Makefile @@@ -1,266 -1,0 +1,266 @@@ - # $Id: Makefile,v 1.132 2024/09/22 19:56:26 sjg Exp $ ++# $Id: Makefile,v 1.133 2025/03/08 20:12:56 sjg Exp $ + +PROG = bmake + +SRCS = \ + arch.c \ + buf.c \ + compat.c \ + cond.c \ + dir.c \ + for.c \ + hash.c \ + job.c \ + lst.c \ + main.c \ + make.c \ + make_malloc.c \ + meta.c \ + metachar.c \ + parse.c \ + str.c \ + suff.c \ + targ.c \ + trace.c \ + util.c \ + var.c + +.MAIN: all + +MAN = ${PROG}.1 +SRCS.${MAN} = ${srcdir}/make.1 + +.-include "VERSION" +.-include "Makefile.inc" + +# this file gets generated by configure +.-include "Makefile.config" + +.if !empty(LIBOBJS) +SRCS += ${LIBOBJS:T:.o=.c} +.endif + +# just in case +prefix ?= /usr +srcdir ?= ${.PARSEDIR} +srcdir := ${srcdir} + +DEFAULT_SYS_PATH ?= ${prefix}/share/mk + +CPPFLAGS += -DUSE_META +CFLAGS += ${CPPFLAGS} +CFLAGS += -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" +CFLAGS += -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE +CFLAGS += ${COPTS.${.ALLSRC:M*.c:T:u}} +COPTS.main.c += "-DMAKE_VERSION=\"${_MAKE_VERSION}\"" + +.for x in FORCE_MAKE_OS FORCE_MACHINE FORCE_MACHINE_ARCH +.ifdef $x +COPTS.main.c += "-D$x=\"${$x}\"" +.endif +.endfor + +# meta mode can be useful even without filemon +# should be set by now +USE_FILEMON ?= no +.if ${USE_FILEMON:tl} != "no" +.PATH: ${srcdir}/filemon - SRCS+= filemon_${USE_FILEMON}.c ++SRCS += filemon_${USE_FILEMON}.c +COPTS.meta.c += -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu} +COPTS.job.c += ${COPTS.meta.c} + +.if ${USE_FILEMON} == "dev" +FILEMON_H ?= /usr/include/dev/filemon/filemon.h +.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" +COPTS.filemon_dev.c += -DHAVE_FILEMON_H -I${FILEMON_H:H} +.endif +.elif ${USE_FILEMON} == "ktrace" +COPTS.filemon_ktrace.c += -Wno-error=unused-parameter +.endif + +.endif # USE_FILEMON + +.PATH: ${srcdir} + +# start-delete1 for bsd.after-import.mk +# we skip a lot of this when building as part of FreeBSD etc. + +# list of OS's which are derrived from BSD4.4 +BSD44_LIST = NetBSD FreeBSD OpenBSD DragonFly MirBSD Bitrig +# we are... +OS := ${.MAKE.OS:U${uname -s:L:sh}} +# are we 4.4BSD ? +isBSD44 := ${BSD44_LIST:M${OS}} + +.if ${isBSD44} == "" && ${OS:NCygwin:NDarwin:NLinux} != "" +MANTARGET ?= cat +.if ${MACHINE} == "sun386" +# even I don't have one of these anymore :-) +CFLAGS += -DPORTAR +.elif ${OS} != "SunOS" +# assume the worst +SRCS += sigcompat.c +CFLAGS += -DSIGNAL_FLAGS=SA_RESTART +.endif +.else +MANTARGET ?= man +.endif + +# turn this on by default - ignored if we are root +WITH_INSTALL_AS_USER = + +# suppress with -DWITHOUT_* +OPTIONS_DEFAULT_YES += \ + AUTOCONF_MK \ + INSTALL_MK \ + PROG_LINK \ + TESTS \ + +OPTIONS_DEFAULT_NO += \ + GEN_MAN \ + PROG_VERSION \ + +.if ${PROG} != "make" || ${srcdir} != ${.CURDIR} || !exists(${srcdir}/${MAN}) +WITH_GEN_MAN = 1 +.endif + +# process options now +.include <own.mk> + +.if ${MK_PROG_VERSION} == "yes" +PROG_NAME = ${PROG}-${_MAKE_VERSION} +.if ${MK_PROG_LINK} == "yes" +SYMLINKS += ${PROG_NAME} ${BINDIR}/${PROG} +.endif +.endif + - EXTRACT_MAN=no ++EXTRACT_MAN = no +# end-delete1 + +.if make(obj) || make(clean) +SUBDIR.${MK_TESTS} += unit-tests +.endif + +MAN1 = ${MAN} + +.if ${MK_GEN_MAN:Uno} == "yes" + +# we use this to generate ${MAN} +.include <${srcdir}/mk/genfiles.mk> + +.if ${PROG} != "make" +CLEANFILES += my.history +SED_CMDS.${MAN} += \ + -e '/^.Dt/s/MAKE/${PROG:tu}/' \ + -e '/^.Nm/s/make/${PROG}/' \ + +.endif + +.if ${CLEANFILES:U:Mmy.history} != "" +${MAN}: my.history +my.history: + @(echo ".Nm"; \ + echo "is derived from NetBSD"; \ + echo ".Xr make 1 ."; \ + echo "It uses autoconf to facilitate portability to other platforms."; \ + echo ".Pp") > $@ + +SED_CMDS.${MAN} += \ + -e '/^.Sh HISTORY/rmy.history' \ + -e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \ + +.endif + +.if ${.MAKE.OS:N*BSD} != "" +# assume .Nx is not supported +SED_CMDS.${MAN} += -e 's/^\.Nx/NetBSD/' +.endif + +# watch out for a late change of PROG +.if !empty(SRCS.${MAN}) +.NOPATH: ${MAN} +${MAN}: ${SRCS.${MAN}} _GENFILES_USE + +all man beforeinstall: ${MAN} - _mfromdir=. ++_mfromdir = . +.endif +.endif # MK_GEN_MAN + +MANTARGET ?= cat +MANDEST ?= ${MANDIR}/${MANTARGET}1 + +.if ${MANTARGET} == "cat" +_mfromdir = ${srcdir} +.endif + +.include <prog.mk> + +CPPFLAGS += -DMAKE_NATIVE -DHAVE_CONFIG_H +COPTS.var.c += -Wno-cast-qual +COPTS.job.c += -Wno-format-nonliteral +COPTS.parse.c += -Wno-format-nonliteral +COPTS.var.c += -Wno-format-nonliteral + +# Force these +SHAREDIR = ${SHAREDIR.bmake:U${prefix}/share} +BINDIR = ${BINDIR.bmake:U${prefix}/bin} +MANDIR = ${MANDIR.bmake:U${SHAREDIR}/man} + +${OBJS}: config.h + +# start-delete2 for bsd.after-import.mk + +# make sure that MAKE_VERSION gets updated. +main.o: ${srcdir}/VERSION + +.if ${MK_AUTOCONF_MK} == "yes" +CONFIGURE_DEPS += ${.CURDIR}/VERSION +# we do not need or want the generated makefile +CONFIGURE_ARGS += --without-makefile +AUTOCONF_GENERATED_MAKEFILE = Makefile.config +.include <autoconf.mk> +.endif +SHARE_MK ?= ${SHAREDIR}/mk +MKSRC = ${srcdir}/mk +INSTALL ?= ${srcdir}/install-sh + +.if ${MK_INSTALL_MK} == "yes" +install: install-mk +.endif + +beforeinstall: + test -d ${DESTDIR}${BINDIR} || ${INSTALL} -m ${DIRMODE} -d ${DESTDIR}${BINDIR} + test -d ${DESTDIR}${MANDEST} || ${INSTALL} -m ${DIRMODE} -d ${DESTDIR}${MANDEST} + +install-mk: +.if exists(${MKSRC}/install-mk) + test -d ${DESTDIR}${SHARE_MK} || ${INSTALL} -m ${DIRMODE} -d ${DESTDIR}${SHARE_MK} + sh ${MKSRC}/install-mk -v -m ${NONBINMODE} ${DESTDIR}${SHARE_MK} +.else + @echo need to unpack mk.tar.gz under ${srcdir} or set MKSRC; false +.endif +# end-delete2 + +# A simple unit-test driver to help catch regressions +TEST_MAKE ?= ${.OBJDIR}/${PROG:T} +accept test: .NOMETA + cd ${.CURDIR}/unit-tests && \ + MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}} + + +.if make(test) && ${MK_AUTO_OBJ} == "yes" +# The test target above visits unit-tests with -r -m / +# which prevents MK_AUTO_OBJ doing its job +# so do it here +.if defined(MAKEOBJDIRPREFIX) || ${MAKEOBJDIR:U:M*/*} != "" +_utobj = ${.OBJDIR}/unit-tests +.else +_utobj = ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj} +.endif +utobj: .NOMETA + @test -d ${_utobj} && exit 0; \ + echo "[Creating ${_utobj}...]"; \ + umask ${OBJDIR_UMASK:U002}; \ + mkdir -p ${_utobj} +test: utobj +.endif diff --cc contrib/bmake/job.c index bd85e6d95fb8,775c8197ea19..d06b1570ba85 --- a/contrib/bmake/job.c +++ b/contrib/bmake/job.c @@@ -2207,15 -2169,9 +2186,15 @@@ Job_Init(void aborting = ABORT_NONE; job_errors = 0; + Always_pass_job_queue = GetBooleanExpr(MAKE_ALWAYS_PASS_JOB_QUEUE, + Always_pass_job_queue); + + Job_error_token = GetBooleanExpr(MAKE_JOB_ERROR_TOKEN, Job_error_token); + + /* - * There is a non-zero chance that we already have children. - * eg after 'make -f- <<EOF' + * There is a non-zero chance that we already have children, + * e.g. after 'make -f- <<EOF'. * Since their termination causes a 'Child (pid) not in table' * message, Collect the status of any that are already dead, and * suppress the error message if there are any undead ones. @@@ -2750,13 -2653,7 +2676,13 @@@ JobTokenAdd(void { char tok = JOB_TOKENS[aborting], tok1; + if (!Job_error_token && aborting == ABORT_ERROR) { + if (jobTokensRunning == 0) + return; + tok = '+'; /* no error token */ + } + - /* If we are depositing an error token flush everything else */ + /* If we are depositing an error token, flush everything else. */ while (tok != '+' && read(tokenWaitJob.inPipe, &tok1, 1) == 1) continue; diff --cc contrib/bmake/os.sh index 8216c774cd96,13b0730464e9..13b0730464e9 mode 100644,100755..100755 --- a/contrib/bmake/os.sh +++ b/contrib/bmake/os.sh diff --cc usr.bin/bmake/Makefile index 9a146246df0d,000000000000..a8bcdfd9f859 mode 100644,000000..100644 --- a/usr.bin/bmake/Makefile +++ b/usr.bin/bmake/Makefile @@@ -1,203 -1,0 +1,203 @@@ +# This is a generated file, do NOT edit! +# See contrib/bmake/bsd.after-import.mk +# + - SRCTOP ?= ${.CURDIR:H:H} ++SRCTOP?= ${.CURDIR:H:H} + +# look here first for config.h - CFLAGS += -I${.CURDIR} ++CFLAGS+= -I${.CURDIR} + +# for after-import - CLEANDIRS += FreeBSD - CLEANFILES += bootstrap ++CLEANDIRS+= FreeBSD ++CLEANFILES+= bootstrap + - # $Id: Makefile,v 1.132 2024/09/22 19:56:26 sjg Exp $ ++# $Id: Makefile,v 1.133 2025/03/08 20:12:56 sjg Exp $ + - PROG ?= ${.CURDIR:T} ++PROG?= ${.CURDIR:T} + - SRCS = \ ++SRCS= \ + arch.c \ + buf.c \ + compat.c \ + cond.c \ + dir.c \ + for.c \ + hash.c \ + job.c \ + lst.c \ + main.c \ + make.c \ + make_malloc.c \ + meta.c \ + metachar.c \ + parse.c \ + str.c \ + suff.c \ + targ.c \ + trace.c \ + util.c \ + var.c + +.MAIN: all + - MAN = ${PROG}.1 - SRCS.${MAN} = ${srcdir}/make.1 ++MAN= ${PROG}.1 ++SRCS.${MAN}= ${srcdir}/make.1 + +.-include "Makefile.inc" + +# this file gets generated by configure +.-include "Makefile.config" + +.if !empty(LIBOBJS) - SRCS += ${LIBOBJS:T:.o=.c} ++SRCS+= ${LIBOBJS:T:.o=.c} +.endif + +# just in case - prefix ?= /usr - srcdir ?= ${.PARSEDIR} - srcdir := ${srcdir} ++prefix?= /usr ++srcdir?= ${.PARSEDIR} ++srcdir:= ${srcdir} + - DEFAULT_SYS_PATH ?= ${prefix}/share/mk ++DEFAULT_SYS_PATH?= ${prefix}/share/mk + - CPPFLAGS += -DUSE_META - CFLAGS += ${CPPFLAGS} - CFLAGS += -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" - CFLAGS += -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE - CFLAGS += ${COPTS.${.ALLSRC:M*.c:T:u}} - COPTS.main.c += "-DMAKE_VERSION=\"${_MAKE_VERSION}\"" ++CPPFLAGS+= -DUSE_META ++CFLAGS+= ${CPPFLAGS} ++CFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" ++CFLAGS+= -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE ++CFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}} ++COPTS.main.c+= "-DMAKE_VERSION=\"${_MAKE_VERSION}\"" + +.for x in FORCE_MAKE_OS FORCE_MACHINE FORCE_MACHINE_ARCH +.ifdef $x - COPTS.main.c += "-D$x=\"${$x}\"" ++COPTS.main.c+= "-D$x=\"${$x}\"" +.endif +.endfor + +# meta mode can be useful even without filemon +# should be set by now - USE_FILEMON ?= no ++USE_FILEMON?= no +.if ${USE_FILEMON:tl} != "no" +.PATH: ${srcdir}/filemon - SRCS += filemon_${USE_FILEMON}.c - COPTS.meta.c += -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu} - COPTS.job.c += ${COPTS.meta.c} ++SRCS+= filemon_${USE_FILEMON}.c ++COPTS.meta.c+= -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu} ++COPTS.job.c+= ${COPTS.meta.c} + +.if ${USE_FILEMON} == "dev" - FILEMON_H ?= /usr/include/dev/filemon/filemon.h ++FILEMON_H?= /usr/include/dev/filemon/filemon.h +.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" - COPTS.filemon_dev.c += -DHAVE_FILEMON_H -I${FILEMON_H:H} ++COPTS.filemon_dev.c+= -DHAVE_FILEMON_H -I${FILEMON_H:H} +.endif +.elif ${USE_FILEMON} == "ktrace" - COPTS.filemon_ktrace.c += -Wno-error=unused-parameter ++COPTS.filemon_ktrace.c+= -Wno-error=unused-parameter +.endif + +.endif # USE_FILEMON + +.PATH: ${srcdir} + + +.if make(obj) || make(clean) - SUBDIR.${MK_TESTS} += unit-tests ++SUBDIR.${MK_TESTS}+= unit-tests +.endif + - MAN1 = ${MAN} ++MAN1= ${MAN} + +.if ${MK_GEN_MAN:Uno} == "yes" + +# we use this to generate ${MAN} +.include <${srcdir}/mk/genfiles.mk> + +.if ${PROG} != "make" - CLEANFILES += my.history - SED_CMDS.${MAN} += \ ++CLEANFILES+= my.history ++SED_CMDS.${MAN}+= \ + -e '/^.Dt/s/MAKE/${PROG:tu}/' \ + -e '/^.Nm/s/make/${PROG}/' \ + +.endif + +.if ${CLEANFILES:U:Mmy.history} != "" +${MAN}: my.history +my.history: + @(echo ".Nm"; \ + echo "is derived from NetBSD"; \ + echo ".Xr make 1 ."; \ + echo "It uses autoconf to facilitate portability to other platforms."; \ + echo ".Pp") > $@ + - SED_CMDS.${MAN} += \ ++SED_CMDS.${MAN}+= \ + -e '/^.Sh HISTORY/rmy.history' \ + -e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \ + +.endif + +.if ${.MAKE.OS:N*BSD} != "" +# assume .Nx is not supported - SED_CMDS.${MAN} += -e 's/^\.Nx/NetBSD/' ++SED_CMDS.${MAN}+= -e 's/^\.Nx/NetBSD/' +.endif + +# watch out for a late change of PROG +.if !empty(SRCS.${MAN}) +.NOPATH: ${MAN} +${MAN}: ${SRCS.${MAN}} _GENFILES_USE + +all man beforeinstall: ${MAN} - _mfromdir = . ++_mfromdir= . +.endif +.endif # MK_GEN_MAN + - MANTARGET ?= cat - MANDEST ?= ${MANDIR}/${MANTARGET}1 ++MANTARGET?= cat ++MANDEST?= ${MANDIR}/${MANTARGET}1 + +.if ${MANTARGET} == "cat" - _mfromdir = ${srcdir} ++_mfromdir= ${srcdir} +.endif + +.include <bsd.prog.mk> + - CPPFLAGS += -DMAKE_NATIVE -DHAVE_CONFIG_H - COPTS.var.c += -Wno-cast-qual - COPTS.job.c += -Wno-format-nonliteral - COPTS.parse.c += -Wno-format-nonliteral - COPTS.var.c += -Wno-format-nonliteral ++CPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H ++COPTS.var.c+= -Wno-cast-qual ++COPTS.job.c+= -Wno-format-nonliteral ++COPTS.parse.c+= -Wno-format-nonliteral ++COPTS.var.c+= -Wno-format-nonliteral + +# Force these - SHAREDIR = ${SHAREDIR.bmake:U${prefix}/share} - BINDIR = ${BINDIR.bmake:U${prefix}/bin} - MANDIR = ${MANDIR.bmake:U${SHAREDIR}/man} ++SHAREDIR= ${SHAREDIR.bmake:U${prefix}/share} ++BINDIR= ${BINDIR.bmake:U${prefix}/bin} ++MANDIR= ${MANDIR.bmake:U${SHAREDIR}/man} + +${OBJS}: config.h + + +# A simple unit-test driver to help catch regressions - TEST_MAKE ?= ${.OBJDIR}/${PROG:T} ++TEST_MAKE?= ${.OBJDIR}/${PROG:T} +accept test: .NOMETA + cd ${.CURDIR}/unit-tests && \ + MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}} + + +.if make(test) && ${MK_AUTO_OBJ} == "yes" +# The test target above visits unit-tests with -r -m / +# which prevents MK_AUTO_OBJ doing its job +# so do it here +.if defined(MAKEOBJDIRPREFIX) || ${MAKEOBJDIR:U:M*/*} != "" - _utobj = ${.OBJDIR}/unit-tests ++_utobj= ${.OBJDIR}/unit-tests +.else - _utobj = ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj} ++_utobj= ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj} +.endif +utobj: .NOMETA + @test -d ${_utobj} && exit 0; \ + echo "[Creating ${_utobj}...]"; \ + umask ${OBJDIR_UMASK:U002}; \ + mkdir -p ${_utobj} +test: utobj +.endif + +# override some simple things - BINDIR = /usr/bin - MANDIR = /usr/share/man/man ++BINDIR= /usr/bin ++MANDIR= /usr/share/man/man + +# make sure we get this - CFLAGS += ${COPTS.${.IMPSRC:T}} ++CFLAGS+= ${COPTS.${.IMPSRC:T}} + +after-import: ${SRCTOP}/contrib/bmake/bsd.after-import.mk + cd ${.CURDIR} && ${.MAKE} -f ${SRCTOP}/contrib/bmake/bsd.after-import.mk + diff --cc usr.bin/bmake/Makefile.config index 9ca3691cbb2a,000000000000..a5e81a13cd0a mode 100644,000000..100644 --- a/usr.bin/bmake/Makefile.config +++ b/usr.bin/bmake/Makefile.config @@@ -1,28 -1,0 +1,28 @@@ +# This is a generated file, do NOT edit! +# See contrib/bmake/bsd.after-import.mk +# + +SRCTOP?= ${.CURDIR:H:H} + +# things set by configure + - _MAKE_VERSION?=20250125 ++_MAKE_VERSION?=20250308 + +prefix?= /usr +srcdir= ${SRCTOP}/contrib/bmake +CC?= cc +MAKE_OS?= +DEFAULT_SYS_PATH?= .../share/mk:/usr/share/mk + - EGREP = egrep ++EGREP= egrep +CPPFLAGS+= +CFLAGS+= ${CPPFLAGS} -DHAVE_CONFIG_H +LDFLAGS+= +LIBOBJS+= ${LIBOBJDIR}stresep$U.o +LDADD+= +USE_META?= yes +USE_FILEMON?= dev +FILEMON_H?= /usr/include/dev/filemon/filemon.h +BMAKE_PATH_MAX?= 1024 +# used if MAXPATHLEN not defined +CPPFLAGS+= -DBMAKE_PATH_MAX=${BMAKE_PATH_MAX} diff --cc usr.bin/bmake/unit-tests/Makefile index 7011ab754b9e,000000000000..cdf252d5e474 mode 100644,000000..100644 --- a/usr.bin/bmake/unit-tests/Makefile +++ b/usr.bin/bmake/unit-tests/Makefile @@@ -1,918 -1,0 +1,918 @@@ +# This is a generated file, do NOT edit! +# See contrib/bmake/bsd.after-import.mk +# +# $Id: Makefile,v 1.230 2025/01/30 18:04:20 sjg Exp $ +# +# $NetBSD: Makefile,v 1.355 2025/01/25 22:46:30 sjg Exp $ +# +# Unit tests for make(1) +# +# The main targets are: +# +# all: +# run all the tests +# test: +# run 'all', and compare to expected results +# accept: +# move generated output to expected results +# +# Settable variables +# +# TEST_MAKE +# The make program to be tested. +# +# +# Adding a test case +# +# Each feature should get its own set of tests in its own suitably +# named makefile (*.mk), with its own set of expected results (*.exp), +# and it should be added to the TESTS list. +# + +.MAIN: all + +# we use these below but we might be an older make +.MAKE.OS?= ${uname -s:L:sh} +.MAKE.UID?= ${id -u:L:sh} + +# for many tests we need a TMPDIR that will not collide +# with other users. +.if ${.OBJDIR} != ${.CURDIR} +# easy +TMPDIR:= ${.OBJDIR}/tmp +.elif defined(TMPDIR) +TMPDIR:= ${TMPDIR}/uid${.MAKE.UID} +.else +TMPDIR:= /tmp/uid${.MAKE.UID} +.endif +# make sure it exists +.if !exist(${TMPDIR}) +_!= mkdir -p ${TMPDIR} +.endif +# and clean it up - outside the context of +# any target that might be using it. +.END: rm-tmpdir +rm-tmpdir: .NOMETA + @rm -rf ${TMPDIR} + +# Each test is in a sub-makefile. +# Keep the list sorted. +# Any test that is commented out must be ignored in +# src/tests/usr.bin/make/t_make.sh as well. +#TESTS+= archive +#TESTS+= archive-suffix +TESTS+= cmd-errors +TESTS+= cmd-errors-jobs +TESTS+= cmd-errors-lint +TESTS+= cmd-interrupt +TESTS+= cmdline +TESTS+= cmdline-redirect-stdin +TESTS+= cmdline-undefined +TESTS+= comment +TESTS+= compat-error +TESTS+= cond-cmp-numeric +TESTS+= cond-cmp-numeric-eq +TESTS+= cond-cmp-numeric-ge +TESTS+= cond-cmp-numeric-gt +TESTS+= cond-cmp-numeric-le +TESTS+= cond-cmp-numeric-lt +TESTS+= cond-cmp-numeric-ne +TESTS+= cond-cmp-string +TESTS+= cond-cmp-unary +TESTS+= cond-eof +TESTS+= cond-func +TESTS+= cond-func-commands +TESTS+= cond-func-defined +TESTS+= cond-func-empty +TESTS+= cond-func-exists +TESTS+= cond-func-make +TESTS+= cond-func-make-main +TESTS+= cond-func-target +TESTS+= cond-late +TESTS+= cond-op +TESTS+= cond-op-and +TESTS+= cond-op-and-lint +TESTS+= cond-op-not +TESTS+= cond-op-or +TESTS+= cond-op-or-lint +TESTS+= cond-op-parentheses +TESTS+= cond-short +TESTS+= cond-token-number +TESTS+= cond-token-plain +TESTS+= cond-token-string +TESTS+= cond-token-var +TESTS+= cond-undef-lint +TESTS+= counter +TESTS+= counter-append +TESTS+= dep +TESTS+= dep-colon +TESTS+= dep-colon-bug-cross-file +TESTS+= dep-double-colon +TESTS+= dep-double-colon-indep +TESTS+= dep-duplicate +TESTS+= dep-exclam +TESTS+= dep-none +TESTS+= dep-op-missing +TESTS+= dep-percent +TESTS+= dep-var +TESTS+= dep-wildcards +TESTS+= depsrc +TESTS+= depsrc-end +TESTS+= depsrc-exec +TESTS+= depsrc-ignore +TESTS+= depsrc-made +TESTS+= depsrc-make +TESTS+= depsrc-meta +TESTS+= depsrc-nometa +TESTS+= depsrc-nometa_cmp +TESTS+= depsrc-nopath +TESTS+= depsrc-notmain +TESTS+= depsrc-optional +TESTS+= depsrc-phony +TESTS+= depsrc-precious +TESTS+= depsrc-recursive +TESTS+= depsrc-silent +TESTS+= depsrc-use +TESTS+= depsrc-usebefore +TESTS+= depsrc-usebefore-double-colon +TESTS+= depsrc-wait +TESTS+= deptgt +TESTS+= deptgt-begin +TESTS+= deptgt-begin-fail +TESTS+= deptgt-begin-fail-indirect +TESTS+= deptgt-default +TESTS+= deptgt-delete_on_error +TESTS+= deptgt-end +TESTS+= deptgt-end-fail +TESTS+= deptgt-end-fail-all +TESTS+= deptgt-end-fail-indirect +TESTS+= deptgt-end-jobs +TESTS+= deptgt-error +TESTS+= deptgt-ignore +TESTS+= deptgt-interrupt +TESTS+= deptgt-main +TESTS+= deptgt-makeflags +TESTS+= deptgt-no_parallel +TESTS+= deptgt-nopath +TESTS+= deptgt-notparallel +TESTS+= deptgt-objdir +TESTS+= deptgt-order +TESTS+= deptgt-path +TESTS+= deptgt-path-suffix +TESTS+= deptgt-phony +TESTS+= deptgt-posix +TESTS+= deptgt-precious +TESTS+= deptgt-shell +TESTS+= deptgt-silent +TESTS+= deptgt-silent-jobs +TESTS+= deptgt-stale +TESTS+= deptgt-suffixes +TESTS+= dir +TESTS+= dir-expand-path +TESTS+= directive +TESTS+= directive-dinclude +TESTS+= directive-elif +TESTS+= directive-elifdef +TESTS+= directive-elifmake +TESTS+= directive-elifndef +TESTS+= directive-elifnmake +TESTS+= directive-else +TESTS+= directive-endfor +TESTS+= directive-endif +TESTS+= directive-error +TESTS+= directive-export +TESTS+= directive-export-env +TESTS+= directive-export-impl +TESTS+= directive-export-gmake +TESTS+= directive-export-literal +TESTS+= directive-for +TESTS+= directive-for-break +TESTS+= directive-for-empty +TESTS+= directive-for-errors +TESTS+= directive-for-escape +TESTS+= directive-for-generating-endif +TESTS+= directive-for-if +TESTS+= directive-for-lines +TESTS+= directive-for-null +TESTS+= directive-hyphen-include +TESTS+= directive-if +TESTS+= directive-if-nested +TESTS+= directive-ifdef +TESTS+= directive-ifmake +TESTS+= directive-ifndef +TESTS+= directive-ifnmake +TESTS+= directive-include +TESTS+= directive-include-fatal +TESTS+= directive-include-guard +TESTS+= directive-info +TESTS+= directive-misspellings +TESTS+= directive-sinclude +TESTS+= directive-undef +TESTS+= directive-unexport +TESTS+= directive-unexport-env +TESTS+= directive-warning +TESTS+= dollar +TESTS+= doterror +TESTS+= dotwait +TESTS+= error +TESTS+= # escape # broken by reverting POSIX changes +TESTS+= export +TESTS+= export-all +TESTS+= export-env +TESTS+= export-variants +TESTS+= gnode-submake +TESTS+= hanoi-include +TESTS+= impsrc +TESTS+= include-main +TESTS+= job-flags +TESTS+= job-output-long-lines +TESTS+= job-output-null +TESTS+= jobs-empty-commands +TESTS+= jobs-empty-commands-error +TESTS+= jobs-error-indirect +TESTS+= jobs-error-nested +TESTS+= jobs-error-nested-make +TESTS+= lint +TESTS+= make-exported +TESTS+= meta-cmd-cmp +TESTS+= moderrs +TESTS+= modmisc +.if ${.MAKE.UID} > 0 +TESTS+= objdir-writable +.endif +TESTS+= opt +TESTS+= opt-backwards +TESTS+= opt-chdir +TESTS+= opt-debug +TESTS+= opt-debug-all +TESTS+= opt-debug-archive +TESTS+= opt-debug-curdir +TESTS+= opt-debug-cond +TESTS+= opt-debug-dir +TESTS+= opt-debug-errors +TESTS+= opt-debug-errors-jobs +TESTS+= opt-debug-file +TESTS+= opt-debug-for +TESTS+= opt-debug-graph1 +TESTS+= opt-debug-graph2 +TESTS+= opt-debug-graph3 +TESTS+= opt-debug-hash +TESTS+= opt-debug-jobs +TESTS+= opt-debug-lint +TESTS+= opt-debug-loud +TESTS+= opt-debug-meta +TESTS+= opt-debug-making +TESTS+= opt-debug-no-rm +TESTS+= opt-debug-parse +TESTS+= opt-debug-suff +TESTS+= opt-debug-targets +TESTS+= opt-debug-varraw +TESTS+= opt-debug-var +TESTS+= opt-debug-x-trace +TESTS+= opt-define +TESTS+= opt-env +TESTS+= opt-file +TESTS+= opt-ignore +TESTS+= opt-include-dir +TESTS+= opt-jobs +TESTS+= opt-jobs-internal +TESTS+= opt-jobs-no-action +TESTS+= opt-keep-going +TESTS+= opt-keep-going-indirect +TESTS+= opt-keep-going-multiple +TESTS+= opt-m-include-dir +TESTS+= opt-no-action +TESTS+= opt-no-action-at-all +TESTS+= opt-no-action-runflags +TESTS+= opt-no-action-touch +TESTS+= opt-query +TESTS+= opt-raw +TESTS+= opt-silent +TESTS+= opt-touch +TESTS+= opt-touch-jobs +TESTS+= opt-tracefile +TESTS+= opt-var-expanded +TESTS+= opt-var-literal +TESTS+= opt-version +TESTS+= opt-warnings-as-errors +TESTS+= opt-where-am-i +TESTS+= opt-x-reduce-exported +TESTS+= order +TESTS+= parse +TESTS+= parse-var +TESTS+= phony-end +TESTS+= posix +TESTS+= # posix1 # broken by reverting POSIX changes +TESTS+= recursive +TESTS+= sh +TESTS+= sh-dots +TESTS+= sh-errctl +TESTS+= sh-flags +TESTS+= sh-jobs +TESTS+= sh-jobs-error +TESTS+= sh-leading-at +TESTS+= sh-leading-hyphen +TESTS+= sh-leading-plus +TESTS+= sh-meta-chars +TESTS+= sh-multi-line +TESTS+= sh-single-line +TESTS+= shell-csh +TESTS+= shell-custom +.if exists(/bin/ksh) +TESTS+= shell-ksh +.endif +TESTS+= shell-sh +TESTS+= suff +TESTS+= suff-add-later +TESTS+= suff-clear-regular +TESTS+= suff-clear-single +TESTS+= suff-incomplete +TESTS+= suff-lookup +TESTS+= suff-main +TESTS+= suff-main-several +TESTS+= suff-phony *** 586 LINES SKIPPED ***