<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/mk/lib.mk, branch vendor/NetBSD/bmake</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Import bmake-20250618</title>
<updated>2025-06-28T02:38:49+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2025-06-28T02:38:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=4f8f2bc2946615330eaa2cc1f6b37d97865fa58a'/>
<id>4f8f2bc2946615330eaa2cc1f6b37d97865fa58a</id>
<content type='text'>
Intersting/relevant changes since bmake-20250414

ChangeLog since bmake-20250414

2025-06-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250618
	Merge with NetBSD make, pick up
	o parse.c: in a warning without location information,
	print the stack trace

2025-06-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250615
	Merge with NetBSD make, pick up
	o add on-demand inter-process stack traces
	o job.c,meta.c: do not discard empty lines in the output of a command
	o job.c: add job prefix if necessary in non-default filtered mode
	o parse.c,var.c: skip inter-process stack trace when
	MAKE_STACK_TRACE=no

2025-06-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250612
	Merge with NetBSD make, pick up
	o use a common style for unexpected error messages
	o parse.c: add program name to stack traces from sub-makes
	add quotes to "in directory" line in stack traces
	o var.c: check variable names for invalid characters when there
	are no modifiers to apply.  This detects and warns about gmake
	syntax like: $(addprefix -I, $(LIST))

2025-06-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250606
	Merge with NetBSD make, pick up
	o main.c: fix bug in handling of output of children in jobs mode

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250528
	Merge with NetBSD make, pick up
	o show contents of MAKEFLAGS in the stack trace.
	o main.c: delay warning about bogus -J flag, if we end up in
	compat mode before the call to InitMaxJobs, the warning isn't
	necessary.

2025-05-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250525
	Merge with NetBSD make, pick up
	o main.c: set .CURDIR earlier so it can be reported in some errors.

2025-05-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250520
	Merge with NetBSD make, pick up
	o rename variables, remove now-redundant comments
	o job.c: clean up building the shell commands in parallel mode
	remove timeout for polling in parallel mode
	o main.c: clean up error message for malformed internal -J option

2025-05-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250511
	Merge with NetBSD make, pick up
	o job.c: rename token pool variables to be more descriptive
	move ContinueJobs further up, to eliminate a forward declaration
	error out if writing to an internal pipe fails
	clean up constant names and function names
	use uniform debug log messages for the token pool
	in the debug log, replace magic numbers with identifiers
	o main.c: clean up error message for malformed internal -J option
	o make.c: replace bitset in trace output with descriptive node
	attributes
	o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log
	o var.c: fix order of error messages in the ":?" modifier

2025-04-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250424
	Merge with NetBSD make, pick up
	o cleanup; replace unsigned int with just unsigned
	Inline the TMPPAT macro, as it is only needed in a single place
	o move struct Job from job.h to job.c
	o job.c: group the code for handling the job token pool
	avoid excessive values of -j
	o make.c: fix grammar in debug log message

mk/ChangeLog since bmake-20250414

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250528

	* add dirdeps2dplibs.mk

2025-05-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250518

	* meta.autodep.mk (META_FILES): re-work to fix filtering.
	if OPTIMIZE_OBJECT_META_FILES==yes
	provide a default META_FILE_OBJ_FILTER that selects a valid
	.SUFFIX to match *o.meta, there's no guarantee that it will be as
	simple as .o or .So etc.
	We have to defer evaluation until the target script is run
	for any of these filters to have any effect.
	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
	in sub-dirs.

	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.

	* add UPDATE_DEPENDFILE as a dependent option - follows
	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
	UPDATE_DEPENDFILE when we think it should be yes.
	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
	without overriding UPDATE_DEPENDFILE directly - which can lead to
	trouble.

2025-05-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250515

	* meta2deps.py: resolve the target of a Move or Link first
	and track the last path resolved, then if the src is a relative
	path we can easily use that last path to resolve the src correctly.

	* meta2deps.sh: for a Move or Link add the dir of target path to
	the list used to resolve the src path.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intersting/relevant changes since bmake-20250414

ChangeLog since bmake-20250414

2025-06-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250618
	Merge with NetBSD make, pick up
	o parse.c: in a warning without location information,
	print the stack trace

2025-06-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250615
	Merge with NetBSD make, pick up
	o add on-demand inter-process stack traces
	o job.c,meta.c: do not discard empty lines in the output of a command
	o job.c: add job prefix if necessary in non-default filtered mode
	o parse.c,var.c: skip inter-process stack trace when
	MAKE_STACK_TRACE=no

2025-06-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250612
	Merge with NetBSD make, pick up
	o use a common style for unexpected error messages
	o parse.c: add program name to stack traces from sub-makes
	add quotes to "in directory" line in stack traces
	o var.c: check variable names for invalid characters when there
	are no modifiers to apply.  This detects and warns about gmake
	syntax like: $(addprefix -I, $(LIST))

2025-06-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250606
	Merge with NetBSD make, pick up
	o main.c: fix bug in handling of output of children in jobs mode

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250528
	Merge with NetBSD make, pick up
	o show contents of MAKEFLAGS in the stack trace.
	o main.c: delay warning about bogus -J flag, if we end up in
	compat mode before the call to InitMaxJobs, the warning isn't
	necessary.

2025-05-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250525
	Merge with NetBSD make, pick up
	o main.c: set .CURDIR earlier so it can be reported in some errors.

2025-05-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250520
	Merge with NetBSD make, pick up
	o rename variables, remove now-redundant comments
	o job.c: clean up building the shell commands in parallel mode
	remove timeout for polling in parallel mode
	o main.c: clean up error message for malformed internal -J option

2025-05-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250511
	Merge with NetBSD make, pick up
	o job.c: rename token pool variables to be more descriptive
	move ContinueJobs further up, to eliminate a forward declaration
	error out if writing to an internal pipe fails
	clean up constant names and function names
	use uniform debug log messages for the token pool
	in the debug log, replace magic numbers with identifiers
	o main.c: clean up error message for malformed internal -J option
	o make.c: replace bitset in trace output with descriptive node
	attributes
	o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log
	o var.c: fix order of error messages in the ":?" modifier

2025-04-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250424
	Merge with NetBSD make, pick up
	o cleanup; replace unsigned int with just unsigned
	Inline the TMPPAT macro, as it is only needed in a single place
	o move struct Job from job.h to job.c
	o job.c: group the code for handling the job token pool
	avoid excessive values of -j
	o make.c: fix grammar in debug log message

mk/ChangeLog since bmake-20250414

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250528

	* add dirdeps2dplibs.mk

2025-05-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250518

	* meta.autodep.mk (META_FILES): re-work to fix filtering.
	if OPTIMIZE_OBJECT_META_FILES==yes
	provide a default META_FILE_OBJ_FILTER that selects a valid
	.SUFFIX to match *o.meta, there's no guarantee that it will be as
	simple as .o or .So etc.
	We have to defer evaluation until the target script is run
	for any of these filters to have any effect.
	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
	in sub-dirs.

	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.

	* add UPDATE_DEPENDFILE as a dependent option - follows
	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
	UPDATE_DEPENDFILE when we think it should be yes.
	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
	without overriding UPDATE_DEPENDFILE directly - which can lead to
	trouble.

2025-05-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250515

	* meta2deps.py: resolve the target of a Move or Link first
	and track the last path resolved, then if the src is a relative
	path we can easily use that last path to resolve the src correctly.

	* meta2deps.sh: for a Move or Link add the dir of target path to
	the list used to resolve the src path.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20250125</title>
<updated>2025-01-30T23:38:13+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2025-01-30T23:38:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5ad769f660f3d00853bc739f82d9bc62f6a682cb'/>
<id>5ad769f660f3d00853bc739f82d9bc62f6a682cb</id>
<content type='text'>
Intersting/relevant changes since bmake-20240711

ChangeLog since bmake-20240711

2025-01-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250125
	Merge with NetBSD make, sync up below change.

	* unit-tests/Makefile: remove $TMPDIR via .END
	to avoid failure in test on NFS - since the temp file for the
	target script is open and thus gets renamed by the server rather
	than removed.

2025-01-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250120
	Merge with NetBSD make, pick up
	o use FORK_FUNCTION so it can be forced to fork when doing coverage.
	o main.c: avoid memory allocation in error path after exec failure.

2025-01-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250116
	Merge with NetBSD make, pick up
	o clarify that undefined expressions are allowed in dependencies
	o simplify code for evaluating the '!=' variable assignment

2025-01-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250111
	Merge with NetBSD make, pick up
	o replace "Malformed conditional" with "Variable is undefined"
	when appropriate

2025-01-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250110
	Merge with NetBSD make, pick up
	o job.c: remove some unnecessary layers in job handling
	o unit-tests: test expressions based on undefined variables

2025-01-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250101
	Merge with NetBSD make, pick up
	o var.c: reduce pointer indirections when unexporting a variable

2024-12-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241212
	* mk/ updates

2024-11-24  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241124
	Merge with NetBSD make, pick up
	o var.c: fix confusing error message when overriding a read-only
	variable

2024-11-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241122
	Merge with NetBSD make, pick up
	o unit-tests/Makefile: optimize running of tests skip extra cat
	in 99% of cases.

2024-11-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241114
	Merge with NetBSD make, pick up
	o make.1: note that MAKEOBJPREFIX should be absolute path
	also that it can be set via makefile if suitable care taken.

2024-11-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241110
	Merge with NetBSD make, pick up
	o make: allow .../ (search here and above) in
	.MAKE.MAKEFILE_PREFERENCE and -f argument.

2024-11-03  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241101
	Merge with NetBSD make, pick up
	o parse.c: report filename:linenumber in parse debug output

2024-09-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240921
	Merge with NetBSD make, pick up
	o make.1: Only list the defaults for MAKEFILE_PREFERENCE once.

	* Makefile: use genfiles.mk to generate ${MAN}
	so that it can be tuned for local site.
	Ensure MAN  is defined before including Makefile.inc

	* Makefile: use MK_GEN_MAN to make it easier to control whether we
	generate ${MAN}

2024-09-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240909

	* arch.c: fix NetBSD PR 58597

2024-09-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* Makefile: use SUBDIR.${MK_TESTS} so that we skip
	unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS

	* VERSION (_MAKE_VERSION): 20240901
	Merge with NetBSD make, pick up
	o reduce line length in error messages
	o var.c: simplify printing of an evaluation stack element

2024-08-29  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240828
	Merge with NetBSD make, pick up
	o add more context to error message about recursive variables
	o treat recursive variables non-fatally - continue parsing to end
	of makefile

2024-08-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240808
	Merge with NetBSD make, pick up
	o improve some error messages for better clarify and readability

2024-07-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240722
	Merge with NetBSD make, pick up
	o job.c: remove dead code

2024-07-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240720
	Merge with NetBSD make, pick up
	o compat.c: do not run commands that have parse or evaluation errors.
	o var.c: remove wrong error message about an undefined variable

mk/ChangeLog since bmake-20240711

2025-01-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: use RUST_LIBS and RUST_PROGS

2025-01-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250101

	* use W flag to :S and :C rather than :tW

2024-12-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: add RUSTFLAGS if needed

2024-12-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* init.mk (OBJS_SRCS_FILTER): apply this as
	${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD.

2024-12-03  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20241202

	* setopts.sh: needed by newlog.sh

2024-11-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it
	easier to add things like 'env' when debugging.

	* install-mk (MK_VERSION): 20241122

	* rust.mk: rename CARGO* to RUST_CARGO* so I don't feel
	like this makefile should be renamed to cargo.mk

2024-11-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and
	DIRDEP_USE_EPILOGUE to _DIRDEP_USE

2024-10-30  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is
	set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to
	.BEGIN target.

2024-10-27  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* options.mk: add support for DEBUG_OPTIONS (similar to
	DEBUG_DIRDEPS) to allow us to see where options get set.
	Eg. DEBUG_OPTIONS="STAGING*" gives:

	bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no)
	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes
	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes)
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes)
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no)

	* own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk)

2024-10-26  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: add some documentation and support for staging

2024-10-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: a means of integrating Rust projects into a larger build.

2024-10-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found
	STATIC_DIRDEPS_CACHE, report its relative path.

2024-09-30  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: tweak the debug message for "Loading" a
	Makefile.depend file, always report what the actual makefile is
	with the DIRDEP it is for.
	Remove the redundant "Looking" message.

2024-09-26  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta2deps.py: when raising AssertionError include meta file name
	with $SB trimmed if possible.

2024-09-23  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta2deps.py: replace assert() with raise AssertionError when we
	detect missing eXits, to ensure a meaningful message gets into
	log.

2024-09-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240921

	* FILES: add genfiles.mk

2024-09-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240920

	* cython.mk: Get PYTHON_VERSION from PYTHON

2024-08-31  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*}
	  and handle subdir with '-' in its name.

2024-08-23  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240820

	* links.mk: Allow a filter to be applied to SYMLINKS etc.
	It is up to [BUILD_][SYM]LINKS_FILTER to do something sane.
	Also only claim we are making a symlink if the value changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intersting/relevant changes since bmake-20240711

ChangeLog since bmake-20240711

2025-01-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250125
	Merge with NetBSD make, sync up below change.

	* unit-tests/Makefile: remove $TMPDIR via .END
	to avoid failure in test on NFS - since the temp file for the
	target script is open and thus gets renamed by the server rather
	than removed.

2025-01-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250120
	Merge with NetBSD make, pick up
	o use FORK_FUNCTION so it can be forced to fork when doing coverage.
	o main.c: avoid memory allocation in error path after exec failure.

2025-01-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250116
	Merge with NetBSD make, pick up
	o clarify that undefined expressions are allowed in dependencies
	o simplify code for evaluating the '!=' variable assignment

2025-01-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250111
	Merge with NetBSD make, pick up
	o replace "Malformed conditional" with "Variable is undefined"
	when appropriate

2025-01-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250110
	Merge with NetBSD make, pick up
	o job.c: remove some unnecessary layers in job handling
	o unit-tests: test expressions based on undefined variables

2025-01-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250101
	Merge with NetBSD make, pick up
	o var.c: reduce pointer indirections when unexporting a variable

2024-12-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241212
	* mk/ updates

2024-11-24  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241124
	Merge with NetBSD make, pick up
	o var.c: fix confusing error message when overriding a read-only
	variable

2024-11-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241122
	Merge with NetBSD make, pick up
	o unit-tests/Makefile: optimize running of tests skip extra cat
	in 99% of cases.

2024-11-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241114
	Merge with NetBSD make, pick up
	o make.1: note that MAKEOBJPREFIX should be absolute path
	also that it can be set via makefile if suitable care taken.

2024-11-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241110
	Merge with NetBSD make, pick up
	o make: allow .../ (search here and above) in
	.MAKE.MAKEFILE_PREFERENCE and -f argument.

2024-11-03  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20241101
	Merge with NetBSD make, pick up
	o parse.c: report filename:linenumber in parse debug output

2024-09-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240921
	Merge with NetBSD make, pick up
	o make.1: Only list the defaults for MAKEFILE_PREFERENCE once.

	* Makefile: use genfiles.mk to generate ${MAN}
	so that it can be tuned for local site.
	Ensure MAN  is defined before including Makefile.inc

	* Makefile: use MK_GEN_MAN to make it easier to control whether we
	generate ${MAN}

2024-09-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240909

	* arch.c: fix NetBSD PR 58597

2024-09-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* Makefile: use SUBDIR.${MK_TESTS} so that we skip
	unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS

	* VERSION (_MAKE_VERSION): 20240901
	Merge with NetBSD make, pick up
	o reduce line length in error messages
	o var.c: simplify printing of an evaluation stack element

2024-08-29  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240828
	Merge with NetBSD make, pick up
	o add more context to error message about recursive variables
	o treat recursive variables non-fatally - continue parsing to end
	of makefile

2024-08-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240808
	Merge with NetBSD make, pick up
	o improve some error messages for better clarify and readability

2024-07-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240722
	Merge with NetBSD make, pick up
	o job.c: remove dead code

2024-07-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240720
	Merge with NetBSD make, pick up
	o compat.c: do not run commands that have parse or evaluation errors.
	o var.c: remove wrong error message about an undefined variable

mk/ChangeLog since bmake-20240711

2025-01-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: use RUST_LIBS and RUST_PROGS

2025-01-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250101

	* use W flag to :S and :C rather than :tW

2024-12-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: add RUSTFLAGS if needed

2024-12-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* init.mk (OBJS_SRCS_FILTER): apply this as
	${OBJS_SRCS_FILTER:ts:} as we do in FreeBSD.

2024-12-03  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20241202

	* setopts.sh: needed by newlog.sh

2024-11-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta.sys.mk: add META_MODE_XTRAS to META_MODE to make it
	easier to add things like 'env' when debugging.

	* install-mk (MK_VERSION): 20241122

	* rust.mk: rename CARGO* to RUST_CARGO* so I don't feel
	like this makefile should be renamed to cargo.mk

2024-11-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: add DIRDEPS_CACHED_ENV to dirdeps-cached and
	DIRDEP_USE_EPILOGUE to _DIRDEP_USE

2024-10-30  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta.sys.mk: if MK_META_ERROR_TARGET is yes and NEWLOG_SH is
	set, and ERROR_LOGDIR already exists, hook _rotateErrorLog to
	.BEGIN target.

2024-10-27  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* options.mk: add support for DEBUG_OPTIONS (similar to
	DEBUG_DIRDEPS) to allow us to see where options get set.
	Eg. DEBUG_OPTIONS="STAGING*" gives:

	bmake[1]: "mk/options.mk" line 89: sys.mk: MK_STAGING=yes (MK_DIRDEPS_BUILD=no)
	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING=yes
	bmake[1]: "mk/options.mk" line 66: local.init.mk: MK_STAGING_PROG=no
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_MAN=yes (MK_STAGING=yes)
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_PROG=no (MK_STAGING=yes)
	bmake[1]: "mk/options.mk" line 89: own.mk: MK_STAGING_RUST=no (MK_STAGING_PROG=no)

	* own.mk: fix setting of STAGE_OBJTOP (normally set by sys.dirdeps.mk)

2024-10-26  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: add some documentation and support for staging

2024-10-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* rust.mk: a means of integrating Rust projects into a larger build.

2024-10-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps-targets.mk: if DEBUG_DIRDEPS_TARGETS and we found
	STATIC_DIRDEPS_CACHE, report its relative path.

2024-09-30  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: tweak the debug message for "Loading" a
	Makefile.depend file, always report what the actual makefile is
	with the DIRDEP it is for.
	Remove the redundant "Looking" message.

2024-09-26  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta2deps.py: when raising AssertionError include meta file name
	with $SB trimmed if possible.

2024-09-23  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* meta2deps.py: replace assert() with raise AssertionError when we
	detect missing eXits, to ensure a meaningful message gets into
	log.

2024-09-21  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240921

	* FILES: add genfiles.mk

2024-09-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240920

	* cython.mk: Get PYTHON_VERSION from PYTHON

2024-08-31  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* subdir.mk: add ${SUBDIR.yes} - allows for SUBDIR.${MK_*}
	  and handle subdir with '-' in its name.

2024-08-23  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240820

	* links.mk: Allow a filter to be applied to SYMLINKS etc.
	It is up to [BUILD_][SYM]LINKS_FILTER to do something sane.
	Also only claim we are making a symlink if the value changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20240309</title>
<updated>2024-03-14T02:14:41+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2024-03-14T02:14:41+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a6b892e1c76ab1187879ac5f2395a91ef73fccee'/>
<id>a6b892e1c76ab1187879ac5f2395a91ef73fccee</id>
<content type='text'>
Intersting/relevant changes since bmake-20240108

ChangeLog since bmake-20240108

2024-03-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* boot-strap: tests can take a long time; use a cookie to
	skip them if bmake has not been updated since tests last
	ran successfully.

	* Makefile: Cygwin handles MANTARGET man

	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin

2024-03-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240309
	Merge with NetBSD make, pick up
	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
	this allows a .ERROR target to ignore the case of
	.ERROR_EXIT==6 which just means that the build actually
	failed somewhere else.

2024-03-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240303

	* var.c: on IRIX we need both inttypes.h and stdint.h

2024-03-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240301
	Merge with NetBSD make, pick up
	o export variables with value from target scope
	when appropriate.

2024-02-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240212
	Merge with NetBSD make, pick up
	o remove unneeded conditional-compilation toggles
	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
	GMAKEEXPORT NO_REGEX and SUNSHCMD

	* configure.in: add check for regex.h

	* var.c: replace use of NO_REGEX with HAVE_REGEX_H

2024-02-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240204
	Merge with NetBSD make, pick up
	o var.c: fix some lint (-dL) mode parsing issues

2024-02-02  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION: (_MAKE_VERSION): 20240202
	Merge with NetBSD make, pick up
	o make.1: note that arg to :D and :U can be empty
	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no

mk/ChangeLog since bmake-20240108

2024-03-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240309

	* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
	want to save the .ERROR_META_FILE

2024-02-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240220

	* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
	do not set .MAIN: dirdeps in sys.dirdeps.mk
	dirdeps-targets.mk will do that for top-level builds
	and init.mk will do it for others.
	This allows a Makefile which has no need of 'dirdeps' to
	set .MAIN for itself and "just work".

2024-02-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* bsd.*.mk: for makefiles that get a bsd. symlink,
	use _this in  multiple inclusion tags since .PARSEFILE will not
	DTRT when such a makefile is included directly by Makefile and
	automatically (without bsd. prefix).
	Since we cannot guarantee that our sys.mk will be used, we provide
	a default _this in each makefile that gets a bsd. prefix such that
	the value is the same regardless of bsd. prefix.

	* subdir.mk: drop the !target guard on $SUBDIR_TARGETS

2024-02-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240212

	* SPDX-License-Identifier: BSD-2-Clause
	Add SPDX-License-Identifier to inidicate that I consider
	my copyright on any of these makefiles equivalent to BSD-2-Clause

	* autoconf.mk: allow for configure.ac as currently recommended

	* subdir.mk: support @auto
	which is replaced with each subdir that
	has a [Mm]akefile.

	* subdir.mk: include local.subdir.mk if it exists.

	* subdir.mk: rework to handle .WAIT

2024-02-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.

2024-02-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* prog.mk: treat empty SRCS the same as undefined

2024-02-02  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* Avoid undefined errors in lint (-dL) mode

	* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)

2024-01-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240128

	* FILES: add ccm.dep.mk for C++ modules
	add suffixes.mk for common location for generic SUFFIX rules.

	* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
	replace OBJ_EXTENSIONS with OBJ_SUFFIXES

	* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
	and update style (spaces around = etc)

	* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
	setting OBJS

	* meta2deps.py: handle multiple ./ embedded in path better.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intersting/relevant changes since bmake-20240108

ChangeLog since bmake-20240108

2024-03-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* boot-strap: tests can take a long time; use a cookie to
	skip them if bmake has not been updated since tests last
	ran successfully.

	* Makefile: Cygwin handles MANTARGET man

	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin

2024-03-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240309
	Merge with NetBSD make, pick up
	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
	this allows a .ERROR target to ignore the case of
	.ERROR_EXIT==6 which just means that the build actually
	failed somewhere else.

2024-03-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240303

	* var.c: on IRIX we need both inttypes.h and stdint.h

2024-03-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240301
	Merge with NetBSD make, pick up
	o export variables with value from target scope
	when appropriate.

2024-02-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240212
	Merge with NetBSD make, pick up
	o remove unneeded conditional-compilation toggles
	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
	GMAKEEXPORT NO_REGEX and SUNSHCMD

	* configure.in: add check for regex.h

	* var.c: replace use of NO_REGEX with HAVE_REGEX_H

2024-02-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240204
	Merge with NetBSD make, pick up
	o var.c: fix some lint (-dL) mode parsing issues

2024-02-02  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION: (_MAKE_VERSION): 20240202
	Merge with NetBSD make, pick up
	o make.1: note that arg to :D and :U can be empty
	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no

mk/ChangeLog since bmake-20240108

2024-03-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240309

	* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
	want to save the .ERROR_META_FILE

2024-02-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240220

	* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
	do not set .MAIN: dirdeps in sys.dirdeps.mk
	dirdeps-targets.mk will do that for top-level builds
	and init.mk will do it for others.
	This allows a Makefile which has no need of 'dirdeps' to
	set .MAIN for itself and "just work".

2024-02-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* bsd.*.mk: for makefiles that get a bsd. symlink,
	use _this in  multiple inclusion tags since .PARSEFILE will not
	DTRT when such a makefile is included directly by Makefile and
	automatically (without bsd. prefix).
	Since we cannot guarantee that our sys.mk will be used, we provide
	a default _this in each makefile that gets a bsd. prefix such that
	the value is the same regardless of bsd. prefix.

	* subdir.mk: drop the !target guard on $SUBDIR_TARGETS

2024-02-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240212

	* SPDX-License-Identifier: BSD-2-Clause
	Add SPDX-License-Identifier to inidicate that I consider
	my copyright on any of these makefiles equivalent to BSD-2-Clause

	* autoconf.mk: allow for configure.ac as currently recommended

	* subdir.mk: support @auto
	which is replaced with each subdir that
	has a [Mm]akefile.

	* subdir.mk: include local.subdir.mk if it exists.

	* subdir.mk: rework to handle .WAIT

2024-02-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.

2024-02-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* prog.mk: treat empty SRCS the same as undefined

2024-02-02  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* Avoid undefined errors in lint (-dL) mode

	* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)

2024-01-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240128

	* FILES: add ccm.dep.mk for C++ modules
	add suffixes.mk for common location for generic SUFFIX rules.

	* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
	replace OBJ_EXTENSIONS with OBJ_SUFFIXES

	* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
	and update style (spaces around = etc)

	* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
	setting OBJS

	* meta2deps.py: handle multiple ./ embedded in path better.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20240108</title>
<updated>2024-01-14T01:16:25+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2024-01-14T01:16:25+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=7a05a7153af649605e1ebde33aac94a14ed2a4cd'/>
<id>7a05a7153af649605e1ebde33aac94a14ed2a4cd</id>
<content type='text'>
Interesting/relevant changes since bmake-20230909

	* VERSION (_MAKE_VERSION): 20240106
	Merge with NetBSD make, pick up
	o fix duplicate progname when reporting an unknown target
	o unit tests for Cmd_Exec using temp file

	* VERSION (_MAKE_VERSION): 20240105
	Merge with NetBSD make, pick up
	o main.c: Cmd_Exec write cmd to a file if too big
	avoid blowing commandline/env limits

	* VERSION (_MAKE_VERSION): 20240101
	o util.c: flesh out more of strftime
	* configure.in: add --with-bmake-strftime
	it is not a full implementation but enough to pass all
	the unit-tests.
	* parse.c: LoadFile do not append \n to empty buffer.

	* VERSION (_MAKE_VERSION): 20231230
	Merge with NetBSD make, pick up
	o simplify memory allocation for string buffers
	o fix declared types of list nodes
	o suff.c: clean up freeing of suffixes
	o var.c: simplify debug message for the ':@var@...@' modifier
	clean up variable handling

	* VERSION (_MAKE_VERSION): 20231226
	Merge with NetBSD make, pick up
	o compat.c: ensure make's output is correctly ordered with that of
	the target when not going to a tty
	o main.c: check for shellPath whether to call Shell_Init()

	* VERSION (_MAKE_VERSION): 20231224
	Merge with NetBSD make, pick up
	o compat.c: check for shellPath whether to call Shell_Init()
	tweak the unit test to detect the bug thus fixed.
	o make.1: do not claim .SHELL is only used by jobs mode.

	* VERSION (_MAKE_VERSION): 20231220
	Merge with NetBSD make, pick up
	o str.c: speed up pattern matching in the ':M' modifier
	o var.c: fix confusing debug logging when deleting a variable
	use consistent debug messages style when ignoring variables

	* VERSION (_MAKE_VERSION): 20231210
	Merge with NetBSD make, pick up
	o var.c: avoid segfault on empty :C match expression
	explain in debug log why variable assignment is ignored.

	* VERSION (_MAKE_VERSION): 20231208
	Merge with NetBSD make, pick up
	o var.c: ensure fromCmd is set correctly for variables set on
	command line.

	* VERSION (_MAKE_VERSION): 20231124
	Merge with NetBSD make, pick up
	o main.c: cleanup processing of -j
	fix lint warning about strchr
	o var.c: more accurate error message for invalid ':mtime' argument
	cleanup :[...] modifier
	avoid reading beyond substring when comparing
	o unit-tests cover all cases of :mtime, test and explain exporting
	of variables
	o cleanup comments

	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
	$FreeBSD$ tag, so avoid adding it.

mk/ChangeLog since bmake-20230909

	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
	limits on command line length, so skip export of lists to env.

	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
	point.  This keeps JOB_MAX numeric incase another makefile does
	comparisons.

	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Interesting/relevant changes since bmake-20230909

	* VERSION (_MAKE_VERSION): 20240106
	Merge with NetBSD make, pick up
	o fix duplicate progname when reporting an unknown target
	o unit tests for Cmd_Exec using temp file

	* VERSION (_MAKE_VERSION): 20240105
	Merge with NetBSD make, pick up
	o main.c: Cmd_Exec write cmd to a file if too big
	avoid blowing commandline/env limits

	* VERSION (_MAKE_VERSION): 20240101
	o util.c: flesh out more of strftime
	* configure.in: add --with-bmake-strftime
	it is not a full implementation but enough to pass all
	the unit-tests.
	* parse.c: LoadFile do not append \n to empty buffer.

	* VERSION (_MAKE_VERSION): 20231230
	Merge with NetBSD make, pick up
	o simplify memory allocation for string buffers
	o fix declared types of list nodes
	o suff.c: clean up freeing of suffixes
	o var.c: simplify debug message for the ':@var@...@' modifier
	clean up variable handling

	* VERSION (_MAKE_VERSION): 20231226
	Merge with NetBSD make, pick up
	o compat.c: ensure make's output is correctly ordered with that of
	the target when not going to a tty
	o main.c: check for shellPath whether to call Shell_Init()

	* VERSION (_MAKE_VERSION): 20231224
	Merge with NetBSD make, pick up
	o compat.c: check for shellPath whether to call Shell_Init()
	tweak the unit test to detect the bug thus fixed.
	o make.1: do not claim .SHELL is only used by jobs mode.

	* VERSION (_MAKE_VERSION): 20231220
	Merge with NetBSD make, pick up
	o str.c: speed up pattern matching in the ':M' modifier
	o var.c: fix confusing debug logging when deleting a variable
	use consistent debug messages style when ignoring variables

	* VERSION (_MAKE_VERSION): 20231210
	Merge with NetBSD make, pick up
	o var.c: avoid segfault on empty :C match expression
	explain in debug log why variable assignment is ignored.

	* VERSION (_MAKE_VERSION): 20231208
	Merge with NetBSD make, pick up
	o var.c: ensure fromCmd is set correctly for variables set on
	command line.

	* VERSION (_MAKE_VERSION): 20231124
	Merge with NetBSD make, pick up
	o main.c: cleanup processing of -j
	fix lint warning about strchr
	o var.c: more accurate error message for invalid ':mtime' argument
	cleanup :[...] modifier
	avoid reading beyond substring when comparing
	o unit-tests cover all cases of :mtime, test and explain exporting
	of variables
	o cleanup comments

	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
	$FreeBSD$ tag, so avoid adding it.

mk/ChangeLog since bmake-20230909

	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
	limits on command line length, so skip export of lists to env.

	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
	point.  This keeps JOB_MAX numeric incase another makefile does
	comparisons.

	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20230909</title>
<updated>2023-09-17T17:03:11+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2023-09-17T17:03:11+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=1012cf15f75d1e9048779abd07270a37cdba590a'/>
<id>1012cf15f75d1e9048779abd07270a37cdba590a</id>
<content type='text'>
Update import.sh to generate below

ChangeLog since bmake-20230622

2023-09-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230909
	Merge with NetBSD make, pick up
	o main.c: allow -j to compute a multiple of ncpu
	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
	_SC_NPROCESSORS_ONLN
	.MAKE.JOBS.C will be "yes" if -jC is supported

2023-08-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230820
	Merge with NetBSD make, pick up
	o make.1: note that :localtime is better for %s
	o parse.c: improve error messages for invalid input.
	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
	correct result, it is still better to use %s:L:localtime.

2023-08-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230818
	Merge with NetBSD make, pick up
	o meta.c: meta_ignore - check raw path against metaIgnorePaths
	to potentially skip call to realpath.
	o var.c: be strict when parsing the argument of the ':mtime' modifier
	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
	should be used to get an equivalent value to time(3).

2023-08-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230816
	Merge with NetBSD make, pick up
	o cond.c: clean up multiple-inclusion guards

2023-07-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
	if configure cannot work out how to control TZ.
	Remove varmod-localtime from BROKEN_TESTS for IRIX*

2023-07-24  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230723

	* configure.in: fix the test for wether TZ=Europe/Berlin works.
	Depending on the time of year, if run between 22:00 and 00:00 UTC
	the check in configure would fail incorrectly.
	Take the day into account as well.

2023-07-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230711
	Merge with NetBSD make, pick up
	o make.1: clean up wording, clarify scope of '!' in conditions

2023-07-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* make-bootstrap.sh.in: set prefix
	If configure is run using ksh we get unexpanded ${prefix} in
	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
	correct result.

2023-07-13  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230711
	bump version for IRIX tweaks

	* make.h: undef OP_NONE if defined

	* unit-tests/Makefile: set BROKEN_TESTS for IRIX

	* configure.in: override INSTALL on IRIX

2023-06-27  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* boot-strap op_test: ensure we set TEST_MAKE as we want it.

mk/ChangeLog since bmake-20230622

2023-09-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* jobs.mk (JOB_MAX): use -jC if we can
	we actually use JOB_MAX_C which defaults to 1.33C

2023-08-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* now_utc: %s only works with :localtime

2023-07-14  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-sh: ignore -c as claimed and only insist on
	a directory for destination when more than one file to copy.

	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)

2023-07-13  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20230711

	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
	install(1)

	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
	set INSTALL to install-sh rather than pathname that may not exist
	(yet).

2023-07-07  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
	normally this is empty - for the default target, but there are
	use-cases where we might set it to something else.

2023-07-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20230704

	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
	when DEBUG_DIRDEPS is in effect.
	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
	can greatly improve readability.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update import.sh to generate below

ChangeLog since bmake-20230622

2023-09-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230909
	Merge with NetBSD make, pick up
	o main.c: allow -j to compute a multiple of ncpu
	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
	_SC_NPROCESSORS_ONLN
	.MAKE.JOBS.C will be "yes" if -jC is supported

2023-08-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230820
	Merge with NetBSD make, pick up
	o make.1: note that :localtime is better for %s
	o parse.c: improve error messages for invalid input.
	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
	correct result, it is still better to use %s:L:localtime.

2023-08-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230818
	Merge with NetBSD make, pick up
	o meta.c: meta_ignore - check raw path against metaIgnorePaths
	to potentially skip call to realpath.
	o var.c: be strict when parsing the argument of the ':mtime' modifier
	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
	should be used to get an equivalent value to time(3).

2023-08-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230816
	Merge with NetBSD make, pick up
	o cond.c: clean up multiple-inclusion guards

2023-07-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
	if configure cannot work out how to control TZ.
	Remove varmod-localtime from BROKEN_TESTS for IRIX*

2023-07-24  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230723

	* configure.in: fix the test for wether TZ=Europe/Berlin works.
	Depending on the time of year, if run between 22:00 and 00:00 UTC
	the check in configure would fail incorrectly.
	Take the day into account as well.

2023-07-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230711
	Merge with NetBSD make, pick up
	o make.1: clean up wording, clarify scope of '!' in conditions

2023-07-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* make-bootstrap.sh.in: set prefix
	If configure is run using ksh we get unexpanded ${prefix} in
	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
	correct result.

2023-07-13  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20230711
	bump version for IRIX tweaks

	* make.h: undef OP_NONE if defined

	* unit-tests/Makefile: set BROKEN_TESTS for IRIX

	* configure.in: override INSTALL on IRIX

2023-06-27  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* boot-strap op_test: ensure we set TEST_MAKE as we want it.

mk/ChangeLog since bmake-20230622

2023-09-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* jobs.mk (JOB_MAX): use -jC if we can
	we actually use JOB_MAX_C which defaults to 1.33C

2023-08-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* now_utc: %s only works with :localtime

2023-07-14  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-sh: ignore -c as claimed and only insist on
	a directory for destination when more than one file to copy.

	* sys.mk: when looking for SYS_OS_MK try ${.MAKE.OS} and
	${.MAKE.OS:S,64,,} early (so we find sys/IRIX.mk for IRIX64)

2023-07-13  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20230711

	* sys.mk: set SYS_MK and INSTALL_SH for systems with incompatible
	install(1)

	* sys/IRIX.mk:  when setting ROOT_GROUP only match the first :0:
	set INSTALL to install-sh rather than pathname that may not exist
	(yet).

2023-07-07  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: pass DIRDEP_TARGETS to DIRDEP_MAKE
	normally this is empty - for the default target, but there are
	use-cases where we might set it to something else.

2023-07-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20230704

	* dirdeps.mk: apply DEBUG_DIRDEPS_LIST_FILTER to lists we output
	when DEBUG_DIRDEPS is in effect.
	Eg. DEBUG_DIRDEPS_LIST_FILTER=ts\n
	can greatly improve readability.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20230414</title>
<updated>2023-04-24T23:44:30+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2023-04-24T23:44:30+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=51d8a8b4ac1dd7265e891149e470a803906de2a7'/>
<id>51d8a8b4ac1dd7265e891149e470a803906de2a7</id>
<content type='text'>
Relevant/interesting changes:

	* make.1: document seemingly unexplained Error code 6.
	o compat.c: CompatDeleteTarget skip .PHONY targets to be
	consistent with JobDeleteTarget.
	o job.c: fix memory leak in handling sysv :from=to modifiers
	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
	o var.c: fix parsing of unevaluated subexpressions with
	unbalanced '{}'
	o cond.c: reduce complexity of evaluating expressions
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant/interesting changes:

	* make.1: document seemingly unexplained Error code 6.
	o compat.c: CompatDeleteTarget skip .PHONY targets to be
	consistent with JobDeleteTarget.
	o job.c: fix memory leak in handling sysv :from=to modifiers
	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
	o var.c: fix parsing of unevaluated subexpressions with
	unbalanced '{}'
	o cond.c: reduce complexity of evaluating expressions
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20211212</title>
<updated>2021-12-18T07:27:22+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2021-12-18T07:27:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2935fe8237c83c1dcb113dd5335733263e68e6fd'/>
<id>2935fe8237c83c1dcb113dd5335733263e68e6fd</id>
<content type='text'>
Relevant changes see ChangeLog for details:

Add support for ${.SUFFIXES} as read-only variable.

Fix memory leak in cond.c

Punt on write errors - ENOSPC etc.

Lots of code refactoring, rework to reduce memory allocations.

More unit-tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant changes see ChangeLog for details:

Add support for ${.SUFFIXES} as read-only variable.

Fix memory leak in cond.c

Punt on write errors - ENOSPC etc.

Lots of code refactoring, rework to reduce memory allocations.

More unit-tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20200902</title>
<updated>2020-09-05T16:11:04+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2020-09-05T16:11:04+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6bbc783f48498b808e19db4441299dc7d85a278b'/>
<id>6bbc783f48498b808e19db4441299dc7d85a278b</id>
<content type='text'>
Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20200517</title>
<updated>2020-05-20T19:34:48+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2020-05-20T19:34:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b897d72a5adf5cfad8c79f90e155bae99bdde48c'/>
<id>b897d72a5adf5cfad8c79f90e155bae99bdde48c</id>
<content type='text'>
Changes since 20181221 are mostly portability related
hence the large gap in versions imported.

There are however some bug fixes, and a rework of filemon handling.
In NetBSD make/filemon/filemon_ktrace.c allows use of fktrace
and elimination of filemon(4) which has not had the TLC it needs.

FreeBSD filemon(4) is in much better shape, so bmake/filemon/filemon_dev.c
allows use of that, with a bit less overhead than the ktrace model.

Summary of changes from ChangeLog

	o str.c: empty string does not match % pattern
	  plus unit-test changes
	o var.c: import handling of old sysV style modifier using '%'
	o str.c: refactor brk_string
	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
	  a blank command is perfectly valid.
	o meta.c: meta_oodate, check for corrupted meta file
	  earlier and more often.
	* meta.c: meta_compat_parent check for USE_FILEMON
	  patch from Soeren Tempel
	o meta.c: fix compat mode, need to call meta_job_output()
	o job.c: extra fds for meta mode not needed if using filemon_dev
	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
	  returns FALSE.
	o filemon/filemon_{dev,ktrace}.c: allow selection of
	  filemon implementation.  filemon_dev.c uses the kernel module
	  while filemon_ktrace.c leverages the fktrace api available in
	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
	  adding support for other tracing mechanisms such as strace on
	  Linux.
	o meta.c: when target is out-of-date per normal make rules
	  record value of .OODATE in meta file.
	o parse.c: don't pass NULL to realpath(3)
	  some versions cannot handle it.
	o parse.c: ParseDoDependency: free paths rather than assert

plus more unit-tests
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Changes since 20181221 are mostly portability related
hence the large gap in versions imported.

There are however some bug fixes, and a rework of filemon handling.
In NetBSD make/filemon/filemon_ktrace.c allows use of fktrace
and elimination of filemon(4) which has not had the TLC it needs.

FreeBSD filemon(4) is in much better shape, so bmake/filemon/filemon_dev.c
allows use of that, with a bit less overhead than the ktrace model.

Summary of changes from ChangeLog

	o str.c: empty string does not match % pattern
	  plus unit-test changes
	o var.c: import handling of old sysV style modifier using '%'
	o str.c: refactor brk_string
	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
	  a blank command is perfectly valid.
	o meta.c: meta_oodate, check for corrupted meta file
	  earlier and more often.
	* meta.c: meta_compat_parent check for USE_FILEMON
	  patch from Soeren Tempel
	o meta.c: fix compat mode, need to call meta_job_output()
	o job.c: extra fds for meta mode not needed if using filemon_dev
	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
	  returns FALSE.
	o filemon/filemon_{dev,ktrace}.c: allow selection of
	  filemon implementation.  filemon_dev.c uses the kernel module
	  while filemon_ktrace.c leverages the fktrace api available in
	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
	  adding support for other tracing mechanisms such as strace on
	  Linux.
	o meta.c: when target is out-of-date per normal make rules
	  record value of .OODATE in meta file.
	o parse.c: don't pass NULL to realpath(3)
	  some versions cannot handle it.
	o parse.c: ParseDoDependency: free paths rather than assert

plus more unit-tests
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20180222</title>
<updated>2018-03-01T23:45:44+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2018-03-01T23:45:44+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2358deb6549648fd9a27a65544f9944b312426c2'/>
<id>2358deb6549648fd9a27a65544f9944b312426c2</id>
<content type='text'>
From ChangeLog

* VERSION: 20180222
  Merge with NetBSD make, pick up
  o parse.c: avoid calling sysconf for every call to loadfile

* VERSION: 20180218
  Merge with NetBSD make, pick up
  o var.c: Var_Set handle NULL value anytime.

* VERSION: 20180212
  Merge with NetBSD make, pick up
  o parse.c: do not treat .info as warning with -W

* VERSION: 20171207
  Merge with NetBSD make, pick up
  o var.c: Var_Append use Var_Set if var not previously set
    so that VAR_CMD is handled correctly.
    Add a suitable unit-test.

* VERSION: 20171126

* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
  since AC_TRY_COMPILE puts input inside main()
  which upsets modern compilers.

* VERSION: 20171118
  Merge with NetBSD make, pick up
  o var.c: do not append to variable set on command line
    add unit-test to catch this.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From ChangeLog

* VERSION: 20180222
  Merge with NetBSD make, pick up
  o parse.c: avoid calling sysconf for every call to loadfile

* VERSION: 20180218
  Merge with NetBSD make, pick up
  o var.c: Var_Set handle NULL value anytime.

* VERSION: 20180212
  Merge with NetBSD make, pick up
  o parse.c: do not treat .info as warning with -W

* VERSION: 20171207
  Merge with NetBSD make, pick up
  o var.c: Var_Append use Var_Set if var not previously set
    so that VAR_CMD is handled correctly.
    Add a suitable unit-test.

* VERSION: 20171126

* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
  since AC_TRY_COMPILE puts input inside main()
  which upsets modern compilers.

* VERSION: 20171118
  Merge with NetBSD make, pick up
  o var.c: do not append to variable set on command line
    add unit-test to catch this.
</pre>
</div>
</content>
</entry>
</feed>
