The branch main has been updated by sjg:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=8c973ee23d647bbdebd2c12cb51460d80101e11a

commit 8c973ee23d647bbdebd2c12cb51460d80101e11a
Merge: 1f782fcc0cf1 51d8a8b4ac1d
Author:     Simon J. Gerraty <s...@freebsd.org>
AuthorDate: 2023-04-24 23:46:44 +0000
Commit:     Simon J. Gerraty <s...@freebsd.org>
CommitDate: 2023-04-24 23:50:16 +0000

    Merge bmake-20230414
    
    Merge commit '51d8a8b4ac1dd7265e891149e470a803906de2a7'

 contrib/bmake/ChangeLog                            |  52 ++++
 contrib/bmake/FILES                                |   1 +
 contrib/bmake/Makefile                             |   4 +-
 contrib/bmake/VERSION                              |   2 +-
 contrib/bmake/arch.c                               |  11 +-
 contrib/bmake/bmake.1                              |  27 +-
 contrib/bmake/bmake.cat1                           |  32 ++-
 contrib/bmake/compat.c                             |   9 +-
 contrib/bmake/cond.c                               |  39 +--
 contrib/bmake/for.c                                |   8 +-
 contrib/bmake/job.c                                |  19 +-
 contrib/bmake/main.c                               |  64 ++---
 contrib/bmake/make.1                               |  27 +-
 contrib/bmake/make.c                               |   6 +-
 contrib/bmake/make.h                               |  52 ++--
 contrib/bmake/meta.c                               |  89 +++----
 contrib/bmake/mk/ChangeLog                         |  59 +++++
 contrib/bmake/mk/FILES                             |   1 +
 contrib/bmake/mk/autoconf.mk                       |   4 +-
 contrib/bmake/mk/dirdeps.mk                        |  29 ++-
 contrib/bmake/mk/gendirdeps.mk                     |  35 ++-
 contrib/bmake/mk/install-mk                        |   4 +-
 contrib/bmake/mk/jobs.mk                           |  88 +++++++
 contrib/bmake/mk/lib.mk                            |  17 +-
 contrib/bmake/mk/meta.stage.mk                     |   6 +-
 contrib/bmake/mk/meta.sys.mk                       |  43 +++-
 contrib/bmake/mk/mk-files.txt                      |  29 ++-
 contrib/bmake/mk/prog.mk                           |   4 +-
 contrib/bmake/mk/sys.vars.mk                       |  10 +-
 contrib/bmake/mk/warnings.mk                       |  70 +++--
 contrib/bmake/os.sh                                |   0
 contrib/bmake/parse.c                              |  36 ++-
 contrib/bmake/suff.c                               |  10 +-
 contrib/bmake/trace.c                              |   6 +-
 contrib/bmake/unit-tests/Makefile                  |  63 +++--
 contrib/bmake/unit-tests/cmd-interrupt.exp         |   1 -
 contrib/bmake/unit-tests/cmd-interrupt.mk          |   4 +-
 contrib/bmake/unit-tests/cond-cmp-numeric.exp      |   8 +-
 contrib/bmake/unit-tests/cond-cmp-numeric.mk       |  11 +-
 contrib/bmake/unit-tests/cond-cmp-string.exp       |  16 +-
 contrib/bmake/unit-tests/cond-cmp-string.mk        |  10 +-
 contrib/bmake/unit-tests/cond-func-empty.exp       |   4 +-
 contrib/bmake/unit-tests/cond-func-empty.mk        |  47 ++--
 contrib/bmake/unit-tests/cond-short.exp            |  11 +-
 contrib/bmake/unit-tests/cond-short.mk             | 140 +++++-----
 contrib/bmake/unit-tests/cond-token-number.exp     |   1 -
 contrib/bmake/unit-tests/cond-token-number.mk      |  22 +-
 contrib/bmake/unit-tests/cond-token-plain.exp      |   1 +
 contrib/bmake/unit-tests/cond-token-plain.mk       |   8 +-
 contrib/bmake/unit-tests/cond-undef-lint.exp       |   3 +
 contrib/bmake/unit-tests/dep-var.exp               |  24 ++
 contrib/bmake/unit-tests/dep-var.mk                |  21 +-
 .../bmake/unit-tests/deptgt-delete_on_error.exp    |   2 -
 contrib/bmake/unit-tests/meta-ignore.inc           |  63 +++++
 contrib/bmake/unit-tests/opt-debug-lint.exp        |   2 +
 contrib/bmake/unit-tests/opt.mk                    |   4 +-
 contrib/bmake/unit-tests/parse-var.exp             |   6 +-
 contrib/bmake/unit-tests/parse-var.mk              |  40 ++-
 contrib/bmake/unit-tests/var-eval-short.exp        |   4 +
 contrib/bmake/unit-tests/var-scope-cmdline.exp     |   4 +-
 contrib/bmake/unit-tests/var-scope-cmdline.mk      |   6 +-
 contrib/bmake/unit-tests/varcmd.mk                 |   6 +-
 contrib/bmake/unit-tests/varmod-ifelse.exp         |   7 +
 contrib/bmake/unit-tests/varmod-ifelse.mk          |  66 ++++-
 contrib/bmake/unit-tests/varmod-loop.exp           |   6 +-
 contrib/bmake/unit-tests/varmod-loop.mk            |  24 +-
 contrib/bmake/unit-tests/varmod-no-match.mk        |  98 ++++++-
 contrib/bmake/unit-tests/varmod-order-shuffle.mk   |   7 +-
 contrib/bmake/unit-tests/varmod-order.exp          |   2 +
 contrib/bmake/unit-tests/varmod-order.mk           |  16 +-
 .../varname-dot-make-meta-ignore_filter.exp        |  10 +
 .../varname-dot-make-meta-ignore_filter.mk         |   7 +-
 .../varname-dot-make-meta-ignore_paths.exp         |  10 +
 .../varname-dot-make-meta-ignore_paths.mk          |   7 +-
 .../varname-dot-make-meta-ignore_patterns.exp      |  10 +
 .../varname-dot-make-meta-ignore_patterns.mk       |   7 +-
 contrib/bmake/unit-tests/varname-dot-makeflags.exp |  11 +-
 contrib/bmake/unit-tests/varname-dot-makeflags.mk  |  39 ++-
 .../bmake/unit-tests/varname-dot-makeoverrides.exp |   7 +
 .../bmake/unit-tests/varname-dot-makeoverrides.mk  |  25 +-
 contrib/bmake/unit-tests/varname-makeflags.exp     |  20 ++
 contrib/bmake/unit-tests/varname-makeflags.mk      | 182 +++++++++++--
 contrib/bmake/unit-tests/varparse-errors.exp       |   8 +-
 contrib/bmake/unit-tests/varparse-errors.mk        |   3 +-
 contrib/bmake/var.c                                | 281 ++++++++-------------
 usr.bin/bmake/Makefile                             |   4 +-
 usr.bin/bmake/Makefile.config                      |   2 +-
 usr.bin/bmake/unit-tests/Makefile                  |  63 +++--
 88 files changed, 1594 insertions(+), 753 deletions(-)

diff --cc contrib/bmake/Makefile
index 4ad9ac92b266,000000000000..212885f7b900
mode 100644,000000..100644
--- a/contrib/bmake/Makefile
+++ b/contrib/bmake/Makefile
@@@ -1,238 -1,0 +1,236 @@@
- #     $Id: Makefile,v 1.123 2023/01/28 02:49:20 sjg Exp $
++#     $Id: Makefile,v 1.124 2023/02/25 20:27:44 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
 +
 +.-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?= ${.CURDIR}
 +
 +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_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
 +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
 +.endif                                # USE_FILEMON == dev
 +
 +.endif                                # USE_FILEMON
 +
 +.PATH:        ${srcdir}
 +
 +.if make(obj) || make(clean)
 +SUBDIR+= unit-tests
 +.endif
 +
 +# 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:NDarwin:NLinux} != ""
 +MANTARGET= cat
 +INSTALL?=${srcdir}/install-sh
 +.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
 +
 +OPTIONS_DEFAULT_NO+= \
 +      PROG_VERSION
 +
 +# 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
 +# end-delete1
 +
 +MAN= ${PROG}.1
 +MAN1= ${MAN}
 +
 +.if ${PROG} != "make"
 +CLEANFILES+= my.history
 +.if make(${MAN}) || !exists(${srcdir}/${MAN})
 +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") > $@
 +
 +.NOPATH: ${MAN}
 +${MAN}:       make.1 my.history
 +      @echo making $@
 +      @sed \
 +      -e '/^.Dt/s/MAKE/${PROG:tu}/' \
 +      -e 's/^.Nx/NetBSD/' \
 +      -e '/^.Nm/s/make/${PROG}/' \
 +      -e '/^.Sh HISTORY/rmy.history' \
 +      -e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@
 +
 +all beforeinstall: ${MAN}
 +_mfromdir=.
 +.endif
 +.endif
 +
 +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}
 +
- .if !exists(.depend)
 +${OBJS}: config.h
- .endif
 +
 +# 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/mk/jobs.mk
index 000000000000,f465ea06310b..f465ea06310b
mode 000000,100644..100644
--- a/contrib/bmake/mk/jobs.mk
+++ b/contrib/bmake/mk/jobs.mk
diff --cc contrib/bmake/os.sh
index 6bf52420c90f,6bf52420c90f..6bf52420c90f
mode 100644,100755..100755
--- a/contrib/bmake/os.sh
+++ b/contrib/bmake/os.sh
diff --cc contrib/bmake/unit-tests/meta-ignore.inc
index 000000000000,ed74f4d79017..ed74f4d79017
mode 000000,100644..100644
--- a/contrib/bmake/unit-tests/meta-ignore.inc
+++ b/contrib/bmake/unit-tests/meta-ignore.inc
diff --cc usr.bin/bmake/Makefile
index f94c7d3d2914,000000000000..ed2f5b3d5e2f
mode 100644,000000..100644
--- a/usr.bin/bmake/Makefile
+++ b/usr.bin/bmake/Makefile
@@@ -1,181 -1,0 +1,179 @@@
 +# This is a generated file, do NOT edit!
 +# See contrib/bmake/bsd.after-import.mk
 +#
 +# $FreeBSD$
 +
 +SRCTOP?= ${.CURDIR:H:H}
 +
 +# look here first for config.h
 +CFLAGS+= -I${.CURDIR}
 +
 +# for after-import
 +CLEANDIRS+= FreeBSD
 +CLEANFILES+= bootstrap
 +
- #     $Id: Makefile,v 1.123 2023/01/28 02:49:20 sjg Exp $
++#     $Id: Makefile,v 1.124 2023/02/25 20:27:44 sjg Exp $
 +
 +PROG?=        ${.CURDIR:T}
 +
 +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
 +
 +.sinclude "Makefile.inc"
 +
 +# this file gets generated by configure
 +.sinclude "Makefile.config"
 +
 +.if !empty(LIBOBJS)
 +SRCS+= ${LIBOBJS:T:.o=.c}
 +.endif
 +
 +# just in case
 +prefix?= /usr
 +srcdir?= ${.CURDIR}
 +
 +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_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
 +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
 +.endif                                # USE_FILEMON == dev
 +
 +.endif                                # USE_FILEMON
 +
 +.PATH:        ${srcdir}
 +
 +.if make(obj) || make(clean)
 +SUBDIR+= unit-tests
 +.endif
 +
 +
 +MAN= ${PROG}.1
 +MAN1= ${MAN}
 +
 +.if ${PROG} != "make"
 +CLEANFILES+= my.history
 +.if make(${MAN}) || !exists(${srcdir}/${MAN})
 +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") > $@
 +
 +.NOPATH: ${MAN}
 +${MAN}:       make.1 my.history
 +      @echo making $@
 +      @sed \
 +      -e '/^.Dt/s/MAKE/${PROG:tu}/' \
 +      -e 's/^.Nx/NetBSD/' \
 +      -e '/^.Nm/s/make/${PROG}/' \
 +      -e '/^.Sh HISTORY/rmy.history' \
 +      -e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@
 +
 +all beforeinstall: ${MAN}
 +_mfromdir=.
 +.endif
 +.endif
 +
 +MANTARGET?= cat
 +MANDEST?= ${MANDIR}/${MANTARGET}1
 +
 +.if ${MANTARGET} == "cat"
 +_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
 +
 +# Force these
 +SHAREDIR= ${SHAREDIR.bmake:U${prefix}/share}
 +BINDIR= ${BINDIR.bmake:U${prefix}/bin}
 +MANDIR= ${MANDIR.bmake:U${SHAREDIR}/man}
 +
- .if !exists(.depend)
 +${OBJS}: config.h
- .endif
 +
 +
 +# 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
 +
 +# override some simple things
 +BINDIR= /usr/bin
 +MANDIR= /usr/share/man/man
 +
 +# make sure we get this
 +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 a0310f91a5f8,000000000000..60e86b185246
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
 +#
 +# $FreeBSD$
 +
 +SRCTOP?= ${.CURDIR:H:H}
 +
 +# things set by configure
 +
- _MAKE_VERSION?=20230208
++_MAKE_VERSION?=20230414
 +
 +prefix?= /usr
 +srcdir= ${SRCTOP}/contrib/bmake
 +CC?= cc
 +DEFAULT_SYS_PATH?= .../share/mk:/usr/share/mk
 +
 +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 3214dacda5fc,000000000000..6594bdd5cd81
mode 100644,000000..100644
--- a/usr.bin/bmake/unit-tests/Makefile
+++ b/usr.bin/bmake/unit-tests/Makefile
@@@ -1,850 -1,0 +1,859 @@@
 +# This is a generated file, do NOT edit!
 +# See contrib/bmake/bsd.after-import.mk
 +#
 +# $FreeBSD$
- # $Id: Makefile,v 1.191 2023/01/24 06:09:49 sjg Exp $
++# $Id: Makefile,v 1.193 2023/02/25 20:03:25 sjg Exp $
 +#
- # $NetBSD: Makefile,v 1.331 2023/01/24 00:24:02 sjg Exp $
++# $NetBSD: Makefile,v 1.333 2023/02/25 19:30:32 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
++
 +# 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-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+=               forloop
 +TESTS+=               forsubst
 +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+=               modmatch
 +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-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
 +TESTS+=               suff-rebuild
 +TESTS+=               suff-self
 +TESTS+=               suff-transform-debug
 +TESTS+=               suff-transform-endless
 +TESTS+=               suff-transform-expand
 +TESTS+=               suff-transform-select
 +TESTS+=               suff-use
 +TESTS+=               sunshcmd
 +TESTS+=               ternary
 +TESTS+=               unexport
 +TESTS+=               unexport-env
 +TESTS+=               use-inference
 +TESTS+=               var-readonly
 +TESTS+=               var-scope
 +TESTS+=               var-scope-cmdline
 +TESTS+=               var-scope-env
 +TESTS+=               var-scope-global
 +TESTS+=               var-scope-local
 +TESTS+=               var-scope-local-legacy
 +TESTS+=               var-eval-short
 +TESTS+=               var-op
 +TESTS+=               var-op-append
 +TESTS+=               var-op-assign
 +TESTS+=               var-op-default
 +TESTS+=               var-op-expand
 +TESTS+=               var-op-shell
 +TESTS+=               var-op-sunsh
 +TESTS+=               var-recursive
 +TESTS+=               varcmd
 +TESTS+=               vardebug
 +TESTS+=               varfind
 +TESTS+=               varmisc
 +TESTS+=               varmod
 +TESTS+=               varmod-assign
 +TESTS+=               varmod-assign-shell
 +TESTS+=               varmod-defined
 +TESTS+=               varmod-edge
 +TESTS+=               varmod-exclam-shell
 +TESTS+=               varmod-extension
 +TESTS+=               varmod-gmtime
 +TESTS+=               varmod-hash
 +TESTS+=               varmod-head
 +TESTS+=               varmod-ifelse
 +TESTS+=               varmod-indirect
 +TESTS+=               varmod-l-name-to-value
 +TESTS+=               varmod-localtime
 +TESTS+=               varmod-loop
 +TESTS+=               varmod-loop-delete
 +TESTS+=               varmod-loop-varname
 +TESTS+=               varmod-match
 +TESTS+=               varmod-match-escape
 +TESTS+=               varmod-no-match
 +TESTS+=               varmod-order
 +TESTS+=               varmod-order-numeric
 +TESTS+=               varmod-order-reverse
 +TESTS+=               varmod-order-shuffle
 +TESTS+=               varmod-order-string
 +TESTS+=               varmod-path
 +TESTS+=               varmod-quote
 +TESTS+=               varmod-quote-dollar
 +TESTS+=               varmod-range
*** 493 LINES SKIPPED ***

Reply via email to