xref: /freebsd/contrib/bmake/ChangeLog (revision 70bc3f4331a1b6e7045ae5326cbe03428503b612)
12023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20230510
4	Merge with NetBSD make, pick up
5	o parse.c: don't print null filename in stack traces
6	o var.c: :mtime operate on each word in variable value
7
82023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
9
10	* VERSION (_MAKE_VERSION): 20230509
11	Merge with NetBSD make, pick up
12	o for.c: skip syntactically wrong .for loops
13	o var.c: allow for :gmtime=${mtime}
14	add :mtime[=timestamp] where timestamp is used if stat(2)
15	fails, if :mtime=error stat(2) failure causes error.
16
172023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
18
19	* VERSION (_MAKE_VERSION): 20230504
20	Merge with NetBSD make, pick up
21	o compat.c: fix compile on NetBSD 7.2
22	o make.1: fix documentation of .PREFIX to match reality and POSIX
23	o unit-tests: improved var-scope-local
24
252023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
26
27	* VERSION (_MAKE_VERSION): 20230414
28	Merge with NetBSD make, pick up
29	o minor cleanup
30
312023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
32
33	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
34	unlimited results in an insane number (0x7fffffffffffffff).
35	If BMAKE_NOFILE_MAX is defined, use that instead.
36
372023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
38
39	* VERSION (_MAKE_VERSION): 20230321
40	Merge with NetBSD make, pick up
41	* make.1: document seemingly unexplained Error code 6.
42
432023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
44
45	* VERSION (_MAKE_VERSION): 20230317
46	Merge with NetBSD make, pick up
47	o compat.c: CompatDeleteTarget skip .PHONY targets to be
48	consistent with JobDeleteTarget.
49	o job.c: fix memory leak in handling sysv :from=to modifiers
50
512023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
52
53	* VERSION (_MAKE_VERSION): 20230303
54	Merge with NetBSD make, pick up
55	o several updated unit-tests
56
572023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
58
59	* VERSION (_MAKE_VERSION): 20230222
60	Merge with NetBSD make, pick up
61	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
62
632023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
64
65	* VERSION (_MAKE_VERSION): 20230218
66	Merge with NetBSD make, pick up
67	o var.c: fix parsing of unevaluated subexpressions with
68	unbalanced '{}'
69
702023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
71
72	* VERSION (_MAKE_VERSION): 20230215
73	Merge with NetBSD make, pick up
74	o inline macros for some variable names
75	o cond.c: reduce complexity of evaluating expressions
76
772023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
78
79	* VERSION (_MAKE_VERSION): 20230208
80	Merge with NetBSD make, pick up
81	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
82	when it has been used within conditional expressions
83
842023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
85
86	* VERSION (_MAKE_VERSION): 20230127
87
88	* install-sh: if making directories ensure umask is set
89	to match mode.
90
91	* Makefile: use DIRMODE for directories and
92	NONBINMODE for man pages and mk files
93
942023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
95
96	* VERSION (_MAKE_VERSION): 20230126
97	Merge with NetBSD make, pick up
98	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
99	should be read-only.
100
1012023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
102
103	* VERSION (_MAKE_VERSION): 20230123
104	Merge with NetBSD make, pick up
105	o .[NO]READONLY: for control of read-only variables
106	o .SYSPATH: for controlling the path searched for makefiles
107
1082023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
109
110	* VERSION (_MAKE_VERSION): 20230120
111	Merge with NetBSD make, pick up
112	o allow for white-space between command specifiers @+-
113	o add more details to warning 'Extra targets ignored'
114
1152023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
116
117	* machine.sh: leverage os.sh rather than duplicate
118	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
119	for that purpose for the past decade or so.
120	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
121
1222023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
123
124	* VERSION (_MAKE_VERSION): 20230101
125	Merge with NetBSD make, pick up
126	o cleanup comments, inline some LazyBuf_ methods
127	o unit-tests/ add/improve comments in tests
128	o make.1: sync list of built-in variables with reality
129	sort list of built-in variables
130	reduce indentation of the long list of variable names
131	use consistent markup for boolean flags
132	move description of .MAKE.MODE below the .MAKE.META block
133	clarify in which case an expression may omit braces
134
1352022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
136
137	* VERSION (_MAKE_VERSION): 20221024
138	Merge with NetBSD make, pick up
139	o change return type of unlink_file back to int
140
1412022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
142
143	* Makefile: Darwin and Linux can handle MANTARGET=man
144
1452022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
146
147	* VERSION (_MAKE_VERSION): 20220928
148	Merge with NetBSD make, pick up
149	o fix more ignored returns from snprintf
150	o compile with higher warnings
151
1522022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
153
154	* main.c meta.c: do not ignore return from snprintf
155
156	* meta.c strlcpy.c: we need prototype for strlcpy
157
158	* sigcompat.c: fix unused function warnings
159
1602022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
161
162	* VERSION (_MAKE_VERSION): 20220924
163	Merge with NetBSD make, pick up
164	o fix bug in .break reset of conditional depth
165	o overhaul and simplify tracking of conditional depth
166
1672022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
168
169	* VERSION (_MAKE_VERSION): 20220912
170	Merge with NetBSD make, pick up
171	o man page updates
172
1732022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
174
175	* VERSION (_MAKE_VERSION): 20220909
176	Merge with NetBSD make, pick up
177	o update unit-tests to handle deprecation of egrep
178	o cond.c: add more details to error message for numeric comparison
179
180	* configure.in: allow for deprecation of egrep
181
182	* Makefile: Linux can handle MANTARGET=man
183
1842022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
185
186	* VERSION (_MAKE_VERSION): 20220903
187	Merge with NetBSD make, pick up
188	o job.c: fix handling of null bytes in output
189
1902022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
191
192	* VERSION (_MAKE_VERSION): 20220902
193	Merge with NetBSD make, pick up
194	o Allow .break to terminate a .for loop early
195
1962022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
197
198	* VERSION (_MAKE_VERSION): 20220901
199	Merge with NetBSD make, pick up
200	o var.c: fix out-of-bounds errors when parsing
201
2022022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
203
204	* VERSION (_MAKE_VERSION): 20220824
205	Merge with NetBSD make, pick up
206	o var.c: revert change to modifier parsing that breaks
207	shell variable references within ':@var@body@'
208	o adjust unit-tests
209
2102022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
211
212	* VERSION (_MAKE_VERSION): 20220818
213	Merge with NetBSD make, pick up
214	o fix exit status for '-q' (since 1994)
215
2162022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
217
218	* VERSION (_MAKE_VERSION): 20220808
219	Merge with NetBSD make, pick up
220	o var.c: fix parsing of modifiers containing unbalanced subexpressions
221	extract parsing of ':D' and ':U' modifiers into separate function
222
2232022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
224
225	* VERSION (_MAKE_VERSION): 20220726
226
227	* Auto-create objdir for bmake/unit-tests if appropriate
228
2292022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
230
231	* VERSION (_MAKE_VERSION): 20220724
232	Merge with NetBSD make, pick up
233	o make.1: describe variable assignment and evaluation more precisely
234	o parse.c: fix out-of-bounds read when parsing an invalid line
235	o var.c: simplify return type of IsShortVarnameValid
236
2372022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
238
239	* VERSION (_MAKE_VERSION): 20220612
240	Merge with NetBSD make, pick up
241	o allow to randomize build order of targets
242	.MAKE.MODE += randomize-targets can help uncover dependency bugs
243	within a makefile.
244	o compat.c: rename Compat_Run to Compat_MakeAll
245	o make.c: inline MakeBuildParent
246	inline make_abort, improve error details
247	o parse.c: reorganize Parse_Error
248	fix memory leak in wildcard targets and sources
249	separate cases in HandleDependencyTargetMundane
250	extract HandleSingleDependencyTargetMundane
251	rename loadfile to LoadFile
252	split IncludeFile into separate functions
253	condense code for searching a file in the paths
254	fix off-by-one error in buffer for .WAIT nodes
255	o str.c: condense Str_Match
256	make code for string matching syntactically more consistent
257
2582022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
259
260	* VERSION (_MAKE_VERSION): 20220418
261	Merge with NetBSD make, pick up
262	o ignore '.POSIX:' if not in first non-comment line
263	of Makefile as specified by POSIX.
264	add unit-tests for above.
265	o meta.c: make it easier to find usage of identifiers
266	o targ.c: add .USEBEFORE to Targ_PrintType
267
2682022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
269
270	* VERSION (_MAKE_VERSION): 20220414
271
272	* unit-tests/Makefile: simplify checks for shells with
273	BROKEN_TESTS, this helps with other Linux distros that
274	use dash.
275
2762022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
277
278	* VERSION (_MAKE_VERSION): 20220330
279	Merge with NetBSD make, pick up
280	o var.c: fix spacing, and a typo in a test
281
2822022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
283
284	* VERSION (_MAKE_VERSION): 20220326
285	Merge with NetBSD make, pick up
286	o parse.c: try to include 'posix.mk' the first time
287	.POSIX: is encountered, to allow for beter POSIX compliance.
288	o var.c: make debug logs more readable
289	prefer 'long long' over 'long' on 32-bit C99 platforms
290	fix crash on .undef of an environment variable
291
2922022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
293
294	* VERSION (_MAKE_VERSION): 20220303
295	Merge with NetBSD make, pick up
296	o tell meta mode unit tests not to expect filemon
297	o cond.c: make debug logging for comparisons less technical
298	o lst.c: fix mem leak in Lst_Remove
299	o str.c: make code for string matching syntactically more consistent
300	o var.c: simplify ParseModifier_Match
301
3022022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
303
304	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
305
306	* VERSION (_MAKE_VERSION): 20220214
307	Merge with NetBSD make, pick up
308	o cond.c: simplify control flow in CondParser_Comparison
309	o job.c: fix echoing of command with '-' in silent target in jobs mode
310	o main.c: prefix the warning about read-only .OBJDIR with a colon
311	o parse.c: remove redundant conditions
312	o var.c: simplify control flow in ModifyWord_SysVSubst
313
3142022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
315
316	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
317	is any chance we have dash as .SHELL
318
319	* VERSION (_MAKE_VERSION): 20220208
320	Merge with NetBSD make, pick up
321	o more unit tests
322	o meta.c: use a variable to hold command line to be filtered
323	to avoid any side effects from content of command line.
324
3252022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
326
327	* VERSION (_MAKE_VERSION): 20220204
328	Merge with NetBSD make, pick up
329	o use unsigned consistently for line numbers, avoid the need for %z
330	o parse.c: do not step off end of input in Parse_IsVar
331	when checking for target local variable assignments
332
3332022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
334
335	* VERSION (_MAKE_VERSION): 20220202
336	Merge with NetBSD make, pick up
337	o remove redundant declaration of HashIter_Init
338	o make DEBUG0 simpler
339
3402022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
341
342	* cast gn->lineno to avoid %z
343
344	* VERSION (_MAKE_VERSION): 20220130
345	Merge with NetBSD make, pick up
346	o more unit tests
347	o make GNode lineno unsigned to please lint
348	o print location of recursive variable references in commands
349	o print "stack trace" (makefile includes) on fatal errors
350	o make.1: refine documentation for target local assignments
351
3522022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
353
354	* VERSION (_MAKE_VERSION): 20220128
355	Merge with NetBSD make, pick up
356	o inline functions called only once
357	o for.c: clean up AddEscape for building the body of a .for loop
358	o hash.c: merge duplicate code for finding an entry in a hash table
359	replace HashEntry_KeyEquals with strncmp
360	o make.1: document quirks of target local variable assignments.
361	o parse.c: cleanup white-space
362
3632022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
364
365	* VERSION (_MAKE_VERSION): 20220126
366	Merge with NetBSD make, pick up
367	o allow setting target local variables
368	o more unit tests
369	o add missing newline after "cannot continue" message
370	o meta.c: clean up eat_dots
371	o parse.c: fix filename in warning about duplicate script
372	o var.c: when expanding nested variables, check simple things first
373
3742022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
375
376	* VERSION (_MAKE_VERSION): 20220116
377	Merge with NetBSD make, pick up
378	o fix for unit-tests/varname-makeflags on non-BSD systems
379	o use Var_Exists rather than Var_Value where appropriate
380	o remove unnecessary functions for expanding variable names
381	o cond.c: inline EvalBare
382	o main.c: lint cleanup
383	o parse.c: condense code in Parse_IsVar
384	use islower for parsing directives (none have upper case)
385
3862022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
387
388	* VERSION (_MAKE_VERSION): 20220112
389	Merge with NetBSD make, pick up
390	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
391	comparion, rarely needed but useful when it is.
392
3932022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
394
395	* VERSION (_MAKE_VERSION): 20220110
396	Merge with NetBSD make, pick up
397	o inline Buf_Clear
398	o remove redundant braces
399	o rename and inline Targ_Precious
400	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
401	o for.c: clean up handling of .for loops
402	fix reported line numbers of continuation lines
403	add details about .for loop variables to stack traces
404	o job.c: reduce code for initializing error handling in shell
405	o main.c: in Cmd_Exec, return error message instead of format string
406	have as few statements as possible between va_start and va_end
407	add debug logging for capturing the output of external commands
408	o make.c: use consistent variable names for varargs
409	o make_malloc.c: remove duplicate code from bmake_strdup
410	o parse.c: add missing printflike annotations
411	remove redundant lines from stack traces
412	fix stack traces in -dp mode
413	reduce confusing code in ParseForLoop
414	fix line number in debug log after returning from a file
415	rename IFile and its fields to match their actual content
416	clean up ParseDependencySources
417	o var.c: shorten ApplyModifier_Assign
418	rename is_shell_metachar, fix character conversion warning
419	merge calls to ApplyModifier_Time
420	merge duplicate code for modifiers 'gmtime' and 'localtime'
421
4222022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
423
424	* parse.c: loadfile restore extra byte in buffer.
425
4262022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
427
428	* VERSION (_MAKE_VERSION): 20220101
429	Merge with NetBSD make, pick up
430	o more unit-tests
431	o remove unnecessary words from command line options in CmdOpts
432	o rename eunlink to unlink_file
433	o cond.c: make ParseWord in condition parser simpler
434	internally return false for irrelevant leaves in conditions
435	replace table for function lookup in conditions with simple code
436	merge duplicate types CondEvalResult and CondResult
437	o for.c: clean up handling of .for loops and .include directives
438	o main.c: constify cached_realpath
439	clean up Cmd_Exec
440	o parse.c: sync API documentation
441	fix error message when reading more than 1 GB from stdin
442	clean up parsing of makefiles
443	fix line number in error message about open conditionals
444	unexport types VarAssignOp and VarAssign
445	clean up function names
446	remove redundant parameters in dependency parsing functions
447	reduce scope of the list of wildcard target names
448	extract OP_NOTARGET into separate function
449	clean up variable names for parsing dependency lines
450	make debug logging a bit more human-friendly
451	o var.c: condense code in ApplyModifier_Assign
452
4532021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
454
455	* VERSION (_MAKE_VERSION): 20211221
456	Merge with NetBSD make, pick up
457	o more unit-tests
458	o style cleanup
459	o in CLEANUP mode, free interned strings at the very end
460	o fix memory leak for filenames in .for loops
461	o buf.c: avoid memory leak
462	o cond.c: condense CondParser_ComparisonOp
463	o hash.c: change return type of HashTable_Set to void
464	o job.c: change return type of Compat_RunCommand from int to bool
465	o main.c: remove bmake_free
466	o parse.c: condense repetetive code in ParseDirective
467	remove dead code for handling traditional include directives
468	clean up parsing of variable assignments
469	remove unreachable code for parsing the dependency operator
470	clean up loading of files
471	fix memory leak in IncludeFile
472	o var.c: fix memory leak when parsing a variable name
473	fix memory leak from ${.SUFFIXES}
474	reduce memory allocation in modifier ':?' and ':C'
475	condense RegexReplace for the modifier ':C' and avoid strlen
476	merge duplicate code for memory handling in Var_Parse
477	distinguish between short-lived and environment variables
478	rename VarFreeEnv to VarFreeShortLived
479
4802021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
481
482	* cond.c: fix mem leak in CondParser_Leaf
483
4842021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
485
486	* VERSION (_MAKE_VERSION): 20211212
487	Merge with NetBSD make, pick up
488	o rename Parse_SetInput to Parse_PushInput
489	o remove remove period from end of error messages and warnings
490	to be more consistent
491	o arch.c: use simpler memory management for parsing archive members
492	o cond.c: rework and reduce recursion
493	o for.c: rename some functions to better reflect purpose
494	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
495	o var.c: in parse errors, mark whitespace more clearly
496	inline ParseEmptyArg into CondParser_FuncCallEmpty
497	minimize calls to LazyBuf_Get in ParseVarnameLong
498	treat .SUFFIXES as a read-only variable
499
5002021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
501
502	* VERSION (_MAKE_VERSION): 20211207
503	Merge with NetBSD make, pick up
504	o inline HashIter_Init
505	o parse.c: inline common subexpression in ParseRawLine
506	o var.c: merge branches for modifiers ':D' and ':U'
507	extract common code into Expr_Words
508	extract common code into Expr_Str
509	move low-level implementation details out of Var_Parse
510
5112021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
512
513	* VERSION (_MAKE_VERSION): 20211206
514	Merge with NetBSD make, pick up
515	o add unit-tests/varmod-loop-delete
516	o for.c: inline Str_Words - reduce memory allocation
517	o parse.c: do not try to expand fixed variable names
518	only allocate the name of an included file if necessary
519	clean up ParseInclude
520	o var.c: fix use-after-free in modifier ':@'
521	save a memory allocation in each modifier ':O' and ':u'
522	save a memory allocation in the modifier ':[...]'
523	in UnexportVars, replace Str_Words with Substring_Words to
524	reduce allocations and copying.
525
5262021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
527
528	* VERSION (_MAKE_VERSION): 20211204
529	Merge with NetBSD make, pick up
530	o flesh out a number of tests
531	o replace enums with bitfields, this simplifies a lot of code.
532	o var.c: refactor ParseModifierPartSubst
533
5342021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
535
536	* VERSION (_MAKE_VERSION): 20211024
537	Merge with NetBSD make, pick up
538	o Punt on write errors - ENOSPC etc.
539
5402021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
541
542	* configure.in: use_defshell, set both DEFSHELL_INDEX
543	and defshell_path if appropriate.
544	This makes it easier to use say the KSH specification with
545	and alternate path for the shell.
546
547	* configure.in compat.c: for SCO we need to force UseShell
548
549	* configure.in: SCO /bin/sh is not usable, provide a list of
550	alternatives for use as .SHELL.
551	We still have to mark some tests as broken, plus more if we end up
552	with ksh as .SHELL.
553	Issue a warning about skipped tests.
554
555	* boot-strap: leave TOOL_DIFF to configure
556
557	* configure.in: on SCO native cc is not usable,
558	gcc is to be found in /usr/gnu/bin
559	and while ancient is at least able to compile bmake.
560	Thus we add /usr/gnu/bin to PATH if it exists, and later
561	check if $CC would have been found via $PATH.
562	If not we set CC to the full path of $CC.
563	Also gnu diff is known to support -u, so if it exists use it.
564
565	* configure.in: move getopt to AC_REPLACE_FUNCS
566	also add AC_C_INLINE - in an attempt to compile using
567	native cc on SCO.
568
569	* configure.in: check for stresep as well as strsep, since we
570	define the later to the former if necessary, and if we have to
571	provide stresep we also need to provide a prototype.
572
573	* configure.in: we no longer need to worry about
574	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
575
576	* make.h: make sure we have __RCSID
577
578	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
579	can control it.
580
5812021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
582
583	* VERSION: 20211020
584	Merge with NetBSD make, pick up
585	o confirm sync of unit-tests
586
5872021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
588
589	* configure.in: check if timezone Europe/Berlin is supported
590	if not try UTC-1
591	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
592	symlink unit-tests -> ../unit-tests/obj so that
593	unit-tests/Makefile.config is put in the right place.
594	* refine filtering of .OBJDIR in unit-tests
595
5962021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
597
598	* Fix unit-tests on Minix 3.2.0
599	o job.c: do not punt if read of token pipe fails for EAGAIN.
600	On Minix at least, we are not ready to read the childExitJob pipe
601	when poll says we are.
602	There should actually be no reason for this pipe to be
603	non-blocking, but while that works fine on {Net,Free}BSD it
604	breaks another test case on Minix.
605	o unit-tests/Makefile: deal with variants of error messages
606	  and use of obj as .OBJDIR
607
6082021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
609
610	* configure.in: add sigaction to AC_REPLACE_FUNCS
611	we also need to check for sigaddset etc just for the benefit of
612	sigact.c
613
614	* Add sigact.c as sigaction.c so this "just works".
615	This should have been done back when bmake_signal started using
616	sigaction (I only just noticed that sigact.c wasn't here ;-)
617	Note: I no longer have access to any system where this would matter.
618
6192021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
620
621	* VERSION (_MAKE_VERSION): 20211011
622
623	* Makefile: cleanup a little
624
625	* configure.in: check for sigsetmask
626
6272021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
628
629	* VERSION (_MAKE_VERSION): 20211001
630	Merge with NetBSD make, pick up
631	o reduce locations reducing text size
632	o remove unnecessary const
633	o cond.c: fix lint warning on i386
634	do not allow unquoted 'left == right' after modifier ':?'
635	o hash.c: fix build for DEBUG_HASH_LOOKUP
636	o var.c: fix memory leak in error case of the ':?' modifier
637
6382021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
639
640	* VERSION (_MAKE_VERSION): 20210911
641	Merge with NetBSD make, pick up
642	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
643
6442021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
645
646	* VERSION (_MAKE_VERSION): 20210906
647	Merge with NetBSD make, pick up
648	o more unit tests
649	o lint cleanup
650	o rename some functions to better fit purpose
651	o for.c: cleanup - remove unnecessary optimization
652	  fix embedded newlines
653	o parse.c: correct case for CVS/RCS
654
6552021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
656
657	* VERSION (_MAKE_VERSION): 20210808
658	Merge with NetBSD make, pick up
659	o var.c: remove redundant initialization in ApplyModifier_Order
660
661	* mk/options.mk: issue warning for incorrect usage
662
6632021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
664
665	* var.c: use long for :On if we don't have a 64bit int type
666
667	* VERSION (_MAKE_VERSION): 20210803
668	Merge with NetBSD make, pick up
669	o rework varmod-order tests to avoid qsort instability
670	o make.1: clarify :On entry
671
6722021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
673
674	* VERSION (_MAKE_VERSION): 20210731
675	Merge with NetBSD make, pick up
676	o fix some lint issues
677	o more unit tests
678	o var.c: rework of ApplyModifier_Order
679
6802021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
681
682	* util.c: add strto*l if HAVE_STRTO*L not defined
683
684	* VERSION (_MAKE_VERSION): 20210730
685	Merge with NetBSD make, pick up
686	o var.c: add :On and :Orn for numeric sort
687	  disabled if no 64bit type available.
688	o _strtol.h: to implement strto*l functions
689
6902021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
691
692	* VERSION (_MAKE_VERSION): 20210704
693	Merge with NetBSD make, pick up
694	o unit-tests: fix some tests to be more portable
695	- job-output-null not all shells do the same number of write calls
696	- objdir-writable if TMPDIR is set; /tmp may not be usable
697
6982021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
699
700	* VERSION (_MAKE_VERSION): 20210701
701	Merge with NetBSD make, pick up
702	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
703	some tests just cannot work in some environments.
704	o buf.c: simpler upper bound for length in Buf_AddInt
705	o cond.c: fix grammar in error message for malformed conditional
706	o for.c: prevent newline injection (from ${.newline}) in .for loops
707	o var.c: use more practical data type in RegexReplace
708	(avoid need for %zu)
709	extract RegexReplace from ModifyWord_SubstRegex
710
7112021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
712
713	* VERSION (_MAKE_VERSION): 20210621
714	Merge with NetBSD make, pick up
715	o var.c: only report error for unmatched regex subexpression
716	when linting (-dL) since we cannot tell when an unmatched
717	subexpression is an expected result.
718	o move unmatched regex subexpression tests to
719	varmod-subst-regex.mk and enable strict (lint) mode
720
7212021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
722
723	* VERSION (_MAKE_VERSION): 20210616
724	Merge with NetBSD make, pick up
725	o more unit tests
726	o cond.c: rename If_Eval to EvalBare
727	improve function names for parsing conditions
728	o job.c: fix error handling of targets that cannot be made
729	o var.c: uncompress code in ApplyModifier_Unique
730
7312021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
732
733	* VERSION (_MAKE_VERSION): 20210518
734	Merge with NetBSD make, pick up
735	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
736	o job.c: Print -de error information when running multiple jobs
737
7382021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
739
740	* VERSION (_MAKE_VERSION): 20210420
741	Merge with NetBSD make, pick up
742	o use C99 bool type
743	o convert VarEvalFlags back into an enum
744	o cond.c: do not complain when skipping the condition 'no >= 10'
745	o hash.c: avoid allocating memory for simple variable names
746	o job.c: use distinct wording for writing to the shell commands file
747	remove type name for the abort status in job handling
748	rename PrintOutput to PrintFilteredOutput to avoid confusion
749	o main.c: avoid double slash in name of temporary directory
750	o var.c: use straight quotes for error 'Bad conditional expression'
751	reduce memory allocations in the modifiers ':D' and ':U'
752	rename members of ModifyWord_LoopArgs
753	clean up pattern flags for the modifiers ':S' and ':C'
754	reduce memory allocation and strlen calls in modifier ':from=to'
755	in the ':Q' modifier, only allocate memory if necessary
756	improve performance for LazyBuf
757	remove redundant parameter from ParseVarnameLong
758	migrate ParseModifierPart to use Substring
759	avoid unnecessary calls to strlen when evaluating modifiers
760	migrate ModifyWord functions to use Substring
761	migrate handling of the modifier ':S,from,to,' to Substring
762	reduce debug logging and memory allocation for ${:U...}
763	reduce verbosity of the -dv debug logging for standard cases
764	clean up debug logging for ':M' and ':N'
765	disallow '$' in the variable name of the modifier ':@'
766	simplify access to the name of an expression during evaluation
767
7682021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
769
770	* VERSION (_MAKE_VERSION): 20210330
771	Merge with NetBSD make, pick up
772	o replace enum bit-field with struct bit-field for VarEvalFlags
773	o rename VARE_NONE to VARE_PARSE_ONLY
774	o var.c: rename ApplyModifiersState to ModChain
775	fix double varname expansion in the variable modifier '::='
776	change debug log for variable evaluation flags to lowercase
777
7782021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
779
780	* VERSION (_MAKE_VERSION): 20210314
781	Merge with NetBSD make, pick up
782	o var.c: avoid evaluating many modifiers in parse only mode
783	in strict mode (-dL) many variable references are parsed twice,
784	the first time just to report parse errors early, so we want to
785	avoid side effects and wasted effort to the extent possible.
786
7872021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
788
789	* VERSION (_MAKE_VERSION): 20210226
790	Merge with NetBSD make, pick up
791	o remove freestanding freeIt variables
792	link via FStr
793	o var.c: restructure code in ParseVarname to target human readers
794	improve error message for;
795	  bad modifier in variable expression
796	  unclosed modifier
797	  unknown modifier
798	remove redundant parameter of ApplySingleModifier
799	explain non-obvious code around indirect variable modifiers
800	quote ':S' in error message about missing delimiter
801	extract ParseModifier_Match into separate function
802	add context information to error message about ':range' modifier
803	add quotes around variable name in an error message
804	reorder code in ModifyWords
805	use more common parameter order for VarSelectWords
806	make ModifyWord_Subst a little easier to understand
807	do not expand variable name from the command line twice
808	extract ExistsInCmdline from Var_SetWithFlags
809	save a hash map lookup when defining a cmdline variable
810	clean up VarAdd, Var_Delete, Var_ReexportVars
811	use bit-shift expressions for VarFlags constants
812	rename constants for VarFlags
813	rename ExprDefined constants for debug logging
814	rename ExprStatus to ExprDefined
815	split parameters for evaluating variable expressions
816	reduce redundant code around ModifyWords
817	print error about failed shell command before overwriting variable
818	clean up ValidShortVarname, ParseVarnameShort
819	rename VarExprStatus to ExprStatus
820	add functions for assigning the value of an expression
821	rename ApplyModifiersState_Define to Expr_Define
822	condense the code for parsing :S and :C modifiers
823
8242021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
825
826	* VERSION (_MAKE_VERSION): 20210206
827	Merge with NetBSD make, pick up
828	o unit-tests: use private TMPDIR to avoid errors from other users
829
8302021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
831
832	* VERSION (_MAKE_VERSION): 20210205
833	Merge with NetBSD make, pick up
834	o avoid strdup in mkTempFile
835	o always use vfork
836	o rename context and ctxt to scope
837	o rename some VAR constants to SCOPE
838	o Var_ functions, move the scope to the front
839	o use shortcut functions Global_Set and Global_Append
840	o add shortcut Global_Delete for deleting a global variable
841	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
842	o compat.c: when exiting due to an error, print graph information
843	o enum.c: remove overengineered Enum_ValueToString
844	o make.c: remove unused INTERNAL flag
845	remove unused return type of MakeBuildParent
846	o parse.c: replace parse error "Need an operator" with better message
847	o var.c: improve documentation about variable scopes
848	rename Var_ValueDirect to GNode_ValueDirect
849	rename old Var_SetWithFlags to Var_SetExpandWithFlags
850	merge SetVar into Var_SetWithFlags
851	split Var_Exists into plain Var_Exists and Var_ExistsExpand
852	split Var_Append into Var_Append and Var_AppendExpand
853	replace enum bit-set with bit-field
854	o unit-tests/var-op-shell: use kill rather than kill -14
855	which broke on darwin with recent update.
856
8572021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
858
859	* configure.in: check for sig_atomic_t and define it as 'int'
860	if missing.
861
862	* VERSION (_MAKE_VERSION): 20210201
863	Merge with NetBSD make, pick up
864	o use sig_atomic_t for caught_sigchld
865
8662021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
867
868	* VERSION (_MAKE_VERSION): 20210130
869	Merge with NetBSD make, pick up
870	o more unit tests
871	o convert SearchPath to struct
872	o split Buf_Destroy into Buf_Done and Buf_DoneData
873	o for.c: split For_Eval into separate functions
874	rename struct For to struct ForLoop
875	o job.c: do not create empty shell files in jobs mode
876	rename JobOpenTmpFile to JobWriteShellCommands
877	reduce unnecessary calls to waitpid
878	o parse.c: in -dp mode, print stack trace with each diagnostic
879
8802021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
881
882	* VERSION (_MAKE_VERSION): 20210123
883	Merge with NetBSD make, pick up
884	o rename Dir_Expand to SearchPath_Expand
885	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
886	o cond.c: fix debug output for comparison operators in conditionals
887	o dir.c: split Dir_FindFile into separate functions
888
8892021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
890
891	* VERSION (_MAKE_VERSION): 20210120
892	Merge with NetBSD make, pick up
893	o fix some more lint nits
894	o refine some unit tests for portability
895	o cond.c: rework parsing
896
8972021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
898
899	* VERSION (_MAKE_VERSION): 20210110
900	Merge with NetBSD make, pick up
901	o fix lint warnings
902	o consistently use boolean expressions in conditions
903
9042021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
905
906	* VERSION (_MAKE_VERSION): 20210108
907	Merge with NetBSD make, pick up
908	o job.c: back to polling token pipe if we want a token
909	o main.c: always print 'stopped in' on first call
910	The execption is if we bail because of an abort token
911	in which case just exit 6.
912
9132021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
914
915	* VERSION (_MAKE_VERSION): 20210101
916	Merge with NetBSD make, pick up
917	o Happy New Year!
918	o rename CmdOpts.lint to strict
919	o exit 2 on technical errors
920	o replace pointers in controlling conditions with booleans
921	o replace global preserveUndefined with VARE_KEEP_UNDEF
922	o compat.c: re-export variables from the actual make process
923	if using vfork this is the effect anyway
924	o cond.c: clean up VarParseResult constants
925	o for.c: fix undefined behavior in SubstVarLong
926	make control flow in SubstVarLong of .for loops more obvious
927	clean up SubstVarShort in .for loops
928	extract ForSubstBody from ForReadMore
929	clean up ForReadMore
930	simplify termination condition for .for loop
931	add error handling for .for loop items
932	job.c: re-export variables from the actual make process
933	parse.c: remove mmap for loading files, only allow files < 1 GiB
934	fix edge case in := with undefined in variable name
935	skip variable expansion in ParseDependencyTargetWord
936	var.c: split ExportVar into separate functions
937	clean up code in extracted ExportVar functions
938	remove dead code from ApplyModifiersIndirect
939	split Var_Subst into easily understandable functions
940	clean up VarParseResult constants
941
9422020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
943
944	* main.c: use .MAKE.DEPENDFILE as set by makefiles
945
9462020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
947
948	* VERSION (_MAKE_VERSION): 20201222
949	Merge with NetBSD make, pick up
950	o make DEBUG macro return boolean
951	o parse.c: fix assertion failure for files without trailing newline
952	o var.c: allow .undef to undefine multiple variables at once
953	remove excess newline from parse errors
954
9552020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
956
957	* VERSION (_MAKE_VERSION): 20201221
958	Merge with NetBSD make, pick up
959	o some unit-test updates
960
9612020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
962
963	* VERSION (_MAKE_VERSION): 20201220
964	Merge with NetBSD make, pick up
965	o more unit tests
966	o return FStr from Var_Parse and Var_Value
967	o spell nonexistent consistently
968	o add str_basename to reduce duplicate code
969	o compat.c: fix .ERROR_TARGET in compat -k mode
970	extract InitSignals from Compat_Run
971	extract UseShell from Compat_RunCommand
972	o cond.c: error out if an '.endif' or '.else' contain extraneous text
973	o for.c: rename ForIterate to ForReadMore
974	o hash.c: clean up hash function for HashTable
975	o lst.c: rename Vector.priv_cap to cap
976	o main.c: remove constant parameter from MakeMode
977	o make.c: use symbolic time for 0 in Make_Recheck
978	extract MakeChildren from MakeStartJobs
979	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
980	fix error message for .info/.warning/.error without argument
981	extract Var_Undef from ParseDirective
982	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
983	rename mode constants for ParseGetLine to be more expressive
984	reduce debugging details in Parse_SetInput
985	fix line numbers in .for loops
986	split ParseGetLine into separate functions
987	fix garbled output for failed shell command
988	var.c: remove redundant assignment in ApplyModifier_SysV
989	error out on unknown variable modifiers at parse time
990	remove wrong error message for indirect modifier in lint mode
991	extract ApplySingleModifier from ApplyModifiers
992	use FStr for memory management in Var_SetWithFlags
993	extract SetVar from Var_SetWithFlags
994	use FStr in VarNew
995	extract string functions from ApplyModifier_To
996	error out if .undef has not exactly 1 argument
997	extract Var_DeleteVar from Var_Delete
998	extract Var_Undef from ParseDirective
999	clean up memory management for expanding variable expressions
1000
10012020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1002
1003	* avoid %zu
1004
1005	* lst.c: avoid anonymous union
1006
1007	* VERSION (_MAKE_VERSION): 20201212
1008	Merge with NetBSD make, pick up
1009	o more unit tests
1010	o inline Targ_Ignore and Targ_Silent
1011	o split JobFlags into separate fields
1012	o remove const from function parameters (left overs from refactoring)
1013	o eliminate boolean argument of Var_Export
1014	o make API of Buf_Init simpler
1015	o rename ParseRunOptions to ParseCommandFlags
1016	o replace *line with line[0]
1017	o compat.c: fix wrong exit status for multiple failed main targets
1018	refactor Compat_Run to show the error condition more clearly
1019	don't make .END if the main targets already failed (-k mode)
1020	fix exit status in -k mode if a dependency fails
1021	o for.c: clean up Buf_AddEscaped in .for loops
1022	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
1023	make Job_Touch simpler
1024	refactor JobFinish
1025	rename Shell.exitFlag to errFlag
1026	move Job.xtraced to ShellWriter
1027	make printing of shell commands independent from the job
1028	rename shell flags in struct Shell
1029	extract JobOpenTmpFile from JobStart
1030	rename RunFlags to CommandFlags
1031	split various Job.* into separate fields
1032	rename commandShell to shell
1033	extract InitShellNameAndPath from Shell_Init
1034	replace signal handling macros with local functions
1035	replace macro MESSAGE with local function
1036	parse.c: error out on null bytes in makefiles
1037	error out on misspelled directives
1038	rename IFile.nextbuf to readMore
1039	fix undefined behavior in ParseEOF
1040	str.c: remove redundant call to strlen in Str_Words
1041	var.c: error out on misspelled .unexport-env
1042	error out on misspelled .export directives
1043	extract ExportVars from Var_Export
1044	extract ExportVarsExpand from Var_Export
1045	eliminate boolean argument of Var_Export
1046	fix undefined behavior when exporting ${:U }
1047	rename Var_ExportVars to Var_ReexportVars
1048	rename Var_Export1 to ExportVar
1049
10502020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1051
1052	* VERSION (_MAKE_VERSION): 20201206
1053	Merge with NetBSD make, pick up
1054	o more unit tests
1055	o inline macros for debug logging
1056	o use consistent variable names for list nodes
1057	o define constants for enum zero-values
1058	o dir.c: use fixed format for debug output of the directory cache
1059	remove Dir_InitDir
1060	o lst.c: inline Lst_Enqueue, Vector_Done
1061	o meta.c: remove unused parameter from meta_needed
1062	o parse.c: rename parse functions
1063	o suff.c: extract ExpandChildrenRegular from ExpandChildren
1064	o targ.c: don't concatenate identifiers in Targ_PrintType
1065	o var.c: remove comment decoration
1066	extract UnexportVars from Var_UnExport
1067	extract GetVarnamesToUnexport from Var_UnExport
1068	extract UnexportEnv from Var_UnExport
1069	extract UnexportVar from Var_UnExport
1070	move CleanEnv to UnexportVars
1071	replace pointer comparisons with enum
1072	add FStr to var.c to make memory handling simpler
1073	use FStr in Var_UnExport
1074	move type definitions in var.c to the top
1075	extract FreeEnvVar from Var_Parse
1076	extract ShuffleStrings from ApplyModifier_Order
1077
10782020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
1079
1080	* VERSION (_MAKE_VERSION): 20201130
1081	Merge with NetBSD make, pick up
1082	o add unit tests for META MODE
1083	o reduce memory allocation for dirSearchPath, GNode.parents,
1084	GNode.children, OpenDirs
1085	o reduce pointer indirection for GNode.cohorts and
1086	GNode.implicitParents
1087	o remove pointer indirection from GNode.commands
1088	o inline Lst_ForEachUntil in meta mode
1089	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
1090	clean up memory management for CachedDirs
1091	fix the reference count of dotLast going negative
1092	add debug logging for OpenDirs_Done
1093	extract CacheNewDir from Dir_AddDir
1094	add debug logging for reference counting of CachedDir
1095	rename some Dir functions to SearchPath
1096	o job.c: rename some global variables
1097	o main.c: reduce memory allocation in ReadBuiltinRules
1098	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
1099	CmdOpts.makefiles
1100	Add .MAKE.UID and .MAKE.GID
1101	o make.c: reduce memory allocation for/in toBeMade,
1102	Make_ProcessWait, Make_ExpandUse
1103	o meta.c: reduce memory allocation in meta_oodate
1104	o parse.c: reduce memory allocations for parsing dependencies and
1105	targets
1106	o suff.c: reduce memory allocation in suffix handling
1107
11082020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
1109
1110	* VERSION (_MAKE_VERSION): 20201124
1111	Merge with NetBSD make, pick up
1112	o .MAKE.{UID,GID} represent uid and gid running make.
1113	o fix error handling for .BEGIN and .END dependency in -k mode
1114	o fix missing "Stop." after failed .END node in -k mode
1115	o use properly typed comparisons in boolean contexts
1116	o replace a few HashTable_CreateEntry with HashTable_Set
1117	o add HashSet type
1118	o compat.c: split Compat_Make into smaller functions
1119	extract DebugFailedTarget from Compat_RunCommand
1120	o dir.c: refactor Dir_UpdateMTime
1121	migrate CachedDir.files from HashTable to HashSet
1122	o make.c: add high-level API for GNode.made
1123
11242020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
1125
1126	* VERSION (_MAKE_VERSION): 20201122
1127	Merge with NetBSD make, pick up
1128	o rename GNode.context to vars
1129	o suff.c: cleanup and refactor
1130	rename some functions and vars to better reflect usage
1131	add high-level API for CandidateSearcher
1132	o targ.c: add more debug logging for suffix handling
1133	o more unit tests
1134	o add debug logging for setting and resetting the main target
1135
11362020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
1137
1138	* VERSION (_MAKE_VERSION): 20201117
1139	Merge with NetBSD make, pick up
1140	o fix some unit-tests when .SHELL is dash
1141	o rename Targ_NewGN to GNode_New
1142	o make some GNode functions const
1143	o main.c: call Targ_Init before Var_Init
1144	cleanup PrintOnError, getTmpdir and ParseBoolean
1145	o var.c: fix error message of failed :!cmd! modifier
1146
11472020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
1148
1149	* VERSION (_MAKE_VERSION): 20201114
1150	Merge with NetBSD make, pick up
1151	o replace a few HashTable_CreateEntry with HashTable_Set
1152	o clean up cached_stats
1153	o rename DEFAULT to defaultNode
1154	o remove redundant struct make_stat
1155	o cond.c: in lint mode, check for ".else <cond>"
1156	use bitset for IfState
1157	replace large switch with if-else in Cond_EvalLine
1158	o job.c: clean up JobExec, JobStart, JobDoOutput
1159	use stderr for error message about failed touch
1160	clean up Job_Touch
1161	replace macro DBPRINTF with JobPrintln
1162	rename JobState to JobStatus
1163	main.c: switch cache for realpath from GNode to HashTable
1164	clean up Fatal
1165	clean up InitDefSysIncPath
1166	use progname instead of hard-coded 'make' in warning
1167	rename Main_SetVarObjdir to SetVarObjdir
1168	make.1: document the -S option
1169	make.c: fix debug output for GNode details
1170	use symbolic names in debug output of GNodes
1171
11722020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
1173
1174	* configure.in: fix --with-force-machine-arch
1175
1176	* VERSION (_MAKE_VERSION): 20201112
1177	Merge with NetBSD make, pick up
1178	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
1179	checks in InitObjdir.  Explicit .OBJDIR target always allows
1180	read-only directory.
1181	o cond.c: clean up Cond_EvalLine
1182
11832020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1184
1185	* VERSION (_MAKE_VERSION): 20201111
1186	Merge with NetBSD make, pick up
1187	o more unit-tests
1188	o style cleanup
1189	remove redundant parentheses from sizeof operator
1190	replace character literal 0 with '\0'.
1191	replace pointer literal 0 with NULL.
1192	remove redundant parentheses.
1193	replace (expr & mask) == 0 with !(expr & mask).
1194	use strict typing in conditions of the form !var
1195	o rename Make_OODate to GNode_IsOODate
1196	o rename Make_TimeStamp to GNode_UpdateYoungestChild
1197	o rename Var_Set_with_flags to Var_SetWithFlags
1198	o rename dieQuietly to shouldDieQuietly
1199	o buf.c: make API of Buf_Init simpler
1200	o compat.c: clean up Compat_Make, Compat_RunCommand,
1201	CompatDeleteTarget and CompatInterrupt
1202	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
1203	clean up CondParser_Comparison
1204	o main.c: rename getBoolean and s2Boolean
1205	rename MAKEFILE_PREFERENCE for consistency
1206	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
1207	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
1208	replace emptyString with allocated empty string
1209	error out on unclosed expressions after the colon
1210
12112020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1212
1213	* VERSION (_MAKE_VERSION): 20201101
1214	Merge with NetBSD make, pick up
1215	o negate NoExecute to GNode_ShouldExecute
1216	o job.c: rename JobMatchShell to FindShellByName
1217	extract EscapeShellDblQuot from JobPrintCommand
1218	extract ParseRunOptions from JobPrintCommand
1219	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
1220	treat malformed :range, :ts and :[...] as errors
1221	add tests for the variable modifiers :[words] and :range
1222
12232020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
1224
1225	* VERSION (_MAKE_VERSION): 20201031
1226	Merge with NetBSD make, pick up
1227	o format #include directives consistently
1228	o do not look up local variables like .TARGET anywhere else
1229	o main.c: Main_SetObjdir is first called for curdir which may be
1230	readonly
1231	reduce the scope where recursive expressions are detected
1232	remove redundant :tl from getBoolean
1233	clean up mkTempFile
1234	o meta.c: simplify memory allocation in meta_create and meta_oodate
1235	o parse.c: extract loadedfile_mmap from loadfile
1236	o trace.c: document possible undefined behavior with .CURDIR
1237	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
1238	rename ismeta to is_shell_metachar
1239	remove debug logging for the :Q variable modifier
1240	rename VarIsDynamic to VarnameIsDynamic
1241	use consistent parameter order in varname parsing functions
1242	extract ParseVarnameLong from Var_Parse
1243	extract ParseVarnameShort from Var_Parse
1244	fix type of ParseModifierPart parameter delim
1245	extract IsEscapedModifierPart from ParseModifierPart
1246	clean up ModifyWords
1247	add test for combining the :@ and :? variable modifiers
1248
12492020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
1250
1251	* VERSION (_MAKE_VERSION): 20201030
1252	Merge with NetBSD make, pick up
1253	o change char * to void * in Var_Value
1254	o make iterating over HashTable simpler
1255	o rename VAR_CMD to VAR_CMDLINE
1256	o cond.c: clean up is_separator
1257	fix parse error in string literal in conditional
1258	o main.c: do not use objdir that is not writable
1259	in lint mode, exit with error status on errors
1260	o  parse.c: clean up StrContainsWord
1261	fix out-of-bounds pointer in ParseTrackInput
1262	o var.c: rename Str_SYSVMatch and its parameters
1263	remove unsatisfiable conditions in Var_Set_with_flags
1264	document where the variable name is expanded
1265	fix documentation for VARP_SUB_ONE
1266	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
1267	document VAR_READONLY
1268	prevent appending to read-only variables
1269	extract MayExport from Var_Export1
1270	remove redundant evaluations in VarFind
1271	replace VarFindFlags with a simple Boolean
1272	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
1273
12742020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1275
1276	* VERSION (_MAKE_VERSION): 20201028
1277	Merge with NetBSD make, pick up
1278	o rename defIncPath to defSysIncPath
1279	o initialize all CmdOpts fields
1280	o lst.c: inline Vector_Get
1281	o main.c: refactor main extract
1282	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
1283	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
1284	InitDefIncPath,CmdOpts_Init,UnlimitFiles
1285	o parse.c: merge curFile into includes
1286	rename predecessor to order_pred
1287	sort ParseSpecial alphabetically
1288	remove unused, undocumented .NOEXPORT
1289	rename ParseSpecial enum values consistently
1290	rename some fields of struct IFile
1291
12922020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
1293
1294	* VERSION (_MAKE_VERSION): 20201026
1295	Merge with NetBSD make, pick up
1296	o group the command line options and arguments into a struct
1297	o rename GNode.cmgn to youngestChild
1298	o rename hash functions to identify the type name
1299	o negate OP_NOP and rename it to GNode_IsTarget
1300	o add GNode_Path to access the path of a GNode
1301	o remove macros MIN and MAX
1302	o remove unused Lst_Find and Lst_FindFrom
1303	o arch.c: and make Arch_FindLib simpler
1304	clean up code layout
1305	make Arch_ParseArchive simpler
1306	o cond.c: inline CondFindStrMatch into FuncMake
1307	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
1308	omit trailing space in debug output for expanding file patterns
1309	refactor DirMatchFiles
1310	document that the SearchPath of Dir_FindFile may be NULL
1311	remove UNCONST from Dir_Expand
1312	inline DirFindName
1313	o for.c: clean up code for handling .for loops
1314	o hash.c: print hash in debug log with fixed width
1315	clean up hash table functions
1316	reduce amount of string hashing
1317	o job.c: refactor JobDeleteTarget
1318	use proper enum constants for aborting
1319	convert result of JobStart from macros to enum
1320	convert abort reason macros to enum
1321	rework Job_CheckCommands to reduce indentation
1322	rename Shell fields
1323	add field names in declaration of DEFSHELL_CUSTOM
1324	convert JobState and JobFlags to enum types
1325	move handling of the "..." command to JobPrintCommands
1326	o lst.c: clean up
1327	refactor LstNodeNew
1328	remove Lst_Open, Lst_Next, Lst_Close
1329	remove code for circular lists from Lst_Next
1330	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
1331	/dev/null or anything starting with "no"
1332	convert macros for debug flags into enum
1333	o make.c: inline Lst_Copy in Make_ExpandUse
1334	o meta.c: inline Lst_Find in meta_oodate
1335	make Lst_RemoveIf simpler in meta_oodate
1336	o parse.c: convert error level for Parse_Error to an enum
1337	o suff.c: properly terminate debug output with newline
1338	add more details to DEBUG_SRC log
1339	replace Dir_CopyDir with Dir_CopyDirSearchPath
1340	don't modify GNode name while rebuilding the suffix graph
1341	o var.c: reduce duplicate code in VarFind
1342
13432020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1344
1345	* VERSION (_MAKE_VERSION): 20201022
1346	Merge with NetBSD make, pick up
1347	o more refactoring and simplification to reduce code size
1348	o var.c: extract CanonicalVarname from VarFind
1349	o make.c: extract UpdateImplicitParentsVars from Make_Update
1350	o main.c: extract PrintVar from doPrintVars
1351	extract HandlePWD from main
1352	o lst.c: inline simple Lst getters
1353	remove unused Lst_ForEach
1354	o job.c: move struct Shell from job.h to job.c
1355	o more unit tests
1356
13572020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
1358
1359	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1360
13612020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1362
1363	* VERSION (_MAKE_VERSION): 20201018
1364	Merge with NetBSD make, pick up
1365	o remove USE_IOVEC
1366	o rename some Hash_* apis to Hash*
1367	o replace execError with execDie
1368	o rename Lst_Init to Lst_New
1369	o add tags to enum types
1370	o rename Stack to Vector
1371	o parse.c: more refactoring
1372	o unit-tests: make some tests use line buffered stdout
1373	o unit-tests/Makefile: in meta mode do not make all tests depend on
1374	Makefile, it isn't necessary.
1375
13762020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
1377
1378	* main.c: check for CTL_HW being defined.
1379	* unit-tests/Makefile: ensure export tests output are POSIX compliant
1380	disable opt-debug-jobs test until it works on ubuntu
1381
1382	* VERSION (_MAKE_VERSION): 20201010
1383	Merge with NetBSD make, pick up
1384	o dir.c: remove pathname limit for Dir_FindHereOrAbove
1385	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
1386	o main.c: extract init_machine and init_machine_arch from main
1387	allow to disable debug logging options
1388	o parse.c: enable format string truncation warnings
1389	extract parsing of sources from ParseDoDependency
1390	split ParseDoSrc into smaller functions
1391	hide implementation details from Parse_DoVar
1392	clean up parsing of variable assignments
1393	split Parse_DoVar into manageable pieces
1394	don't modify the given line during Parse_DoVar
1395	fix out-of-bounds memory access in Parse_DoVar
1396	fix parsing of the :sh assignment modifier
1397	o var.c: rework memory allocation for the name of variables
1398	extract ApplyModifier_Literal into separate function
1399	in lint mode, reject modifiers without delimiter
1400	do not export variable names starting with '-'
1401	o fix double-free bug in -DCLEANUP mode
1402	o more cleanup to enable higher warnings level
1403	o more unit tests
1404
14052020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1406
1407	* VERSION (_MAKE_VERSION): 20201002
1408	Merge with NetBSD make, pick up
1409	o dir.c: use hash table for looking up open directories by name
1410	o main.c: clean up option handling
1411	o parse.c: add missing const for Parse_AddIncludeDir
1412	o var.c: ApplyModifier_To, update pp in each branch
1413	o remove redundant function prototypes
1414	o more unit tests
1415
14162020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1417
1418	* VERSION (_MAKE_VERSION): 20201001
1419	Merge with NetBSD make, pick up
1420	o compat.c: comment about "..."
1421
14222020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
1423
1424	* VERSION (_MAKE_VERSION): 20200930
1425	Merge with NetBSD make, pick up
1426	o job.c: split Job.jobPipe into 2 separate fields
1427	replace Lst_Open with direct iteration
1428	o lst.c: remove redundant assertions
1429	o targ.c: replace Lst_Open with direct iteration
1430	o var.c: fix bug in evaluation of indirect variable modifiers
1431	extract ApplyModifier_Quote into separate function
1432	o make debug logging simpler
1433
14342020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1435
1436	* VERSION (_MAKE_VERSION): 20200927
1437	Merge with NetBSD make, pick up
1438	o parse.c: ensure parse errors result in 'stopped in' message.
1439	o compat.c: make parameter of Compat_RunCommand const
1440	o main.c: extract InitVarTarget from main
1441	o parse.c: rename ParseFinishLine to FinishDependencyGroup
1442	refactor ParseDoDependency
1443	o var.c: Var_Subst no longer returns string result
1444	rename Var_ParsePP back to Var_Parse
1445	in lint mode, improve error handling for undefined variables
1446	extract ParseVarname from Var_Parse
1447	o rename Lst_ForEach to Lst_ForEachUntil
1448	o inline Lst_ForEachUntil in several cases
1449	o clean up API for finding and creating GNodes
1450	o fix assertion failure in -j mode with .END node
1451	o inline and remove LstNode_Prev and LstNode_Next
1452	o use fine-grained type names for lists and their nodes
1453	o more unit tests
1454
14552020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1456
1457	* VERSION (_MAKE_VERSION): 20200911
1458	Merge with NetBSD make, pick up
1459	o cond.c: split EvalComparison into smaller functions
1460	reorder parameters of condition parsing functions
1461	reduce code size in CondParser_Eval
1462	rename CondGetString to CondParser_String
1463	add CondLexer_SkipWhitespace
1464	group the condition parsing state into a struct
1465	in CondGetString, replace repeated Buf_Add with Buf_AddStr
1466	o migrate Var_Parse to Var_ParsePP
1467	o add wrappers around ctype.h functions
1468	o lst.c: use a stack instead of a list for the nested include path
1469	o more unit tests
1470
14712020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
1472
1473	* make-bootstrap.sh.in: adjust object list
1474
14752020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
1476
1477	* VERSION (_MAKE_VERSION): 20200902
1478	Merge with NetBSD make, pick up
1479	o use make_stat to ensure no confusion over valid fields
1480	returned by cached_stat
1481	o var.c: make VarQuote const-correct
1482	o add unit tests for .for
1483
14842020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1485
1486	* VERSION (_MAKE_VERSION): 20200901
1487	Merge with NetBSD make, pick up
1488	o rename Hash_Table fields
1489	o make data types in Dir_HasWildcards more precise
1490
14912020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
1492
1493	* VERSION (_MAKE_VERSION): 20200831
1494	Merge with NetBSD make, pick up
1495	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
1496	o lst.c: Lst_Open renable assert that list isn't open
1497	o unit test for .TARGET dependent flags
1498	o var.c: fix aliasing bug in VarUniq
1499	o more unit tests for :u
1500
15012020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
1502
1503	* VERSION (_MAKE_VERSION): 20200830
1504	Merge with NetBSD make, pick up
1505	o allow for strict type checking for Boolean
1506	o Var_Parse never returns NULL
1507	o Var_Subst never returns NULL
1508	o Lst_Find now takes boolean match function
1509	o rename Lst_Memeber to Lst_FindDatum
1510	o rename LstNode functions to match their type
1511	o rename GNode.iParents to implicitParents
1512	o fix assertion failure for .SUFFIXES in archives
1513	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
1514	remove unreachable code from CompatRunCommand
1515	o main.c: simplify getBoolean
1516	o stc.c: replace brk_string with simpler Str_Words
1517	o suff.c: add debug macros
1518
15192020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
1520
1521	* VERSION (_MAKE_VERSION): 20200828
1522	Merge with NetBSD make, pick up
1523	o lst.c: inline LstIsValid and LstNodeIsValid
1524	o remove trailing S from Lst function names after migration complete
1525	o more comment cleanup/clarification
1526	o suff.c: clean up suffix handling
1527	o more unit tests
1528
15292020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1530
1531	* VERSION (_MAKE_VERSION): 20200826
1532	Merge with NetBSD make, pick up
1533	o enum.c: distinguish between bitsets containing flags and
1534	ordinary enums
1535	o var.c: fix error message for ::!= modifier with shell error
1536	o fix bugs in -DCLEANUP mode
1537
15382020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1539
1540	* VERSION (_MAKE_VERSION): 20200824
1541	Merge with NetBSD make, pick up
1542	o in debug mode, print GNode details in symbols
1543
15442020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
1545
1546	* VERSION (_MAKE_VERSION): 20200823
1547	Merge with NetBSD make, pick up
1548	o lst.c: more asserts,
1549	make args to Lst_Find match others.
1550	o var.c: pass flags to VarAdd
1551	o arch.c: use Buffer
1552	o str.c: brk_string return size_t for nwords
1553	o more unit tests
1554
15552020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
1556
1557	* VERSION (_MAKE_VERSION):
1558	Merge with NetBSD make, pick up
1559	o var.c: support for read-only variables eg .SHELL
1560	being the shell used to run scripts.
1561	o lst.c: more simplification
1562	o more documentation and style cleanup
1563	o more unit tests
1564	o ensure unit-test/Makefile is run by TEST_MAKE
1565	o reduce duplication of header inclusion
1566
15672020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
1568
1569	* VERSION (_MAKE_VERSION): 20200821
1570	Merge with NetBSD make, pick up
1571	o lst.c: revert invalid assertion - but document it
1572	o dir.c: split Dir_Init into two functions
1573
15742020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
1575
1576	* lst.c: needs inttypes.h on Linux
1577
1578	* VERSION (_MAKE_VERSION): 20200820
1579	Merge with NetBSD make, pick up
1580	o make.1: clarify some passages
1581	o var.c: more cleanup, clarify comments
1582	o make_malloc.c: remove unreachable code
1583	o cond.c: make CondGetString easier to debug
1584	o simplify list usage
1585	o unit-tests: more
1586
15872020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1588
1589	* VERSION (_MAKE_VERSION): 20200816
1590	Merge with NetBSD make, pick up
1591	o refactor unit-tests to be more fine grained
1592	  not all tests moved yet
1593
15942020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
1595
1596	* VERSION (_MAKE_VERSION): 20200814
1597	Merge with NetBSD make, pick up
1598	o more str_concat variants
1599	o more enums for flags
1600	o var.c: cleanup for higher warnings level
1601
16022020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1603
1604	* VERSION (_MAKE_VERSION): 20200810
1605	Merge with NetBSD make, pick up
1606	o more unit tests
1607	o general comment and style cleanup
1608
16092020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
1610
1611	* VERSION (_MAKE_VERSION): 20200808
1612	Merge with NetBSD make, pick up
1613	o enum.[ch]: streamline, enums for use in flags and debug output
1614	o cond.c: cleanup
1615	o var.c: reduce duplicate code for modifiers
1616	debug logging for Var_Parse
1617	more detailed debug output
1618	o more unit tests
1619
16202020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1621
1622	* unit-tests/Makefile: -r for recursive and include Makefile.inc
1623	so I can run tests in meta mode
1624	supress extra noise if in meta mode
1625
1626	* VERSION (_MAKE_VERSION): 20200806
1627	Merge with NetBSD make, pick up
1628	o parse.c: remove VARE_WANTRES for LINT
1629	we just want to check parsing (for now).
1630
16312020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1632
1633	* VERSION (_MAKE_VERSION): 20200805
1634	Merge with NetBSD make, pick up
1635	o make.1: Rework the description of dependence operators
1636
16372020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1638
1639	* VERSION (_MAKE_VERSION): 20200803
1640	Merge with NetBSD make, pick up
1641	o revert some C99 usage, for max portability
1642	o unit-tests/lint
1643
16442020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
1645
1646	* VERSION (_MAKE_VERSION): 20200802
1647	Merge with NetBSD make, pick up
1648	o more unit tests
1649
16502020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
1651
1652	* Remove NetBSD specific plumbing from unit-tests/Makefile
1653
1654	* VERSION (_MAKE_VERSION): 20200801
1655	Merge with NetBSD make, pick up
1656	o make Var_Value return const
1657	o size_t for buf sizes
1658	o optimize some buffer operations - avoid strlen
1659
16602020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1661
1662	* VERSION (_MAKE_VERSION): 20200731
1663	Merge with NetBSD make, pick up
1664	o var.c: fix undefinded behavior for incomplete :t modifier
1665	  fixes unit-test/moderrs on Ubuntu
1666	o parse.c: When parsing variable assignments other than :=
1667	  if DEBUG(LINT) test substition of value, so we get a file and
1668	  line number in the resulting error.
1669	o dir.c: fix parsing of nested braces in dependency lines
1670	  add unit-tests
1671
16722020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1673
1674	* VERSION (_MAKE_VERSION): 20200730
1675	Merge with NetBSD make, pick up
1676	o var.c: minor cleanup
1677	o unit-tests: more tests to improve code coverage
1678
16792020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
1680
1681	* VERSION (_MAKE_VERSION): 20200728
1682	Merge with NetBSD make, pick up
1683	o var.c: more optimizations
1684
16852020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
1686
1687	* VERSION (_MAKE_VERSION): 20200726
1688	Merge with NetBSD make, pick up
1689	o collapse lsd.lib into lst.c - reduce code size and allow inlining
1690	o lots of function comment updates
1691	o var.c: more optimizations
1692	o make return of Var_Parse const
1693
16942020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1695
1696	* VERSION (_MAKE_VERSION): 20200720
1697	Merge with NetBSD make, pick up
1698	o DEBUG_HASH report stats at end and tone down the noise
1699	o var.c: each flag type gets its own prefix.
1700	move SysV string matching to var.c
1701	make ampersand in ${VAR:from=to&} an ordinary character
1702	cleanup and simplify implementation of modifiers
1703	o make.1: move documentation for assignment modifiers
1704
17052020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1706
1707	* VERSION (_MAKE_VERSION): 20200718
1708	Merge with NetBSD make, pick up
1709	o DEBUG_HASH to see how well the hash tables are working
1710
17112020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1712
1713	* bsd.after-import.mk: make sure we update unit-tests/Makefile
1714
17152020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1716
1717	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
1718
1719	* VERSION (_MAKE_VERSION): 20200710
1720	Merge with NetBSD make, pick up
1721	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
1722	o meta.c: target flagged .META is out-of-date if meta file missing
1723
17242020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
1725
1726	* VERSION (_MAKE_VERSION): 20200709
1727	Merge with NetBSD make, pick up
1728	o cond.c: fix for compare_expression when doEval=0
1729	o unit-tests/Makefile: rework
1730	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
1731
17322020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1733
1734	* VERSION (_MAKE_VERSION): 20200704
1735	Merge with NetBSD make, pick up
1736	(most of this by rillig@)
1737	o lots of style and white-space cleanup
1738	o lots more unit tests for variable modifiers
1739	o simplified description of some functions
1740	o str.c: refactor Str_Match
1741	o var.c: debugging output for :@
1742	  constify VarModify parameter
1743	  fix :hash modifier on 16-bit platforms
1744	  remove unnecessary forward declarations
1745	  refactor ApplyModifier_SysV to have less indentation
1746	  simplify code for :E and :R
1747	  clean up code for :H and :T
1748	  refactor ApplyModifiers
1749
1750	* var.c: we need stdint.h on some platforms to get uint32_t
1751	* unit-test/Makefile: we need to supress the specific error
1752	for RE substitution error in modmisc, since it varies accross
1753	different OS.
1754
17552020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
1756
1757	* VERSION (_MAKE_VERSION): 20200702
1758	Merge with NetBSD make, pick up
1759	o var.c: more improvements to avoiding unnecessary evaluation
1760	use enums for flags
1761	o remove flags arg to Var_Set which outside of var.c is always 0
1762
17632020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1764
1765	* VERSION (_MAKE_VERSION): 20200701
1766	Merge with NetBSD make, pick up
1767	o var.c: with change to cond.c; ensure that nested variables
1768	within a variable name are expanded.
1769	o unit-tests/varmisc.mk: test for nested varname
1770
17712020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
1772
1773	* VERSION (_MAKE_VERSION): 20200629
1774	Merge with NetBSD make, pick up
1775	o cond.c: do not eval unnecessary terms of conditionals.
1776
17772020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
1778
1779	* VERSION (_MAKE_VERSION): 20200625
1780	Merge with NetBSD make, pick up
1781	o meta.c: report error if lseek in filemon_read fails
1782
17832020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1784
1785	* VERSION (_MAKE_VERSION): 20200622
1786	Merge with NetBSD make, pick up
1787	o dieQuietly: ignore OP_SUBMAKE as too aggressive
1788
17892020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
1790
1791	* VERSION (_MAKE_VERSION): 20200619
1792	Merge with NetBSD make, pick up
1793	o str.c: performance improvement for Str_Match for multiple '*'
1794	o dieQuietly: supress the failure output from make
1795	when failing node is a sub-make or a sibling failed.
1796	This cuts down greatly on unhelpful noise at the end of
1797	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
1798
17992020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1800
1801	* FILES: add LICENSE to appease some packagers.
1802	This is an attempt to fairly represent the license on almost
1803	200 files, which are almost all BSD-3-Clause
1804	The few exceptions being more liberal.
1805
1806	* VERSION (_MAKE_VERSION): 20200610
1807	Merge with NetBSD make, pick up
1808	o unit test for :Or
1809
18102020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1811
1812	* VERSION (_MAKE_VERSION): 20200606
1813	Merge with NetBSD make, pick up
1814	o make.1: cleanup
1815
1816	* Makefile: fix depends for main.o which broke MAKE_VERSION
1817
18182020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
1819
1820	* VERSION (_MAKE_VERSION): 20200605
1821	Merge with NetBSD make, pick up
1822	o dir.c: cached_stats - don't confuse stat and lstat results.
1823	o var.c: add :Or for reverse sort.
1824
18252020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
1826
1827	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
1828	also if --with-filemon= specifies path to filemon.h
1829	set use_filemon=dev
1830	* dirname.c: remove include of namespace.h
1831
18322020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
1833
1834	* VERSION (_MAKE_VERSION): 20200517
1835	Merge with NetBSD make, pick up
1836	o modified dollar tests to avoid shell dependencies
1837	o new tests for .INCLUDEFROM
1838
18392020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
1840
1841	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
1842	to not depend so much on shell behavior
1843
18442020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
1845
1846	* VERSION (_MAKE_VERSION): 20200510
1847	Merge with NetBSD make, pick up
1848	o unit test for dollar handling
1849
18502020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
1851
1852	* VERSION (_MAKE_VERSION): 20200506
1853	Merge with NetBSD make, pick up
1854	o str.c: empty string does not match % pattern
1855	  plus unit-test changes
1856
18572020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
1858
1859	* VERSION (_MAKE_VERSION): 20200504
1860	May the 4th be with you
1861	Merge with NetBSD make, pick up
1862	o var.c: import handling of old sysV style modifier using '%'
1863	o str.c: refactor brk_string
1864	o unit-tests: add test case for lazy conditions
1865
18662020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
1867
1868	* VERSION (_MAKE_VERSION): 20200418
1869
1870	* configure.in: use_makefile=no for cygwin et al.
1871	case insensitive filesystems just don't work if both
1872	makefile and Makefile exist.
1873	NOTE: bmake does not support cygwin and likely never will,
1874	but if brave souls want to try it - help them out.
1875
18762020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
1877
1878	* VERSION (_MAKE_VERSION): 20200402
1879	Merge with NetBSD make, pick up
1880	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
1881	  a blank command is perfectly valid.
1882
18832020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1884
1885	* VERSION (_MAKE_VERSION): 20200330
1886	Merge with NetBSD make, pick up
1887	o make.h: extern debug_file
1888
18892020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
1890
1891	* VERSION (_MAKE_VERSION): 20200318
1892	Merge with NetBSD make, pick up
1893	o meta.c: meta_oodate, check for corrupted meta file
1894	  earlier and more often.
1895
18962020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
1897
1898	* VERSION (_MAKE_VERSION): 20200220
1899
19002020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
1901
1902	* boot-strap: unset MAKEFLAGS
1903
19042020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
1905
1906	* VERSION (_MAKE_VERSION): 20200212
1907	* meta.c: meta_compat_parent check for USE_FILEMON
1908	  patch from Soeren Tempel
1909
19102020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1911
1912	* VERSION: 20200205
1913	Merge with NetBSD make, pick up
1914	o meta.c: fix compat mode, need to call meta_job_output()
1915	o job.c: extra fds for meta mode not needed if using filemon_dev
1916
19172020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
1918
1919	* VERSION: 20200122
1920	Merge with NetBSD make, pick up
1921	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1922	  returns FALSE.
1923
19242020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
1925
1926	* VERSION: 20200121
1927	Merge with NetBSD make, pick up
1928	o filemon/filemon_{dev,ktrace}.c: allow selection of
1929	  filemon implementation.  filemon_dev.c uses the kernel module
1930	  while filemon_ktrace.c leverages the fktrace api available in
1931	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
1932	  adding support for other tracing mechanisms such as strace on
1933	  Linux.
1934	o meta.c: when target is out-of-date per normal make rules
1935	  record value of .OODATE in meta file.
1936
19372019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
1938
1939	* VERSION: 20190926
1940	  Merge with NetBSD make, pick up
1941	  o parse.c: don't pass NULL to realpath(3)
1942	    some versions cannot handle it.
1943
19442019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
1945
1946	* VERSION: 20190409
1947	  Merge with NetBSD make, pick up
1948	  o parse.c: ParseDoDependency: free paths rather than assert
1949
19502018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1951
1952	* VERSION: 20181222
1953
1954	* configure.in: add --without-makefile to avoid generating
1955	  makefile and make-bootstrap.sh
1956
1957	* include Makefile.inc if it exists
1958
1959	* Use Makefile and Makefile.config.in in unit-tests
1960	  so we can use just: make obj && make && make test
1961	  when bmake is already available.
1962	  We add --without-makefile to CONFIGURE_ARGS in this case.
1963
1964	* tweak bsd.after-import.mk (captures Makefile.config etc
1965	  after import to FreeBSD for example) to cope with all the above.
1966
19672018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1968
1969	* VERSION: 20181221
1970	  Merge with NetBSD make, pick up
1971	  o parse.c: ParseVErrorInternal use .PARSEDIR
1972	    and apply if relative, and then use .PARSEFILE
1973	    for consistent result.
1974
19752018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1976
1977	* VERSION: 20181220
1978	  Merge with NetBSD make, pick up
1979	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1980	    is relative
1981	  o var.c: avoid SEGFAULT in .unexport-env
1982	    when MAKELEVEL is not set
1983
19842018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
1985
1986	* VERSION: 20181216
1987	  Merge with NetBSD make, pick up
1988	  o fix for unit-tests/varquote.mk on Debian
1989
19902018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1991
1992	* VERSION: 20180919
1993	  Merge with NetBSD make, pick up
1994	  o var.c: add :q
1995	  o dir.c: cleanup caching of stats
1996
19972018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
1998
1999	* Makefile.config.in: use += where it makes sense.
2000
20012018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2002
2003	* VERSION: 20180512
2004	  Merge with NetBSD make, pick up
2005	  o job.c: skip polling job token pipe
2006
20072018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2008
2009	* VERSION: 20180405
2010	  Merge with NetBSD make, pick up
2011	  o parse.c: be more cautious about detecting depenency line
2012	    rather than sysV style include.
2013
20142018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2015
2016	* VERSION: 20180222
2017	  Merge with NetBSD make, pick up
2018	  o parse.c: avoid calling sysconf for every call to loadfile
2019
20202018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2021
2022	* VERSION: 20180218
2023	  Merge with NetBSD make, pick up
2024	  o var.c: Var_Set handle NULL value anytime.
2025
20262018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2027
2028	* VERSION: 20180212
2029	  Merge with NetBSD make, pick up
2030	  o parse.c: do not treat .info as warning with -W
2031
20322017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2033
2034	* VERSION: 20171207
2035	  Merge with NetBSD make, pick up
2036	  o var.c: Var_Append use Var_Set if var not previously set
2037	    so that VAR_CMD is handled correctly.
2038	    Add a suitable unit-test.
2039
20402017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2041
2042	* VERSION (_MAKE_VERSION): 20171126
2043
2044	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
2045	  since AC_TRY_COMPILE puts input inside main()
2046	  which upsets modern compilers.
2047
20482017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2049
2050	* VERSION: 20171118
2051	  Merge with NetBSD make, pick up
2052	  o var.c: do not append to variable set on command line
2053	    add unit-test to catch this.
2054
20552017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2056
2057	* VERSION: 20171028
2058	  Merge with NetBSD make, pick up
2059	  o main.c: ignore empty MAKEOBJDIR
2060
2061	* Makefile.config.in:
2062	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
2063
20642017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2065
2066	* VERSION: 20171005
2067
2068	* unit-tests/dotwait.mk: redirect stderr through pipe for more
2069	  consistent result on some platforms.
2070
20712017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2072
2073	* machine.sh: entry for AIX
2074
20752017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2076
2077	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
2078	  to a file that can be included by configure as well as make.
2079	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
2080
20812017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2082
2083	* Makefile (_MAKE_VERSION): 20170810
2084	  Merge with NetBSD make, pick up
2085	  o meta.c: if target is in subdir we only need subdir name in
2086	    meta_name.
2087
20882017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2089
2090	* Makefile (_MAKE_VERSION): 20170720
2091	  Merge with NetBSD make, pick up
2092	  o compat.c: pass SIGINT etc onto child and wait for it to exit
2093	    before we self-terminate.
2094
20952017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2096
2097	* Makefile (_MAKE_VERSION): 20170711
2098	  forgot to update after merge on 20170708 ;-)
2099	  o main.c: refactor to reduce size of main function.
2100	    add -v option to always fully expand values.
2101	  o meta.c: ensure command output in meta file has ending newline
2102	    even when filemon not being used.
2103	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
2104	    pathname via ':L' since any ':' in pathname breaks that.
2105	    Instead set a '${.p.}' to pathname in the target context and
2106	    use that.
2107
21082017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2109
2110	* Makefile (_MAKE_VERSION): 20170510
2111	  Merge with NetBSD make, pick up
2112	  o main.c: Main_SetObjdir: ensure buf2 is in scope
2113
21142017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2115
2116	* Makefile (_MAKE_VERSION): 20170505
2117	  see mk/ChangeLog
2118
21192017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2120
2121	* parse.c: not everyone has stdint.h
2122
21232017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2124
2125	* Makefile (_MAKE_VERSION): 20170501
2126	  see mk/ChangeLog
2127
21282017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2129
2130	* Makefile (_MAKE_VERSION): 20170421
2131	  Merge with NetBSD make, pick up
2132	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
2133
21342017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2135
2136	* Makefile (_MAKE_VERSION): 20170420
2137	  Merge with NetBSD make, pick up
2138	  o main.c: only use -C arg "as is" if it contains no
2139	    relative component.
2140
21412017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2142
2143	* Makefile (_MAKE_VERSION): 20170418
2144	  Merge with NetBSD make, pick up
2145	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2146
21472017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2148
2149	* Makefile (_MAKE_VERSION): 20170417
2150	  Merge with NetBSD make, pick up
2151	  o fixes a number of coverity complaints
2152	    - check return value of fseek, fcntl
2153	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
2154	      JobPrintCommand, ParseTraditionalInclude
2155	    - use bmake_malloc() where NULL is not tollerated
2156	    - use MAKE_ATTR_UNUSED rather that kludges like
2157	      return(unused ? 0 : 0)
2158	    - use purge_cached_realpaths() rather than abuse cached_realpath()
2159
21602017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2161
2162	* Makefile (_MAKE_VERSION): 20170413
2163	  Merge with NetBSD make, pick up
2164	  o main.c: when setting .OBJDIR ignore '$' in paths.
2165
2166	* job.c: use MALLOC_OPTIONS to set malloc_options.
2167
21682017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2169
2170	* Makefile (_MAKE_VERSION): 20170411
2171	  Merge with NetBSD make, pick up
2172	  o str.c: Str_Match: allow [^a-z] to behave as expected.
2173
21742017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2175
2176	* Makefile (_MAKE_VERSION): 20170326
2177	  Merge with NetBSD make, pick up
2178	  o main.c: purge relative paths from realpath cache when .OBJDIR
2179	    is changed.
2180
21812017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2182
2183	* Makefile (_MAKE_VERSION): 20170311
2184	  Merge with NetBSD make, pick up
2185          o main.c: only use -C arg "as is" if it starts with '/'.
2186
21872017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2188
2189	* Makefile (_MAKE_VERSION): 20170301
2190	  Merge with NetBSD make, pick up
2191	  o main.c: use -C arg "as is" rather than getcwd()
2192	    if they identify the same directory.
2193	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
2194
21952017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2196
2197	* Makefile (_MAKE_VERSION): 20170201
2198	  Merge with NetBSD make, pick up
2199	  o var.c: allow :_=var and avoid use of special context.
2200
22012017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2202
2203	* Makefile (_MAKE_VERSION): 20170130
2204	  Merge with NetBSD make, pick up
2205	  o var.c: add :range and :_
2206	  o main.c: partially initialize Dir_* before MainParseArgs()
2207	    can be called.
2208	    If -V, skip Main_ExportMAKEFLAGS()
2209
22102017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2211
2212	* Makefile (_MAKE_VERSION): 20170114
2213	  Merge with NetBSD make, pick up
2214	  o var.c: allow specifying the utc value used by :{gm,local}time
2215
22162016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2217
2218	* Makefile (_MAKE_VERSION): 20161212
2219	  Merge with NetBSD make, pick up
2220          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2221
22222016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2223
2224	* Makefile (_MAKE_VERSION): 20161209
2225	  Merge with NetBSD make, pick up
2226	  o main.c: cleanup setting of .OBJDIR
2227	  o parse.c: avoid coredump from (var)=val
2228
22292016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2230
2231	* Makefile (_MAKE_VERSION): 20161126
2232	  Merge with NetBSD make, pick up
2233	  o make.c: Make_OODate: report src node name if path not set
2234
22352016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2236
2237	* Makefile (_MAKE_VERSION): 20160926
2238	  Merge with NetBSD make, pick up
2239	  o support for .DELETE_ON_ERROR: (remove targets that fail)
2240
22412016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2242
2243	* Makefile MAN: tweak .Dt to match ${PROG}
2244
22452016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2246
2247	* Makefile (_MAKE_VERSION): 20160818
2248	  its a neater number; pick up whitespace fixes to man page.
2249
22502016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2251
2252	* Makefile (_MAKE_VERSION): 20160817
2253	  Merge with NetBSD make, pick up
2254	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
2255	    so we can call it before adding entries to missingFiles.
2256	    Thus we do not track files we have been told to ignore.
2257
22582016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2259
2260	* Makefile (_MAKE_VERSION): 20160815
2261	  Merge with NetBSD make, pick up
2262	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
2263	    pathnames, and skip if the expansion is empty.
2264	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
2265
22662016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2267
2268	* Makefile (_MAKE_VERSION): 20160812
2269	  Merge with NetBSD make, pick up
2270	  o meta.c: remove all missingFiles entries that match a deleted
2271	    dir.
2272	  o main.c: set .ERROR_CMD if possible.
2273
22742016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2275
2276	* Makefile (_MAKE_VERSION): 20160606
2277	  Merge with NetBSD make, pick up
2278	  o dir.c: extend mtimes cache to others via cached_stat()
2279
22802016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2281
2282	* Makefile (_MAKE_VERSION): 20160604
2283	  Merge with NetBSD make, pick up
2284	  o meta.c: missing filemon data is only relevant if we read a
2285	    meta file.
2286	    Also do not return oodate for a missing metafile if gn->path
2287	    points to .CURDIR
2288
22892016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2290
2291	* Makefile (_MAKE_VERSION): 20160602
2292	  Merge with NetBSD make, pick up
2293	  o cached_realpath(): avoid hitting filesystem more than necessary.
2294	  o meta.c: refactor need_meta decision, add knobs for
2295	    missing meta file and filemon data wrt out-of-datedness.
2296
22972016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2298
2299	* Makefile (_MAKE_VERSION): 20160528
2300
2301	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2302
23032016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2304
2305	* Makefile (_MAKE_VERSION): 20160512
2306	  Merge with NetBSD make, pick up
2307	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
2308	    this is useful for gcov builds.
2309	  o propagate errors from filemon(4).
2310
23112016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2312
2313	* Makefile (_MAKE_VERSION): 20160509
2314	  Merge with NetBSD make, pick up
2315	  o remove use of non-standard types u_int etc.
2316	  o meta.c: apply realpath() before matching against metaIgnorePaths
2317
23182016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2319
2320	* Makefile (_MAKE_VERSION): 20160404
2321	  Merge with NetBSD make, pick up
2322	  o allow makefile to set .MAKE.JOBS
2323
2324	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
2325
23262016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2327
2328	* Makefile (_MAKE_VERSION): 20160315
2329	  Merge with NetBSD make, pick up
2330	  o fix handling of archive members
2331
23322016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2333
2334	* Makefile (_MAKE_VERSION): rename variable to avoid interference
2335	  with checks for ${MAKE_VERSION}
2336
23372016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2338
2339	* Makefile (MAKE_VERSION): 20160310
2340	  Merge with NetBSD make, pick up
2341	  o meta.c: treat missing Read file same as Write, incase we Delete it.
2342
23432016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2344
2345	* Makefile (MAKE_VERSION): 20160307
2346	  Merge with NetBSD make, pick up
2347	  o var.c: fix :ts\nnn to be octal by default.
2348	  o meta.c: meta_finish() to cleanup memory.
2349
23502016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2351
2352	* Makefile (MAKE_VERSION): 20160226
2353	  Merge with NetBSD make, pick up
2354	  o meta.c: allow meta file for makeDepend if makefiles want it.
2355
23562016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2357
2358	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
2359	  for backwards compatability.
2360
2361	* Makefile (MAKE_VERSION): 20160220
2362	  Merge with NetBSD make, pick up
2363	  o var.c: add knob to control handling of '$$' in :=
2364
23652016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2366
2367	* Makefile (MAKE_VERSION): 20160218
2368	  Merge with NetBSD make, pick up
2369	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
2370	    post the changes to Var_Subst.
2371	    Var_Subst now takes flags, and does not consume '$$' in :=
2372
23732016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2374
2375	* Makefile (MAKE_VERSION): 20160217
2376	  Merge with NetBSD make, pick up
2377	  o var.c: preserve '$$' in :=
2378	  o parse.c: add .dinclude for handling included
2379	    makefile like .depend
2380
23812015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2382
2383	* Makefile (MAKE_VERSION): 20151220
2384	  Merge with NetBSD make, pick up
2385	  o suff.c: re-initialize suffNull when clearing suffixes.
2386
23872015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2388
2389	* Makefile (MAKE_VERSION): 20151201
2390	  Merge with NetBSD make, pick up
2391	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
2392	  o meta.c: meta_oodate: use lstat(2) for checking link target
2393	    in case it is a symlink.
2394	  o var.c: avoid calling brk_string and Var_Export1 with empty
2395	    strings.
2396
23972015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2398
2399	* Makefile (MAKE_VERSION): 20151126
2400	  Merge with NetBSD make, pick up
2401	  o parse.c: ParseTrackInput don't access beyond
2402	    end of old value.
2403
24042015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2405
2406	* Makefile (MAKE_VERSION): 20151022
2407
2408	* Add support for BSD/OS which lacks inttypes.h
2409	  and really needs sys/param.h for sys/sysctl.h
2410	  also 'type' is not a shell builtin.
2411
2412	* var.c: eliminate uint32_t and need for inttypes.h
2413
2414	* main.c: PrintOnError flush stdout before run .ERROR
2415
2416	* parse.c: cope with _SC_PAGESIZE not being defined.
2417
2418
24192015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2420
2421	* Makefile (MAKE_VERSION): 20151020
2422	  Merge with NetBSD make, pick up
2423	  o var.c: fix uninitialized var
2424
24252015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2426
2427	* var.c: the conditional expressions used with ':?' can be
2428	expensive, if already discarding do not evaluate or expand
2429	anything.
2430
24312015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2432
2433	* Makefile (MAKE_VERSION): 20151010
2434	  Merge with NetBSD make, pick up
2435	  o Add Boolean wantit flag to Var_Subst and Var_Parse
2436	    when FALSE we know we are discarding the result and can
2437	    skip operations like Cmd_Exec.
2438
24392015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2440
2441	* Makefile (MAKE_VERSION): 20151009
2442	  Merge with NetBSD make, pick up
2443	  o var.c: don't check for NULL before free()
2444	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
2445
24462015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2447
2448	* Makefile (MAKE_VERSION): 20150910
2449	  Merge with NetBSD make, pick up
2450	  o main.c: with -w print Enter/Leaving messages for objdir too
2451	    if necessary.
2452	  o centralize shell metachar handling
2453
2454	* FILES: add metachar.[ch]
2455
24562015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2457
2458	* Makefile (MAKE_VERSION): 20150606
2459	  Merge with NetBSD make, pick up
2460	  o make.1: document .OBJDIR target
2461
24622015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2463
2464	* Makefile (MAKE_VERSION): 20150505
2465	  Merge with NetBSD make, pick up
2466	  o cond.c: be strict about lhs of comparison when evaluating .if
2467	    but less so when called from variable expansion.
2468	  o unit-tests/cond2.mk: test various error conditions
2469
24702015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2471
2472	* machine.sh (MACHINE): Add Bitrig
2473	  patch from joerg@netbsd.org
2474
24752015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2476
2477	* Makefile (MAKE_VERSION): 20150418
2478	  Merge with NetBSD make, pick up
2479	  o job.c: use memmove() rather than memcpy()
2480
2481	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2482	  case, so skip it.
2483
24842015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2485
2486	* Makefile (MAKE_VERSION): 20150411
2487	  bump version - only mk/ changes.
2488
24892015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2490
2491	* Makefile (MAKE_VERSION): 20150410
2492	  Merge with NetBSD make, pick up
2493	  o document different handling of '-' in jobs mode vs compat
2494	  o fix jobs mode so that '-' only applies to whole job
2495	    when shell lacks hasErrCtl
2496	  o meta.c: use separate vars to track lcwd and latestdir (read)
2497	    per process
2498
24992015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2500
2501	* Makefile (MAKE_VERSION): 20150401
2502	  Merge with NetBSD make, pick up
2503	  o meta.c: close meta file in child
2504
2505	* Makefile: use BINDIR.bmake if set.
2506	  Same for MANDIR and SHAREDIR
2507	  Handy for testing release candidates
2508	  in various environments.
2509
25102015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2511
2512	* move initialization of savederr to block where it is used
2513	  to avoid spurious warning from gcc5
2514
25152014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2516
2517	* Makefile (MAKE_VERSION): 20141111
2518	  just a cooler number
2519
25202014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2521
2522	* Makefile (MAKE_VERSION): 20141105
2523	  Merge with NetBSD make, pick up
2524	  o revert major overhaul of suffix handling
2525	    and POSIX compliance - too much breakage
2526	    and impossible to make backwards compatible.
2527	  o we still have the new unit test structure which is ok.
2528	  o meta.c ensure "-- filemon" is at start of line.
2529
25302014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2531
2532	* configure.in: test that result of getconf PATH_MAX is numeric
2533	  and discard if not.  Apparently needed for Hurd.
2534
25352014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2536
2537	* Makefile (MAKE_VERSION): 20140830
2538	  Merge with NetBSD make, pick up
2539	  o major overhaul of suffix handling
2540	  o improved POSIX compliance
2541	  o overhauled unit-tests
2542
25432014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2544
2545	* Makefile (MAKE_VERSION): 20140620
2546	  Merge with NetBSD make, pick up
2547	  o var.c return varNoError rather than var_Error for ::= modifiers.
2548
25492014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2550
2551	* Makefile (MAKE_VERSION): 20140522
2552	  Merge with NetBSD make, pick up
2553	  o var.c detect some parse errors.
2554
25552014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2556
2557	* Fix spelling errors - patch from Pedro Giffuni
2558
25592014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2560
2561	* Makefile (MAKE_VERSION): 20140214
2562	  Merge with NetBSD make, pick up
2563	  o .INCLUDEFROM*
2564	  o use Var_Value to get MAKEOBJDIR[PREFIX]
2565	  o reduced realloc'ign in brk_string.
2566	* configure.in: add a check for compiler supporting __func__
2567
25682014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2569
2570	* boot-strap: ignore mksrc=none
2571
25722014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2573
2574	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
2575
25762014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2577
2578	* Makefile (MAKE_VERSION): 20140101
2579	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
2580	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
2581	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
2582	  Hurd)
2583	* configure.in: Add AC_PREREQ and check for
2584	  sysctl; patch from Andrew Shadura andrewsh at debian.org
2585
25862013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2587
2588	* Makefile (MAKE_VERSION): 20131010
2589	* lose the const from arg to systcl to avoid problems on older BSDs.
2590
25912013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2592
2593	* Makefile (MAKE_VERSION): 20131001
2594	  Merge with NetBSD make, pick up
2595	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
2596	    hw.machine_arch if necessary.
2597	  o meta.c: meta_oodate - need to look at src of Link and target
2598	    of Move as well.
2599	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
2600	  provide __arraycount() if needed.
2601
26022013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2603
2604	* Makefile (MAKE_VERSION): 20130904
2605	  Merge with NetBSD make, pick up
2606	  o Add VAR_INTERNAL context, so that internal setting of
2607	    MAKEFILE does not override value set by makefiles.
2608
26092013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2610
2611	* Makefile (MAKE_VERSION): 20130902
2612	  Merge with NetBSD make, pick up
2613	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
2614
26152013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2616
2617	* Makefile (MAKE_VERSION): 20130828
2618	  Merge with NetBSD make, pick up
2619	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
2620	  o Call Job_SetPrefix() from Job_Init() so makefiles have
2621	    opportunity to set .MAKE.JOB.PREFIX
2622
26232013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2624
2625	* Makefile (MAKE_VERSION): 20130730
2626	  Merge with NetBSD make, pick up
2627	  o Allow suppression of --- job -- tokens by setting
2628	    .MAKE.JOB.PREFIX empty.
2629
26302013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2631
2632	* Makefile (MAKE_VERSION): 20130716
2633	  Merge with NetBSD make, pick up
2634	  o number of gmake compatibility tweaks
2635	    -w for gmake style entering/leaving messages
2636	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
2637	    handle MAKEFLAGS containing only letters.
2638	  o when overriding a GLOBAL variable on the command line,
2639	    delete it from GLOBAL context so -V doesn't show the wrong
2640	    value.
2641
26422013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2643
2644	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
2645
2646	* Makefile (MAKE_VERSION): 20130706
2647	  Merge with NetBSD make, pick up
2648	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
2649	    true so that CompatRunCommand() can use it, to ensure
2650	    consistent behavior with jobs mode.
2651	  o use MAKE_LEVEL_ENV to define the variable to propagate
2652	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
2653	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
2654	    paths to ignore.
2655
26562013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2657
2658	* Makefile (MAKE_VERSION): 20130604
2659	  Merge with NetBSD make, pick up
2660	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
2661	    to avoid leaking descriptors.
2662
26632013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2664
2665	* Makefile (MAKE_VERSION): 20130528
2666	  Merge with NetBSD make, pick up
2667	  o var.c: cleanup some left-overs in VarHash()
2668
26692013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2670
2671	* Makefile (MAKE_VERSION): 20130520
2672	  generate manifest from component FILES rather than have to
2673	  update FILES when mk/FILES changes.
2674
26752013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2676
2677	* Makefile (MAKE_VERSION): 20130518
2678	  Merge with NetBSD make, pick up
2679	  o suff.c: don't skip all processsing for .PHONY targets
2680	    else wildcard srcs do not get expanded.
2681	  o var.c: expand name of variable to delete if necessary.
2682
26832013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2684
2685	* Makefile (MAKE_VERSION): 20130330
2686	  Merge with NetBSD make, pick up
2687	  o meta.c: refine the handling of .OODATE in commands.
2688	    Rather than suppress command comparison for the entire script
2689	    as though .NOMETA_CMP had been used, only suppress it for the
2690	    one command line.
2691	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
2692	    suppress comparison of a command without otherwise affecting it.
2693	  o make.1: document that
2694
26952013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2696
2697	* Makefile (MAKE_VERSION): 20130321
2698	  yes, not quite right but its a cooler number.
2699	  Merge with NetBSD make, pick up
2700	  o parse.c: fix ParseGmakeExport to be portable
2701	    and add a unit-test.
2702	* meta.c: call meta_init() before makefiles are read and if built
2703	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
2704	  this let's makefiles test for support.
2705	  Call meta_mode_init() to process .MAKE.MODE.
2706
27072013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2708
2709	* Makefile (MAKE_VERSION): 20130305
2710	  Merge with NetBSD make, pick up
2711	  o run .STALE: target when a dependency from .depend is missing.
2712	  o job.c: add Job_RunTarget() for the above and .BEGIN
2713
27142013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2715
2716	* Makefile (MAKE_VERSION): 20130303
2717	  Merge with NetBSD make, pick up
2718	  o main.c: set .MAKE.OS to utsname.sysname
2719	  o job.c: more checks for read and poll errors
2720	  o var.c: lose VarChangeCase() saves 4% time
2721
27222013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2723
2724	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
2725	  want to use MAKEOBJDIR
2726
27272013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2728
2729	* Merge with NetBSD make, pick up
2730	  o make.1: more info on how shell commands are handled.
2731	  o job.c,main.c: detect write errors to job pipes.
2732
27332013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2734
2735	* Makefile (MAKE_VERSION): 20130123
2736	  Merge with NetBSD make, pick up
2737	  o meta.c: if script uses .OODATE and meta_oodate() decides
2738	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
2739	  o var.c: in debug output indicate which variabale modifiers
2740	    apply to.
2741	  o remove Check_Cwd logic the makefiles have been fixed.
2742
27432012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2744
2745	* makefile.in: add a simple makefile for folk who insist on
2746	  ./configure; make; make install
2747	  it just runs boot-strap
2748	* include mk/* to accommodate the above
2749	* boot-strap:  re-work to accommodate the above
2750	  mksrc defaults to $Mydir/mk
2751	  allow op={configure,build,install,clean,all}
2752	  add options to facilitate install
2753	* Makefile.config.in: just the bits set by configure
2754	* Makefile: bump version to 20121212
2755	  abandon Makefile.in (NetBSD Makefile)
2756	  leverage mk/* instead
2757	* configure.in: ensure srcdir is absolute
2758
27592012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2760
2761	* Makefile.in (MAKE_VERSION): 20121111
2762	  fix generation of bmake.cat1
2763
27642012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2765
2766	* Makefile.in (MAKE_VERSION): 20121109
2767	  Merge with NetBSD make, pick up
2768	  o make.c: MakeBuildChild: return 0 so search continues if a
2769	    .ORDER dependency is detected.
2770	  o unit-tests/order: test the above
2771
27722012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2773
2774	* Makefile.in (MAKE_VERSION): 20121102
2775	  Merge with NetBSD make, pick up
2776	  o cond.c: allow cond_state[] to grow.
2777	    In meta mode with a very large tree, we can hit the limit
2778	    while processing dirdeps.
2779
27802012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2781
2782	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2783
27842012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2785
2786	* Makefile.in (MAKE_VERSION): 20121010
2787	  o protect syntax that only bmake parses correctly.
2788	  o remove auto setting of FORCE_MACHINE, use configure's
2789	    --with-force-machine=whatever if that is desired.
2790
27912012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2792
2793	* Makefile.in: do not lose history from make.1 when generating bmake.1
2794
27952012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2796
2797	* Makefile.in (MAKE_VERSION): 20121007
2798	  Merge with NetBSD make, pick up
2799	  o compat.c: ignore empty commands - same as jobs mode.
2800	  o make.1: document meta chars that cause use of shell
2801
28022012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2803
2804	* Makefile.in (MAKE_VERSION): bump version to 20120911
2805	* bsd.after-import.mk: include Makefile.inc early and allow it to
2806	  override PROG
2807
28082012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
2809
2810	* Makefile.in (MAKE_VERSION): bump version to 20120831
2811	  Merge with NetBSD make, pick up
2812	  o cast sizeof() to int for comparison
2813	  o minor make.1 tweak
2814
28152012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2816
2817	* Makefile.in (MAKE_VERSION): bump version to 20120830
2818	  Merge with NetBSD make, pick up
2819	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
2820	  o debug flag -dV causes -V to show raw value regardless.
2821
28222012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2823
2824	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2825	  gets SRCTOP set.
2826
28272012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2828
2829	* Makefile.in (MAKE_VERSION): bump version to 20120704
2830	  Merge with NetBSD make, pick up
2831	  o Job_ParseShell should call Shell_Init if it has been
2832	    previously called.
2833	* Makefile.in: set USE_META based on configure result.
2834	  also .PARSEDIR is safer indicator of bmake.
2835
28362012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2837
2838	* Makefile.in: bump version to 20120626
2839	  ensure CPPFLAGS is in CFLAGS
2840	* meta.c: avoid nested externs
2841	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2842
28432012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2844
2845	* Makefile.in (MAKE_VERSION): bump version to 20120620
2846	  Merge with NetBSD make, pick up
2847	  o make_malloc.c: avoid including make_malloc.h again
2848
2849	* Makefile.in: avoid bmake only syntax or protect with
2850	  .if defined(.MAKE.LEVEL)
2851	* bsd.after-import.mk: replace .-include with .sinclude
2852	  ensure? SRCTOP gets a value
2853	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
2854
28552012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2856
2857	* Makefile.in (MAKE_VERSION): bump version to 20120612
2858	  Merge with NetBSD make, pick up
2859	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
2860	    for greater portability.
2861	  o unit-tests/forloop: check that .for works as expected wrt
2862	    number of times and with "quoted strings".
2863
28642012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2865
2866	* Makefile.in (MAKE_VERSION): bump version to 20120606
2867	  Merge with NetBSD make, pick up
2868	  o compat.c: use kill(2) rather than raise(3).
2869	* configure.in: look for sys/dev/filemon
2870	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
2871	  and pass BOOTSTRAP_XTRAS to boot-strap.
2872
28732012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2874
2875	* Makefile.in (MAKE_VERSION): bump version to 20120604
2876	  Merge with NetBSD make, pick up
2877	  o util.c and var.c share same var for tracking if environ
2878	    has been reallocated.
2879	  o util.c provide getenv with setenv.
2880	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
2881	  when the shell actively strips .MAKE.* from the environment.
2882	  We still refer to the variable always as .MAKE.LEVEL
2883	* util.c fix bug in findenv() was finding prefix of name.
2884	* compat.c: re-raising SIGINT etc after running .INTERRUPT
2885	  results in more reliable termination of all activity on many
2886	  platforms.
2887
28882012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2889
2890	* Makefile.in (MAKE_VERSION): bump version to 20120602
2891	  Merge with NetBSD make, pick up
2892	  o for.c: handle quoted items in .for list
2893
28942012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2895
2896	* Makefile.in (MAKE_VERSION): bump version to 20120530
2897	  Merge with NetBSD make, pick up
2898	  o compat.c: ignore empty command.
2899
29002012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2901
2902	* Makefile.in (MAKE_VERSION): bump version to 20120524
2903	* FILES: add bsd.after-import.mk:
2904	  A simple means of integrating bmake into a BSD build system.
2905
29062012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2907
2908	* Makefile.in (MAKE_VERSION): bump version to 20120520
2909	  Merge with NetBSD make, pick up
2910	  o increased limit for nested conditionals.
2911
29122012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2913
2914	* Makefile.in (MAKE_VERSION): bump version to 20120518
2915	  Merge with NetBSD make, pick up
2916	  o use _exit(2) in signal hanlder
2917	  o Don't use the [dir] cache when building nodes that might have
2918	    changed since the last exec.
2919	  o Avoid nested extern declaration warnings.
2920
29212012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2922
2923	* meta.c (fgetLine): avoid %z - not portable.
2924	* parse.c: Since we moved include of sys/mman.h
2925	  and def's of MAP_COPY etc. we got dups from a merge.
2926
29272012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2928
2929	* Makefile.in (MAKE_VERSION): bump version to 20120420
2930	  Merge with NetBSD make, pick up
2931	  o restore duplicate supression in .MAKE.MAKEFILES
2932	    runtime saving can be significant.
2933	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2934	    consumption up to 20%.
2935
29362012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2937
2938	* Makefile.in (MAKE_VERSION): bump version to 20120420
2939          Merge with NetBSD make, pick up
2940	  o remove duplicate supression in .MAKE.MAKEFILES
2941	  o improved dir cache behavior
2942	  o gmake'ish export command
2943
29442012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2945
2946	* Makefile.in (MAKE_VERSION): bump version to 20120325
2947	  Merge with NetBSD make, pick up
2948	  o fix parsing of :[#] in conditionals.
2949
29502012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2951
2952	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2953	  since some systems cannot cope with .Nx <version>
2954
29552011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2956
2957	* Makefile.in (MAKE_VERSION): bump version to 20111111
2958	  Merge with NetBSD make, pick up
2959	  o debug output for .PARSEDIR and .PARSEFILE
2960
29612011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2962
2963	* Makefile.in (MAKE_VERSION):  bump version to 20111010
2964
29652011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2966
2967	* boot-strap: check for an expected file in the dirs we look for.
2968	* make-bootstrap.sh: pass on LDSTATIC
2969
29702011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2971
2972	* Makefile.in (MAKE_VERSION): bump version to 20111001
2973	  Merge with NetBSD make, pick up
2974	  o ensure .PREFIX is set for .PHONY
2975	    and .TARGET set for .PHONY run via .END
2976	  o __dead used consistently
2977
29782011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2979
2980	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2981
29822011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2983
2984	* Makefile.in (MAKE_VERSION): bump version to 20110905
2985	  Merge with NetBSD make, pick up
2986	  o meta_oodate: ignore makeDependfile
2987
29882011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2989
2990	* Makefile.in (MAKE_VERSION): bump version to 20110828
2991	  Merge with NetBSD make, pick up
2992	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
2993	    as SILENT if a .meta file is created
2994
29952011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2996
2997	* Makefile.in (MAKE_VERSION): bump version to 20110818
2998	  Merge with NetBSD make, pick up
2999	  o in meta mode, if target flagged .META a missing .meta file
3000	    means target is out-of-date
3001	  o fixes for gcc 4.5 warnings
3002	  o simplify job printing code
3003
30042011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3005
3006	* Makefile.in (MAKE_VERSION): bump version to 20110808
3007	  Merge with NetBSD make, pick up
3008	  o do not touch OP_SPECIAL targets when doing make -t
3009
30102011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3011
3012	* Makefile.in (MAKE_VERSION): bump version to 20110622
3013	  Merge with NetBSD make, pick up
3014	  o meta_oodate detect corrupted .meta file and declare oodate.
3015	* configure.in: add check for setsid
3016
30172011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3018
3019	* Merge with NetBSD make, pick up
3020	  o unit-tests/modts now works on MirBSD
3021
30222011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3023
3024	* Makefile.in (MAKE_VERSION): bump version to 20110606
3025	  Merge with NetBSD make, pick up
3026	  o ApplyModifiers: when we parse a variable which is not
3027	    the entire modifier string, or not followed by ':', do not
3028	    consider it as containing modifiers.
3029	  o loadfile: ensure newline at end of mapped file.
3030
30312011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3032
3033	* Makefile.in (MAKE_VERSION): bump version to 20110505
3034	  Merge with NetBSD make, pick up
3035	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
3036	    of make's control.  In meta mode, any generated file within
3037	    said bailiwick, which  is found to be missing, causes current
3038	    target to be out-of-date.
3039
30402011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3041
3042	* Makefile.in (MAKE_VERSION): bump version to 20110411
3043	  Merge with NetBSD make, pick up
3044	  o when long modifiers fail to match, check sysV style.
3045	    - add a test case
3046
30472011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3048
3049	* Makefile.in (MAKE_VERSION): bump version to 20110410
3050	  Merge with NetBSD make, pick up
3051	  o :hash - cheap 32bit hash of value
3052	  o :localtime, :gmtime - use value as format string for strftime.
3053
30542011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3055
3056	* Makefile.in (MAKE_VERSION): bump version to 20110330
3057	  mostly because its a cooler version.
3058	  Merge with NetBSD make, pick up
3059	  o NetBSD tags for meta.[ch]
3060	  o job.c call meta_job_finish() after meta_job_error().
3061	  o meta_job_error() should call meta_job_finish() to ensure
3062	    .meta file is closed, and safe to copy - if .ERROR target wants.
3063	   meta_job_finish() is safe to call repeatedly.
3064
30652011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
3066
3067	* unit-tests/modts: use printf if it is a builtin,
3068	  to save us from MirBSD
3069
3070	* Makefile.in (MAKE_VERSION): bump version to 20110329
3071	  Merge with NetBSD make, pick up
3072	  o fix for use after free() in CondDoExists().
3073	  o meta_oodate() report extra commands and return earlier.
3074
30752011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3076
3077	* Makefile.in (MAKE_VERSION): bump version to 20110327
3078	  Merge with NetBSD make, pick up
3079	  o meta.c, if .MAKE.MODE contains curdirOk=yes
3080	    allow creating .meta files in .CURDIR
3081	* boot-strap (TOOL_DIFF): aparently at least on linux distro
3082	  formats the output of 'type' differently - so eat any "()"
3083
30842011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3085
3086	* Makefile.in (MAKE_VERSION): bump version to 20110306
3087	  Merge with NetBSD make, pick up
3088	  o meta.c, only do getcwd() once
3089
30902011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3091
3092	* Makefile.in (MAKE_VERSION): bump version to 20110305
3093	  Merge with NetBSD make, pick up
3094	  o correct sysV substitution handling of empty lhs and variable
3095	  o correct exists() check for dir with trailing /
3096	  o correct handling of modifiers for non-existant variables
3097	    during evaluation of conditionals.
3098	  o ensure MAP_FILE is defined.
3099	  o meta.c use curdir[] now exported by main.c
3100
31012011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3102
3103	* Makefile.in (MAKE_VERSION): bump version to 20110225
3104	  Merge with NetBSD make, pick up
3105	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
3106	    makefiles have been read.
3107	  o fix example of :? modifier in man page.
3108
31092011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3110
3111	* Makefile.in (MAKE_VERSION): bump version to 20110214
3112	  Merge with NetBSD make, pick up
3113	  o meta.c handle realpath() failing when generating meta file
3114	    name.
3115
3116	* sigcompat.c: convert to ansi so we can use higher warning levels.
3117
3118
31192011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3120
3121	* Makefile.in (MAKE_VERSION): bump version to 20110207
3122	  Merge with NetBSD make, pick up
3123	  o fix for bug in meta mode.
3124
31252011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3126
3127	* parse.c: SunOS 5.8 at least does not have MAP_FILE
3128
31292011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3130
3131	* Makefile.in (MAKE_VERSION): bump version to 20110101
3132	  Merge with NetBSD make, pick up
3133	  o use mmap(2) if available, for reading makefiles
3134
31352010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3136
3137	* Makefile.in (MAKE_VERSION): bump version to 20101215
3138	  Merge with NetBSD make, pick up
3139	  o ensure meta_job_error() does not report a previous .meta file
3140	    as being culprit.
3141
31422010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3143
3144	* Makefile.in (MAKE_VERSION): bump version to 20101210
3145	  Merge with NetBSD make, pick up
3146	  o meta_oodate: track cwd per process, and only consider target
3147	    out-of-date if missing file is outside make's CWD.
3148	    Ignore files in /tmp/ etc.
3149	  o to ensure unit-tests results match, need to control LC_ALL
3150	    as well as LANG.
3151	  o fix for parsing bug in var.c
3152
31532010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3154
3155	* Makefile.in (MAKE_VERSION): bump version to 20101126
3156	  Merge with NetBSD make, pick up
3157	  o if stale dependency is an IMPSRC, search via .PATH
3158	  o meta_oodate: if a referenced file is missing, target is
3159	    out-of-date.
3160	  o meta_oodate: if a target uses .OODATE in its commands,
3161	    it (.OODATE) needs to be recomputed.
3162	  o keep a pointer to youngest child node, rather than just its
3163	    mtime.
3164
31652010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3166
3167	* Makefile.in (MAKE_VERSION): bump version to 20101101
3168
31692010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3170
3171	* machine.sh: like os.sh,
3172	allow for uname -p producing useless drivel
3173
31742010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3175
3176	* boot-strap: document configure knobs for meta and filemon.
3177
3178	* Makefile.in (MAKE_VERSION): bump version to 20100911
3179	  Merge with NetBSD make, pick up
3180	  o meta.c - meta mode
3181
3182	* make-bootstrap.sh.in: handle meta.c
3183	* configure.in: add knobs for use_meta and filemon_h
3184	  also, look for dirname, str[e]sep and strlcpy
3185	* util.c: add simple err[x] and warn[x]
3186
31872010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3188
3189	* boot-strap (TOOL_DIFF): set this to ensure tests use
3190	  the same version of diff that configure tested
3191
3192	* Makefile.in (MAKE_VERSION): bump version to 20100808
3193	  Merge with NetBSD make, pick up
3194	  o in jobs mode, when we discover we cannot make something,
3195	    call PrintOnError before exit.
3196
31972010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3198
3199	* Makefile.in (MAKE_VERSION): bump version to 20100806
3200	  Merge with NetBSD make, pick up
3201	  o formatting fixes for ignored errors
3202	  o ensure jobs are cleaned up regardless of where wait() was called.
3203
32042010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3205
3206	* Makefile.in (MAKE_VERSION): bump version to 20100618
3207	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3208
32092010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3210
3211	* Makefile.in (MAKE_VERSION): bump version to 20100616
3212	  Merge with NetBSD make, pick up
3213	  o man page update
3214	  o call PrintOnError from JobFinish when we detect an error we
3215	    are not ignoring.
3216
32172010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3218
3219	* Makefile.in (MAKE_VERSION): bump version to 20100606
3220	  Merge with NetBSD make, pick up
3221	  o man page update
3222
32232010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3224
3225	* Makefile.in (MAKE_VERSION): bump version to 20100605
3226	  Merge with NetBSD make, pick up
3227	  o use bmake_signal() which is a wrapper around sigaction()
3228	    in place of signal()
3229	  o add .export-env to allow exporting variables to environment
3230	    without tracking (so no re-export when the internal value is
3231	    changed).
3232
32332010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3234
3235	* Makefile.in (MAKE_VERSION): bump version to 20100524
3236	  Merge with NetBSD make, pick up
3237	  o fix for .info et al being greedy.
3238
32392010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3240
3241	* Makefile.in (MAKE_VERSION): bump version to 20100520
3242	  Merge with NetBSD make, pick up
3243	  o back to using realpath on argv[0]
3244	    but only if contains '/' and does not start with '/'.
3245
32462010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3247
3248	* boot-strap: use absolute path for bmake when running tests.
3249
3250	* Makefile.in (MAKE_VERSION):  bump version to 20100510
3251	  Merge with NetBSD make, pick up
3252	  o revert use of realpath on argv[0]
3253	    too many corner cases.
3254	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
3255
32562010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3257
3258	* Makefile.in (MAKE_VERSION): bump version to 20100505
3259	  Merge with NetBSD make, pick up
3260	  o fix for missed SIGCHLD when compiled with SunPRO
3261	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
3262	    done the job.
3263
32642010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3265
3266	* Makefile.in (MAKE_VERSION): bump version to 20100430
3267	  Merge with NetBSD make, pick up
3268	  o fflush stdout before writing to stdout
3269
32702010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3271
3272	* Makefile.in (MAKE_VERSION): bump version to 20100423
3273	  Merge with NetBSD make, pick up
3274	  o updated unit tests for Haiku (this time for sure).
3275	* boot-strap: based on patch from joerg
3276	  honor --with-default-sys-path better.
3277	* boot-strap: remove mention of --with-prefix-sys-path
3278
32792010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3280
3281	* Makefile.in (MAKE_VERSION): bump version to 20100422
3282	* Merge with NetBSD make, pick up
3283	  o fix for vfork() on Darwin.
3284	  o fix for bogus $TMPDIR.
3285	  o set .MAKE.MODE=compat for -B
3286	  o set .MAKE.JOBS=max_jobs for -j max_jobs
3287	  o allow unit-tests to run without any *.mk
3288	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
3289	* boot-strap: ignore /usr/share/mk except on NetBSD.
3290	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
3291	  ensure sort(1) behaves as expected.
3292
32932010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3294
3295	* boot-strap: add FindHereOrAbove so we can use -m .../mk
3296
32972010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3298
3299	* Makefile.in (MAKE_VERSION): bump version to 20100420
3300	* Merge with NetBSD make, pick up
3301	  o fix for variable realpath() behavior.
3302	    we have to stat(2) the result to be sure.
3303	  o fix for .export (all) when nested vars use :sh
3304
33052010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3306
3307	* Makefile.in (MAKE_VERSION): bump version to 20100414
3308	* Merge with NetBSD make, pick up
3309	  o use realpath to resolve argv[0] (for .MAKE) if needed.
3310	  o add realpath from libc.
3311	  o add :tA to resolve variable via realpath(3) if possible.
3312
33132010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3314
3315	* Makefile.in (MAKE_VERSION): bump version to 20100408
3316	* Merge with NetBSD make, pick up
3317	  o unit tests for .ERROR, .error
3318	  o fix for .ERROR to ensure it cannot be default target.
3319
33202010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3321
3322	* Makefile.in (MAKE_VERSION): bump version to 20100406
3323	* Merge with NetBSD make, pick up
3324	  o fix for compat mode "Error code" going to debug_file.
3325	  o fix for .ALLSRC being populated twice.
3326	  o support for .info, .warning and .error directives
3327	  o .MAKE.MODE to control make's operational mode
3328	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
3329	    name(s).
3330	  o .MAKE.DEPENDFILE to control the name of the depend file
3331	  o .ERROR target - run on failure.
3332
33332010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3334
3335	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3336
3337	* os.sh,arch.c: patch for Haiku from joerg at netbsd
3338
33392010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3340
3341	* Makefile.in (MAKE_VERSION): bump version to 20100222
3342	* Merge with NetBSD make, pick up
3343	  o better error msg for .for with mutiple inter vars
3344
3345	* boot-strap:
3346	  o use make-bootstrap.sh from joerg at netbsd
3347	    to avoid the need for a native make when bootstrapping.
3348	  o add "" everywhere ;-)
3349	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
3350	    otherwise the pre-formated version.
3351
33522010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3353
3354	* Makefile.in (MAKE_VERSION): bump version to 20100102
3355	* Merge with NetBSD make, pick up:
3356	  o fix for -m .../
3357
33582009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
3359
3360	* Makefile.in (MAKE_VERSION): bump version to 20091118
3361	* Merge with NetBSD make, pick up:
3362	  o .unexport
3363	  o report lines that start with '.' and should have ':'
3364	    (catch typo's of .el*if).
3365
33662009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3367
3368	* configure.in: Ensure that srcdir and mksrc are absolute paths.
3369
33702009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3371
3372	* Makefile.in (MAKE_VERSION): fix version to 20091007
3373
33742009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
3375
3376	* Makefile.in (MAKE_VERSION): bump version to 200910007
3377	* Merge with NetBSD make, pick up:
3378	  o fix for parsing of :S;...;...; applied to .for loop iterator
3379	    appearing in a dependency line.
3380
33812009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3382
3383	* Makefile.in (MAKE_VERSION): bump version to 20090909
3384	* Merge with NetBSD make, pick up:
3385	  o fix for -C, .CURDIR and .OBJDIR
3386	* boot-strap:
3387	  o allow share_dir to be set independent of prefix.
3388	  o select default share_dir better when prefix ends in $HOST_TARGET
3389	  o if FORCE_BSD_MK etc were set, include them in the suggested
3390	    install-mk command.
3391
33922009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
3393
3394	* Makefile.in (MAKE_VERSION): bump version to 20090908
3395	* Merge with NetBSD make, pick up:
3396	  o .MAKE.LEVEL for recursion tracking
3397	  o fix for :M scanning \:
3398
33992009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3400
3401	* configure.in: Don't -D__EXTENSIONS__ if
3402	AC_USE_SYSTEM_EXTENSIONS says "no".
3403
34042009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
3405
3406	* Makefile.in (MAKE_VERSION): bump version to 20090826
3407	Simplify MAKE_VERSION to just the bare date.
3408	* Merge with NetBSD make, pick up:
3409	  o -C directory support.
3410	  o support for SIGINFO
3411	  o use $TMPDIR for temp files.
3412	  o child of vfork should be careful about modifying parent's state.
3413
3414
34152009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
3416
3417	* Appy some patches for MiNT from David Brownlee
3418
34192009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
3420
3421	* Makefile.in (BMAKE_VERSION): bump version to 20090222
3422	* Merge with NetBSD make, pick up:
3423	  o Possible null pointer de-ref in Var_Set.
3424
34252009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
3426
3427	* Makefile.in (BMAKE_VERSION): bump version to 20090204
3428	* Merge with NetBSD make, pick up:
3429	  o bmake_malloc et al moved to their own .c
3430	  o Count both () and {} when looking for the end of a :M pattern
3431	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
3432	  o strlist.c - functions for processing extendable arrays of pointers to strings.
3433	  o ClientData replaced with void *, so const void * can be used.
3434	  o New debug flag C for DEBUG_CWD
3435
34362008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
3437
3438	* Makefile.in (BMAKE_VERSION): bump version to 20081111
3439	  Apply patch from Joerg Sonnenberge to
3440	  configure.in:
3441	  o remove some redundant checks
3442	  o check for emlloc etc only in libutil and require the whole family.
3443	  util.c:
3444	  o remove [v]asprintf which is no longer used.
3445
34462008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3447
3448	* Makefile.in (BMAKE_VERSION): bump version to 20081101
3449	* Merge with NetBSD make, pick up:
3450	  o util.c: avoid use of putenv() - christos
3451
34522008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3453
3454	* Makefile.in (BMAKE_VERSION): bump version to 20081030
3455	  pick up man page tweaks.
3456
34572008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
3458
3459	* Makefile.in: move processing of LIBOBJS to after is definition!
3460	  thus we'll have getenv.c in SRCS only if needed.
3461
3462	* make.1: add examples of how to use :?
3463
3464	* Makefile.in (BMAKE_VERSION): bump version to 20081029
3465	* Merge with NetBSD make, pick up:
3466	  o fix for .END processing with -j
3467	  o segfault from Parse_Error when no makefile is open
3468	  o handle numeric expressions in any variable expansion
3469	  o debug output now defaults to stderr, -dF to change it - apb
3470	  o make now uses bmake_malloc etc so that it can build natively
3471	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
3472
34732008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
3474
3475	* Makefile.in (BMAKE_VERSION): bump version to 20080808
3476	* Merge with NetBSD make, pick up:
3477	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
3478	    long lines in Makefiles
3479	  o optimizations for VarQuote by joerg
3480	  o fix for PR/38756: dominik: make dumps core on invalid makefile
3481
34822008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
3483
3484	* Makefile.in (BMAKE_VERSION): bump version to 20080515
3485	* Merge with NetBSD make, pick up:
3486	  o fix skip setting vars in VAR_GLOBAL context, to handle
3487	    cases where VAR_CMD is used for other than command line vars.
3488
34892008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
3490
3491	* boot-strap (make_version): we may need to look in
3492	$prefix/share/mk for sys.mk
3493
3494	* Makefile.in (BMAKE_VERSION): bump version to 20080514
3495	* Merge with NetBSD make, pick up:
3496	  o skip setting vars in VAR_GLOBAL context, when already set in
3497	  VAR_CMD which takes precedence.
3498
34992008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
3500
3501	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
3502	* Merge with NetBSD make, pick up:
3503	  o fix for ?= when LHS contains variable reference.
3504
35052008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3506
3507	* merge some patches from NetBSD pkgsrc.
3508
3509	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3510	the MAKSYSPATH used during bootstrap.
3511
3512	* Makefile.in (BMAKE_VERSION): bump version to 20080215
3513	* Merge with NetBSD make, pick up:
3514	  o warn if non-space chars follow 'empty' in a conditional.
3515
35162008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3517
3518	* Makefile.in (BMAKE_VERSION): bump version to 20080118
3519	* Merge with NetBSD make, pick up:
3520	  o consider dependencies read from .depend as optional - dsl
3521	  o remember when buffer for reading makefile grows - dsl
3522	  o add -dl (aka LOUD) - David O'Brien
3523
35242007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
3525
3526	* Makefile.in (BMAKE_VERSION): bump version to 20071022
3527	* Merge with NetBSD make, pick up:
3528	  o Allow .PATH<suffix> to be used for .include ""
3529
3530	* boot-strap: source default settings from .bmake-boot-strap.rc
3531
35322007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
3533
3534	* Makefile.in: fix maninstall on various systems
3535	  provided that our man.mk is used.
3536	  For non-BSD systems we install the preformatted page
3537	  into $MANDIR/cat1
3538
35392007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
3540
3541	* boot-strap: make bmake.1 too, so maninstall works.
3542
35432007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
3544
3545	* Makefile.in (BMAKE_VERSION): bump version to 20071014
3546	* Merge with NetBSD make, pick up:
3547	  o revamped handling of defshell - configure no longer needs to
3548	    know the content of the shells array - apb
3549	  o stop Var_Subst modifying its input - apb
3550	  o avoid calling ParseTrackInput too often - dsl
3551
35522007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
3553
3554	* Makefile.in (BMAKE_VERSION): bump version to 20071011
3555	* Merge with NetBSD make, pick up:
3556	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
3557
3558	* sigcompat.c: some tweaks for HP-UX 11.x based on
3559	  patch from Tobias Nygren
3560
3561	* configure.in: update handling of --with-defshell to match
3562	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
3563	  will now do what one might hope - provided the chosen shell
3564	  behaves enough like sh.
3565
35662007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
3567
3568	* Makefile.in (BMAKE_VERSION): bump to 20071008
3569	* Merge with NetBSD make, pick up:
3570	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
3571	  o .export/.MAKE.EXPORTED - export of variables - sjg
3572	  o .MAKE.MAKEFILES - track all makefiles read - sjg
3573	  o performance improvements - dsl
3574	  o revamp parallel job scheduling - dsl
3575
35762006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3577
3578	* Makefile.in (BMAKE_VERSION): bump to 20060728
3579	* Merge with NetBSD make, pick up:
3580	  o extra debug info during variable and cond processing - sjg
3581	  o shell definition now covers newline - rillig
3582	  o minor mem leak in PrintOnError - sjg
3583
35842006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3585
3586	* Makefile.in (BMAKE_VERSION):  bump to 20060511
3587	* Merge with NetBSD make, pick up:
3588	  o more memory leaks - coverity
3589	  o possible overflow in ArchFindMember - coverity
3590	  o extract variable modifier code out of Var_Parse()
3591	    so it can be called recursively - sjg
3592	  o unit-tests/moderrs - sjg
3593
35942006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
3595
3596	* Makefile.in (BMAKE_VERSION): bump to 20060412
3597	* Merge with NetBSD make, pick up:
3598	  o fixes for some memory leaks - coverity
3599	  o only read first sys.mk etc when searching sysIncPath - sjg
3600
3601	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
3602	setting ${MAKEFILE} - OBATA Akio
3603
36042006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
3605
3606	* Makefile.in (BMAKE_VERSION): bump to 20060318
3607	* Merge with NetBSD make, pick up:
3608	  o cleanup of job.c to remove remote handling, distcc is more
3609	    useful and this code was likely bit-rotting - dsl
3610	  o fix for :P modifier - sjg
3611	* boot-strap: set default prefix to something reasonable
3612	  (for me anyway).
3613
36142006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
3615
3616	* Makefile.in (BMAKE_VERSION): bump to 20060301
3617	* Merge with NetBSD make, pick up:
3618	  o make .WAIT apply recursively, document and test case - apb
3619	  o allow variable modifiers in a variable appear anywhere in
3620	    modifier list, document and test case - sjg
3621
36222006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
3623
3624	* Makefile.in (BMAKE_VERSION): bump to 20060222
3625	* Merge with NetBSD make, pick up:
3626	  o improved job token handling - dsl
3627	  o SIG_DFL the correct signal before exec - dsl
3628	  o more debug info during parsing - dsl
3629	  o allow variable modifiers to be specified via variable - sjg
3630	* boot-strap: explain why we died if no mksrc
3631
36322005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
3633
3634	* Makefile.in (BMAKE_VERSION): bump to 20051105
3635	* configure.in: always set default_sys_path
3636	  default is ${prefix}/share/mk
3637	  - remove prefix_sys_path, anyone wanting more than above
3638	    needs to set it manually.
3639
36402005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3641
3642	* boot-strap: make this a bit easier for pkgsrc folk.
3643	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
3644	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
3645
36462005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
3647
3648	* Makefile.in (BMAKE_VERSION): bump to 20051102
3649	* job.c (JobFinish): fix likely ancient merge lossage
3650	fix from Todd Vierling.
3651	* boot-strap (srcdir): allow setting mksrc=none
3652
36532005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
3654
3655	* Makefile.in (BMAKE_VERSION): bump to 20051031
3656	* ranlib.h: skip on OSF too.
3657	  (NetBSD PR 31864)
3658
36592005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
3660
3661	* Makefile.in (BMAKE_VERSION): bump to 20051002
3662	  fix a silly typo
3663
36642005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3665
3666	* Makefile.in (BMAKE_VERSION): bump to 20051001
3667	  support for UnixWare and some other systems,
3668	  based on patches from pkgsrc/bootstrap
3669
36702005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3671
3672	* Makefile.in (BMAKE_VERSION): bump to 20050901
3673	* Merge with NetBSD make, pick up:
3674	  o possible parse error causing us to wander off.
3675
36762005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
3677
3678	* Makefile.in (BMAKE_VERSION): bump to 20050606
3679	* Merge with NetBSD make, pick up:
3680	  o :0x modifier for randomizing a list
3681	  o fixes for a number of -Wuninitialized issues.
3682
36832005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
3684
3685	* Makefile.in (BMAKE_VERSION): bump to 20050530
3686	* Merge with NetBSD make, pick up:
3687	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
3688
3689	* README: was seriously out of date.
3690
36912005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
3692
3693	* Important to use .MAKE rather than MAKE.
3694
36952005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
3696
3697	* Makefile.in (BMAKE_VERSION): bump to 20050315
3698	* Merge with NetBSD make, pick up:
3699	  o don't mistake .elsefoo for .else
3700	  o use suffix-specific search path correctly
3701	  o bunch of style nits
3702
37032004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3704
3705	* boot-strap:
3706	o ensure that args to --src and --with-mksrc
3707	  are resolved before giving them to configure.
3708	o add -o "objdir" so that builder can control it,
3709	  default is $OS as determined by os.sh
3710	o add -q to suppress all the install instructions.
3711
37122004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
3713
3714	* Remove __IDSTRING()
3715
3716	* Makefile.in (BMAKE_VERSION): bump to 20040508
3717	* Merge with NetBSD make, pick up:
3718	  o posix fixes
3719	    - remove '-e' from compat mode
3720	    - add support for '+' command-line prefix.
3721	  o fix for handling '--' on command-line.
3722	  o fix include in lst.lib/lstInt.h to simplify '-I's
3723	  o we also picked up replacement of MAKE_BOOTSTRAP
3724	    with !MAKE_NATIVE which is a noop, but possibly confusing.
3725
37262004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
3727
3728	* Makefile.in (BMAKE_VERSION): bump to 20040414
3729	* Merge with NetBSD make, pick up:
3730	  o allow quoted strings on lhs of conditionals
3731	  o issue warning when extra .else is seen
3732	  o print line numer when errors encountered during parsing from
3733	  string.
3734
37352004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
3736
3737	* Makefile.in (BMAKE_VERSION):  bump to 20040220
3738	* Merge with NetBSD make, pick up:
3739	  o fix for old :M parsing bug.
3740	  o re-jigged unit-tests
3741
37422004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3743
3744	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
3745	so that './bmake -f Makefile test' works.
3746
37472004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
3748
3749	* Makefile.in: (BMAKE_VERSION): bump to 20040214
3750	* Merge with NetBSD make, pick up:
3751	  o search upwards for *.mk
3752	  o fix for double free of var substitution buffers
3753	  o use of getopt replaced with custom code, since the usage
3754	  (re-scanning) isn't posix compatible.
3755
37562004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
3757
3758	* arch.c: don't include ranlib.h on ELF systems
3759	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
3760
37612004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3762
3763	* Makefile.in (BMAKE_VERSION): bump to 20040118
3764
3765	* boot-strap (while): export vars we assign to on cmdline
3766	* unit-test/Makefile.in: ternary is .PHONY
3767
37682004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
3769
3770	* Makefile.in (BMAKE_VERSION): bump version to 20040108
3771	* Merge with NetBSD make, pick up:
3772	  o fix for ternary modifier
3773
37742004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
3775
3776	* Makefile.in (BMAKE_VERSION): bump version to 20040105
3777	* Merge with NetBSD make, pick up:
3778	  o fix for cond.c to handle compound expressions better
3779	  o variable expansion within sysV style replacements
3780
37812003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
3782
3783	* Make portable snprintf safer - output to /dev/null first to
3784	check space needed.
3785
3786	* Makefile.in (BMAKE_VERSION): bump version to 20031222
3787	* Merge with NetBSD make, pick up:
3788	  o -dg3 to show input graph when things go wrong.
3789	  o explicitly look for makefiles in objdir if not found in curdir so
3790	    that errors in .depend etc will be reported accurarely.
3791	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
3792	    instead as it more accurately reflects the expected behavior and
3793	    is more consistently implemented.
3794	  o avoid use of asprintf.
3795
37962003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
3797
3798	* util.c: Add asprintf and vasprintf.
3799
3800	* Makefile.in (BMAKE_VERSION): bump version to 20030928
3801	* Merge with NetBSD make, pick up:
3802	:[] modifier - allows picking words from a variable.
3803	:tW modifier - allows treating value as one big word.
3804	W flag for :C and :S - allows treating value as one big word.
3805
38062003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
3807
3808	* Merge with NetBSD make
3809	pick up -de flag to enable printing failed command.
3810	don't skip 1st two dir entries (normally . and ..) since
3811	coda does not have them.
3812
38132003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3814
3815	* Makefile.in (BMAKE_VERSION): bump version to 20030909
3816	* Merge with NetBSD make, pick up:
3817	- changes for -V '${VAR}' to print fully expanded value
3818	  cf. -V VAR
3819	- CompatRunCommand now prints the command that failed.
3820	- several files got updated 3 clause Berkeley license.
3821
38222003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
3823
3824	* boot-strap: Allow setting configure args on command line.
3825
38262003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
3827
3828	* configure.in: add --with-defshell to allow sh or ksh
3829	to be selected as default shell.
3830
3831	* Makefile.in: bump version to 20030731
3832
3833	* Merge with NetBSD make
3834	Pick up .SHELL spec for ksh and associate man page changes.
3835	Also compat mode now uses the same shell specs.
3836
38372003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
3838
3839	* var.c (Var_Parse): ensure delim is initialized.
3840
3841	* unit-tests/Makefile.in: use single quotes to avoid problems from
3842	some shells.
3843
3844	* makefile.boot.in:
3845	Run the unit-tests as part of the bootstrap procedure.
3846
38472003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3848
3849	* unit-tests/Makefile.in: always force complaints from
3850	${TEST_MAKE} to be from 'make'.
3851
3852	* configure.in: add check for 'diff -u'
3853	also fix some old autoconf'isms
3854
3855	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
3856	if using GCC add -Wno-cast-qual to CFLAGS for var.o
3857
3858	* Merge with NetBSD make
3859	Pick up fix for :ts parsing error in some cases.
3860	Pick unit-tests.
3861
38622003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
3863
3864	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
3865
3866	* var.c (Var_Parse): fix bug in :ts modifier, after const
3867	correctness fixes, must pass nstr to VarModify.
3868
38692003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
3870
3871	* Makefile.in: BMAKE_VERSION switch to a date based version.
3872	We'll generally use the date of last import from NetBSD.
3873
3874	* Merge with NetBSD make
3875	Pick up fixes for const-correctness, now passes WARNS=3 on
3876	NetBSD.
3877	Pick up :ts modifier, allows controlling the separator used
3878	between words in variable expansion.
3879
38802003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
3881
3882	* FILES: include boot-strap and os.sh
3883
3884	* Makefile.in: only set WARNS if we are NetBSD, the effect on
3885	FreeBSD is known to be bad.
3886
3887	* makefile.boot.in (bootstrap): make this the default target.
3888
3889	* Makefile.in: bump version to 3.1.19
3890
3891	* machine.sh: avoid A-Z with tr as it is bound to lose.
3892
38932003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
3894
3895	* Merge with NetBSD make
3896	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3897	Plus some doc fixes.
3898
38992003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
3900
3901	* Merge with NetBSD make
3902	Pick up fix for PR/1523 - don't count a library as built, if there
3903	is no way to build it
3904
3905	* Bump version to 3.1.18
3906
39072003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
3908
3909	* Merge with NetBSD make
3910	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3911	appears in src list.
3912
39132003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
3914
3915	* Merge with NetBSD make (mmm 10th anniversary!)
3916	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3917	pick up -X which tells us to not export VAR=val via setenv if
3918	we are already doing so via MAKEFLAGS.  This saves valuable env
3919	space on systems like Darwin.
3920	set MAKE_VERSION to 3.1.17
3921
3922	* parse.c: pix up fix for suffix rules
3923
39242003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
3925
3926	* Merge with NetBSD make.
3927	pick up fix for propagating -B via MAKEFLAGS.
3928	set MAKE_VERSION to 3.1.16
3929
3930	* Apply some patches from pkgsrc-bootstrap/bmake
3931	Originally by Grant Beattie <grant@netbsd.org>
3932	I may have missed some - since they are based on bmake-3.1.12
3933
39342002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
3935
3936	* makefile.boot.in (bmake): update install targets for those that
3937	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3938	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
3939
3940	* bmake.cat1: update the pre-formatted man page!
3941
39422002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
3943
3944	* Merge with NetBSD make.
3945	pick up fix for premature free of pointer used in call
3946	to Dir_InitCur().
3947	set MAKE_VERSION to 3.1.15
3948
39492002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
3950
3951	* configure.in: determine suitable value for MKSRC.
3952	override using --with-mksrc=PATH.
3953
3954	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3955	configs(8) will use 'sun4' as an alias for 'sparc'.
3956
39572002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
3958
3959	* Merge with NetBSD make.
3960	pick up ${.PATH}
3961	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3962	set MAKE_VERSION to 3.1.14
3963	add configure checks for killpg and sys/socket.h
3964
39652002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
3966
3967	* tag bmake-3-1-13
3968
3969	* makefile.boot.in (bmake): use install-mk
3970	Also setup ./mk before trying to invoke bmake.boot incase we
3971	needed install-mk to create a sys.mk for us.
3972
3973	* configure.in: If we need to add -I${srcdir}/missing, make it an
3974	absolute path so that it works for lst.lib too.
3975
3976	* make.h: always include sys/cdefs.h since we provide one if the
3977	host does not.
3978
3979	* Makefile.in (install-mk):
3980	use MKSRC/install-mk which will do the right thing.
3981	use uname -p for ARCH if possible.
3982	since install-mk will setup links bsd.prog.mk -> prog.mk if
3983	needed, just .include bsd.prog.mk
3984
3985	* Merge with NetBSD make (NetBSD-1.6)
3986	Code is ansi-C only now.
3987	Bug in handling of dotLast is fixed.
3988	Can now assign .OBJDIR and make will reset its notions of life.
3989	New modifiers :tu :tl for toUpper and toLower.
3990
3991Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3992
3993	* Merge with NetBSD make
3994	pick up fix for .END failure in compat mode.
3995	pick up fix for extra va_end() in ParseVErrorInternal.
3996
3997Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3998
3999	* configure.in: for systems that have sys/cdefs.h check if it is
4000	compatible.  If not, include the one under missing, but tell it to
4001	include the native one too - necessary on Linux.
4002
4003	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4004	include_next (for gcc) to get the native sys/cdefs.h
4005
4006Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4007
4008	* job.c (JobFinish): Fix an earlier merge bug that resulted in
4009	leaking descriptors when using -jN.
4010
4011	* job.c (JobPrintCommand): See if "curdir" exists before
4012	attempting to chdir().  Doing the chdir directly in make (when in
4013	compat mode) fails silently, so let the -jN version do the same.
4014	This can happen when building kernels in an object tree and
4015	playing clever games to reset .CURDIR.
4016
4017	* Merged with NetBSD make
4018	pick up .USEBEFORE
4019
4020Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4021
4022	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4023
4024Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4025
4026	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
4027	us not to export the iterator variable when using VAR_CMD context.
4028
4029Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4030
4031	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4032	its the wrong "fix".
4033
4034Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4035
4036	* Redesigned export of VAR_CMD's via MAKEFLAGS.
4037	We now simply append the variable names to .MAKEOVERRIDES, and
4038	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
4039	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
4040	Apart from fixing quoting bugs in previous version, this allows us
4041	to export vars to the environment by simply doing:
4042	.MAKEOVERRIDES+= PATH
4043	Merged again with NetBSD make, but the above is the only change.
4044
4045	* configure.in: added
4046	--disable-pwd-override		disable $PWD overriding getcwd()
4047	--disable-check-make-chdir	disable make trying to guess
4048		when it should automatically cd ${.CURDIR}
4049
4050	* Merge with NetBSD make, changes include:
4051	parse.c (ParseDoDependency): Spot that the syntax error is
4052	caused by an unresolved cvs/rcs conflict and say so.
4053	var.c: most of Var* functions now take a ctxt as 1st arg.
4054	now does variable substituion on rhs of sysv style modifiers.
4055
4056	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
4057	is now done here.  We append the name='value' to .MAKEOVERRIDES
4058	rather than directly into MAKEFLAGS as this allows a Makefile to
4059	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
4060	very similar mechanism.  Note that in adding name='value' to
4061	.MAKEOVERRIDES we do the moral equivalent of:
4062	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
4063
4064Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4065
4066	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
4067
4068	* Merged with NetBSD make
4069	make -dx can now be used to run commands via sh -x
4070	better error messages on exec failures.
4071
4072Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4073
4074	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
4075	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
4076	MACHINE etc otherwise they propagate from the previous bmake.
4077
4078	* configure.in (machine): allow --with-machine=generic to make
4079	configure use machine.sh to set MACHINE.
4080
4081	* job.c (JobInterrupt): convert to using WAIT_T and friends.
4082
4083	* Makefile.in: mention in bmake.1 that we use autoconf.
4084
4085	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4086
4087Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4088
4089	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4090	as that rather defeats the usefulness of ${MAKEFILE}.
4091
4092	* main.c (MainParseArgs): append command line variable assignments
4093	to MAKEFLAGS so that they get propagated to child make's.
4094	Apparently this is required POSIX behaviour?  Its useful anyway.
4095
4096Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4097
4098	* compat.c (CompatRunCommand): don't use perror() since stdio may
4099	cause problems in child of vfork().
4100
4101	* compat.c, main.c: Call PrintOnError() when we are going to bail.
4102	This routine prints out the .curdir where we stopped and will also
4103	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
4104
4105	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
4106	:@ expansion.
4107
4108	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
4109
4110	* Added RCSid's for the files we've touched.
4111
4112Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4113
4114	* configure.in:	Thanks to some clues from mdb@juniper.net,
4115	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
4116	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
4117
4118  --with-machine=MACHINE  explicitly set MACHINE
4119  --with-force-machine=MACHINE  set FORCE_MACHINE
4120  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
4121  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
4122  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
4123  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
4124
4125	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4126
4127	* makefile: added a pathetically simple makefile to drive
4128	bootstrapping.  Running configure by hand is more useful.
4129
4130	* Makefile.in: added MAKE_VERSION, and reworked things to be less
4131	dependent on NetBSD bsd.*.mk
4132
4133	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
4134	_PATH_OBJDIRPREFIX for those that don't want a default.
4135	construct _PATH_DEFSYSPATH from the info we get from configure.
4136
4137	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4138	if MAKE_VERSION is defined.
4139
4140	* compat.c: when we bail, print out the .CURDIR we were in.
4141
4142Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4143
4144	* Merged with NetBSD make
4145
4146	* var.c: fixed a bug in the handling of the modifier :P
4147	if the node as found but the path was null, we segfault trying to
4148	duplicate it.
4149
4150Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4151
4152	* Merged with NetBSD make
4153
4154	* make.c: Make_OODate's test for a library out of date was using
4155	cmtime where it should have used mtime (my bug).
4156
4157	* compat.c: Use perror() to tell us what really went wrong when we
4158	cannot exec a command.
4159
4160Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4161
4162	* Merged with NetBSD make
4163
4164Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4165
4166	* Merged with NetBSD make
4167
4168Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4169
4170	* Merged with NetBSD make
4171
4172Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4173
4174	* Merged with NetBSD make
4175
4176Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4177
4178	* util.c: don't provide signal() since we use sigcompat.c
4179
4180	* Makefile.in: added a build target.
4181
4182	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4183	These allow some quite clever magic.
4184
4185	* main.c (main): added support for getenv(MAKESYSPATH).
4186
4187Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4188
4189	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
4190	This avoids objdir having a different value depending on how a
4191	directory was reached (via command line, or subdir.mk).
4192
4193	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4194
4195Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4196
4197	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
4198	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
4199	I've been testing this in NetBSD's make for some weeks.
4200
4201	* Turn Makefile into Makefile.in and make it useful.
4202
4203Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
4204
4205	* Imported NetBSD's -current make(1) and resolve conflicts.
4206
4207	* Applied autoconf patches from bmake v2
4208
4209	* Imported clean code base from NetBSD-1.0
4210