From nobody Sat Jan 10 21:34:12 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dpX2r5y4tz6Mwyv for ; Sat, 10 Jan 2026 21:34:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dpX2r53Kvz3Qsj for ; Sat, 10 Jan 2026 21:34:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768080852; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2QPufgcgfDA6eC+J4ZJZooOu24gsOh60bEHix+gOYMQ=; b=d1kBM8hvwVG/otnKjGVIYYE+1KE++0VchfqfPMxmIEhpoOu2oKJ4s68MbTheKce6jMCJnB uzRuT4P7R06Xs3Vt3tDhbiOWXm/iQnkobDrUnQPtGzVPxluhmwOBN9K2kw39AFjiPgoGWl SDzHh1Evcyq7pTaGRiK6uMAuArHezKQ0T2LN+QjAjC3JpAJrDX97i5UcpQmAqfXlSxJvuU WW4t2fAwiCfQrnnRm8957/EQ7CigVmBRqB1JKvh4yoQAh4J8iQBx0v2JcTZdMpSLdPPbsb mVI4YR+ekHGjOxHuAMDR5pJOx0jTUysRGSSeyBEY3cdzpgLsAmFMzIN/R5t6wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768080852; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2QPufgcgfDA6eC+J4ZJZooOu24gsOh60bEHix+gOYMQ=; b=Y/TLy4wYr6UA6RjQN2AwgA/Olsi9VT/W60UXKZHWFKAFyFfEPnU7UNIajL+/OUIVkKh1uQ DKCXXUzMvenWZKiWmWD85TvGWNlkJgZAMlNXPkEZqmdwdT/e3yeVHGVD9WJOXwGQWR15AX LZ2tcwcUUUFgstowJLq7JQ0xnq3Xw98NAs3f7g3s6voa+qgycAqq8ZDuGIwMUieihQskDE Pt7vgVnMNXnKYjvWomLMie+lg18mf/J0Z2C6vQvWgWVHedYdTapVfN6nweslSUzTbdoQwx z4zjiD5Iuhv8RibBjgKxwSHJeAjmaDa70b1yFT60bYzqLAvD8vXK7E766RKUOg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768080852; a=rsa-sha256; cv=none; b=fI1AP9mJder6suERYd/wPU4WKY6Y6YGUxWSvkCmagcWPN1LreuCD3ZV+UNXx88EY1ZsIW7 bex5yVULpx1QM+Bw3IT12DkJ87Ll4ZBmF8/AxLXtagl60sO3cTqhsfnEETcOdQuBm9ieXn 9w7Fga9PJd+HquyKztyNbZzzmINzybR9GTk4zj/VU933sohzQOCMxZKmXv2CK3PcPqtypw YeBPntyJMC4VA9eLoPb5MjPNPgf6WZcIT1KTC43uJRew35KfAve3E/MJvrEvh2BX3j5mz7 PV6m0DyxGoC1ehRhB/qRUF67KilLZCjChhxRLwhe2Pzgm1SWxx3LKRvgI7xUQA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dpX2r4b3Tz1BVt for ; Sat, 10 Jan 2026 21:34:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26529 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 10 Jan 2026 21:34:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Simon J. Gerraty Subject: git: c95f96dea30a - stable/14 - Update to bmake-20251111 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c95f96dea30a26b7d3543961db6e25e677c02c5a Auto-Submitted: auto-generated Date: Sat, 10 Jan 2026 21:34:12 +0000 Message-Id: <6962c5d4.26529.59af9453@gitrepo.freebsd.org> The branch stable/14 has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=c95f96dea30a26b7d3543961db6e25e677c02c5a commit c95f96dea30a26b7d3543961db6e25e677c02c5a Author: Simon J. Gerraty AuthorDate: 2025-12-03 18:13:30 +0000 Commit: Simon J. Gerraty CommitDate: 2026-01-10 21:33:13 +0000 Update to bmake-20251111 Merge commit '638c66de4a0faa4c2e815e81cd4021c2387c7e0f' (cherry picked from commit c60f6422ffae3ea85e7b10bad950ad27c463af18) --- contrib/bmake/ChangeLog | 37 ++++++ contrib/bmake/FILES | 2 + contrib/bmake/LICENSE | 6 +- contrib/bmake/VERSION | 2 +- contrib/bmake/bmake.1 | 13 +- contrib/bmake/bmake.cat1 | 12 +- contrib/bmake/boot-strap | 23 +++- contrib/bmake/configure | 53 ++++++-- contrib/bmake/configure.in | 36 ++++- contrib/bmake/install-sh | 11 +- contrib/bmake/main.c | 13 +- contrib/bmake/make.1 | 13 +- contrib/bmake/mk/ChangeLog | 49 +++++++ contrib/bmake/mk/auto.dep.mk | 12 +- contrib/bmake/mk/auto.obj.mk | 11 +- contrib/bmake/mk/autoconf.mk | 11 +- contrib/bmake/mk/autodep.mk | 12 +- contrib/bmake/mk/cc-wrap.mk | 11 +- contrib/bmake/mk/ccm.dep.mk | 12 +- contrib/bmake/mk/compiler.mk | 11 +- contrib/bmake/mk/cython.mk | 12 +- contrib/bmake/mk/dirdeps-cache-update.mk | 11 +- contrib/bmake/mk/dirdeps-options.mk | 11 +- contrib/bmake/mk/dirdeps-targets.mk | 18 +-- contrib/bmake/mk/dpadd.mk | 11 +- contrib/bmake/mk/files.mk | 11 +- contrib/bmake/mk/gendirdeps.mk | 5 +- contrib/bmake/mk/genfiles.mk | 11 +- contrib/bmake/mk/host-target.mk | 12 +- contrib/bmake/mk/host.libnames.mk | 9 +- contrib/bmake/mk/inc.mk | 11 +- contrib/bmake/mk/init.mk | 11 +- contrib/bmake/mk/install-mk | 11 +- contrib/bmake/mk/install-new.mk | 36 ++--- contrib/bmake/mk/install-sh | 11 +- contrib/bmake/mk/java.mk | 12 +- contrib/bmake/mk/jobs.mk | 11 +- contrib/bmake/mk/ldorder.mk | 11 +- contrib/bmake/mk/libnames.mk | 11 +- contrib/bmake/mk/libs.mk | 11 +- contrib/bmake/mk/links.mk | 11 +- contrib/bmake/mk/manifest.mk | 11 +- contrib/bmake/mk/meta.autodep.mk | 12 +- contrib/bmake/mk/meta.stage.mk | 26 ++-- contrib/bmake/mk/meta.subdir.mk | 12 +- contrib/bmake/mk/meta.sys.mk | 12 +- contrib/bmake/mk/meta2deps.sh | 24 +++- contrib/bmake/mk/mkopt.sh | 10 +- contrib/bmake/mk/newlog.sh | 11 +- contrib/bmake/mk/obj.mk | 11 +- contrib/bmake/mk/options.mk | 148 ++++++++++++++------- contrib/bmake/mk/posix.mk | 11 +- contrib/bmake/mk/prlist.mk | 11 +- contrib/bmake/mk/progs.mk | 11 +- contrib/bmake/mk/rst2htm.mk | 11 +- contrib/bmake/mk/rust.mk | 12 +- contrib/bmake/mk/scripts.mk | 11 +- contrib/bmake/mk/setopts.sh | 9 +- contrib/bmake/mk/srctop.mk | 11 +- contrib/bmake/mk/stage-install.sh | 9 +- contrib/bmake/mk/subdir.mk | 11 +- contrib/bmake/mk/suffixes.mk | 11 +- contrib/bmake/mk/sys.clean-env.mk | 11 +- contrib/bmake/mk/sys.debug.mk | 11 +- contrib/bmake/mk/sys.dependfile.mk | 11 +- contrib/bmake/mk/sys.dirdeps.mk | 11 +- contrib/bmake/mk/sys.mk | 11 +- contrib/bmake/mk/sys.vars.mk | 36 +++-- contrib/bmake/mk/target-flags.mk | 13 +- contrib/bmake/mk/warnings.mk | 12 +- contrib/bmake/mk/whats.mk | 11 +- contrib/bmake/mk/yacc.mk | 12 +- contrib/bmake/os.sh | 9 +- contrib/bmake/sigaction.c | 14 +- contrib/bmake/sigcompat.c | 14 +- contrib/bmake/unit-tests/Makefile | 31 ++++- contrib/bmake/unit-tests/Makefile.config.in | 7 +- contrib/bmake/unit-tests/directive-dinclude.mk | 2 +- .../bmake/unit-tests/directive-hyphen-include.mk | 2 +- .../bmake/unit-tests/directive-include-guard.mk | 4 +- contrib/bmake/unit-tests/directive-include.mk | 2 +- contrib/bmake/unit-tests/directive-sinclude.mk | 2 +- contrib/bmake/unit-tests/opt-debug-file.exp | 2 +- contrib/bmake/unit-tests/opt-debug-file.mk | 6 +- contrib/bmake/unit-tests/varmod-sun-shell1.exp | 14 ++ contrib/bmake/unit-tests/varmod-sun-shell1.mk | 25 ++++ contrib/bmake/unit-tests/varname-circumflex.mk | 4 +- contrib/bmake/var.c | 46 ++++++- contrib/bmake/wait.h | 14 +- usr.bin/bmake/Makefile.config | 2 +- usr.bin/bmake/config.h | 4 +- usr.bin/bmake/unit-tests/Makefile | 31 ++++- usr.bin/bmake/unit-tests/Makefile.config | 7 +- 93 files changed, 688 insertions(+), 696 deletions(-) diff --git a/contrib/bmake/ChangeLog b/contrib/bmake/ChangeLog index e8f1567733e4..11b1684bf7d5 100644 --- a/contrib/bmake/ChangeLog +++ b/contrib/bmake/ChangeLog @@ -1,3 +1,40 @@ +2025-11-15 Simon J Gerraty + + * boot-strap: unset more things from env and save a copy + to env.out for debugging. + +2025-11-12 Simon J Gerraty + + * VERSION (_MAKE_VERSION): 20251111 + Merge with NetBSD make, pick up + o var.c: add :sh1 which only evaluates command on first reference. + +2025-11-11 Simon J Gerraty + + * configure.in: Force filemon=no for Cygwin and MINGW64_NT + +2025-11-10 Simon J Gerraty + + * unit-tests/Makefile: handle MINGW64_NT + mark some tests broken, filter others as per Cygwin. + +2025-10-23 Simon J Gerraty + + * make.1: document MAKE_VERSION. + +2025-10-22 Simon J Gerraty + + * VERSION (_MAKE_VERSION): 20251022 + + * configure.in: Add a check that lua is version 5.2 or later + if not we want to skip running check-expect.lua + +2025-09-16 Simon J Gerraty + + * VERSION (_MAKE_VERSION): 20250916 + Merge with NetBSD make, pick up + o var.c: avoid compiler warning from hexdigits + 2025-08-04 Simon J Gerraty * VERSION (_MAKE_VERSION): 20250804 diff --git a/contrib/bmake/FILES b/contrib/bmake/FILES index 28465b6a8c39..7f6024418d94 100644 --- a/contrib/bmake/FILES +++ b/contrib/bmake/FILES @@ -760,6 +760,8 @@ unit-tests/varmod-subst.exp unit-tests/varmod-subst.mk unit-tests/varmod-sun-shell.exp unit-tests/varmod-sun-shell.mk +unit-tests/varmod-sun-shell1.exp +unit-tests/varmod-sun-shell1.mk unit-tests/varmod-sysv.exp unit-tests/varmod-sysv.mk unit-tests/varmod-tail.exp diff --git a/contrib/bmake/LICENSE b/contrib/bmake/LICENSE index 0d460e91d230..28832d20a6ef 100644 --- a/contrib/bmake/LICENSE +++ b/contrib/bmake/LICENSE @@ -2,11 +2,11 @@ The individual files in this distribution are copyright their original contributors or assignees. Including: - Copyright (c) 1993-2021, Simon J Gerraty - Copyright (c) 2020, Roland Illig + Copyright (c) 1993-2025, Simon J Gerraty + Copyright (c) 2020-2021, Roland Illig Copyright (c) 2009-2016, Juniper Networks, Inc. Copyright (c) 2009, John Birrell. - Copyright (c) 1997-2021 The NetBSD Foundation, Inc. + Copyright (c) 1997-2025 The NetBSD Foundation, Inc. Copyright (c) 1998 Todd C. Miller Copyright (c) 1989 by Berkeley Softworks Copyright (c) 1988, 1989, 1990, 1992, 1993 diff --git a/contrib/bmake/VERSION b/contrib/bmake/VERSION index e301cfafab72..2c7c307f2a90 100644 --- a/contrib/bmake/VERSION +++ b/contrib/bmake/VERSION @@ -1,2 +1,2 @@ # keep this compatible with sh and make -_MAKE_VERSION=20250804 +_MAKE_VERSION=20251111 diff --git a/contrib/bmake/bmake.1 b/contrib/bmake/bmake.1 index 01f173bc1a69..a9de459de862 100644 --- a/contrib/bmake/bmake.1 +++ b/contrib/bmake/bmake.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.387 2025/07/02 17:11:56 rillig Exp $ +.\" $NetBSD: make.1,v 1.388 2025/11/12 22:14:07 sjg Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd July 2, 2025 +.Dd November 11, 2025 .Dt BMAKE 1 .Os .Sh NAME @@ -945,6 +945,11 @@ include additional unexpanded variable references) are shown. .It Va .MAKE.EXPORTED The list of variables exported by .Nm . +.It Va MAKE_VERSION +This variable indicates the version of +.Nm . +It is typically the date of last import from NetBSD. +It is useful for checking whether certain features are available. .It Va MAKEFILE The top-level makefile that is currently read, as given in the command line. @@ -1881,6 +1886,10 @@ The output of running is the value. .It Cm \&:sh The value is run as a command, and the output becomes the new value. +.It Cm \&:sh1 +The value is run as a command, for the first reference only, and +the output is cached for subsequent references. +This modifier is useful when the result is not expected to change. .It Cm \&::= Ns Ar str The variable is assigned the value .Ar str diff --git a/contrib/bmake/bmake.cat1 b/contrib/bmake/bmake.cat1 index 950437a8db9c..baaad7b4ed70 100644 --- a/contrib/bmake/bmake.cat1 +++ b/contrib/bmake/bmake.cat1 @@ -607,6 +607,11 @@ VVAARRIIAABBLLEE AASSSSIIGGNNMMEENNTTSS _._M_A_K_E_._E_X_P_O_R_T_E_D The list of variables exported by bbmmaakkee. + _M_A_K_E___V_E_R_S_I_O_N + This variable indicates the version of bbmmaakkee. It is typically + the date of last import from NetBSD. It is useful for checking + whether certain features are available. + _M_A_K_E_F_I_L_E The top-level makefile that is currently read, as given in the command line. @@ -1190,6 +1195,11 @@ VVAARRIIAABBLLEE AASSSSIIGGNNMMEENNTTSS ::sshh The value is run as a command, and the output becomes the new value. + ::sshh11 + The value is run as a command, for the first reference only, and the + output is cached for subsequent references. This modifier is useful + when the result is not expected to change. + ::::==_s_t_r The variable is assigned the value _s_t_r after substitution. This modifier and its variations are useful in obscure situations such as @@ -1864,4 +1874,4 @@ BBUUGGSS attempt to suppress a cascade of unnecessary errors, can result in a seemingly unexplained `*** Error code 6' -FreeBSD 14.2-RELEASE-p1 July 2, 2025 FreeBSD 14.2-RELEASE-p1 +FreeBSD 14.3-RELEASE-p3 November 11, 2025 FreeBSD 14.3-RELEASE-p3 diff --git a/contrib/bmake/boot-strap b/contrib/bmake/boot-strap index b025de52a82b..51e81083b95b 100755 --- a/contrib/bmake/boot-strap +++ b/contrib/bmake/boot-strap @@ -133,7 +133,7 @@ # Simon J. Gerraty # RCSid: -# $Id: boot-strap,v 1.61 2024/03/10 17:51:10 sjg Exp $ +# $Id: boot-strap,v 1.62 2025/11/15 16:53:14 sjg Exp $ # # @(#) Copyright (c) 2001 Simon J. Gerraty # @@ -179,12 +179,25 @@ source_rc() { done } +have() { + case `(type "$1") 2>&1` in + *" found") return 1;; + esac + return 0 +} + +Env() { + have env && env || set +} + cmd_args="$@" # clear some things from the environment that we care about -unset MAKEOBJDIR MAKEOBJDIRPREFIX -# or that might be incompatible -unset MAKE MAKEFLAGS +# any variable starting with any of these prefixes will be unset +for p in MAKE OBJ SB WITH +do + unset ENV `Env | sed -n "/^$p/s,=.*,,p"` +done # --install[-host-target] will set this INSTALL_PREFIX= @@ -381,6 +394,8 @@ objdir="${objdir:-$OBJROOT$HOST_TARGET}" cd "$objdir" || exit 1 # make it absolute objdir=`'pwd'` +# save a copy of our env for debugging +Env > env.out ShareDir() { case "/$1" in diff --git a/contrib/bmake/configure b/contrib/bmake/configure index e34740cd2cfa..9bbdb8d2b36b 100755 --- a/contrib/bmake/configure +++ b/contrib/bmake/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for bmake 20240711. +# Generated by GNU Autoconf 2.72 for bmake 20251111. # # Report bugs to . # @@ -603,8 +603,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bmake' PACKAGE_TARNAME='bmake' -PACKAGE_VERSION='20240711' -PACKAGE_STRING='bmake 20240711' +PACKAGE_VERSION='20251111' +PACKAGE_STRING='bmake 20251111' PACKAGE_BUGREPORT='sjg@NetBSD.org' PACKAGE_URL='' @@ -644,6 +644,7 @@ ac_func_c_list= ac_subst_vars='LTLIBOBJS UTC_1 _MAKE_VERSION +lua filemon_h use_filemon use_meta @@ -720,6 +721,7 @@ with_makefile with_meta with_filemon with_bmake_strftime +with_lua with_machine with_force_machine with_force_machine_arch @@ -1286,7 +1288,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures bmake 20240711 to adapt to many kinds of systems. +'configure' configures bmake 20251111 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1348,7 +1350,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bmake 20240711:";; + short | recursive ) echo "Configuration of bmake 20251111:";; esac cat <<\_ACEOF @@ -1371,6 +1373,7 @@ Optional Packages: --without-meta disable use of meta-mode --with-filemon={no,dev,ktrace,path/filemon.h} indicate filemon method for meta-mode. Path to filemon.h implies dev --with-bmake-strftime force use of bmake strftime + --without-lua do not use check-expect.lua --with-machine=MACHINE explicitly set MACHINE --with-force-machine=MACHINE set FORCE_MACHINE --with-force-machine-arch=MACHINE set FORCE_MACHINE_ARCH @@ -1458,7 +1461,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bmake configure 20240711 +bmake configure 20251111 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -1981,7 +1984,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bmake $as_me 20240711, which was +It was created by bmake $as_me 20251111, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -2772,6 +2775,13 @@ esac . $srcdir/VERSION OS=`uname -s` +have() { + case `(type "$1") 2>&1` in + *" found") return 1;; + esac + return 0 +} + use_defshell() { case "$defshell_path$DEFSHELL_INDEX" in "") ;; @@ -2867,6 +2877,7 @@ esac else case e in #( e) case "$OS" in +Cygwin*|MINGW*) use_filemon=no;; NetBSD) filemon_h=no use_filemon=ktrace;; *) for d in "/usr/include/dev/filemon" "$prefix/include/dev/filemon" "$srcdir/../../sys/dev/filemon" @@ -2943,6 +2954,29 @@ do PATH=$PATH:$d done export PATH +lua=$LUA + +# Check whether --with-lua was given. +if test ${with_lua+y} +then : + withval=$with_lua; case "${withval}" in +no) lua=:;; +yes) lua= ;; +/*lua*) lua=$withval;; +*) as_fn_error $? "bad value ${withval} given for lua" "$LINENO" 5;; +esac +fi + +if test "x$lua" != x:; then + if have lua; then + lua_version=`${lua:-lua} -v | sed 's/Lua //;s/ *Copy.*//;'` + echo $ECHO_N "checking whether lua version ($lua_version) > 5.2... $ECHO_C" >&6 + case "$lua_version" in + 4.*|5.1.*) lua=:; echo no >&6;; + *) echo yes >&6;; + esac + fi +fi @@ -7277,6 +7311,7 @@ esac + bm_outfiles="Makefile.config unit-tests/Makefile.config make-bootstrap.sh" if test $use_makefile = yes; then bm_outfiles="makefile $bm_outfiles" @@ -7798,7 +7833,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bmake $as_me 20240711, which was +This file was extended by bmake $as_me 20251111, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7862,7 +7897,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -bmake config.status 20240711 +bmake config.status 20251111 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" diff --git a/contrib/bmake/configure.in b/contrib/bmake/configure.in index 294246dea60d..f378b57fd14a 100644 --- a/contrib/bmake/configure.in +++ b/contrib/bmake/configure.in @@ -1,11 +1,11 @@ dnl dnl RCSid: -dnl $Id: configure.in,v 1.108 2024/07/13 15:27:00 sjg Exp $ +dnl $Id: configure.in,v 1.111 2025/11/11 18:43:59 sjg Exp $ dnl dnl Process this file with autoconf to produce a configure script dnl AC_PREREQ([2.71]) -AC_INIT([bmake],[20240711],[sjg@NetBSD.org]) +AC_INIT([bmake],[20251111],[sjg@NetBSD.org]) AC_CONFIG_HEADERS(config.h) dnl make srcdir absolute @@ -18,6 +18,14 @@ dnl get _MAKE_VERSION . $srcdir/VERSION OS=`uname -s` +dnl do not trust return from type +have() { + case `(type "$1") 2>&1` in + *" found") return 1;; + esac + return 0 +} + dnl function to set DEFSHELL_INDEX use_defshell() { case "$defshell_path$DEFSHELL_INDEX" in @@ -107,6 +115,7 @@ esac ], [ case "$OS" in +Cygwin*|MINGW*) use_filemon=no;; NetBSD) filemon_h=no use_filemon=ktrace;; *) for d in "/usr/include/dev/filemon" "$prefix/include/dev/filemon" "$srcdir/../../sys/dev/filemon" @@ -187,6 +196,28 @@ do PATH=$PATH:$d done export PATH +dnl +dnl if lua is available check it is version 5.2 or later +lua=$LUA +AC_ARG_WITH(lua, +[ --without-lua do not use check-expect.lua], +[case "${withval}" in +no) lua=:;; +yes) lua= ;; +/*lua*) lua=$withval;; +*) AC_MSG_ERROR(bad value ${withval} given for lua);; +esac]) +if test "x$lua" != x:; then + if have lua; then + lua_version=`${lua:-lua} -v | sed 's/Lua //;s/ *Copy.*//;'` + echo $ECHO_N "checking whether lua version ($lua_version) > 5.2... $ECHO_C" >&6 + case "$lua_version" in + 4.*|5.1.*) lua=:; echo no >&6;; + *) echo yes >&6;; + esac + fi +fi +dnl dnl Solaris's signal.h only privides sigset_t etc if one of dnl _EXTENSIONS_ _POSIX_C_SOURCE or _XOPEN_SOURCE are defined. dnl The later two seem to cause more problems than they solve so if we @@ -580,6 +611,7 @@ AC_SUBST(diff_u) AC_SUBST(use_meta) AC_SUBST(use_filemon) AC_SUBST(filemon_h) +AC_SUBST(lua) AC_SUBST(_MAKE_VERSION) AC_SUBST(UTC_1) bm_outfiles="Makefile.config unit-tests/Makefile.config make-bootstrap.sh" diff --git a/contrib/bmake/install-sh b/contrib/bmake/install-sh index aa35fa94c83a..14ddc8ccd13a 100755 --- a/contrib/bmake/install-sh +++ b/contrib/bmake/install-sh @@ -53,19 +53,12 @@ # Simon J. Gerraty # -# SPDX-License-Identifier: BSD-2-Clause -# # RCSid: -# $Id: install-sh,v 1.26 2024/02/17 17:26:57 sjg Exp $ +# $Id: install-sh,v 1.27 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 1993-2023 Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/main.c b/contrib/bmake/main.c index a773b44f42c4..24a1caef4291 100644 --- a/contrib/bmake/main.c +++ b/contrib/bmake/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.661 2025/07/06 07:11:31 rillig Exp $ */ +/* $NetBSD: main.c,v 1.662 2025/08/09 23:13:28 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -111,7 +111,7 @@ #include "trace.h" /* "@(#)main.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: main.c,v 1.661 2025/07/06 07:11:31 rillig Exp $"); +MAKE_RCSID("$NetBSD: main.c,v 1.662 2025/08/09 23:13:28 rillig Exp $"); #if defined(MAKE_NATIVE) __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 " "The Regents of the University of California. " @@ -390,8 +390,8 @@ MainParseArgJobsInternal(const char *argvalue) progname, argvalue, curdir); exit(2); } - if ((fcntl(tokenPoolReader, F_GETFD, 0) < 0) || - (fcntl(tokenPoolWriter, F_GETFD, 0) < 0)) { + if (fcntl(tokenPoolReader, F_GETFD, 0) < 0 || + fcntl(tokenPoolWriter, F_GETFD, 0) < 0) { tokenPoolReader = -1; tokenPoolWriter = -1; bogusJflag = true; @@ -601,7 +601,7 @@ MainParseArgs(int argc, char **argv) bool inOption, dashDash = false; const char *optspecs = "BC:D:I:J:NST:V:WXd:ef:ij:km:nqrstv:w"; -/* Can't actually use getopt(3) because rescanning is not portable */ + /* Can't actually use getopt(3) because rescanning is not portable */ rearg: inOption = false; @@ -1709,7 +1709,7 @@ ReadMakefile(const char *fname) * placement of the setting here means it gets set to the last * makefile specified, as it is set by SysV make. */ -found: + found: if (!doing_depend) Var_Set(SCOPE_INTERNAL, "MAKEFILE", fname); Parse_File(fname, fd); @@ -1802,7 +1802,6 @@ Cmd_Exec(const char *cmd, char **error) (void)execv(shellPath, UNCONST(args)); _exit(1); - /* NOTREACHED */ case -1: *error = str_concat3("Couldn't exec \"", cmd, "\""); diff --git a/contrib/bmake/make.1 b/contrib/bmake/make.1 index de67759290c4..1a99b50d5e89 100644 --- a/contrib/bmake/make.1 +++ b/contrib/bmake/make.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.387 2025/07/02 17:11:56 rillig Exp $ +.\" $NetBSD: make.1,v 1.388 2025/11/12 22:14:07 sjg Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd July 2, 2025 +.Dd November 11, 2025 .Dt MAKE 1 .Os .Sh NAME @@ -956,6 +956,11 @@ include additional unexpanded variable references) are shown. .It Va .MAKE.EXPORTED The list of variables exported by .Nm . +.It Va MAKE_VERSION +This variable indicates the version of +.Nm . +It is typically the date of last import from NetBSD. +It is useful for checking whether certain features are available. .It Va MAKEFILE The top-level makefile that is currently read, as given in the command line. @@ -1892,6 +1897,10 @@ The output of running is the value. .It Cm \&:sh The value is run as a command, and the output becomes the new value. +.It Cm \&:sh1 +The value is run as a command, for the first reference only, and +the output is cached for subsequent references. +This modifier is useful when the result is not expected to change. .It Cm \&::= Ns Ar str The variable is assigned the value .Ar str diff --git a/contrib/bmake/mk/ChangeLog b/contrib/bmake/mk/ChangeLog index fda6d8b02158..daacc97ec045 100644 --- a/contrib/bmake/mk/ChangeLog +++ b/contrib/bmake/mk/ChangeLog @@ -1,3 +1,52 @@ +2025-11-18 Simon J Gerraty + + * sys.vars.mk: set MAKE_POSIX_SHELL to 1 if .SHELL is POSIX, 0 if not. + set isPOSIX_SHELL for use in target scripts. + + * meta.stage.mk: set MAKE_POSIX_SHELL if needed. + + * install-new.mk: use ${isPOSIX_SHELL:Ufalse} to see if we can + avoid running 'expr'. + + * install-new.mk: Allow use of cp or mv - controlled by CPMV_OP + (default mv). + +2025-11-13 Simon J Gerraty + + * sys.vars.mk: add M_sh1 so we can handle older bmake that does + not support :sh1 + +2025-11-11 Simon J Gerraty + + * install-mk (MK_VERSION): 20251111 + + * meta2deps.sh: reset some vars for each new meta file + set meta_file to path of meta file. + If meta2deps appears in DEBUG_SH set -x. + +2025-09-16 Simon J Gerraty + + * options.mk: Add OPTIONS_DEFAULT_DEPENDENT_REQUIRED of the form + OPTION/REQUIRED[/VALUE] + if OPTION is $VALUE (default is "yes"), then REQUIRED must be too. + We add OPTIONS_DEFAULT_DEPENDENT_REQUIRED (sans any /{yes,no}) to + OPTIONS_DEFAULT_DEPENDENT so DEPENDENT/REQUIRED follow the same + processing. + + Also add OPTIONS_FORCED_VALUES of the form OPTION/{yes,no} + we add any OPTIONS_FORCED_NO and OPTIONS_FORCED_YES before + processing. + + Simplify the processing of OPTIONS_DEFAULT_VALUES and + OPTIONS_DEFAULT_DEPENDENT by splitting the tuples and use two + iterator variables in the .for loops. + +2025-08-09 Simon J Gerraty + + * install-mk (MK_VERSION): 20250808 + + * replace sjg license with just BSD-2-Clause SPDX tag + 2025-07-24 Simon J Gerraty * install-mk (MK_VERSION): 20250724 diff --git a/contrib/bmake/mk/auto.dep.mk b/contrib/bmake/mk/auto.dep.mk index 400789a37366..ffd0d528dbcb 100644 --- a/contrib/bmake/mk/auto.dep.mk +++ b/contrib/bmake/mk/auto.dep.mk @@ -1,16 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# RCSid: -# $Id: auto.dep.mk,v 1.12 2024/02/17 17:26:57 sjg Exp $ +# $Id: auto.dep.mk,v 1.13 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2010-2021, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/auto.obj.mk b/contrib/bmake/mk/auto.obj.mk index 4b8c5325b71f..140764860de3 100644 --- a/contrib/bmake/mk/auto.obj.mk +++ b/contrib/bmake/mk/auto.obj.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: auto.obj.mk,v 1.20 2025/05/17 15:29:55 sjg Exp $ +# $Id: auto.obj.mk,v 1.21 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2004-2025, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/autoconf.mk b/contrib/bmake/mk/autoconf.mk index 24532c4e9eab..26e9515d680c 100644 --- a/contrib/bmake/mk/autoconf.mk +++ b/contrib/bmake/mk/autoconf.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: autoconf.mk,v 1.20 2024/02/17 17:26:57 sjg Exp $ +# $Id: autoconf.mk,v 1.21 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 1996-2024, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/autodep.mk b/contrib/bmake/mk/autodep.mk index 88a2643bccff..ab04419ba808 100644 --- a/contrib/bmake/mk/autodep.mk +++ b/contrib/bmake/mk/autodep.mk @@ -1,16 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# RCSid: -# $Id: autodep.mk,v 1.43 2024/02/17 17:26:57 sjg Exp $ +# $Id: autodep.mk,v 1.44 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 1999-2024, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/cc-wrap.mk b/contrib/bmake/mk/cc-wrap.mk index 7c1d6165e9df..f8287c30025e 100644 --- a/contrib/bmake/mk/cc-wrap.mk +++ b/contrib/bmake/mk/cc-wrap.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: cc-wrap.mk,v 1.7 2024/02/17 17:26:57 sjg Exp $ +# $Id: cc-wrap.mk,v 1.8 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2022, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/ccm.dep.mk b/contrib/bmake/mk/ccm.dep.mk index 1809a72e7310..1b31832b8ea9 100644 --- a/contrib/bmake/mk/ccm.dep.mk +++ b/contrib/bmake/mk/ccm.dep.mk @@ -1,16 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# RCSid: -# $Id: ccm.dep.mk,v 1.3 2024/02/17 17:26:57 sjg Exp $ +# $Id: ccm.dep.mk,v 1.4 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2024, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/compiler.mk b/contrib/bmake/mk/compiler.mk index e7a13f0f11d7..32bf55834d03 100644 --- a/contrib/bmake/mk/compiler.mk +++ b/contrib/bmake/mk/compiler.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: compiler.mk,v 1.14 2024/02/19 00:05:50 sjg Exp $ +# $Id: compiler.mk,v 1.15 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2019, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/cython.mk b/contrib/bmake/mk/cython.mk index 8eda318e187c..d6ef8de0b3d6 100644 --- a/contrib/bmake/mk/cython.mk +++ b/contrib/bmake/mk/cython.mk @@ -1,16 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# RCSid: -# $Id: cython.mk,v 1.10 2024/09/20 06:16:41 sjg Exp $ +# $Id: cython.mk,v 1.11 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2014-2024, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/dirdeps-cache-update.mk b/contrib/bmake/mk/dirdeps-cache-update.mk index 9e7cb8281110..b046b0c04f3f 100644 --- a/contrib/bmake/mk/dirdeps-cache-update.mk +++ b/contrib/bmake/mk/dirdeps-cache-update.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: dirdeps-cache-update.mk,v 1.23 2024/02/17 17:26:57 sjg Exp $ +# $Id: dirdeps-cache-update.mk,v 1.24 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2020, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/dirdeps-options.mk b/contrib/bmake/mk/dirdeps-options.mk index e12dcec40ac7..d173cb7d1e97 100644 --- a/contrib/bmake/mk/dirdeps-options.mk +++ b/contrib/bmake/mk/dirdeps-options.mk @@ -1,15 +1,8 @@ -# SPDX-License-Identifier: BSD-2-Clause -# -# $Id: dirdeps-options.mk,v 1.22 2024/02/17 17:26:57 sjg Exp $ +# $Id: dirdeps-options.mk,v 1.23 2025/08/09 22:42:24 sjg Exp $ # # @(#) Copyright (c) 2018-2022, Simon J. Gerraty # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are -# left intact. +# SPDX-License-Identifier: BSD-2-Clause # # Please send copies of changes and bug-fixes to: # sjg@crufty.net diff --git a/contrib/bmake/mk/dirdeps-targets.mk b/contrib/bmake/mk/dirdeps-targets.mk index a8a547c0ce9b..1d00c5f418d2 100644 --- a/contrib/bmake/mk/dirdeps-targets.mk +++ b/contrib/bmake/mk/dirdeps-targets.mk @@ -1,19 +1,11 @@ -# SPDX-License-Identifier: BSD-2-Clause +# $Id: dirdeps-targets.mk,v 1.29 2025/08/09 22:42:24 sjg Exp $ # -# RCSid: -# $Id: dirdeps-targets.mk,v 1.28 2024/10/19 00:47:38 sjg Exp $ +# @(#) Copyright (c) 2019-2020 Simon J. Gerraty # -# @(#) Copyright (c) 2019-2020 Simon J. Gerraty +# SPDX-License-Identifier: BSD-2-Clause # -# This file is provided in the hope that it will -# be of use. There is absolutely NO WARRANTY. -# Permission to copy, redistribute or otherwise -# use this file is hereby granted provided that -# the above copyright notice and this notice are *** 2066 LINES SKIPPED ***