<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/unit-tests/parse.mk, branch vendor/NetBSD/bmake/20250707</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Import bmake-20250707</title>
<updated>2025-07-19T17:08:57+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2025-07-19T17:08:57+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3d772e596c1acf76f555c1f51fd8d834e56b0c35'/>
<id>3d772e596c1acf76f555c1f51fd8d834e56b0c35</id>
<content type='text'>
Intersting/relevant changes since bmake-20250618

ChangeLog since bmake-20250618

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

	* VERSION (_MAKE_VERSION): 20250707
	Merge with NetBSD make, pick up
	o cond.c: improve debug log message for 'exists' function.
	complain about unfinished escape sequences or string literals.

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

	* VERSION (_MAKE_VERSION): 20250704
	Merge with NetBSD make, pick up
	o make.1: add a DIAGNOSTICS section for make to reference.
	o main.c: simplify the warning for invalid -J by refering to
	manual page.

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

	* VERSION (_MAKE_VERSION): 20250630
	Merge with NetBSD make, pick up
	o consistently use double quotes in error messages
	o cond.c: if a condition is erroneous, skip the whole .if/.endif
	o make_malloc.c: in cleanup mode, initialize freshly allocated memory
	o str.c: error out on an ":M" modifier whose pattern ends with
	backslash
	o var.c: fix parsing of modifier parts for :gmtime and :localtime
	add POSIX $^ support

mk/ChangeLog since bmake-20250618

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

	* prog.mk: .MADE is a special source not a target!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intersting/relevant changes since bmake-20250618

ChangeLog since bmake-20250618

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

	* VERSION (_MAKE_VERSION): 20250707
	Merge with NetBSD make, pick up
	o cond.c: improve debug log message for 'exists' function.
	complain about unfinished escape sequences or string literals.

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

	* VERSION (_MAKE_VERSION): 20250704
	Merge with NetBSD make, pick up
	o make.1: add a DIAGNOSTICS section for make to reference.
	o main.c: simplify the warning for invalid -J by refering to
	manual page.

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

	* VERSION (_MAKE_VERSION): 20250630
	Merge with NetBSD make, pick up
	o consistently use double quotes in error messages
	o cond.c: if a condition is erroneous, skip the whole .if/.endif
	o make_malloc.c: in cleanup mode, initialize freshly allocated memory
	o str.c: error out on an ":M" modifier whose pattern ends with
	backslash
	o var.c: fix parsing of modifier parts for :gmtime and :localtime
	add POSIX $^ support

mk/ChangeLog since bmake-20250618

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

	* prog.mk: .MADE is a special source not a target!
</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-20230622</title>
<updated>2023-06-27T20:29:43+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2023-06-27T20:29:43+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3e39ce563b9ba25883e5aa37d9799eda9e57c1e0'/>
<id>3e39ce563b9ba25883e5aa37d9799eda9e57c1e0</id>
<content type='text'>
Relevant/interesting changes:

	o optimize string matching for ':M' and ':N'
	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
	o allow guards to be targets as well as variables
	The guard targets may include variable references like
	__${.PARSEDIR:tA}/${.PARSEFILE}__
	o optimization for makefiles protected from multiple-inclusion
	skip even opening the file after first include.
	o var.c: do not allow delete of readOnly variable
	o parse.c: .break takes no args
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant/interesting changes:

	o optimize string matching for ':M' and ':N'
	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
	o allow guards to be targets as well as variables
	The guard targets may include variable references like
	__${.PARSEDIR:tA}/${.PARSEFILE}__
	o optimization for makefiles protected from multiple-inclusion
	skip even opening the file after first include.
	o var.c: do not allow delete of readOnly variable
	o parse.c: .break takes no args
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20230510</title>
<updated>2023-05-13T17:03:50+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2023-05-13T17:03:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=945078deae448e0a13c34b3393d836087719fb16'/>
<id>945078deae448e0a13c34b3393d836087719fb16</id>
<content type='text'>
Relevant/interesting changes:

	o parse.c: don't print null filename in stack traces
	o for.c: skip syntactically wrong .for loops
	o var.c: allow for :gmtime=${mtime}
	add :mtime[=timestamp] where timestamp is used if stat(2)
	fails, if :mtime=error stat(2) failure causes error.
	o make.1: fix documentation of .PREFIX to match reality and POSIX
	o unit-tests: improved var-scope-local
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant/interesting changes:

	o parse.c: don't print null filename in stack traces
	o for.c: skip syntactically wrong .for loops
	o var.c: allow for :gmtime=${mtime}
	add :mtime[=timestamp] where timestamp is used if stat(2)
	fails, if :mtime=error stat(2) failure causes error.
	o make.1: fix documentation of .PREFIX to match reality and POSIX
	o unit-tests: improved var-scope-local
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20220724</title>
<updated>2022-07-26T15:52:53+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2022-07-26T15:52:53+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=308a28d6cd2e87028e535eabccb89a9dc2fd9515'/>
<id>308a28d6cd2e87028e535eabccb89a9dc2fd9515</id>
<content type='text'>
Relevant/interesting changes:

	o parse.c: fix out-of-bounds read when parsing an invalid line
        https://bugs.freebsd.org/265119
	fix memory leak in wildcard targets and sources
	fix off-by-one error in buffer for .WAIT nodes
	o allow to randomize build order of targets
	.MAKE.MODE += randomize-targets can help uncover dependency bugs
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant/interesting changes:

	o parse.c: fix out-of-bounds read when parsing an invalid line
        https://bugs.freebsd.org/265119
	fix memory leak in wildcard targets and sources
	fix off-by-one error in buffer for .WAIT nodes
	o allow to randomize build order of targets
	.MAKE.MODE += randomize-targets can help uncover dependency bugs
</pre>
</div>
</content>
</entry>
<entry>
<title>Import bmake-20220204</title>
<updated>2022-02-05T20:03:50+00:00</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2022-02-05T20:03:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=cdde9e894dee2074ef0dd12ddc171e5d3f1513e3'/>
<id>cdde9e894dee2074ef0dd12ddc171e5d3f1513e3</id>
<content type='text'>
Features of interest:

Allow setting target local variables (similar to gmake)

In META_MODE .MAKE.META.CMP_FILTER can be used for filtering commands
before comparion.

contrib/bmake/mk/cc-wrap.mk is an example of using these

See ChangeLog for the gory details.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Features of interest:

Allow setting target local variables (similar to gmake)

In META_MODE .MAKE.META.CMP_FILTER can be used for filtering commands
before comparion.

contrib/bmake/mk/cc-wrap.mk is an example of using these

See ChangeLog for the gory details.
</pre>
</div>
</content>
</entry>
</feed>
