Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jan 2025 23:55:17 GMT
From:      "Simon J. Gerraty" <sjg@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 6a7405f5a6b6 - main - Merge bmake-20250125
Message-ID:  <202501302355.50UNtHPf022794@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by sjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=6a7405f5a6b639682cacf01e35d561411ff556aa

commit 6a7405f5a6b639682cacf01e35d561411ff556aa
Merge: 4a1b0a9e2b9f 5ad769f660f3
Author:     Simon J. Gerraty <sjg@FreeBSD.org>
AuthorDate: 2025-01-30 23:40:08 +0000
Commit:     Simon J. Gerraty <sjg@FreeBSD.org>
CommitDate: 2025-01-30 23:51:52 +0000

    Merge bmake-20250125
    
    Merge commit '5ad769f660f3d00853bc739f82d9bc62f6a682cb'

 contrib/bmake/ChangeLog                            | 139 ++++++++++++
 contrib/bmake/FILES                                |   2 +
 contrib/bmake/Makefile                             | 139 +++++++-----
 contrib/bmake/VERSION                              |   2 +-
 contrib/bmake/arch.c                               |   9 +-
 contrib/bmake/bmake.1                              |  47 +++--
 contrib/bmake/bmake.cat1                           |  34 +--
 contrib/bmake/bsd.after-import.mk                  |   5 +-
 contrib/bmake/compat.c                             |  13 +-
 contrib/bmake/cond.c                               |  29 ++-
 contrib/bmake/job.c                                |  84 ++------
 contrib/bmake/job.h                                |   4 +-
 contrib/bmake/main.c                               |  44 ++--
 contrib/bmake/make.1                               |  35 +++-
 contrib/bmake/make.h                               |  21 +-
 contrib/bmake/mk/ChangeLog                         | 117 +++++++++++
 contrib/bmake/mk/FILES                             |   3 +
 contrib/bmake/mk/README                            |  10 +-
 contrib/bmake/mk/cython.mk                         |  43 ++--
 contrib/bmake/mk/dirdeps-targets.mk                |   5 +-
 contrib/bmake/mk/dirdeps.mk                        |  20 +-
 contrib/bmake/mk/gendirdeps.mk                     |   4 +-
 contrib/bmake/mk/genfiles.mk                       |  26 +++
 contrib/bmake/mk/init.mk                           |  11 +-
 contrib/bmake/mk/install-mk                        |   4 +-
 contrib/bmake/mk/lib.mk                            |  14 +-
 contrib/bmake/mk/links.mk                          |  34 +--
 contrib/bmake/mk/meta.sys.mk                       |  13 +-
 contrib/bmake/mk/meta2deps.py                      |  16 +-
 contrib/bmake/mk/options.mk                        |   8 +-
 contrib/bmake/mk/own.mk                            |   7 +-
 contrib/bmake/mk/prog.mk                           |  12 +-
 contrib/bmake/mk/rust.mk                           | 203 ++++++++++++++++++
 contrib/bmake/mk/setopts.sh                        | 175 ++++++++++++++++
 contrib/bmake/mk/subdir.mk                         |  10 +-
 contrib/bmake/mk/sys.mk                            |   3 +-
 contrib/bmake/mk/sys.vars.mk                       |   7 +-
 contrib/bmake/os.sh                                |   8 +-
 contrib/bmake/parse.c                              |  49 +----
 contrib/bmake/suff.c                               |   6 +-
 contrib/bmake/unit-tests/Makefile                  |  23 +-
 contrib/bmake/unit-tests/archive.exp               |  12 ++
 contrib/bmake/unit-tests/archive.mk                |  20 +-
 contrib/bmake/unit-tests/cmd-errors-jobs.exp       |  76 ++++++-
 contrib/bmake/unit-tests/cmd-errors-jobs.mk        | 123 ++++++++---
 contrib/bmake/unit-tests/cmd-errors-lint.exp       |  14 +-
 contrib/bmake/unit-tests/cmd-errors-lint.mk        |  17 +-
 contrib/bmake/unit-tests/cmd-errors.exp            |  14 +-
 contrib/bmake/unit-tests/cmd-errors.mk             |  17 +-
 contrib/bmake/unit-tests/cmd-interrupt.exp         |   1 +
 contrib/bmake/unit-tests/cmd-interrupt.mk          |  24 ++-
 contrib/bmake/unit-tests/cmdline.exp               |   4 +-
 contrib/bmake/unit-tests/cmdline.mk                |   8 +-
 contrib/bmake/unit-tests/cond-cmp-numeric-eq.exp   |   4 +-
 contrib/bmake/unit-tests/cond-cmp-numeric-eq.mk    |   6 +-
 contrib/bmake/unit-tests/cond-cmp-numeric.exp      |   2 +-
 contrib/bmake/unit-tests/cond-cmp-numeric.mk       |   4 +-
 contrib/bmake/unit-tests/cond-cmp-string.exp       |   8 +-
 contrib/bmake/unit-tests/cond-cmp-string.mk        |  10 +-
 contrib/bmake/unit-tests/cond-eof.exp              |   6 +-
 contrib/bmake/unit-tests/cond-eof.mk               |   8 +-
 contrib/bmake/unit-tests/cond-func-commands.mk     |   7 +-
 contrib/bmake/unit-tests/cond-func-defined.exp     |   4 +-
 contrib/bmake/unit-tests/cond-func-defined.mk      |  11 +-
 contrib/bmake/unit-tests/cond-func-empty.exp       |   3 +-
 contrib/bmake/unit-tests/cond-func-empty.mk        |   9 +-
 contrib/bmake/unit-tests/cond-func-exists.mk       |   7 +-
 contrib/bmake/unit-tests/cond-func-make.mk         |   7 +-
 contrib/bmake/unit-tests/cond-func-target.mk       |   7 +-
 contrib/bmake/unit-tests/cond-func.exp             |   9 +-
 contrib/bmake/unit-tests/cond-func.mk              |  17 +-
 contrib/bmake/unit-tests/cond-late.exp             |   4 +-
 contrib/bmake/unit-tests/cond-late.mk              |   4 +-
 contrib/bmake/unit-tests/cond-op-and.exp           |   6 +-
 contrib/bmake/unit-tests/cond-op-and.mk            |   8 +-
 contrib/bmake/unit-tests/cond-op-not.exp           |   2 +-
 contrib/bmake/unit-tests/cond-op-not.mk            |   4 +-
 contrib/bmake/unit-tests/cond-op-or.exp            |   6 +-
 contrib/bmake/unit-tests/cond-op-or.mk             |   8 +-
 contrib/bmake/unit-tests/cond-op-parentheses.exp   |   6 +-
 contrib/bmake/unit-tests/cond-op-parentheses.mk    |   8 +-
 contrib/bmake/unit-tests/cond-op.exp               |  14 +-
 contrib/bmake/unit-tests/cond-op.mk                |  16 +-
 contrib/bmake/unit-tests/cond-token-number.exp     |   8 +-
 contrib/bmake/unit-tests/cond-token-number.mk      |  10 +-
 contrib/bmake/unit-tests/cond-token-plain.exp      |  12 +-
 contrib/bmake/unit-tests/cond-token-plain.mk       |  14 +-
 contrib/bmake/unit-tests/cond-token-string.exp     |  20 +-
 contrib/bmake/unit-tests/cond-token-string.mk      |   7 +-
 contrib/bmake/unit-tests/cond-token-var.exp        |  22 +-
 contrib/bmake/unit-tests/cond-token-var.mk         |  65 +++++-
 contrib/bmake/unit-tests/cond-undef-lint.exp       |  10 +-
 contrib/bmake/unit-tests/cond-undef-lint.mk        |  21 +-
 contrib/bmake/unit-tests/dep-var.exp               |   8 +-
 contrib/bmake/unit-tests/dep-var.mk                |  20 +-
 contrib/bmake/unit-tests/deptgt-makeflags.exp      |   2 +-
 contrib/bmake/unit-tests/deptgt-order.exp          |   4 +-
 contrib/bmake/unit-tests/deptgt.exp                |  28 ++-
 contrib/bmake/unit-tests/deptgt.mk                 |  12 +-
 contrib/bmake/unit-tests/directive-export-impl.exp |  38 ++--
 contrib/bmake/unit-tests/directive-for-errors.exp  |   3 +-
 contrib/bmake/unit-tests/directive-for-errors.mk   |   4 +-
 contrib/bmake/unit-tests/directive-for-escape.exp  |  12 +-
 contrib/bmake/unit-tests/directive-for-escape.mk   |   6 +-
 contrib/bmake/unit-tests/directive-for.exp         |   3 +-
 contrib/bmake/unit-tests/directive-for.mk          |   4 +-
 contrib/bmake/unit-tests/directive-if-nested.mk    |   4 +-
 contrib/bmake/unit-tests/directive-if.exp          |   2 +-
 contrib/bmake/unit-tests/directive-if.mk           |   4 +-
 .../bmake/unit-tests/directive-include-fatal.exp   |   2 +-
 .../bmake/unit-tests/directive-include-fatal.mk    |   4 +-
 .../bmake/unit-tests/directive-include-guard.exp   |   6 +-
 .../bmake/unit-tests/directive-include-guard.mk    |  26 ++-
 contrib/bmake/unit-tests/directive-include.exp     |   3 +-
 contrib/bmake/unit-tests/directive-include.mk      |   6 +-
 contrib/bmake/unit-tests/directive-undef.exp       |   3 +-
 contrib/bmake/unit-tests/directive-undef.mk        |   4 +-
 contrib/bmake/unit-tests/include-main.exp          |   4 +-
 contrib/bmake/unit-tests/lint.exp                  |   6 +-
 contrib/bmake/unit-tests/moderrs.exp               | 233 ++++++++++++---------
 contrib/bmake/unit-tests/moderrs.mk                | 175 +++++++++-------
 contrib/bmake/unit-tests/opt-debug-lint.exp        |  15 +-
 contrib/bmake/unit-tests/opt-debug-lint.mk         |  10 +-
 contrib/bmake/unit-tests/opt-debug-parse.exp       |  14 +-
 contrib/bmake/unit-tests/opt-debug-var.exp         |   8 +-
 contrib/bmake/unit-tests/opt-debug-var.mk          |  19 +-
 contrib/bmake/unit-tests/suff-incomplete.exp       |  12 +-
 contrib/bmake/unit-tests/suff-main-several.exp     |  30 +--
 contrib/bmake/unit-tests/suff-rebuild.exp          |  22 +-
 contrib/bmake/unit-tests/suff.exp                  | 146 +++++++++++++
 contrib/bmake/unit-tests/suff.mk                   |  41 ++++
 contrib/bmake/unit-tests/var-eval-short.exp        |  12 +-
 contrib/bmake/unit-tests/var-eval-short.mk         |   5 +-
 contrib/bmake/unit-tests/var-op-expand.exp         |   8 +-
 contrib/bmake/unit-tests/var-op-expand.mk          |   6 +-
 contrib/bmake/unit-tests/var-op-shell.exp          |   6 +
 contrib/bmake/unit-tests/var-op-shell.mk           |  11 +-
 contrib/bmake/unit-tests/var-recursive.exp         |  41 ++--
 contrib/bmake/unit-tests/var-recursive.mk          |  77 +++----
 contrib/bmake/unit-tests/vardebug.exp              |  51 +++--
 contrib/bmake/unit-tests/vardebug.mk               |  21 +-
 contrib/bmake/unit-tests/varmisc.exp               |  45 ++--
 contrib/bmake/unit-tests/varmisc.mk                |  30 +--
 contrib/bmake/unit-tests/varmod-assign-shell.exp   |   2 +-
 contrib/bmake/unit-tests/varmod-assign-shell.mk    |   4 +-
 contrib/bmake/unit-tests/varmod-assign.exp         |  38 ++--
 contrib/bmake/unit-tests/varmod-assign.mk          |  27 ++-
 contrib/bmake/unit-tests/varmod-edge.exp           |  29 ++-
 contrib/bmake/unit-tests/varmod-edge.mk            |  20 +-
 contrib/bmake/unit-tests/varmod-gmtime.exp         |  20 +-
 contrib/bmake/unit-tests/varmod-gmtime.mk          |  17 +-
 contrib/bmake/unit-tests/varmod-hash.exp           |  15 +-
 contrib/bmake/unit-tests/varmod-hash.mk            |   9 +-
 contrib/bmake/unit-tests/varmod-ifelse.exp         |  63 +++---
 contrib/bmake/unit-tests/varmod-ifelse.mk          |  28 ++-
 contrib/bmake/unit-tests/varmod-indirect.exp       |  22 +-
 contrib/bmake/unit-tests/varmod-indirect.mk        |  10 +-
 contrib/bmake/unit-tests/varmod-localtime.exp      |  20 +-
 contrib/bmake/unit-tests/varmod-localtime.mk       |  17 +-
 contrib/bmake/unit-tests/varmod-loop-delete.exp    |   4 +-
 contrib/bmake/unit-tests/varmod-loop-delete.mk     |   4 +-
 contrib/bmake/unit-tests/varmod-loop-varname.exp   |  16 +-
 contrib/bmake/unit-tests/varmod-loop-varname.mk    |  14 +-
 contrib/bmake/unit-tests/varmod-loop.exp           |  10 +-
 contrib/bmake/unit-tests/varmod-match-escape.exp   |  29 +--
 contrib/bmake/unit-tests/varmod-match-escape.mk    |   8 +-
 contrib/bmake/unit-tests/varmod-match.exp          |  31 ++-
 contrib/bmake/unit-tests/varmod-match.mk           |  23 +-
 contrib/bmake/unit-tests/varmod-mtime.exp          |  23 +-
 contrib/bmake/unit-tests/varmod-mtime.mk           |  19 +-
 contrib/bmake/unit-tests/varmod-order.exp          |  49 +++--
 contrib/bmake/unit-tests/varmod-order.mk           |  43 ++--
 contrib/bmake/unit-tests/varmod-range.exp          |  22 +-
 contrib/bmake/unit-tests/varmod-range.mk           |  19 +-
 contrib/bmake/unit-tests/varmod-select-words.exp   |  60 +++---
 contrib/bmake/unit-tests/varmod-select-words.mk    |  66 +++++-
 contrib/bmake/unit-tests/varmod-shell.exp          |   6 +-
 contrib/bmake/unit-tests/varmod-shell.mk           |   8 +-
 contrib/bmake/unit-tests/varmod-subst-regex.exp    |  73 ++++---
 contrib/bmake/unit-tests/varmod-subst-regex.mk     |  16 +-
 contrib/bmake/unit-tests/varmod-subst.exp          |   5 +-
 contrib/bmake/unit-tests/varmod-subst.mk           |   3 +-
 contrib/bmake/unit-tests/varmod-sun-shell.exp      |   4 +-
 contrib/bmake/unit-tests/varmod-sun-shell.mk       |   6 +-
 contrib/bmake/unit-tests/varmod-sysv.exp           |   8 +-
 contrib/bmake/unit-tests/varmod-sysv.mk            |   8 +-
 contrib/bmake/unit-tests/varmod-to-separator.exp   |  52 ++---
 contrib/bmake/unit-tests/varmod-to-separator.mk    |  41 ++--
 contrib/bmake/unit-tests/varmod.exp                |  65 +++---
 contrib/bmake/unit-tests/varmod.mk                 |  48 ++---
 .../bmake/unit-tests/varname-dot-make-level.exp    |  10 +-
 contrib/bmake/unit-tests/varname-dot-make-level.mk |   9 +-
 contrib/bmake/unit-tests/varname-dot-shell.exp     |  30 +--
 contrib/bmake/unit-tests/varname-dot-suffixes.exp  |  14 +-
 contrib/bmake/unit-tests/varname.exp               |   8 +-
 contrib/bmake/unit-tests/varname.mk                |   6 +-
 contrib/bmake/unit-tests/varparse-dynamic.exp      |   4 +-
 contrib/bmake/unit-tests/varparse-dynamic.mk       |   6 +-
 contrib/bmake/unit-tests/varparse-errors.exp       |  64 ++++--
 contrib/bmake/unit-tests/varparse-errors.mk        |  44 ++--
 contrib/bmake/var.c                                | 149 ++++++-------
 usr.bin/bmake/Makefile                             | 139 +++++++-----
 usr.bin/bmake/Makefile.config                      |   2 +-
 usr.bin/bmake/unit-tests/Makefile                  |  29 ++-
 204 files changed, 3252 insertions(+), 1814 deletions(-)

diff --cc contrib/bmake/Makefile
index 65730df7e3df,000000000000..939b71c5e12c
mode 100644,000000..100644
--- a/contrib/bmake/Makefile
+++ b/contrib/bmake/Makefile
@@@ -1,237 -1,0 +1,266 @@@
- #	$Id: Makefile,v 1.127 2024/03/19 16:03:23 sjg Exp $
++#	$Id: Makefile,v 1.132 2024/09/22 19:56:26 sjg Exp $
 +
- PROG=	bmake
++PROG = bmake
 +
- 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
++
 +.-include "VERSION"
 +.-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?= ${.CURDIR}
++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
 +.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}
++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}
 +
- .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
++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}}
++isBSD44 := ${BSD44_LIST:M${OS}}
 +
 +.if ${isBSD44} == "" && ${OS:NCygwin:NDarwin:NLinux} != ""
- MANTARGET?= cat
++MANTARGET ?= cat
 +.if ${MACHINE} == "sun386"
 +# even I don't have one of these anymore :-)
- CFLAGS+= -DPORTAR
++CFLAGS += -DPORTAR
 +.elif ${OS} != "SunOS"
 +# assume the worst
- SRCS+= sigcompat.c
- CFLAGS+= -DSIGNAL_FLAGS=SA_RESTART
++SRCS += sigcompat.c
++CFLAGS += -DSIGNAL_FLAGS=SA_RESTART
 +.endif
 +.else
- MANTARGET?= man
++MANTARGET ?= man
 +.endif
 +
 +# turn this on by default - ignored if we are root
- WITH_INSTALL_AS_USER=
++WITH_INSTALL_AS_USER =
 +
 +# suppress with -DWITHOUT_*
- OPTIONS_DEFAULT_YES+= \
++OPTIONS_DEFAULT_YES += \
 +	AUTOCONF_MK \
 +	INSTALL_MK \
- 	PROG_LINK
++	PROG_LINK \
++	TESTS \
++
++OPTIONS_DEFAULT_NO += \
++	GEN_MAN \
++	PROG_VERSION \
 +
- OPTIONS_DEFAULT_NO+= \
- 	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}
++PROG_NAME = ${PROG}-${_MAKE_VERSION}
 +.if ${MK_PROG_LINK} == "yes"
- SYMLINKS+= ${PROG_NAME} ${BINDIR}/${PROG}
++SYMLINKS += ${PROG_NAME} ${BINDIR}/${PROG}
 +.endif
 +.endif
 +
 +EXTRACT_MAN=no
 +# end-delete1
 +
- MAN= ${PROG}.1
- MAN1= ${MAN}
++.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
- .if make(${MAN}) || !exists(${srcdir}/${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") > $@
 +
- .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}/' \
++SED_CMDS.${MAN} += \
 +	-e '/^.Sh HISTORY/rmy.history' \
- 	-e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@
++	-e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \
 +
- all beforeinstall: ${MAN}
- _mfromdir=.
 +.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=.
 +.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 <prog.mk>
 +
- CPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H
++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
 +
 +# 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/genfiles.mk
index 000000000000,d35e8be74763..d35e8be74763
mode 000000,100644..100644
--- a/contrib/bmake/mk/genfiles.mk
+++ b/contrib/bmake/mk/genfiles.mk
diff --cc contrib/bmake/mk/install-mk
index bb150e3041a3,b455832b7726..b455832b7726
mode 100755,100644..100644
--- a/contrib/bmake/mk/install-mk
+++ b/contrib/bmake/mk/install-mk
diff --cc contrib/bmake/mk/rust.mk
index 000000000000,5fc340239c30..5fc340239c30
mode 000000,100644..100644
--- a/contrib/bmake/mk/rust.mk
+++ b/contrib/bmake/mk/rust.mk
diff --cc contrib/bmake/mk/setopts.sh
index 000000000000,91c65c776438..91c65c776438
mode 000000,100644..100644
--- a/contrib/bmake/mk/setopts.sh
+++ b/contrib/bmake/mk/setopts.sh
diff --cc contrib/bmake/os.sh
index 648ea1d5993c,8216c774cd96..8216c774cd96
mode 100755,100644..100644
--- a/contrib/bmake/os.sh
+++ b/contrib/bmake/os.sh
diff --cc contrib/bmake/unit-tests/suff.exp
index 000000000000,adf646850d6e..adf646850d6e
mode 000000,100644..100644
--- a/contrib/bmake/unit-tests/suff.exp
+++ b/contrib/bmake/unit-tests/suff.exp
diff --cc contrib/bmake/unit-tests/suff.mk
index 000000000000,53f6eb82b224..53f6eb82b224
mode 000000,100644..100644
--- a/contrib/bmake/unit-tests/suff.mk
+++ b/contrib/bmake/unit-tests/suff.mk
diff --cc usr.bin/bmake/Makefile
index b243cd0275b6,000000000000..43e1ef99b635
mode 100644,000000..100644
--- a/usr.bin/bmake/Makefile
+++ b/usr.bin/bmake/Makefile
@@@ -1,180 -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.127 2024/03/19 16:03:23 sjg Exp $
++#	$Id: Makefile,v 1.132 2024/09/22 19:56:26 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
 +
- .sinclude "Makefile.inc"
++.MAIN: all
++
++MAN = ${PROG}.1
++SRCS.${MAN} = ${srcdir}/make.1
++
++.-include "Makefile.inc"
 +
 +# this file gets generated by configure
- .sinclude "Makefile.config"
++.-include "Makefile.config"
 +
 +.if !empty(LIBOBJS)
- SRCS+= ${LIBOBJS:T:.o=.c}
++SRCS += ${LIBOBJS:T:.o =.c}
 +.endif
 +
 +# just in case
- prefix?= /usr
- srcdir?= ${.CURDIR}
++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
- .if ${USE_FILEMON:tl} != "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"
++.if ${USE_FILEMON} = = "dev"
 +FILEMON_H ?= /usr/include/dev/filemon/filemon.h
- .if exists(${FILEMON_H}) && ${FILEMON_H:T} == "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
++.elif ${USE_FILEMON} = = "ktrace"
++COPTS.filemon_ktrace.c += -Wno-error =unused-parameter
 +.endif
 +
 +.endif				# USE_FILEMON
 +
 +.PATH:	${srcdir}
 +
++
 +.if make(obj) || make(clean)
- SUBDIR+= unit-tests
++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>
 +
- MAN= ${PROG}.1
- MAN1= ${MAN}
++.if ${PROG} ! = "make"
++CLEANFILES += my.history
++SED_CMDS.${MAN} += \
++	-e '/^.Dt/s/MAKE/${PROG:tu}/' \
++	-e '/^.Nm/s/make/${PROG}/' \
++
++.endif
 +
- .if ${PROG} != "make"
- CLEANFILES+= my.history
- .if make(${MAN}) || !exists(${srcdir}/${MAN})
++.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") > $@
 +
- .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}/' \
++SED_CMDS.${MAN} += \
 +	-e '/^.Sh HISTORY/rmy.history' \
- 	-e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@
++	-e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \
++
++.endif
 +
- all beforeinstall: ${MAN}
- _mfromdir=.
++.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 =.
 +.endif
++.endif				# MK_GEN_MAN
 +
- MANTARGET?= cat
- MANDEST?= ${MANDIR}/${MANTARGET}1
++MANTARGET ?= cat
++MANDEST ?= ${MANDIR}/${MANTARGET}1
 +
- .if ${MANTARGET} == "cat"
- _mfromdir=${srcdir}
++.if ${MANTARGET} = = "cat"
++_mfromdir = ${srcdir}
 +.endif
 +
 +.include <bsd.prog.mk>
 +
- CPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H
++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}
 +accept test: .NOMETA
 +	cd ${.CURDIR}/unit-tests && \
- 	MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}}
++	MAKEFLAGS = ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS =${TESTS:Q}}
 +
 +
- .if make(test) && ${MK_AUTO_OBJ} == "yes"
++.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*/*} != ""
++.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
++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 75ceb4a50e15,000000000000..9ca3691cbb2a
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?=20240711
++_MAKE_VERSION?=20250125
 +
 +prefix?= /usr
 +srcdir= ${SRCTOP}/contrib/bmake
 +CC?= cc
 +MAKE_OS?= 
 +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 d70c0f87e459,000000000000..7011ab754b9e
mode 100644,000000..100644
--- a/usr.bin/bmake/unit-tests/Makefile
+++ b/usr.bin/bmake/unit-tests/Makefile
@@@ -1,911 -1,0 +1,918 @@@
 +# This is a generated file, do NOT edit!
 +# See contrib/bmake/bsd.after-import.mk
 +#
- # $Id: Makefile,v 1.224 2024/07/13 05:27:35 sjg Exp $
++# $Id: Makefile,v 1.230 2025/01/30 18:04:20 sjg Exp $
 +#
- # $NetBSD: Makefile,v 1.350 2024/07/07 09:37:00 rillig 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
*** 833 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501302355.50UNtHPf022794>