xref: /freebsd/contrib/bmake/ChangeLog (revision 4f8f43b06ed07e96a250855488cc531799d5b78f)
12023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20230909
4	Merge with NetBSD make, pick up
5	o main.c: allow -j to compute a multiple of ncpu
6	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
7	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
8	_SC_NPROCESSORS_ONLN
9	.MAKE.JOBS.C will be "yes" if -jC is supported
10
112023-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
12
13	* VERSION (_MAKE_VERSION): 20230820
14	Merge with NetBSD make, pick up
15	o make.1: note that :localtime is better for %s
16	o parse.c: improve error messages for invalid input.
17	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
18	correct result, it is still better to use %s:L:localtime.
19
202023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
21
22	* VERSION (_MAKE_VERSION): 20230818
23	Merge with NetBSD make, pick up
24	o meta.c: meta_ignore - check raw path against metaIgnorePaths
25	to potentially skip call to realpath.
26	o var.c: be strict when parsing the argument of the ':mtime' modifier
27	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
28	should be used to get an equivalent value to time(3).
29
302023-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
31
32	* VERSION (_MAKE_VERSION): 20230816
33	Merge with NetBSD make, pick up
34	o cond.c: clean up multiple-inclusion guards
35
362023-07-25  Simon J Gerraty  <sjg@beast.crufty.net>
37
38	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
39	if configure cannot work out how to control TZ.
40	Remove varmod-localtime from BROKEN_TESTS for IRIX*
41
422023-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
43
44	* VERSION (_MAKE_VERSION): 20230723
45
46	* configure.in: fix the test for wether TZ=Europe/Berlin works.
47	Depending on the time of year, if run between 22:00 and 00:00 UTC
48	the check in configure would fail incorrectly.
49	Take the day into account as well.
50
512023-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
52
53	* VERSION (_MAKE_VERSION): 20230711
54	Merge with NetBSD make, pick up
55	o make.1: clean up wording, clarify scope of '!' in conditions
56
572023-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
58
59	* make-bootstrap.sh.in: set prefix
60	If configure is run using ksh we get unexpanded ${prefix} in
61	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
62	correct result.
63
642023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
65
66	* VERSION (_MAKE_VERSION): 20230711
67	bump version for IRIX tweaks
68
69	* make.h: undef OP_NONE if defined
70
71	* unit-tests/Makefile: set BROKEN_TESTS for IRIX
72
73	* configure.in: override INSTALL on IRIX
74
752023-06-27  Simon J Gerraty  <sjg@beast.crufty.net>
76
77	* boot-strap op_test: ensure we set TEST_MAKE as we want it.
78
792023-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
80
81	* VERSION (_MAKE_VERSION): 20230622
82	Merge with NetBSD make, pick up
83	o optimize string matching for ':M' and ':N'
84	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
85
862023-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
87
88	* VERSION (_MAKE_VERSION): 20230621
89	Merge with NetBSD make, pick up
90	o more extensive tests for include guards
91	o parse.c: if a guard is already defined a file that uses the same
92	guard is still guarded by it.
93
942023-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
95
96	* VERSION (_MAKE_VERSION): 20230620
97	Merge with NetBSD make, pick up
98	o allow guards to be targets as well as variables
99	The guard targets may include variable references like
100	__${.PARSEDIR:tA}/${.PARSEFILE}__
101
1022023-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
103
104	* VERSION (_MAKE_VERSION): 20230619
105	Merge with NetBSD make, pick up
106	o unit test for .undef of readOnly vars
107	o optimization for makefiles protected from multiple-inclusion
108	skip even opening the file after first include.
109	Initially this only handles makefiles guarded by a variable
110	target guards are next.
111
1122023-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
113
114	* VERSION (_MAKE_VERSION): 20230616
115	Merge with NetBSD make, pick up
116	o var.c: do not allow delete of readOnly variable
117
1182023-06-03  Simon J Gerraty  <sjg@beast.crufty.net>
119
120	* VERSION (_MAKE_VERSION): 20230601
121	Merge with NetBSD make, pick up
122	o parse.c: .break takes no args
123	o lots of unit test updates
124
1252023-05-29  Simon J Gerraty  <sjg@beast.crufty.net>
126
127	* unit-tests/Makefile: skip tests that require /dev/filemon
128	if it does not exists - issue a warning.
129
1302023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
131
132	* VERSION (_MAKE_VERSION): 20230522
133	Fix building on darwin ppc
134
135	* os.sh (MACHINE): Darwin powerpc cannot use `uname -m`
136	also recent NetBSD uses x86_64 for MACHINE_ARCH so conform.
137
1382023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
139
140	* VERSION (_MAKE_VERSION): 20230515
141
142	* Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to
143	compile filemon_ktrace.c
144
1452023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
146
147	* VERSION (_MAKE_VERSION): 20230512
148	o sys.dirdeps.mk - broke after-import target
149
1502023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
151
152	* VERSION (_MAKE_VERSION): 20230510
153	Merge with NetBSD make, pick up
154	o parse.c: don't print null filename in stack traces
155	o var.c: :mtime operate on each word in variable value
156
1572023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
158
159	* VERSION (_MAKE_VERSION): 20230509
160	Merge with NetBSD make, pick up
161	o for.c: skip syntactically wrong .for loops
162	o var.c: allow for :gmtime=${mtime}
163	add :mtime[=timestamp] where timestamp is used if stat(2)
164	fails, if :mtime=error stat(2) failure causes error.
165
1662023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
167
168	* VERSION (_MAKE_VERSION): 20230504
169	Merge with NetBSD make, pick up
170	o compat.c: fix compile on NetBSD 7.2
171	o make.1: fix documentation of .PREFIX to match reality and POSIX
172	o unit-tests: improved var-scope-local
173
1742023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
175
176	* VERSION (_MAKE_VERSION): 20230414
177	Merge with NetBSD make, pick up
178	o minor cleanup
179
1802023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
181
182	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
183	unlimited results in an insane number (0x7fffffffffffffff).
184	If BMAKE_NOFILE_MAX is defined, use that instead.
185
1862023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
187
188	* VERSION (_MAKE_VERSION): 20230321
189	Merge with NetBSD make, pick up
190	* make.1: document seemingly unexplained Error code 6.
191
1922023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
193
194	* VERSION (_MAKE_VERSION): 20230317
195	Merge with NetBSD make, pick up
196	o compat.c: CompatDeleteTarget skip .PHONY targets to be
197	consistent with JobDeleteTarget.
198	o job.c: fix memory leak in handling sysv :from=to modifiers
199
2002023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
201
202	* VERSION (_MAKE_VERSION): 20230303
203	Merge with NetBSD make, pick up
204	o several updated unit-tests
205
2062023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
207
208	* VERSION (_MAKE_VERSION): 20230222
209	Merge with NetBSD make, pick up
210	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
211
2122023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
213
214	* VERSION (_MAKE_VERSION): 20230218
215	Merge with NetBSD make, pick up
216	o var.c: fix parsing of unevaluated subexpressions with
217	unbalanced '{}'
218
2192023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
220
221	* VERSION (_MAKE_VERSION): 20230215
222	Merge with NetBSD make, pick up
223	o inline macros for some variable names
224	o cond.c: reduce complexity of evaluating expressions
225
2262023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
227
228	* VERSION (_MAKE_VERSION): 20230208
229	Merge with NetBSD make, pick up
230	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
231	when it has been used within conditional expressions
232
2332023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
234
235	* VERSION (_MAKE_VERSION): 20230127
236
237	* install-sh: if making directories ensure umask is set
238	to match mode.
239
240	* Makefile: use DIRMODE for directories and
241	NONBINMODE for man pages and mk files
242
2432023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
244
245	* VERSION (_MAKE_VERSION): 20230126
246	Merge with NetBSD make, pick up
247	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
248	should be read-only.
249
2502023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
251
252	* VERSION (_MAKE_VERSION): 20230123
253	Merge with NetBSD make, pick up
254	o .[NO]READONLY: for control of read-only variables
255	o .SYSPATH: for controlling the path searched for makefiles
256
2572023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
258
259	* VERSION (_MAKE_VERSION): 20230120
260	Merge with NetBSD make, pick up
261	o allow for white-space between command specifiers @+-
262	o add more details to warning 'Extra targets ignored'
263
2642023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
265
266	* machine.sh: leverage os.sh rather than duplicate
267	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
268	for that purpose for the past decade or so.
269	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
270
2712023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
272
273	* VERSION (_MAKE_VERSION): 20230101
274	Merge with NetBSD make, pick up
275	o cleanup comments, inline some LazyBuf_ methods
276	o unit-tests/ add/improve comments in tests
277	o make.1: sync list of built-in variables with reality
278	sort list of built-in variables
279	reduce indentation of the long list of variable names
280	use consistent markup for boolean flags
281	move description of .MAKE.MODE below the .MAKE.META block
282	clarify in which case an expression may omit braces
283
2842022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
285
286	* VERSION (_MAKE_VERSION): 20221024
287	Merge with NetBSD make, pick up
288	o change return type of unlink_file back to int
289
2902022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
291
292	* Makefile: Darwin and Linux can handle MANTARGET=man
293
2942022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
295
296	* VERSION (_MAKE_VERSION): 20220928
297	Merge with NetBSD make, pick up
298	o fix more ignored returns from snprintf
299	o compile with higher warnings
300
3012022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
302
303	* main.c meta.c: do not ignore return from snprintf
304
305	* meta.c strlcpy.c: we need prototype for strlcpy
306
307	* sigcompat.c: fix unused function warnings
308
3092022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
310
311	* VERSION (_MAKE_VERSION): 20220924
312	Merge with NetBSD make, pick up
313	o fix bug in .break reset of conditional depth
314	o overhaul and simplify tracking of conditional depth
315
3162022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
317
318	* VERSION (_MAKE_VERSION): 20220912
319	Merge with NetBSD make, pick up
320	o man page updates
321
3222022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
323
324	* VERSION (_MAKE_VERSION): 20220909
325	Merge with NetBSD make, pick up
326	o update unit-tests to handle deprecation of egrep
327	o cond.c: add more details to error message for numeric comparison
328
329	* configure.in: allow for deprecation of egrep
330
331	* Makefile: Linux can handle MANTARGET=man
332
3332022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
334
335	* VERSION (_MAKE_VERSION): 20220903
336	Merge with NetBSD make, pick up
337	o job.c: fix handling of null bytes in output
338
3392022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
340
341	* VERSION (_MAKE_VERSION): 20220902
342	Merge with NetBSD make, pick up
343	o Allow .break to terminate a .for loop early
344
3452022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
346
347	* VERSION (_MAKE_VERSION): 20220901
348	Merge with NetBSD make, pick up
349	o var.c: fix out-of-bounds errors when parsing
350
3512022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
352
353	* VERSION (_MAKE_VERSION): 20220824
354	Merge with NetBSD make, pick up
355	o var.c: revert change to modifier parsing that breaks
356	shell variable references within ':@var@body@'
357	o adjust unit-tests
358
3592022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
360
361	* VERSION (_MAKE_VERSION): 20220818
362	Merge with NetBSD make, pick up
363	o fix exit status for '-q' (since 1994)
364
3652022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
366
367	* VERSION (_MAKE_VERSION): 20220808
368	Merge with NetBSD make, pick up
369	o var.c: fix parsing of modifiers containing unbalanced subexpressions
370	extract parsing of ':D' and ':U' modifiers into separate function
371
3722022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
373
374	* VERSION (_MAKE_VERSION): 20220726
375
376	* Auto-create objdir for bmake/unit-tests if appropriate
377
3782022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
379
380	* VERSION (_MAKE_VERSION): 20220724
381	Merge with NetBSD make, pick up
382	o make.1: describe variable assignment and evaluation more precisely
383	o parse.c: fix out-of-bounds read when parsing an invalid line
384	o var.c: simplify return type of IsShortVarnameValid
385
3862022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
387
388	* VERSION (_MAKE_VERSION): 20220612
389	Merge with NetBSD make, pick up
390	o allow to randomize build order of targets
391	.MAKE.MODE += randomize-targets can help uncover dependency bugs
392	within a makefile.
393	o compat.c: rename Compat_Run to Compat_MakeAll
394	o make.c: inline MakeBuildParent
395	inline make_abort, improve error details
396	o parse.c: reorganize Parse_Error
397	fix memory leak in wildcard targets and sources
398	separate cases in HandleDependencyTargetMundane
399	extract HandleSingleDependencyTargetMundane
400	rename loadfile to LoadFile
401	split IncludeFile into separate functions
402	condense code for searching a file in the paths
403	fix off-by-one error in buffer for .WAIT nodes
404	o str.c: condense Str_Match
405	make code for string matching syntactically more consistent
406
4072022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
408
409	* VERSION (_MAKE_VERSION): 20220418
410	Merge with NetBSD make, pick up
411	o ignore '.POSIX:' if not in first non-comment line
412	of Makefile as specified by POSIX.
413	add unit-tests for above.
414	o meta.c: make it easier to find usage of identifiers
415	o targ.c: add .USEBEFORE to Targ_PrintType
416
4172022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
418
419	* VERSION (_MAKE_VERSION): 20220414
420
421	* unit-tests/Makefile: simplify checks for shells with
422	BROKEN_TESTS, this helps with other Linux distros that
423	use dash.
424
4252022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
426
427	* VERSION (_MAKE_VERSION): 20220330
428	Merge with NetBSD make, pick up
429	o var.c: fix spacing, and a typo in a test
430
4312022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
432
433	* VERSION (_MAKE_VERSION): 20220326
434	Merge with NetBSD make, pick up
435	o parse.c: try to include 'posix.mk' the first time
436	.POSIX: is encountered, to allow for beter POSIX compliance.
437	o var.c: make debug logs more readable
438	prefer 'long long' over 'long' on 32-bit C99 platforms
439	fix crash on .undef of an environment variable
440
4412022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
442
443	* VERSION (_MAKE_VERSION): 20220303
444	Merge with NetBSD make, pick up
445	o tell meta mode unit tests not to expect filemon
446	o cond.c: make debug logging for comparisons less technical
447	o lst.c: fix mem leak in Lst_Remove
448	o str.c: make code for string matching syntactically more consistent
449	o var.c: simplify ParseModifier_Match
450
4512022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
452
453	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
454
455	* VERSION (_MAKE_VERSION): 20220214
456	Merge with NetBSD make, pick up
457	o cond.c: simplify control flow in CondParser_Comparison
458	o job.c: fix echoing of command with '-' in silent target in jobs mode
459	o main.c: prefix the warning about read-only .OBJDIR with a colon
460	o parse.c: remove redundant conditions
461	o var.c: simplify control flow in ModifyWord_SysVSubst
462
4632022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
464
465	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
466	is any chance we have dash as .SHELL
467
468	* VERSION (_MAKE_VERSION): 20220208
469	Merge with NetBSD make, pick up
470	o more unit tests
471	o meta.c: use a variable to hold command line to be filtered
472	to avoid any side effects from content of command line.
473
4742022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
475
476	* VERSION (_MAKE_VERSION): 20220204
477	Merge with NetBSD make, pick up
478	o use unsigned consistently for line numbers, avoid the need for %z
479	o parse.c: do not step off end of input in Parse_IsVar
480	when checking for target local variable assignments
481
4822022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
483
484	* VERSION (_MAKE_VERSION): 20220202
485	Merge with NetBSD make, pick up
486	o remove redundant declaration of HashIter_Init
487	o make DEBUG0 simpler
488
4892022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
490
491	* cast gn->lineno to avoid %z
492
493	* VERSION (_MAKE_VERSION): 20220130
494	Merge with NetBSD make, pick up
495	o more unit tests
496	o make GNode lineno unsigned to please lint
497	o print location of recursive variable references in commands
498	o print "stack trace" (makefile includes) on fatal errors
499	o make.1: refine documentation for target local assignments
500
5012022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
502
503	* VERSION (_MAKE_VERSION): 20220128
504	Merge with NetBSD make, pick up
505	o inline functions called only once
506	o for.c: clean up AddEscape for building the body of a .for loop
507	o hash.c: merge duplicate code for finding an entry in a hash table
508	replace HashEntry_KeyEquals with strncmp
509	o make.1: document quirks of target local variable assignments.
510	o parse.c: cleanup white-space
511
5122022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
513
514	* VERSION (_MAKE_VERSION): 20220126
515	Merge with NetBSD make, pick up
516	o allow setting target local variables
517	o more unit tests
518	o add missing newline after "cannot continue" message
519	o meta.c: clean up eat_dots
520	o parse.c: fix filename in warning about duplicate script
521	o var.c: when expanding nested variables, check simple things first
522
5232022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
524
525	* VERSION (_MAKE_VERSION): 20220116
526	Merge with NetBSD make, pick up
527	o fix for unit-tests/varname-makeflags on non-BSD systems
528	o use Var_Exists rather than Var_Value where appropriate
529	o remove unnecessary functions for expanding variable names
530	o cond.c: inline EvalBare
531	o main.c: lint cleanup
532	o parse.c: condense code in Parse_IsVar
533	use islower for parsing directives (none have upper case)
534
5352022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
536
537	* VERSION (_MAKE_VERSION): 20220112
538	Merge with NetBSD make, pick up
539	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
540	comparion, rarely needed but useful when it is.
541
5422022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
543
544	* VERSION (_MAKE_VERSION): 20220110
545	Merge with NetBSD make, pick up
546	o inline Buf_Clear
547	o remove redundant braces
548	o rename and inline Targ_Precious
549	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
550	o for.c: clean up handling of .for loops
551	fix reported line numbers of continuation lines
552	add details about .for loop variables to stack traces
553	o job.c: reduce code for initializing error handling in shell
554	o main.c: in Cmd_Exec, return error message instead of format string
555	have as few statements as possible between va_start and va_end
556	add debug logging for capturing the output of external commands
557	o make.c: use consistent variable names for varargs
558	o make_malloc.c: remove duplicate code from bmake_strdup
559	o parse.c: add missing printflike annotations
560	remove redundant lines from stack traces
561	fix stack traces in -dp mode
562	reduce confusing code in ParseForLoop
563	fix line number in debug log after returning from a file
564	rename IFile and its fields to match their actual content
565	clean up ParseDependencySources
566	o var.c: shorten ApplyModifier_Assign
567	rename is_shell_metachar, fix character conversion warning
568	merge calls to ApplyModifier_Time
569	merge duplicate code for modifiers 'gmtime' and 'localtime'
570
5712022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
572
573	* parse.c: loadfile restore extra byte in buffer.
574
5752022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
576
577	* VERSION (_MAKE_VERSION): 20220101
578	Merge with NetBSD make, pick up
579	o more unit-tests
580	o remove unnecessary words from command line options in CmdOpts
581	o rename eunlink to unlink_file
582	o cond.c: make ParseWord in condition parser simpler
583	internally return false for irrelevant leaves in conditions
584	replace table for function lookup in conditions with simple code
585	merge duplicate types CondEvalResult and CondResult
586	o for.c: clean up handling of .for loops and .include directives
587	o main.c: constify cached_realpath
588	clean up Cmd_Exec
589	o parse.c: sync API documentation
590	fix error message when reading more than 1 GB from stdin
591	clean up parsing of makefiles
592	fix line number in error message about open conditionals
593	unexport types VarAssignOp and VarAssign
594	clean up function names
595	remove redundant parameters in dependency parsing functions
596	reduce scope of the list of wildcard target names
597	extract OP_NOTARGET into separate function
598	clean up variable names for parsing dependency lines
599	make debug logging a bit more human-friendly
600	o var.c: condense code in ApplyModifier_Assign
601
6022021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
603
604	* VERSION (_MAKE_VERSION): 20211221
605	Merge with NetBSD make, pick up
606	o more unit-tests
607	o style cleanup
608	o in CLEANUP mode, free interned strings at the very end
609	o fix memory leak for filenames in .for loops
610	o buf.c: avoid memory leak
611	o cond.c: condense CondParser_ComparisonOp
612	o hash.c: change return type of HashTable_Set to void
613	o job.c: change return type of Compat_RunCommand from int to bool
614	o main.c: remove bmake_free
615	o parse.c: condense repetetive code in ParseDirective
616	remove dead code for handling traditional include directives
617	clean up parsing of variable assignments
618	remove unreachable code for parsing the dependency operator
619	clean up loading of files
620	fix memory leak in IncludeFile
621	o var.c: fix memory leak when parsing a variable name
622	fix memory leak from ${.SUFFIXES}
623	reduce memory allocation in modifier ':?' and ':C'
624	condense RegexReplace for the modifier ':C' and avoid strlen
625	merge duplicate code for memory handling in Var_Parse
626	distinguish between short-lived and environment variables
627	rename VarFreeEnv to VarFreeShortLived
628
6292021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
630
631	* cond.c: fix mem leak in CondParser_Leaf
632
6332021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
634
635	* VERSION (_MAKE_VERSION): 20211212
636	Merge with NetBSD make, pick up
637	o rename Parse_SetInput to Parse_PushInput
638	o remove remove period from end of error messages and warnings
639	to be more consistent
640	o arch.c: use simpler memory management for parsing archive members
641	o cond.c: rework and reduce recursion
642	o for.c: rename some functions to better reflect purpose
643	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
644	o var.c: in parse errors, mark whitespace more clearly
645	inline ParseEmptyArg into CondParser_FuncCallEmpty
646	minimize calls to LazyBuf_Get in ParseVarnameLong
647	treat .SUFFIXES as a read-only variable
648
6492021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
650
651	* VERSION (_MAKE_VERSION): 20211207
652	Merge with NetBSD make, pick up
653	o inline HashIter_Init
654	o parse.c: inline common subexpression in ParseRawLine
655	o var.c: merge branches for modifiers ':D' and ':U'
656	extract common code into Expr_Words
657	extract common code into Expr_Str
658	move low-level implementation details out of Var_Parse
659
6602021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
661
662	* VERSION (_MAKE_VERSION): 20211206
663	Merge with NetBSD make, pick up
664	o add unit-tests/varmod-loop-delete
665	o for.c: inline Str_Words - reduce memory allocation
666	o parse.c: do not try to expand fixed variable names
667	only allocate the name of an included file if necessary
668	clean up ParseInclude
669	o var.c: fix use-after-free in modifier ':@'
670	save a memory allocation in each modifier ':O' and ':u'
671	save a memory allocation in the modifier ':[...]'
672	in UnexportVars, replace Str_Words with Substring_Words to
673	reduce allocations and copying.
674
6752021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
676
677	* VERSION (_MAKE_VERSION): 20211204
678	Merge with NetBSD make, pick up
679	o flesh out a number of tests
680	o replace enums with bitfields, this simplifies a lot of code.
681	o var.c: refactor ParseModifierPartSubst
682
6832021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
684
685	* VERSION (_MAKE_VERSION): 20211024
686	Merge with NetBSD make, pick up
687	o Punt on write errors - ENOSPC etc.
688
6892021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
690
691	* configure.in: use_defshell, set both DEFSHELL_INDEX
692	and defshell_path if appropriate.
693	This makes it easier to use say the KSH specification with
694	and alternate path for the shell.
695
696	* configure.in compat.c: for SCO we need to force UseShell
697
698	* configure.in: SCO /bin/sh is not usable, provide a list of
699	alternatives for use as .SHELL.
700	We still have to mark some tests as broken, plus more if we end up
701	with ksh as .SHELL.
702	Issue a warning about skipped tests.
703
704	* boot-strap: leave TOOL_DIFF to configure
705
706	* configure.in: on SCO native cc is not usable,
707	gcc is to be found in /usr/gnu/bin
708	and while ancient is at least able to compile bmake.
709	Thus we add /usr/gnu/bin to PATH if it exists, and later
710	check if $CC would have been found via $PATH.
711	If not we set CC to the full path of $CC.
712	Also gnu diff is known to support -u, so if it exists use it.
713
714	* configure.in: move getopt to AC_REPLACE_FUNCS
715	also add AC_C_INLINE - in an attempt to compile using
716	native cc on SCO.
717
718	* configure.in: check for stresep as well as strsep, since we
719	define the later to the former if necessary, and if we have to
720	provide stresep we also need to provide a prototype.
721
722	* configure.in: we no longer need to worry about
723	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
724
725	* make.h: make sure we have __RCSID
726
727	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
728	can control it.
729
7302021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
731
732	* VERSION: 20211020
733	Merge with NetBSD make, pick up
734	o confirm sync of unit-tests
735
7362021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
737
738	* configure.in: check if timezone Europe/Berlin is supported
739	if not try UTC-1
740	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
741	symlink unit-tests -> ../unit-tests/obj so that
742	unit-tests/Makefile.config is put in the right place.
743	* refine filtering of .OBJDIR in unit-tests
744
7452021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
746
747	* Fix unit-tests on Minix 3.2.0
748	o job.c: do not punt if read of token pipe fails for EAGAIN.
749	On Minix at least, we are not ready to read the childExitJob pipe
750	when poll says we are.
751	There should actually be no reason for this pipe to be
752	non-blocking, but while that works fine on {Net,Free}BSD it
753	breaks another test case on Minix.
754	o unit-tests/Makefile: deal with variants of error messages
755	  and use of obj as .OBJDIR
756
7572021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
758
759	* configure.in: add sigaction to AC_REPLACE_FUNCS
760	we also need to check for sigaddset etc just for the benefit of
761	sigact.c
762
763	* Add sigact.c as sigaction.c so this "just works".
764	This should have been done back when bmake_signal started using
765	sigaction (I only just noticed that sigact.c wasn't here ;-)
766	Note: I no longer have access to any system where this would matter.
767
7682021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
769
770	* VERSION (_MAKE_VERSION): 20211011
771
772	* Makefile: cleanup a little
773
774	* configure.in: check for sigsetmask
775
7762021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
777
778	* VERSION (_MAKE_VERSION): 20211001
779	Merge with NetBSD make, pick up
780	o reduce locations reducing text size
781	o remove unnecessary const
782	o cond.c: fix lint warning on i386
783	do not allow unquoted 'left == right' after modifier ':?'
784	o hash.c: fix build for DEBUG_HASH_LOOKUP
785	o var.c: fix memory leak in error case of the ':?' modifier
786
7872021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
788
789	* VERSION (_MAKE_VERSION): 20210911
790	Merge with NetBSD make, pick up
791	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
792
7932021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
794
795	* VERSION (_MAKE_VERSION): 20210906
796	Merge with NetBSD make, pick up
797	o more unit tests
798	o lint cleanup
799	o rename some functions to better fit purpose
800	o for.c: cleanup - remove unnecessary optimization
801	  fix embedded newlines
802	o parse.c: correct case for CVS/RCS
803
8042021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
805
806	* VERSION (_MAKE_VERSION): 20210808
807	Merge with NetBSD make, pick up
808	o var.c: remove redundant initialization in ApplyModifier_Order
809
810	* mk/options.mk: issue warning for incorrect usage
811
8122021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
813
814	* var.c: use long for :On if we don't have a 64bit int type
815
816	* VERSION (_MAKE_VERSION): 20210803
817	Merge with NetBSD make, pick up
818	o rework varmod-order tests to avoid qsort instability
819	o make.1: clarify :On entry
820
8212021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
822
823	* VERSION (_MAKE_VERSION): 20210731
824	Merge with NetBSD make, pick up
825	o fix some lint issues
826	o more unit tests
827	o var.c: rework of ApplyModifier_Order
828
8292021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
830
831	* util.c: add strto*l if HAVE_STRTO*L not defined
832
833	* VERSION (_MAKE_VERSION): 20210730
834	Merge with NetBSD make, pick up
835	o var.c: add :On and :Orn for numeric sort
836	  disabled if no 64bit type available.
837	o _strtol.h: to implement strto*l functions
838
8392021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
840
841	* VERSION (_MAKE_VERSION): 20210704
842	Merge with NetBSD make, pick up
843	o unit-tests: fix some tests to be more portable
844	- job-output-null not all shells do the same number of write calls
845	- objdir-writable if TMPDIR is set; /tmp may not be usable
846
8472021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
848
849	* VERSION (_MAKE_VERSION): 20210701
850	Merge with NetBSD make, pick up
851	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
852	some tests just cannot work in some environments.
853	o buf.c: simpler upper bound for length in Buf_AddInt
854	o cond.c: fix grammar in error message for malformed conditional
855	o for.c: prevent newline injection (from ${.newline}) in .for loops
856	o var.c: use more practical data type in RegexReplace
857	(avoid need for %zu)
858	extract RegexReplace from ModifyWord_SubstRegex
859
8602021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
861
862	* VERSION (_MAKE_VERSION): 20210621
863	Merge with NetBSD make, pick up
864	o var.c: only report error for unmatched regex subexpression
865	when linting (-dL) since we cannot tell when an unmatched
866	subexpression is an expected result.
867	o move unmatched regex subexpression tests to
868	varmod-subst-regex.mk and enable strict (lint) mode
869
8702021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
871
872	* VERSION (_MAKE_VERSION): 20210616
873	Merge with NetBSD make, pick up
874	o more unit tests
875	o cond.c: rename If_Eval to EvalBare
876	improve function names for parsing conditions
877	o job.c: fix error handling of targets that cannot be made
878	o var.c: uncompress code in ApplyModifier_Unique
879
8802021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
881
882	* VERSION (_MAKE_VERSION): 20210518
883	Merge with NetBSD make, pick up
884	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
885	o job.c: Print -de error information when running multiple jobs
886
8872021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
888
889	* VERSION (_MAKE_VERSION): 20210420
890	Merge with NetBSD make, pick up
891	o use C99 bool type
892	o convert VarEvalFlags back into an enum
893	o cond.c: do not complain when skipping the condition 'no >= 10'
894	o hash.c: avoid allocating memory for simple variable names
895	o job.c: use distinct wording for writing to the shell commands file
896	remove type name for the abort status in job handling
897	rename PrintOutput to PrintFilteredOutput to avoid confusion
898	o main.c: avoid double slash in name of temporary directory
899	o var.c: use straight quotes for error 'Bad conditional expression'
900	reduce memory allocations in the modifiers ':D' and ':U'
901	rename members of ModifyWord_LoopArgs
902	clean up pattern flags for the modifiers ':S' and ':C'
903	reduce memory allocation and strlen calls in modifier ':from=to'
904	in the ':Q' modifier, only allocate memory if necessary
905	improve performance for LazyBuf
906	remove redundant parameter from ParseVarnameLong
907	migrate ParseModifierPart to use Substring
908	avoid unnecessary calls to strlen when evaluating modifiers
909	migrate ModifyWord functions to use Substring
910	migrate handling of the modifier ':S,from,to,' to Substring
911	reduce debug logging and memory allocation for ${:U...}
912	reduce verbosity of the -dv debug logging for standard cases
913	clean up debug logging for ':M' and ':N'
914	disallow '$' in the variable name of the modifier ':@'
915	simplify access to the name of an expression during evaluation
916
9172021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
918
919	* VERSION (_MAKE_VERSION): 20210330
920	Merge with NetBSD make, pick up
921	o replace enum bit-field with struct bit-field for VarEvalFlags
922	o rename VARE_NONE to VARE_PARSE_ONLY
923	o var.c: rename ApplyModifiersState to ModChain
924	fix double varname expansion in the variable modifier '::='
925	change debug log for variable evaluation flags to lowercase
926
9272021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
928
929	* VERSION (_MAKE_VERSION): 20210314
930	Merge with NetBSD make, pick up
931	o var.c: avoid evaluating many modifiers in parse only mode
932	in strict mode (-dL) many variable references are parsed twice,
933	the first time just to report parse errors early, so we want to
934	avoid side effects and wasted effort to the extent possible.
935
9362021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
937
938	* VERSION (_MAKE_VERSION): 20210226
939	Merge with NetBSD make, pick up
940	o remove freestanding freeIt variables
941	link via FStr
942	o var.c: restructure code in ParseVarname to target human readers
943	improve error message for;
944	  bad modifier in variable expression
945	  unclosed modifier
946	  unknown modifier
947	remove redundant parameter of ApplySingleModifier
948	explain non-obvious code around indirect variable modifiers
949	quote ':S' in error message about missing delimiter
950	extract ParseModifier_Match into separate function
951	add context information to error message about ':range' modifier
952	add quotes around variable name in an error message
953	reorder code in ModifyWords
954	use more common parameter order for VarSelectWords
955	make ModifyWord_Subst a little easier to understand
956	do not expand variable name from the command line twice
957	extract ExistsInCmdline from Var_SetWithFlags
958	save a hash map lookup when defining a cmdline variable
959	clean up VarAdd, Var_Delete, Var_ReexportVars
960	use bit-shift expressions for VarFlags constants
961	rename constants for VarFlags
962	rename ExprDefined constants for debug logging
963	rename ExprStatus to ExprDefined
964	split parameters for evaluating variable expressions
965	reduce redundant code around ModifyWords
966	print error about failed shell command before overwriting variable
967	clean up ValidShortVarname, ParseVarnameShort
968	rename VarExprStatus to ExprStatus
969	add functions for assigning the value of an expression
970	rename ApplyModifiersState_Define to Expr_Define
971	condense the code for parsing :S and :C modifiers
972
9732021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
974
975	* VERSION (_MAKE_VERSION): 20210206
976	Merge with NetBSD make, pick up
977	o unit-tests: use private TMPDIR to avoid errors from other users
978
9792021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
980
981	* VERSION (_MAKE_VERSION): 20210205
982	Merge with NetBSD make, pick up
983	o avoid strdup in mkTempFile
984	o always use vfork
985	o rename context and ctxt to scope
986	o rename some VAR constants to SCOPE
987	o Var_ functions, move the scope to the front
988	o use shortcut functions Global_Set and Global_Append
989	o add shortcut Global_Delete for deleting a global variable
990	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
991	o compat.c: when exiting due to an error, print graph information
992	o enum.c: remove overengineered Enum_ValueToString
993	o make.c: remove unused INTERNAL flag
994	remove unused return type of MakeBuildParent
995	o parse.c: replace parse error "Need an operator" with better message
996	o var.c: improve documentation about variable scopes
997	rename Var_ValueDirect to GNode_ValueDirect
998	rename old Var_SetWithFlags to Var_SetExpandWithFlags
999	merge SetVar into Var_SetWithFlags
1000	split Var_Exists into plain Var_Exists and Var_ExistsExpand
1001	split Var_Append into Var_Append and Var_AppendExpand
1002	replace enum bit-set with bit-field
1003	o unit-tests/var-op-shell: use kill rather than kill -14
1004	which broke on darwin with recent update.
1005
10062021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
1007
1008	* configure.in: check for sig_atomic_t and define it as 'int'
1009	if missing.
1010
1011	* VERSION (_MAKE_VERSION): 20210201
1012	Merge with NetBSD make, pick up
1013	o use sig_atomic_t for caught_sigchld
1014
10152021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1016
1017	* VERSION (_MAKE_VERSION): 20210130
1018	Merge with NetBSD make, pick up
1019	o more unit tests
1020	o convert SearchPath to struct
1021	o split Buf_Destroy into Buf_Done and Buf_DoneData
1022	o for.c: split For_Eval into separate functions
1023	rename struct For to struct ForLoop
1024	o job.c: do not create empty shell files in jobs mode
1025	rename JobOpenTmpFile to JobWriteShellCommands
1026	reduce unnecessary calls to waitpid
1027	o parse.c: in -dp mode, print stack trace with each diagnostic
1028
10292021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1030
1031	* VERSION (_MAKE_VERSION): 20210123
1032	Merge with NetBSD make, pick up
1033	o rename Dir_Expand to SearchPath_Expand
1034	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
1035	o cond.c: fix debug output for comparison operators in conditionals
1036	o dir.c: split Dir_FindFile into separate functions
1037
10382021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1039
1040	* VERSION (_MAKE_VERSION): 20210120
1041	Merge with NetBSD make, pick up
1042	o fix some more lint nits
1043	o refine some unit tests for portability
1044	o cond.c: rework parsing
1045
10462021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1047
1048	* VERSION (_MAKE_VERSION): 20210110
1049	Merge with NetBSD make, pick up
1050	o fix lint warnings
1051	o consistently use boolean expressions in conditions
1052
10532021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
1054
1055	* VERSION (_MAKE_VERSION): 20210108
1056	Merge with NetBSD make, pick up
1057	o job.c: back to polling token pipe if we want a token
1058	o main.c: always print 'stopped in' on first call
1059	The execption is if we bail because of an abort token
1060	in which case just exit 6.
1061
10622021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1063
1064	* VERSION (_MAKE_VERSION): 20210101
1065	Merge with NetBSD make, pick up
1066	o Happy New Year!
1067	o rename CmdOpts.lint to strict
1068	o exit 2 on technical errors
1069	o replace pointers in controlling conditions with booleans
1070	o replace global preserveUndefined with VARE_KEEP_UNDEF
1071	o compat.c: re-export variables from the actual make process
1072	if using vfork this is the effect anyway
1073	o cond.c: clean up VarParseResult constants
1074	o for.c: fix undefined behavior in SubstVarLong
1075	make control flow in SubstVarLong of .for loops more obvious
1076	clean up SubstVarShort in .for loops
1077	extract ForSubstBody from ForReadMore
1078	clean up ForReadMore
1079	simplify termination condition for .for loop
1080	add error handling for .for loop items
1081	job.c: re-export variables from the actual make process
1082	parse.c: remove mmap for loading files, only allow files < 1 GiB
1083	fix edge case in := with undefined in variable name
1084	skip variable expansion in ParseDependencyTargetWord
1085	var.c: split ExportVar into separate functions
1086	clean up code in extracted ExportVar functions
1087	remove dead code from ApplyModifiersIndirect
1088	split Var_Subst into easily understandable functions
1089	clean up VarParseResult constants
1090
10912020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
1092
1093	* main.c: use .MAKE.DEPENDFILE as set by makefiles
1094
10952020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1096
1097	* VERSION (_MAKE_VERSION): 20201222
1098	Merge with NetBSD make, pick up
1099	o make DEBUG macro return boolean
1100	o parse.c: fix assertion failure for files without trailing newline
1101	o var.c: allow .undef to undefine multiple variables at once
1102	remove excess newline from parse errors
1103
11042020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1105
1106	* VERSION (_MAKE_VERSION): 20201221
1107	Merge with NetBSD make, pick up
1108	o some unit-test updates
1109
11102020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1111
1112	* VERSION (_MAKE_VERSION): 20201220
1113	Merge with NetBSD make, pick up
1114	o more unit tests
1115	o return FStr from Var_Parse and Var_Value
1116	o spell nonexistent consistently
1117	o add str_basename to reduce duplicate code
1118	o compat.c: fix .ERROR_TARGET in compat -k mode
1119	extract InitSignals from Compat_Run
1120	extract UseShell from Compat_RunCommand
1121	o cond.c: error out if an '.endif' or '.else' contain extraneous text
1122	o for.c: rename ForIterate to ForReadMore
1123	o hash.c: clean up hash function for HashTable
1124	o lst.c: rename Vector.priv_cap to cap
1125	o main.c: remove constant parameter from MakeMode
1126	o make.c: use symbolic time for 0 in Make_Recheck
1127	extract MakeChildren from MakeStartJobs
1128	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
1129	fix error message for .info/.warning/.error without argument
1130	extract Var_Undef from ParseDirective
1131	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
1132	rename mode constants for ParseGetLine to be more expressive
1133	reduce debugging details in Parse_SetInput
1134	fix line numbers in .for loops
1135	split ParseGetLine into separate functions
1136	fix garbled output for failed shell command
1137	var.c: remove redundant assignment in ApplyModifier_SysV
1138	error out on unknown variable modifiers at parse time
1139	remove wrong error message for indirect modifier in lint mode
1140	extract ApplySingleModifier from ApplyModifiers
1141	use FStr for memory management in Var_SetWithFlags
1142	extract SetVar from Var_SetWithFlags
1143	use FStr in VarNew
1144	extract string functions from ApplyModifier_To
1145	error out if .undef has not exactly 1 argument
1146	extract Var_DeleteVar from Var_Delete
1147	extract Var_Undef from ParseDirective
1148	clean up memory management for expanding variable expressions
1149
11502020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1151
1152	* avoid %zu
1153
1154	* lst.c: avoid anonymous union
1155
1156	* VERSION (_MAKE_VERSION): 20201212
1157	Merge with NetBSD make, pick up
1158	o more unit tests
1159	o inline Targ_Ignore and Targ_Silent
1160	o split JobFlags into separate fields
1161	o remove const from function parameters (left overs from refactoring)
1162	o eliminate boolean argument of Var_Export
1163	o make API of Buf_Init simpler
1164	o rename ParseRunOptions to ParseCommandFlags
1165	o replace *line with line[0]
1166	o compat.c: fix wrong exit status for multiple failed main targets
1167	refactor Compat_Run to show the error condition more clearly
1168	don't make .END if the main targets already failed (-k mode)
1169	fix exit status in -k mode if a dependency fails
1170	o for.c: clean up Buf_AddEscaped in .for loops
1171	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
1172	make Job_Touch simpler
1173	refactor JobFinish
1174	rename Shell.exitFlag to errFlag
1175	move Job.xtraced to ShellWriter
1176	make printing of shell commands independent from the job
1177	rename shell flags in struct Shell
1178	extract JobOpenTmpFile from JobStart
1179	rename RunFlags to CommandFlags
1180	split various Job.* into separate fields
1181	rename commandShell to shell
1182	extract InitShellNameAndPath from Shell_Init
1183	replace signal handling macros with local functions
1184	replace macro MESSAGE with local function
1185	parse.c: error out on null bytes in makefiles
1186	error out on misspelled directives
1187	rename IFile.nextbuf to readMore
1188	fix undefined behavior in ParseEOF
1189	str.c: remove redundant call to strlen in Str_Words
1190	var.c: error out on misspelled .unexport-env
1191	error out on misspelled .export directives
1192	extract ExportVars from Var_Export
1193	extract ExportVarsExpand from Var_Export
1194	eliminate boolean argument of Var_Export
1195	fix undefined behavior when exporting ${:U }
1196	rename Var_ExportVars to Var_ReexportVars
1197	rename Var_Export1 to ExportVar
1198
11992020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1200
1201	* VERSION (_MAKE_VERSION): 20201206
1202	Merge with NetBSD make, pick up
1203	o more unit tests
1204	o inline macros for debug logging
1205	o use consistent variable names for list nodes
1206	o define constants for enum zero-values
1207	o dir.c: use fixed format for debug output of the directory cache
1208	remove Dir_InitDir
1209	o lst.c: inline Lst_Enqueue, Vector_Done
1210	o meta.c: remove unused parameter from meta_needed
1211	o parse.c: rename parse functions
1212	o suff.c: extract ExpandChildrenRegular from ExpandChildren
1213	o targ.c: don't concatenate identifiers in Targ_PrintType
1214	o var.c: remove comment decoration
1215	extract UnexportVars from Var_UnExport
1216	extract GetVarnamesToUnexport from Var_UnExport
1217	extract UnexportEnv from Var_UnExport
1218	extract UnexportVar from Var_UnExport
1219	move CleanEnv to UnexportVars
1220	replace pointer comparisons with enum
1221	add FStr to var.c to make memory handling simpler
1222	use FStr in Var_UnExport
1223	move type definitions in var.c to the top
1224	extract FreeEnvVar from Var_Parse
1225	extract ShuffleStrings from ApplyModifier_Order
1226
12272020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
1228
1229	* VERSION (_MAKE_VERSION): 20201130
1230	Merge with NetBSD make, pick up
1231	o add unit tests for META MODE
1232	o reduce memory allocation for dirSearchPath, GNode.parents,
1233	GNode.children, OpenDirs
1234	o reduce pointer indirection for GNode.cohorts and
1235	GNode.implicitParents
1236	o remove pointer indirection from GNode.commands
1237	o inline Lst_ForEachUntil in meta mode
1238	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
1239	clean up memory management for CachedDirs
1240	fix the reference count of dotLast going negative
1241	add debug logging for OpenDirs_Done
1242	extract CacheNewDir from Dir_AddDir
1243	add debug logging for reference counting of CachedDir
1244	rename some Dir functions to SearchPath
1245	o job.c: rename some global variables
1246	o main.c: reduce memory allocation in ReadBuiltinRules
1247	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
1248	CmdOpts.makefiles
1249	Add .MAKE.UID and .MAKE.GID
1250	o make.c: reduce memory allocation for/in toBeMade,
1251	Make_ProcessWait, Make_ExpandUse
1252	o meta.c: reduce memory allocation in meta_oodate
1253	o parse.c: reduce memory allocations for parsing dependencies and
1254	targets
1255	o suff.c: reduce memory allocation in suffix handling
1256
12572020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
1258
1259	* VERSION (_MAKE_VERSION): 20201124
1260	Merge with NetBSD make, pick up
1261	o .MAKE.{UID,GID} represent uid and gid running make.
1262	o fix error handling for .BEGIN and .END dependency in -k mode
1263	o fix missing "Stop." after failed .END node in -k mode
1264	o use properly typed comparisons in boolean contexts
1265	o replace a few HashTable_CreateEntry with HashTable_Set
1266	o add HashSet type
1267	o compat.c: split Compat_Make into smaller functions
1268	extract DebugFailedTarget from Compat_RunCommand
1269	o dir.c: refactor Dir_UpdateMTime
1270	migrate CachedDir.files from HashTable to HashSet
1271	o make.c: add high-level API for GNode.made
1272
12732020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
1274
1275	* VERSION (_MAKE_VERSION): 20201122
1276	Merge with NetBSD make, pick up
1277	o rename GNode.context to vars
1278	o suff.c: cleanup and refactor
1279	rename some functions and vars to better reflect usage
1280	add high-level API for CandidateSearcher
1281	o targ.c: add more debug logging for suffix handling
1282	o more unit tests
1283	o add debug logging for setting and resetting the main target
1284
12852020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
1286
1287	* VERSION (_MAKE_VERSION): 20201117
1288	Merge with NetBSD make, pick up
1289	o fix some unit-tests when .SHELL is dash
1290	o rename Targ_NewGN to GNode_New
1291	o make some GNode functions const
1292	o main.c: call Targ_Init before Var_Init
1293	cleanup PrintOnError, getTmpdir and ParseBoolean
1294	o var.c: fix error message of failed :!cmd! modifier
1295
12962020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
1297
1298	* VERSION (_MAKE_VERSION): 20201114
1299	Merge with NetBSD make, pick up
1300	o replace a few HashTable_CreateEntry with HashTable_Set
1301	o clean up cached_stats
1302	o rename DEFAULT to defaultNode
1303	o remove redundant struct make_stat
1304	o cond.c: in lint mode, check for ".else <cond>"
1305	use bitset for IfState
1306	replace large switch with if-else in Cond_EvalLine
1307	o job.c: clean up JobExec, JobStart, JobDoOutput
1308	use stderr for error message about failed touch
1309	clean up Job_Touch
1310	replace macro DBPRINTF with JobPrintln
1311	rename JobState to JobStatus
1312	main.c: switch cache for realpath from GNode to HashTable
1313	clean up Fatal
1314	clean up InitDefSysIncPath
1315	use progname instead of hard-coded 'make' in warning
1316	rename Main_SetVarObjdir to SetVarObjdir
1317	make.1: document the -S option
1318	make.c: fix debug output for GNode details
1319	use symbolic names in debug output of GNodes
1320
13212020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
1322
1323	* configure.in: fix --with-force-machine-arch
1324
1325	* VERSION (_MAKE_VERSION): 20201112
1326	Merge with NetBSD make, pick up
1327	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
1328	checks in InitObjdir.  Explicit .OBJDIR target always allows
1329	read-only directory.
1330	o cond.c: clean up Cond_EvalLine
1331
13322020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1333
1334	* VERSION (_MAKE_VERSION): 20201111
1335	Merge with NetBSD make, pick up
1336	o more unit-tests
1337	o style cleanup
1338	remove redundant parentheses from sizeof operator
1339	replace character literal 0 with '\0'.
1340	replace pointer literal 0 with NULL.
1341	remove redundant parentheses.
1342	replace (expr & mask) == 0 with !(expr & mask).
1343	use strict typing in conditions of the form !var
1344	o rename Make_OODate to GNode_IsOODate
1345	o rename Make_TimeStamp to GNode_UpdateYoungestChild
1346	o rename Var_Set_with_flags to Var_SetWithFlags
1347	o rename dieQuietly to shouldDieQuietly
1348	o buf.c: make API of Buf_Init simpler
1349	o compat.c: clean up Compat_Make, Compat_RunCommand,
1350	CompatDeleteTarget and CompatInterrupt
1351	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
1352	clean up CondParser_Comparison
1353	o main.c: rename getBoolean and s2Boolean
1354	rename MAKEFILE_PREFERENCE for consistency
1355	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
1356	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
1357	replace emptyString with allocated empty string
1358	error out on unclosed expressions after the colon
1359
13602020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1361
1362	* VERSION (_MAKE_VERSION): 20201101
1363	Merge with NetBSD make, pick up
1364	o negate NoExecute to GNode_ShouldExecute
1365	o job.c: rename JobMatchShell to FindShellByName
1366	extract EscapeShellDblQuot from JobPrintCommand
1367	extract ParseRunOptions from JobPrintCommand
1368	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
1369	treat malformed :range, :ts and :[...] as errors
1370	add tests for the variable modifiers :[words] and :range
1371
13722020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
1373
1374	* VERSION (_MAKE_VERSION): 20201031
1375	Merge with NetBSD make, pick up
1376	o format #include directives consistently
1377	o do not look up local variables like .TARGET anywhere else
1378	o main.c: Main_SetObjdir is first called for curdir which may be
1379	readonly
1380	reduce the scope where recursive expressions are detected
1381	remove redundant :tl from getBoolean
1382	clean up mkTempFile
1383	o meta.c: simplify memory allocation in meta_create and meta_oodate
1384	o parse.c: extract loadedfile_mmap from loadfile
1385	o trace.c: document possible undefined behavior with .CURDIR
1386	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
1387	rename ismeta to is_shell_metachar
1388	remove debug logging for the :Q variable modifier
1389	rename VarIsDynamic to VarnameIsDynamic
1390	use consistent parameter order in varname parsing functions
1391	extract ParseVarnameLong from Var_Parse
1392	extract ParseVarnameShort from Var_Parse
1393	fix type of ParseModifierPart parameter delim
1394	extract IsEscapedModifierPart from ParseModifierPart
1395	clean up ModifyWords
1396	add test for combining the :@ and :? variable modifiers
1397
13982020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
1399
1400	* VERSION (_MAKE_VERSION): 20201030
1401	Merge with NetBSD make, pick up
1402	o change char * to void * in Var_Value
1403	o make iterating over HashTable simpler
1404	o rename VAR_CMD to VAR_CMDLINE
1405	o cond.c: clean up is_separator
1406	fix parse error in string literal in conditional
1407	o main.c: do not use objdir that is not writable
1408	in lint mode, exit with error status on errors
1409	o  parse.c: clean up StrContainsWord
1410	fix out-of-bounds pointer in ParseTrackInput
1411	o var.c: rename Str_SYSVMatch and its parameters
1412	remove unsatisfiable conditions in Var_Set_with_flags
1413	document where the variable name is expanded
1414	fix documentation for VARP_SUB_ONE
1415	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
1416	document VAR_READONLY
1417	prevent appending to read-only variables
1418	extract MayExport from Var_Export1
1419	remove redundant evaluations in VarFind
1420	replace VarFindFlags with a simple Boolean
1421	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
1422
14232020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1424
1425	* VERSION (_MAKE_VERSION): 20201028
1426	Merge with NetBSD make, pick up
1427	o rename defIncPath to defSysIncPath
1428	o initialize all CmdOpts fields
1429	o lst.c: inline Vector_Get
1430	o main.c: refactor main extract
1431	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
1432	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
1433	InitDefIncPath,CmdOpts_Init,UnlimitFiles
1434	o parse.c: merge curFile into includes
1435	rename predecessor to order_pred
1436	sort ParseSpecial alphabetically
1437	remove unused, undocumented .NOEXPORT
1438	rename ParseSpecial enum values consistently
1439	rename some fields of struct IFile
1440
14412020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
1442
1443	* VERSION (_MAKE_VERSION): 20201026
1444	Merge with NetBSD make, pick up
1445	o group the command line options and arguments into a struct
1446	o rename GNode.cmgn to youngestChild
1447	o rename hash functions to identify the type name
1448	o negate OP_NOP and rename it to GNode_IsTarget
1449	o add GNode_Path to access the path of a GNode
1450	o remove macros MIN and MAX
1451	o remove unused Lst_Find and Lst_FindFrom
1452	o arch.c: and make Arch_FindLib simpler
1453	clean up code layout
1454	make Arch_ParseArchive simpler
1455	o cond.c: inline CondFindStrMatch into FuncMake
1456	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
1457	omit trailing space in debug output for expanding file patterns
1458	refactor DirMatchFiles
1459	document that the SearchPath of Dir_FindFile may be NULL
1460	remove UNCONST from Dir_Expand
1461	inline DirFindName
1462	o for.c: clean up code for handling .for loops
1463	o hash.c: print hash in debug log with fixed width
1464	clean up hash table functions
1465	reduce amount of string hashing
1466	o job.c: refactor JobDeleteTarget
1467	use proper enum constants for aborting
1468	convert result of JobStart from macros to enum
1469	convert abort reason macros to enum
1470	rework Job_CheckCommands to reduce indentation
1471	rename Shell fields
1472	add field names in declaration of DEFSHELL_CUSTOM
1473	convert JobState and JobFlags to enum types
1474	move handling of the "..." command to JobPrintCommands
1475	o lst.c: clean up
1476	refactor LstNodeNew
1477	remove Lst_Open, Lst_Next, Lst_Close
1478	remove code for circular lists from Lst_Next
1479	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
1480	/dev/null or anything starting with "no"
1481	convert macros for debug flags into enum
1482	o make.c: inline Lst_Copy in Make_ExpandUse
1483	o meta.c: inline Lst_Find in meta_oodate
1484	make Lst_RemoveIf simpler in meta_oodate
1485	o parse.c: convert error level for Parse_Error to an enum
1486	o suff.c: properly terminate debug output with newline
1487	add more details to DEBUG_SRC log
1488	replace Dir_CopyDir with Dir_CopyDirSearchPath
1489	don't modify GNode name while rebuilding the suffix graph
1490	o var.c: reduce duplicate code in VarFind
1491
14922020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1493
1494	* VERSION (_MAKE_VERSION): 20201022
1495	Merge with NetBSD make, pick up
1496	o more refactoring and simplification to reduce code size
1497	o var.c: extract CanonicalVarname from VarFind
1498	o make.c: extract UpdateImplicitParentsVars from Make_Update
1499	o main.c: extract PrintVar from doPrintVars
1500	extract HandlePWD from main
1501	o lst.c: inline simple Lst getters
1502	remove unused Lst_ForEach
1503	o job.c: move struct Shell from job.h to job.c
1504	o more unit tests
1505
15062020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
1507
1508	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1509
15102020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1511
1512	* VERSION (_MAKE_VERSION): 20201018
1513	Merge with NetBSD make, pick up
1514	o remove USE_IOVEC
1515	o rename some Hash_* apis to Hash*
1516	o replace execError with execDie
1517	o rename Lst_Init to Lst_New
1518	o add tags to enum types
1519	o rename Stack to Vector
1520	o parse.c: more refactoring
1521	o unit-tests: make some tests use line buffered stdout
1522	o unit-tests/Makefile: in meta mode do not make all tests depend on
1523	Makefile, it isn't necessary.
1524
15252020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
1526
1527	* main.c: check for CTL_HW being defined.
1528	* unit-tests/Makefile: ensure export tests output are POSIX compliant
1529	disable opt-debug-jobs test until it works on ubuntu
1530
1531	* VERSION (_MAKE_VERSION): 20201010
1532	Merge with NetBSD make, pick up
1533	o dir.c: remove pathname limit for Dir_FindHereOrAbove
1534	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
1535	o main.c: extract init_machine and init_machine_arch from main
1536	allow to disable debug logging options
1537	o parse.c: enable format string truncation warnings
1538	extract parsing of sources from ParseDoDependency
1539	split ParseDoSrc into smaller functions
1540	hide implementation details from Parse_DoVar
1541	clean up parsing of variable assignments
1542	split Parse_DoVar into manageable pieces
1543	don't modify the given line during Parse_DoVar
1544	fix out-of-bounds memory access in Parse_DoVar
1545	fix parsing of the :sh assignment modifier
1546	o var.c: rework memory allocation for the name of variables
1547	extract ApplyModifier_Literal into separate function
1548	in lint mode, reject modifiers without delimiter
1549	do not export variable names starting with '-'
1550	o fix double-free bug in -DCLEANUP mode
1551	o more cleanup to enable higher warnings level
1552	o more unit tests
1553
15542020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1555
1556	* VERSION (_MAKE_VERSION): 20201002
1557	Merge with NetBSD make, pick up
1558	o dir.c: use hash table for looking up open directories by name
1559	o main.c: clean up option handling
1560	o parse.c: add missing const for Parse_AddIncludeDir
1561	o var.c: ApplyModifier_To, update pp in each branch
1562	o remove redundant function prototypes
1563	o more unit tests
1564
15652020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1566
1567	* VERSION (_MAKE_VERSION): 20201001
1568	Merge with NetBSD make, pick up
1569	o compat.c: comment about "..."
1570
15712020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
1572
1573	* VERSION (_MAKE_VERSION): 20200930
1574	Merge with NetBSD make, pick up
1575	o job.c: split Job.jobPipe into 2 separate fields
1576	replace Lst_Open with direct iteration
1577	o lst.c: remove redundant assertions
1578	o targ.c: replace Lst_Open with direct iteration
1579	o var.c: fix bug in evaluation of indirect variable modifiers
1580	extract ApplyModifier_Quote into separate function
1581	o make debug logging simpler
1582
15832020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1584
1585	* VERSION (_MAKE_VERSION): 20200927
1586	Merge with NetBSD make, pick up
1587	o parse.c: ensure parse errors result in 'stopped in' message.
1588	o compat.c: make parameter of Compat_RunCommand const
1589	o main.c: extract InitVarTarget from main
1590	o parse.c: rename ParseFinishLine to FinishDependencyGroup
1591	refactor ParseDoDependency
1592	o var.c: Var_Subst no longer returns string result
1593	rename Var_ParsePP back to Var_Parse
1594	in lint mode, improve error handling for undefined variables
1595	extract ParseVarname from Var_Parse
1596	o rename Lst_ForEach to Lst_ForEachUntil
1597	o inline Lst_ForEachUntil in several cases
1598	o clean up API for finding and creating GNodes
1599	o fix assertion failure in -j mode with .END node
1600	o inline and remove LstNode_Prev and LstNode_Next
1601	o use fine-grained type names for lists and their nodes
1602	o more unit tests
1603
16042020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1605
1606	* VERSION (_MAKE_VERSION): 20200911
1607	Merge with NetBSD make, pick up
1608	o cond.c: split EvalComparison into smaller functions
1609	reorder parameters of condition parsing functions
1610	reduce code size in CondParser_Eval
1611	rename CondGetString to CondParser_String
1612	add CondLexer_SkipWhitespace
1613	group the condition parsing state into a struct
1614	in CondGetString, replace repeated Buf_Add with Buf_AddStr
1615	o migrate Var_Parse to Var_ParsePP
1616	o add wrappers around ctype.h functions
1617	o lst.c: use a stack instead of a list for the nested include path
1618	o more unit tests
1619
16202020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
1621
1622	* make-bootstrap.sh.in: adjust object list
1623
16242020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
1625
1626	* VERSION (_MAKE_VERSION): 20200902
1627	Merge with NetBSD make, pick up
1628	o use make_stat to ensure no confusion over valid fields
1629	returned by cached_stat
1630	o var.c: make VarQuote const-correct
1631	o add unit tests for .for
1632
16332020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1634
1635	* VERSION (_MAKE_VERSION): 20200901
1636	Merge with NetBSD make, pick up
1637	o rename Hash_Table fields
1638	o make data types in Dir_HasWildcards more precise
1639
16402020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
1641
1642	* VERSION (_MAKE_VERSION): 20200831
1643	Merge with NetBSD make, pick up
1644	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
1645	o lst.c: Lst_Open renable assert that list isn't open
1646	o unit test for .TARGET dependent flags
1647	o var.c: fix aliasing bug in VarUniq
1648	o more unit tests for :u
1649
16502020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
1651
1652	* VERSION (_MAKE_VERSION): 20200830
1653	Merge with NetBSD make, pick up
1654	o allow for strict type checking for Boolean
1655	o Var_Parse never returns NULL
1656	o Var_Subst never returns NULL
1657	o Lst_Find now takes boolean match function
1658	o rename Lst_Memeber to Lst_FindDatum
1659	o rename LstNode functions to match their type
1660	o rename GNode.iParents to implicitParents
1661	o fix assertion failure for .SUFFIXES in archives
1662	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
1663	remove unreachable code from CompatRunCommand
1664	o main.c: simplify getBoolean
1665	o stc.c: replace brk_string with simpler Str_Words
1666	o suff.c: add debug macros
1667
16682020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
1669
1670	* VERSION (_MAKE_VERSION): 20200828
1671	Merge with NetBSD make, pick up
1672	o lst.c: inline LstIsValid and LstNodeIsValid
1673	o remove trailing S from Lst function names after migration complete
1674	o more comment cleanup/clarification
1675	o suff.c: clean up suffix handling
1676	o more unit tests
1677
16782020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1679
1680	* VERSION (_MAKE_VERSION): 20200826
1681	Merge with NetBSD make, pick up
1682	o enum.c: distinguish between bitsets containing flags and
1683	ordinary enums
1684	o var.c: fix error message for ::!= modifier with shell error
1685	o fix bugs in -DCLEANUP mode
1686
16872020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1688
1689	* VERSION (_MAKE_VERSION): 20200824
1690	Merge with NetBSD make, pick up
1691	o in debug mode, print GNode details in symbols
1692
16932020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
1694
1695	* VERSION (_MAKE_VERSION): 20200823
1696	Merge with NetBSD make, pick up
1697	o lst.c: more asserts,
1698	make args to Lst_Find match others.
1699	o var.c: pass flags to VarAdd
1700	o arch.c: use Buffer
1701	o str.c: brk_string return size_t for nwords
1702	o more unit tests
1703
17042020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
1705
1706	* VERSION (_MAKE_VERSION):
1707	Merge with NetBSD make, pick up
1708	o var.c: support for read-only variables eg .SHELL
1709	being the shell used to run scripts.
1710	o lst.c: more simplification
1711	o more documentation and style cleanup
1712	o more unit tests
1713	o ensure unit-test/Makefile is run by TEST_MAKE
1714	o reduce duplication of header inclusion
1715
17162020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
1717
1718	* VERSION (_MAKE_VERSION): 20200821
1719	Merge with NetBSD make, pick up
1720	o lst.c: revert invalid assertion - but document it
1721	o dir.c: split Dir_Init into two functions
1722
17232020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
1724
1725	* lst.c: needs inttypes.h on Linux
1726
1727	* VERSION (_MAKE_VERSION): 20200820
1728	Merge with NetBSD make, pick up
1729	o make.1: clarify some passages
1730	o var.c: more cleanup, clarify comments
1731	o make_malloc.c: remove unreachable code
1732	o cond.c: make CondGetString easier to debug
1733	o simplify list usage
1734	o unit-tests: more
1735
17362020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1737
1738	* VERSION (_MAKE_VERSION): 20200816
1739	Merge with NetBSD make, pick up
1740	o refactor unit-tests to be more fine grained
1741	  not all tests moved yet
1742
17432020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
1744
1745	* VERSION (_MAKE_VERSION): 20200814
1746	Merge with NetBSD make, pick up
1747	o more str_concat variants
1748	o more enums for flags
1749	o var.c: cleanup for higher warnings level
1750
17512020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1752
1753	* VERSION (_MAKE_VERSION): 20200810
1754	Merge with NetBSD make, pick up
1755	o more unit tests
1756	o general comment and style cleanup
1757
17582020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
1759
1760	* VERSION (_MAKE_VERSION): 20200808
1761	Merge with NetBSD make, pick up
1762	o enum.[ch]: streamline, enums for use in flags and debug output
1763	o cond.c: cleanup
1764	o var.c: reduce duplicate code for modifiers
1765	debug logging for Var_Parse
1766	more detailed debug output
1767	o more unit tests
1768
17692020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1770
1771	* unit-tests/Makefile: -r for recursive and include Makefile.inc
1772	so I can run tests in meta mode
1773	supress extra noise if in meta mode
1774
1775	* VERSION (_MAKE_VERSION): 20200806
1776	Merge with NetBSD make, pick up
1777	o parse.c: remove VARE_WANTRES for LINT
1778	we just want to check parsing (for now).
1779
17802020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1781
1782	* VERSION (_MAKE_VERSION): 20200805
1783	Merge with NetBSD make, pick up
1784	o make.1: Rework the description of dependence operators
1785
17862020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1787
1788	* VERSION (_MAKE_VERSION): 20200803
1789	Merge with NetBSD make, pick up
1790	o revert some C99 usage, for max portability
1791	o unit-tests/lint
1792
17932020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
1794
1795	* VERSION (_MAKE_VERSION): 20200802
1796	Merge with NetBSD make, pick up
1797	o more unit tests
1798
17992020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
1800
1801	* Remove NetBSD specific plumbing from unit-tests/Makefile
1802
1803	* VERSION (_MAKE_VERSION): 20200801
1804	Merge with NetBSD make, pick up
1805	o make Var_Value return const
1806	o size_t for buf sizes
1807	o optimize some buffer operations - avoid strlen
1808
18092020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1810
1811	* VERSION (_MAKE_VERSION): 20200731
1812	Merge with NetBSD make, pick up
1813	o var.c: fix undefinded behavior for incomplete :t modifier
1814	  fixes unit-test/moderrs on Ubuntu
1815	o parse.c: When parsing variable assignments other than :=
1816	  if DEBUG(LINT) test substition of value, so we get a file and
1817	  line number in the resulting error.
1818	o dir.c: fix parsing of nested braces in dependency lines
1819	  add unit-tests
1820
18212020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1822
1823	* VERSION (_MAKE_VERSION): 20200730
1824	Merge with NetBSD make, pick up
1825	o var.c: minor cleanup
1826	o unit-tests: more tests to improve code coverage
1827
18282020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
1829
1830	* VERSION (_MAKE_VERSION): 20200728
1831	Merge with NetBSD make, pick up
1832	o var.c: more optimizations
1833
18342020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
1835
1836	* VERSION (_MAKE_VERSION): 20200726
1837	Merge with NetBSD make, pick up
1838	o collapse lsd.lib into lst.c - reduce code size and allow inlining
1839	o lots of function comment updates
1840	o var.c: more optimizations
1841	o make return of Var_Parse const
1842
18432020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1844
1845	* VERSION (_MAKE_VERSION): 20200720
1846	Merge with NetBSD make, pick up
1847	o DEBUG_HASH report stats at end and tone down the noise
1848	o var.c: each flag type gets its own prefix.
1849	move SysV string matching to var.c
1850	make ampersand in ${VAR:from=to&} an ordinary character
1851	cleanup and simplify implementation of modifiers
1852	o make.1: move documentation for assignment modifiers
1853
18542020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1855
1856	* VERSION (_MAKE_VERSION): 20200718
1857	Merge with NetBSD make, pick up
1858	o DEBUG_HASH to see how well the hash tables are working
1859
18602020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1861
1862	* bsd.after-import.mk: make sure we update unit-tests/Makefile
1863
18642020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1865
1866	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
1867
1868	* VERSION (_MAKE_VERSION): 20200710
1869	Merge with NetBSD make, pick up
1870	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
1871	o meta.c: target flagged .META is out-of-date if meta file missing
1872
18732020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
1874
1875	* VERSION (_MAKE_VERSION): 20200709
1876	Merge with NetBSD make, pick up
1877	o cond.c: fix for compare_expression when doEval=0
1878	o unit-tests/Makefile: rework
1879	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
1880
18812020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1882
1883	* VERSION (_MAKE_VERSION): 20200704
1884	Merge with NetBSD make, pick up
1885	(most of this by rillig@)
1886	o lots of style and white-space cleanup
1887	o lots more unit tests for variable modifiers
1888	o simplified description of some functions
1889	o str.c: refactor Str_Match
1890	o var.c: debugging output for :@
1891	  constify VarModify parameter
1892	  fix :hash modifier on 16-bit platforms
1893	  remove unnecessary forward declarations
1894	  refactor ApplyModifier_SysV to have less indentation
1895	  simplify code for :E and :R
1896	  clean up code for :H and :T
1897	  refactor ApplyModifiers
1898
1899	* var.c: we need stdint.h on some platforms to get uint32_t
1900	* unit-test/Makefile: we need to supress the specific error
1901	for RE substitution error in modmisc, since it varies accross
1902	different OS.
1903
19042020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
1905
1906	* VERSION (_MAKE_VERSION): 20200702
1907	Merge with NetBSD make, pick up
1908	o var.c: more improvements to avoiding unnecessary evaluation
1909	use enums for flags
1910	o remove flags arg to Var_Set which outside of var.c is always 0
1911
19122020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1913
1914	* VERSION (_MAKE_VERSION): 20200701
1915	Merge with NetBSD make, pick up
1916	o var.c: with change to cond.c; ensure that nested variables
1917	within a variable name are expanded.
1918	o unit-tests/varmisc.mk: test for nested varname
1919
19202020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
1921
1922	* VERSION (_MAKE_VERSION): 20200629
1923	Merge with NetBSD make, pick up
1924	o cond.c: do not eval unnecessary terms of conditionals.
1925
19262020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
1927
1928	* VERSION (_MAKE_VERSION): 20200625
1929	Merge with NetBSD make, pick up
1930	o meta.c: report error if lseek in filemon_read fails
1931
19322020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1933
1934	* VERSION (_MAKE_VERSION): 20200622
1935	Merge with NetBSD make, pick up
1936	o dieQuietly: ignore OP_SUBMAKE as too aggressive
1937
19382020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
1939
1940	* VERSION (_MAKE_VERSION): 20200619
1941	Merge with NetBSD make, pick up
1942	o str.c: performance improvement for Str_Match for multiple '*'
1943	o dieQuietly: supress the failure output from make
1944	when failing node is a sub-make or a sibling failed.
1945	This cuts down greatly on unhelpful noise at the end of
1946	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
1947
19482020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1949
1950	* FILES: add LICENSE to appease some packagers.
1951	This is an attempt to fairly represent the license on almost
1952	200 files, which are almost all BSD-3-Clause
1953	The few exceptions being more liberal.
1954
1955	* VERSION (_MAKE_VERSION): 20200610
1956	Merge with NetBSD make, pick up
1957	o unit test for :Or
1958
19592020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1960
1961	* VERSION (_MAKE_VERSION): 20200606
1962	Merge with NetBSD make, pick up
1963	o make.1: cleanup
1964
1965	* Makefile: fix depends for main.o which broke MAKE_VERSION
1966
19672020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
1968
1969	* VERSION (_MAKE_VERSION): 20200605
1970	Merge with NetBSD make, pick up
1971	o dir.c: cached_stats - don't confuse stat and lstat results.
1972	o var.c: add :Or for reverse sort.
1973
19742020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
1975
1976	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
1977	also if --with-filemon= specifies path to filemon.h
1978	set use_filemon=dev
1979	* dirname.c: remove include of namespace.h
1980
19812020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
1982
1983	* VERSION (_MAKE_VERSION): 20200517
1984	Merge with NetBSD make, pick up
1985	o modified dollar tests to avoid shell dependencies
1986	o new tests for .INCLUDEFROM
1987
19882020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
1989
1990	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
1991	to not depend so much on shell behavior
1992
19932020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
1994
1995	* VERSION (_MAKE_VERSION): 20200510
1996	Merge with NetBSD make, pick up
1997	o unit test for dollar handling
1998
19992020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
2000
2001	* VERSION (_MAKE_VERSION): 20200506
2002	Merge with NetBSD make, pick up
2003	o str.c: empty string does not match % pattern
2004	  plus unit-test changes
2005
20062020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
2007
2008	* VERSION (_MAKE_VERSION): 20200504
2009	May the 4th be with you
2010	Merge with NetBSD make, pick up
2011	o var.c: import handling of old sysV style modifier using '%'
2012	o str.c: refactor brk_string
2013	o unit-tests: add test case for lazy conditions
2014
20152020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
2016
2017	* VERSION (_MAKE_VERSION): 20200418
2018
2019	* configure.in: use_makefile=no for cygwin et al.
2020	case insensitive filesystems just don't work if both
2021	makefile and Makefile exist.
2022	NOTE: bmake does not support cygwin and likely never will,
2023	but if brave souls want to try it - help them out.
2024
20252020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
2026
2027	* VERSION (_MAKE_VERSION): 20200402
2028	Merge with NetBSD make, pick up
2029	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
2030	  a blank command is perfectly valid.
2031
20322020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
2033
2034	* VERSION (_MAKE_VERSION): 20200330
2035	Merge with NetBSD make, pick up
2036	o make.h: extern debug_file
2037
20382020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
2039
2040	* VERSION (_MAKE_VERSION): 20200318
2041	Merge with NetBSD make, pick up
2042	o meta.c: meta_oodate, check for corrupted meta file
2043	  earlier and more often.
2044
20452020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
2046
2047	* VERSION (_MAKE_VERSION): 20200220
2048
20492020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
2050
2051	* boot-strap: unset MAKEFLAGS
2052
20532020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
2054
2055	* VERSION (_MAKE_VERSION): 20200212
2056	* meta.c: meta_compat_parent check for USE_FILEMON
2057	  patch from Soeren Tempel
2058
20592020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
2060
2061	* VERSION: 20200205
2062	Merge with NetBSD make, pick up
2063	o meta.c: fix compat mode, need to call meta_job_output()
2064	o job.c: extra fds for meta mode not needed if using filemon_dev
2065
20662020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
2067
2068	* VERSION: 20200122
2069	Merge with NetBSD make, pick up
2070	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
2071	  returns FALSE.
2072
20732020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
2074
2075	* VERSION: 20200121
2076	Merge with NetBSD make, pick up
2077	o filemon/filemon_{dev,ktrace}.c: allow selection of
2078	  filemon implementation.  filemon_dev.c uses the kernel module
2079	  while filemon_ktrace.c leverages the fktrace api available in
2080	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
2081	  adding support for other tracing mechanisms such as strace on
2082	  Linux.
2083	o meta.c: when target is out-of-date per normal make rules
2084	  record value of .OODATE in meta file.
2085
20862019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
2087
2088	* VERSION: 20190926
2089	  Merge with NetBSD make, pick up
2090	  o parse.c: don't pass NULL to realpath(3)
2091	    some versions cannot handle it.
2092
20932019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
2094
2095	* VERSION: 20190409
2096	  Merge with NetBSD make, pick up
2097	  o parse.c: ParseDoDependency: free paths rather than assert
2098
20992018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
2100
2101	* VERSION: 20181222
2102
2103	* configure.in: add --without-makefile to avoid generating
2104	  makefile and make-bootstrap.sh
2105
2106	* include Makefile.inc if it exists
2107
2108	* Use Makefile and Makefile.config.in in unit-tests
2109	  so we can use just: make obj && make && make test
2110	  when bmake is already available.
2111	  We add --without-makefile to CONFIGURE_ARGS in this case.
2112
2113	* tweak bsd.after-import.mk (captures Makefile.config etc
2114	  after import to FreeBSD for example) to cope with all the above.
2115
21162018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
2117
2118	* VERSION: 20181221
2119	  Merge with NetBSD make, pick up
2120	  o parse.c: ParseVErrorInternal use .PARSEDIR
2121	    and apply if relative, and then use .PARSEFILE
2122	    for consistent result.
2123
21242018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
2125
2126	* VERSION: 20181220
2127	  Merge with NetBSD make, pick up
2128	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
2129	    is relative
2130	  o var.c: avoid SEGFAULT in .unexport-env
2131	    when MAKELEVEL is not set
2132
21332018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
2134
2135	* VERSION: 20181216
2136	  Merge with NetBSD make, pick up
2137	  o fix for unit-tests/varquote.mk on Debian
2138
21392018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2140
2141	* VERSION: 20180919
2142	  Merge with NetBSD make, pick up
2143	  o var.c: add :q
2144	  o dir.c: cleanup caching of stats
2145
21462018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
2147
2148	* Makefile.config.in: use += where it makes sense.
2149
21502018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2151
2152	* VERSION: 20180512
2153	  Merge with NetBSD make, pick up
2154	  o job.c: skip polling job token pipe
2155
21562018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2157
2158	* VERSION: 20180405
2159	  Merge with NetBSD make, pick up
2160	  o parse.c: be more cautious about detecting depenency line
2161	    rather than sysV style include.
2162
21632018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2164
2165	* VERSION: 20180222
2166	  Merge with NetBSD make, pick up
2167	  o parse.c: avoid calling sysconf for every call to loadfile
2168
21692018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2170
2171	* VERSION: 20180218
2172	  Merge with NetBSD make, pick up
2173	  o var.c: Var_Set handle NULL value anytime.
2174
21752018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2176
2177	* VERSION: 20180212
2178	  Merge with NetBSD make, pick up
2179	  o parse.c: do not treat .info as warning with -W
2180
21812017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2182
2183	* VERSION: 20171207
2184	  Merge with NetBSD make, pick up
2185	  o var.c: Var_Append use Var_Set if var not previously set
2186	    so that VAR_CMD is handled correctly.
2187	    Add a suitable unit-test.
2188
21892017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2190
2191	* VERSION (_MAKE_VERSION): 20171126
2192
2193	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
2194	  since AC_TRY_COMPILE puts input inside main()
2195	  which upsets modern compilers.
2196
21972017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2198
2199	* VERSION: 20171118
2200	  Merge with NetBSD make, pick up
2201	  o var.c: do not append to variable set on command line
2202	    add unit-test to catch this.
2203
22042017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2205
2206	* VERSION: 20171028
2207	  Merge with NetBSD make, pick up
2208	  o main.c: ignore empty MAKEOBJDIR
2209
2210	* Makefile.config.in:
2211	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
2212
22132017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2214
2215	* VERSION: 20171005
2216
2217	* unit-tests/dotwait.mk: redirect stderr through pipe for more
2218	  consistent result on some platforms.
2219
22202017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2221
2222	* machine.sh: entry for AIX
2223
22242017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2225
2226	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
2227	  to a file that can be included by configure as well as make.
2228	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
2229
22302017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2231
2232	* Makefile (_MAKE_VERSION): 20170810
2233	  Merge with NetBSD make, pick up
2234	  o meta.c: if target is in subdir we only need subdir name in
2235	    meta_name.
2236
22372017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2238
2239	* Makefile (_MAKE_VERSION): 20170720
2240	  Merge with NetBSD make, pick up
2241	  o compat.c: pass SIGINT etc onto child and wait for it to exit
2242	    before we self-terminate.
2243
22442017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2245
2246	* Makefile (_MAKE_VERSION): 20170711
2247	  forgot to update after merge on 20170708 ;-)
2248	  o main.c: refactor to reduce size of main function.
2249	    add -v option to always fully expand values.
2250	  o meta.c: ensure command output in meta file has ending newline
2251	    even when filemon not being used.
2252	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
2253	    pathname via ':L' since any ':' in pathname breaks that.
2254	    Instead set a '${.p.}' to pathname in the target context and
2255	    use that.
2256
22572017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2258
2259	* Makefile (_MAKE_VERSION): 20170510
2260	  Merge with NetBSD make, pick up
2261	  o main.c: Main_SetObjdir: ensure buf2 is in scope
2262
22632017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2264
2265	* Makefile (_MAKE_VERSION): 20170505
2266	  see mk/ChangeLog
2267
22682017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2269
2270	* parse.c: not everyone has stdint.h
2271
22722017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2273
2274	* Makefile (_MAKE_VERSION): 20170501
2275	  see mk/ChangeLog
2276
22772017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2278
2279	* Makefile (_MAKE_VERSION): 20170421
2280	  Merge with NetBSD make, pick up
2281	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
2282
22832017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2284
2285	* Makefile (_MAKE_VERSION): 20170420
2286	  Merge with NetBSD make, pick up
2287	  o main.c: only use -C arg "as is" if it contains no
2288	    relative component.
2289
22902017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2291
2292	* Makefile (_MAKE_VERSION): 20170418
2293	  Merge with NetBSD make, pick up
2294	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2295
22962017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2297
2298	* Makefile (_MAKE_VERSION): 20170417
2299	  Merge with NetBSD make, pick up
2300	  o fixes a number of coverity complaints
2301	    - check return value of fseek, fcntl
2302	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
2303	      JobPrintCommand, ParseTraditionalInclude
2304	    - use bmake_malloc() where NULL is not tollerated
2305	    - use MAKE_ATTR_UNUSED rather that kludges like
2306	      return(unused ? 0 : 0)
2307	    - use purge_cached_realpaths() rather than abuse cached_realpath()
2308
23092017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2310
2311	* Makefile (_MAKE_VERSION): 20170413
2312	  Merge with NetBSD make, pick up
2313	  o main.c: when setting .OBJDIR ignore '$' in paths.
2314
2315	* job.c: use MALLOC_OPTIONS to set malloc_options.
2316
23172017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2318
2319	* Makefile (_MAKE_VERSION): 20170411
2320	  Merge with NetBSD make, pick up
2321	  o str.c: Str_Match: allow [^a-z] to behave as expected.
2322
23232017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2324
2325	* Makefile (_MAKE_VERSION): 20170326
2326	  Merge with NetBSD make, pick up
2327	  o main.c: purge relative paths from realpath cache when .OBJDIR
2328	    is changed.
2329
23302017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2331
2332	* Makefile (_MAKE_VERSION): 20170311
2333	  Merge with NetBSD make, pick up
2334          o main.c: only use -C arg "as is" if it starts with '/'.
2335
23362017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2337
2338	* Makefile (_MAKE_VERSION): 20170301
2339	  Merge with NetBSD make, pick up
2340	  o main.c: use -C arg "as is" rather than getcwd()
2341	    if they identify the same directory.
2342	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
2343
23442017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2345
2346	* Makefile (_MAKE_VERSION): 20170201
2347	  Merge with NetBSD make, pick up
2348	  o var.c: allow :_=var and avoid use of special context.
2349
23502017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2351
2352	* Makefile (_MAKE_VERSION): 20170130
2353	  Merge with NetBSD make, pick up
2354	  o var.c: add :range and :_
2355	  o main.c: partially initialize Dir_* before MainParseArgs()
2356	    can be called.
2357	    If -V, skip Main_ExportMAKEFLAGS()
2358
23592017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2360
2361	* Makefile (_MAKE_VERSION): 20170114
2362	  Merge with NetBSD make, pick up
2363	  o var.c: allow specifying the utc value used by :{gm,local}time
2364
23652016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2366
2367	* Makefile (_MAKE_VERSION): 20161212
2368	  Merge with NetBSD make, pick up
2369          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2370
23712016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2372
2373	* Makefile (_MAKE_VERSION): 20161209
2374	  Merge with NetBSD make, pick up
2375	  o main.c: cleanup setting of .OBJDIR
2376	  o parse.c: avoid coredump from (var)=val
2377
23782016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2379
2380	* Makefile (_MAKE_VERSION): 20161126
2381	  Merge with NetBSD make, pick up
2382	  o make.c: Make_OODate: report src node name if path not set
2383
23842016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2385
2386	* Makefile (_MAKE_VERSION): 20160926
2387	  Merge with NetBSD make, pick up
2388	  o support for .DELETE_ON_ERROR: (remove targets that fail)
2389
23902016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2391
2392	* Makefile MAN: tweak .Dt to match ${PROG}
2393
23942016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2395
2396	* Makefile (_MAKE_VERSION): 20160818
2397	  its a neater number; pick up whitespace fixes to man page.
2398
23992016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2400
2401	* Makefile (_MAKE_VERSION): 20160817
2402	  Merge with NetBSD make, pick up
2403	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
2404	    so we can call it before adding entries to missingFiles.
2405	    Thus we do not track files we have been told to ignore.
2406
24072016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2408
2409	* Makefile (_MAKE_VERSION): 20160815
2410	  Merge with NetBSD make, pick up
2411	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
2412	    pathnames, and skip if the expansion is empty.
2413	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
2414
24152016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2416
2417	* Makefile (_MAKE_VERSION): 20160812
2418	  Merge with NetBSD make, pick up
2419	  o meta.c: remove all missingFiles entries that match a deleted
2420	    dir.
2421	  o main.c: set .ERROR_CMD if possible.
2422
24232016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2424
2425	* Makefile (_MAKE_VERSION): 20160606
2426	  Merge with NetBSD make, pick up
2427	  o dir.c: extend mtimes cache to others via cached_stat()
2428
24292016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2430
2431	* Makefile (_MAKE_VERSION): 20160604
2432	  Merge with NetBSD make, pick up
2433	  o meta.c: missing filemon data is only relevant if we read a
2434	    meta file.
2435	    Also do not return oodate for a missing metafile if gn->path
2436	    points to .CURDIR
2437
24382016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2439
2440	* Makefile (_MAKE_VERSION): 20160602
2441	  Merge with NetBSD make, pick up
2442	  o cached_realpath(): avoid hitting filesystem more than necessary.
2443	  o meta.c: refactor need_meta decision, add knobs for
2444	    missing meta file and filemon data wrt out-of-datedness.
2445
24462016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2447
2448	* Makefile (_MAKE_VERSION): 20160528
2449
2450	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2451
24522016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2453
2454	* Makefile (_MAKE_VERSION): 20160512
2455	  Merge with NetBSD make, pick up
2456	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
2457	    this is useful for gcov builds.
2458	  o propagate errors from filemon(4).
2459
24602016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2461
2462	* Makefile (_MAKE_VERSION): 20160509
2463	  Merge with NetBSD make, pick up
2464	  o remove use of non-standard types u_int etc.
2465	  o meta.c: apply realpath() before matching against metaIgnorePaths
2466
24672016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2468
2469	* Makefile (_MAKE_VERSION): 20160404
2470	  Merge with NetBSD make, pick up
2471	  o allow makefile to set .MAKE.JOBS
2472
2473	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
2474
24752016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2476
2477	* Makefile (_MAKE_VERSION): 20160315
2478	  Merge with NetBSD make, pick up
2479	  o fix handling of archive members
2480
24812016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2482
2483	* Makefile (_MAKE_VERSION): rename variable to avoid interference
2484	  with checks for ${MAKE_VERSION}
2485
24862016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2487
2488	* Makefile (MAKE_VERSION): 20160310
2489	  Merge with NetBSD make, pick up
2490	  o meta.c: treat missing Read file same as Write, incase we Delete it.
2491
24922016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2493
2494	* Makefile (MAKE_VERSION): 20160307
2495	  Merge with NetBSD make, pick up
2496	  o var.c: fix :ts\nnn to be octal by default.
2497	  o meta.c: meta_finish() to cleanup memory.
2498
24992016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2500
2501	* Makefile (MAKE_VERSION): 20160226
2502	  Merge with NetBSD make, pick up
2503	  o meta.c: allow meta file for makeDepend if makefiles want it.
2504
25052016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2506
2507	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
2508	  for backwards compatability.
2509
2510	* Makefile (MAKE_VERSION): 20160220
2511	  Merge with NetBSD make, pick up
2512	  o var.c: add knob to control handling of '$$' in :=
2513
25142016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2515
2516	* Makefile (MAKE_VERSION): 20160218
2517	  Merge with NetBSD make, pick up
2518	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
2519	    post the changes to Var_Subst.
2520	    Var_Subst now takes flags, and does not consume '$$' in :=
2521
25222016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2523
2524	* Makefile (MAKE_VERSION): 20160217
2525	  Merge with NetBSD make, pick up
2526	  o var.c: preserve '$$' in :=
2527	  o parse.c: add .dinclude for handling included
2528	    makefile like .depend
2529
25302015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2531
2532	* Makefile (MAKE_VERSION): 20151220
2533	  Merge with NetBSD make, pick up
2534	  o suff.c: re-initialize suffNull when clearing suffixes.
2535
25362015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2537
2538	* Makefile (MAKE_VERSION): 20151201
2539	  Merge with NetBSD make, pick up
2540	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
2541	  o meta.c: meta_oodate: use lstat(2) for checking link target
2542	    in case it is a symlink.
2543	  o var.c: avoid calling brk_string and Var_Export1 with empty
2544	    strings.
2545
25462015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2547
2548	* Makefile (MAKE_VERSION): 20151126
2549	  Merge with NetBSD make, pick up
2550	  o parse.c: ParseTrackInput don't access beyond
2551	    end of old value.
2552
25532015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2554
2555	* Makefile (MAKE_VERSION): 20151022
2556
2557	* Add support for BSD/OS which lacks inttypes.h
2558	  and really needs sys/param.h for sys/sysctl.h
2559	  also 'type' is not a shell builtin.
2560
2561	* var.c: eliminate uint32_t and need for inttypes.h
2562
2563	* main.c: PrintOnError flush stdout before run .ERROR
2564
2565	* parse.c: cope with _SC_PAGESIZE not being defined.
2566
2567
25682015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2569
2570	* Makefile (MAKE_VERSION): 20151020
2571	  Merge with NetBSD make, pick up
2572	  o var.c: fix uninitialized var
2573
25742015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2575
2576	* var.c: the conditional expressions used with ':?' can be
2577	expensive, if already discarding do not evaluate or expand
2578	anything.
2579
25802015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2581
2582	* Makefile (MAKE_VERSION): 20151010
2583	  Merge with NetBSD make, pick up
2584	  o Add Boolean wantit flag to Var_Subst and Var_Parse
2585	    when FALSE we know we are discarding the result and can
2586	    skip operations like Cmd_Exec.
2587
25882015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2589
2590	* Makefile (MAKE_VERSION): 20151009
2591	  Merge with NetBSD make, pick up
2592	  o var.c: don't check for NULL before free()
2593	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
2594
25952015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2596
2597	* Makefile (MAKE_VERSION): 20150910
2598	  Merge with NetBSD make, pick up
2599	  o main.c: with -w print Enter/Leaving messages for objdir too
2600	    if necessary.
2601	  o centralize shell metachar handling
2602
2603	* FILES: add metachar.[ch]
2604
26052015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2606
2607	* Makefile (MAKE_VERSION): 20150606
2608	  Merge with NetBSD make, pick up
2609	  o make.1: document .OBJDIR target
2610
26112015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2612
2613	* Makefile (MAKE_VERSION): 20150505
2614	  Merge with NetBSD make, pick up
2615	  o cond.c: be strict about lhs of comparison when evaluating .if
2616	    but less so when called from variable expansion.
2617	  o unit-tests/cond2.mk: test various error conditions
2618
26192015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2620
2621	* machine.sh (MACHINE): Add Bitrig
2622	  patch from joerg@netbsd.org
2623
26242015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2625
2626	* Makefile (MAKE_VERSION): 20150418
2627	  Merge with NetBSD make, pick up
2628	  o job.c: use memmove() rather than memcpy()
2629
2630	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2631	  case, so skip it.
2632
26332015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2634
2635	* Makefile (MAKE_VERSION): 20150411
2636	  bump version - only mk/ changes.
2637
26382015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2639
2640	* Makefile (MAKE_VERSION): 20150410
2641	  Merge with NetBSD make, pick up
2642	  o document different handling of '-' in jobs mode vs compat
2643	  o fix jobs mode so that '-' only applies to whole job
2644	    when shell lacks hasErrCtl
2645	  o meta.c: use separate vars to track lcwd and latestdir (read)
2646	    per process
2647
26482015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2649
2650	* Makefile (MAKE_VERSION): 20150401
2651	  Merge with NetBSD make, pick up
2652	  o meta.c: close meta file in child
2653
2654	* Makefile: use BINDIR.bmake if set.
2655	  Same for MANDIR and SHAREDIR
2656	  Handy for testing release candidates
2657	  in various environments.
2658
26592015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2660
2661	* move initialization of savederr to block where it is used
2662	  to avoid spurious warning from gcc5
2663
26642014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2665
2666	* Makefile (MAKE_VERSION): 20141111
2667	  just a cooler number
2668
26692014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2670
2671	* Makefile (MAKE_VERSION): 20141105
2672	  Merge with NetBSD make, pick up
2673	  o revert major overhaul of suffix handling
2674	    and POSIX compliance - too much breakage
2675	    and impossible to make backwards compatible.
2676	  o we still have the new unit test structure which is ok.
2677	  o meta.c ensure "-- filemon" is at start of line.
2678
26792014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2680
2681	* configure.in: test that result of getconf PATH_MAX is numeric
2682	  and discard if not.  Apparently needed for Hurd.
2683
26842014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2685
2686	* Makefile (MAKE_VERSION): 20140830
2687	  Merge with NetBSD make, pick up
2688	  o major overhaul of suffix handling
2689	  o improved POSIX compliance
2690	  o overhauled unit-tests
2691
26922014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2693
2694	* Makefile (MAKE_VERSION): 20140620
2695	  Merge with NetBSD make, pick up
2696	  o var.c return varNoError rather than var_Error for ::= modifiers.
2697
26982014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2699
2700	* Makefile (MAKE_VERSION): 20140522
2701	  Merge with NetBSD make, pick up
2702	  o var.c detect some parse errors.
2703
27042014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2705
2706	* Fix spelling errors - patch from Pedro Giffuni
2707
27082014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2709
2710	* Makefile (MAKE_VERSION): 20140214
2711	  Merge with NetBSD make, pick up
2712	  o .INCLUDEFROM*
2713	  o use Var_Value to get MAKEOBJDIR[PREFIX]
2714	  o reduced realloc'ign in brk_string.
2715	* configure.in: add a check for compiler supporting __func__
2716
27172014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2718
2719	* boot-strap: ignore mksrc=none
2720
27212014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2722
2723	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
2724
27252014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2726
2727	* Makefile (MAKE_VERSION): 20140101
2728	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
2729	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
2730	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
2731	  Hurd)
2732	* configure.in: Add AC_PREREQ and check for
2733	  sysctl; patch from Andrew Shadura andrewsh at debian.org
2734
27352013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2736
2737	* Makefile (MAKE_VERSION): 20131010
2738	* lose the const from arg to systcl to avoid problems on older BSDs.
2739
27402013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2741
2742	* Makefile (MAKE_VERSION): 20131001
2743	  Merge with NetBSD make, pick up
2744	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
2745	    hw.machine_arch if necessary.
2746	  o meta.c: meta_oodate - need to look at src of Link and target
2747	    of Move as well.
2748	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
2749	  provide __arraycount() if needed.
2750
27512013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2752
2753	* Makefile (MAKE_VERSION): 20130904
2754	  Merge with NetBSD make, pick up
2755	  o Add VAR_INTERNAL context, so that internal setting of
2756	    MAKEFILE does not override value set by makefiles.
2757
27582013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2759
2760	* Makefile (MAKE_VERSION): 20130902
2761	  Merge with NetBSD make, pick up
2762	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
2763
27642013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2765
2766	* Makefile (MAKE_VERSION): 20130828
2767	  Merge with NetBSD make, pick up
2768	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
2769	  o Call Job_SetPrefix() from Job_Init() so makefiles have
2770	    opportunity to set .MAKE.JOB.PREFIX
2771
27722013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2773
2774	* Makefile (MAKE_VERSION): 20130730
2775	  Merge with NetBSD make, pick up
2776	  o Allow suppression of --- job -- tokens by setting
2777	    .MAKE.JOB.PREFIX empty.
2778
27792013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2780
2781	* Makefile (MAKE_VERSION): 20130716
2782	  Merge with NetBSD make, pick up
2783	  o number of gmake compatibility tweaks
2784	    -w for gmake style entering/leaving messages
2785	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
2786	    handle MAKEFLAGS containing only letters.
2787	  o when overriding a GLOBAL variable on the command line,
2788	    delete it from GLOBAL context so -V doesn't show the wrong
2789	    value.
2790
27912013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2792
2793	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
2794
2795	* Makefile (MAKE_VERSION): 20130706
2796	  Merge with NetBSD make, pick up
2797	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
2798	    true so that CompatRunCommand() can use it, to ensure
2799	    consistent behavior with jobs mode.
2800	  o use MAKE_LEVEL_ENV to define the variable to propagate
2801	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
2802	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
2803	    paths to ignore.
2804
28052013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2806
2807	* Makefile (MAKE_VERSION): 20130604
2808	  Merge with NetBSD make, pick up
2809	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
2810	    to avoid leaking descriptors.
2811
28122013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2813
2814	* Makefile (MAKE_VERSION): 20130528
2815	  Merge with NetBSD make, pick up
2816	  o var.c: cleanup some left-overs in VarHash()
2817
28182013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2819
2820	* Makefile (MAKE_VERSION): 20130520
2821	  generate manifest from component FILES rather than have to
2822	  update FILES when mk/FILES changes.
2823
28242013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2825
2826	* Makefile (MAKE_VERSION): 20130518
2827	  Merge with NetBSD make, pick up
2828	  o suff.c: don't skip all processsing for .PHONY targets
2829	    else wildcard srcs do not get expanded.
2830	  o var.c: expand name of variable to delete if necessary.
2831
28322013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2833
2834	* Makefile (MAKE_VERSION): 20130330
2835	  Merge with NetBSD make, pick up
2836	  o meta.c: refine the handling of .OODATE in commands.
2837	    Rather than suppress command comparison for the entire script
2838	    as though .NOMETA_CMP had been used, only suppress it for the
2839	    one command line.
2840	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
2841	    suppress comparison of a command without otherwise affecting it.
2842	  o make.1: document that
2843
28442013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2845
2846	* Makefile (MAKE_VERSION): 20130321
2847	  yes, not quite right but its a cooler number.
2848	  Merge with NetBSD make, pick up
2849	  o parse.c: fix ParseGmakeExport to be portable
2850	    and add a unit-test.
2851	* meta.c: call meta_init() before makefiles are read and if built
2852	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
2853	  this let's makefiles test for support.
2854	  Call meta_mode_init() to process .MAKE.MODE.
2855
28562013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2857
2858	* Makefile (MAKE_VERSION): 20130305
2859	  Merge with NetBSD make, pick up
2860	  o run .STALE: target when a dependency from .depend is missing.
2861	  o job.c: add Job_RunTarget() for the above and .BEGIN
2862
28632013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2864
2865	* Makefile (MAKE_VERSION): 20130303
2866	  Merge with NetBSD make, pick up
2867	  o main.c: set .MAKE.OS to utsname.sysname
2868	  o job.c: more checks for read and poll errors
2869	  o var.c: lose VarChangeCase() saves 4% time
2870
28712013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2872
2873	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
2874	  want to use MAKEOBJDIR
2875
28762013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2877
2878	* Merge with NetBSD make, pick up
2879	  o make.1: more info on how shell commands are handled.
2880	  o job.c,main.c: detect write errors to job pipes.
2881
28822013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2883
2884	* Makefile (MAKE_VERSION): 20130123
2885	  Merge with NetBSD make, pick up
2886	  o meta.c: if script uses .OODATE and meta_oodate() decides
2887	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
2888	  o var.c: in debug output indicate which variabale modifiers
2889	    apply to.
2890	  o remove Check_Cwd logic the makefiles have been fixed.
2891
28922012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2893
2894	* makefile.in: add a simple makefile for folk who insist on
2895	  ./configure; make; make install
2896	  it just runs boot-strap
2897	* include mk/* to accommodate the above
2898	* boot-strap:  re-work to accommodate the above
2899	  mksrc defaults to $Mydir/mk
2900	  allow op={configure,build,install,clean,all}
2901	  add options to facilitate install
2902	* Makefile.config.in: just the bits set by configure
2903	* Makefile: bump version to 20121212
2904	  abandon Makefile.in (NetBSD Makefile)
2905	  leverage mk/* instead
2906	* configure.in: ensure srcdir is absolute
2907
29082012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2909
2910	* Makefile.in (MAKE_VERSION): 20121111
2911	  fix generation of bmake.cat1
2912
29132012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2914
2915	* Makefile.in (MAKE_VERSION): 20121109
2916	  Merge with NetBSD make, pick up
2917	  o make.c: MakeBuildChild: return 0 so search continues if a
2918	    .ORDER dependency is detected.
2919	  o unit-tests/order: test the above
2920
29212012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2922
2923	* Makefile.in (MAKE_VERSION): 20121102
2924	  Merge with NetBSD make, pick up
2925	  o cond.c: allow cond_state[] to grow.
2926	    In meta mode with a very large tree, we can hit the limit
2927	    while processing dirdeps.
2928
29292012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2930
2931	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2932
29332012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2934
2935	* Makefile.in (MAKE_VERSION): 20121010
2936	  o protect syntax that only bmake parses correctly.
2937	  o remove auto setting of FORCE_MACHINE, use configure's
2938	    --with-force-machine=whatever if that is desired.
2939
29402012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2941
2942	* Makefile.in: do not lose history from make.1 when generating bmake.1
2943
29442012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2945
2946	* Makefile.in (MAKE_VERSION): 20121007
2947	  Merge with NetBSD make, pick up
2948	  o compat.c: ignore empty commands - same as jobs mode.
2949	  o make.1: document meta chars that cause use of shell
2950
29512012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2952
2953	* Makefile.in (MAKE_VERSION): bump version to 20120911
2954	* bsd.after-import.mk: include Makefile.inc early and allow it to
2955	  override PROG
2956
29572012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
2958
2959	* Makefile.in (MAKE_VERSION): bump version to 20120831
2960	  Merge with NetBSD make, pick up
2961	  o cast sizeof() to int for comparison
2962	  o minor make.1 tweak
2963
29642012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2965
2966	* Makefile.in (MAKE_VERSION): bump version to 20120830
2967	  Merge with NetBSD make, pick up
2968	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
2969	  o debug flag -dV causes -V to show raw value regardless.
2970
29712012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2972
2973	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2974	  gets SRCTOP set.
2975
29762012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2977
2978	* Makefile.in (MAKE_VERSION): bump version to 20120704
2979	  Merge with NetBSD make, pick up
2980	  o Job_ParseShell should call Shell_Init if it has been
2981	    previously called.
2982	* Makefile.in: set USE_META based on configure result.
2983	  also .PARSEDIR is safer indicator of bmake.
2984
29852012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2986
2987	* Makefile.in: bump version to 20120626
2988	  ensure CPPFLAGS is in CFLAGS
2989	* meta.c: avoid nested externs
2990	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2991
29922012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2993
2994	* Makefile.in (MAKE_VERSION): bump version to 20120620
2995	  Merge with NetBSD make, pick up
2996	  o make_malloc.c: avoid including make_malloc.h again
2997
2998	* Makefile.in: avoid bmake only syntax or protect with
2999	  .if defined(.MAKE.LEVEL)
3000	* bsd.after-import.mk: replace .-include with .sinclude
3001	  ensure? SRCTOP gets a value
3002	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
3003
30042012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3005
3006	* Makefile.in (MAKE_VERSION): bump version to 20120612
3007	  Merge with NetBSD make, pick up
3008	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
3009	    for greater portability.
3010	  o unit-tests/forloop: check that .for works as expected wrt
3011	    number of times and with "quoted strings".
3012
30132012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3014
3015	* Makefile.in (MAKE_VERSION): bump version to 20120606
3016	  Merge with NetBSD make, pick up
3017	  o compat.c: use kill(2) rather than raise(3).
3018	* configure.in: look for sys/dev/filemon
3019	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
3020	  and pass BOOTSTRAP_XTRAS to boot-strap.
3021
30222012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3023
3024	* Makefile.in (MAKE_VERSION): bump version to 20120604
3025	  Merge with NetBSD make, pick up
3026	  o util.c and var.c share same var for tracking if environ
3027	    has been reallocated.
3028	  o util.c provide getenv with setenv.
3029	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
3030	  when the shell actively strips .MAKE.* from the environment.
3031	  We still refer to the variable always as .MAKE.LEVEL
3032	* util.c fix bug in findenv() was finding prefix of name.
3033	* compat.c: re-raising SIGINT etc after running .INTERRUPT
3034	  results in more reliable termination of all activity on many
3035	  platforms.
3036
30372012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3038
3039	* Makefile.in (MAKE_VERSION): bump version to 20120602
3040	  Merge with NetBSD make, pick up
3041	  o for.c: handle quoted items in .for list
3042
30432012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3044
3045	* Makefile.in (MAKE_VERSION): bump version to 20120530
3046	  Merge with NetBSD make, pick up
3047	  o compat.c: ignore empty command.
3048
30492012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3050
3051	* Makefile.in (MAKE_VERSION): bump version to 20120524
3052	* FILES: add bsd.after-import.mk:
3053	  A simple means of integrating bmake into a BSD build system.
3054
30552012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3056
3057	* Makefile.in (MAKE_VERSION): bump version to 20120520
3058	  Merge with NetBSD make, pick up
3059	  o increased limit for nested conditionals.
3060
30612012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3062
3063	* Makefile.in (MAKE_VERSION): bump version to 20120518
3064	  Merge with NetBSD make, pick up
3065	  o use _exit(2) in signal hanlder
3066	  o Don't use the [dir] cache when building nodes that might have
3067	    changed since the last exec.
3068	  o Avoid nested extern declaration warnings.
3069
30702012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3071
3072	* meta.c (fgetLine): avoid %z - not portable.
3073	* parse.c: Since we moved include of sys/mman.h
3074	  and def's of MAP_COPY etc. we got dups from a merge.
3075
30762012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3077
3078	* Makefile.in (MAKE_VERSION): bump version to 20120420
3079	  Merge with NetBSD make, pick up
3080	  o restore duplicate supression in .MAKE.MAKEFILES
3081	    runtime saving can be significant.
3082	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
3083	    consumption up to 20%.
3084
30852012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3086
3087	* Makefile.in (MAKE_VERSION): bump version to 20120420
3088          Merge with NetBSD make, pick up
3089	  o remove duplicate supression in .MAKE.MAKEFILES
3090	  o improved dir cache behavior
3091	  o gmake'ish export command
3092
30932012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3094
3095	* Makefile.in (MAKE_VERSION): bump version to 20120325
3096	  Merge with NetBSD make, pick up
3097	  o fix parsing of :[#] in conditionals.
3098
30992012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3100
3101	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
3102	  since some systems cannot cope with .Nx <version>
3103
31042011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3105
3106	* Makefile.in (MAKE_VERSION): bump version to 20111111
3107	  Merge with NetBSD make, pick up
3108	  o debug output for .PARSEDIR and .PARSEFILE
3109
31102011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3111
3112	* Makefile.in (MAKE_VERSION):  bump version to 20111010
3113
31142011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3115
3116	* boot-strap: check for an expected file in the dirs we look for.
3117	* make-bootstrap.sh: pass on LDSTATIC
3118
31192011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3120
3121	* Makefile.in (MAKE_VERSION): bump version to 20111001
3122	  Merge with NetBSD make, pick up
3123	  o ensure .PREFIX is set for .PHONY
3124	    and .TARGET set for .PHONY run via .END
3125	  o __dead used consistently
3126
31272011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3128
3129	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
3130
31312011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3132
3133	* Makefile.in (MAKE_VERSION): bump version to 20110905
3134	  Merge with NetBSD make, pick up
3135	  o meta_oodate: ignore makeDependfile
3136
31372011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3138
3139	* Makefile.in (MAKE_VERSION): bump version to 20110828
3140	  Merge with NetBSD make, pick up
3141	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
3142	    as SILENT if a .meta file is created
3143
31442011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3145
3146	* Makefile.in (MAKE_VERSION): bump version to 20110818
3147	  Merge with NetBSD make, pick up
3148	  o in meta mode, if target flagged .META a missing .meta file
3149	    means target is out-of-date
3150	  o fixes for gcc 4.5 warnings
3151	  o simplify job printing code
3152
31532011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3154
3155	* Makefile.in (MAKE_VERSION): bump version to 20110808
3156	  Merge with NetBSD make, pick up
3157	  o do not touch OP_SPECIAL targets when doing make -t
3158
31592011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3160
3161	* Makefile.in (MAKE_VERSION): bump version to 20110622
3162	  Merge with NetBSD make, pick up
3163	  o meta_oodate detect corrupted .meta file and declare oodate.
3164	* configure.in: add check for setsid
3165
31662011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3167
3168	* Merge with NetBSD make, pick up
3169	  o unit-tests/modts now works on MirBSD
3170
31712011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3172
3173	* Makefile.in (MAKE_VERSION): bump version to 20110606
3174	  Merge with NetBSD make, pick up
3175	  o ApplyModifiers: when we parse a variable which is not
3176	    the entire modifier string, or not followed by ':', do not
3177	    consider it as containing modifiers.
3178	  o loadfile: ensure newline at end of mapped file.
3179
31802011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3181
3182	* Makefile.in (MAKE_VERSION): bump version to 20110505
3183	  Merge with NetBSD make, pick up
3184	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
3185	    of make's control.  In meta mode, any generated file within
3186	    said bailiwick, which  is found to be missing, causes current
3187	    target to be out-of-date.
3188
31892011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3190
3191	* Makefile.in (MAKE_VERSION): bump version to 20110411
3192	  Merge with NetBSD make, pick up
3193	  o when long modifiers fail to match, check sysV style.
3194	    - add a test case
3195
31962011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3197
3198	* Makefile.in (MAKE_VERSION): bump version to 20110410
3199	  Merge with NetBSD make, pick up
3200	  o :hash - cheap 32bit hash of value
3201	  o :localtime, :gmtime - use value as format string for strftime.
3202
32032011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3204
3205	* Makefile.in (MAKE_VERSION): bump version to 20110330
3206	  mostly because its a cooler version.
3207	  Merge with NetBSD make, pick up
3208	  o NetBSD tags for meta.[ch]
3209	  o job.c call meta_job_finish() after meta_job_error().
3210	  o meta_job_error() should call meta_job_finish() to ensure
3211	    .meta file is closed, and safe to copy - if .ERROR target wants.
3212	   meta_job_finish() is safe to call repeatedly.
3213
32142011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
3215
3216	* unit-tests/modts: use printf if it is a builtin,
3217	  to save us from MirBSD
3218
3219	* Makefile.in (MAKE_VERSION): bump version to 20110329
3220	  Merge with NetBSD make, pick up
3221	  o fix for use after free() in CondDoExists().
3222	  o meta_oodate() report extra commands and return earlier.
3223
32242011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3225
3226	* Makefile.in (MAKE_VERSION): bump version to 20110327
3227	  Merge with NetBSD make, pick up
3228	  o meta.c, if .MAKE.MODE contains curdirOk=yes
3229	    allow creating .meta files in .CURDIR
3230	* boot-strap (TOOL_DIFF): aparently at least on linux distro
3231	  formats the output of 'type' differently - so eat any "()"
3232
32332011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3234
3235	* Makefile.in (MAKE_VERSION): bump version to 20110306
3236	  Merge with NetBSD make, pick up
3237	  o meta.c, only do getcwd() once
3238
32392011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3240
3241	* Makefile.in (MAKE_VERSION): bump version to 20110305
3242	  Merge with NetBSD make, pick up
3243	  o correct sysV substitution handling of empty lhs and variable
3244	  o correct exists() check for dir with trailing /
3245	  o correct handling of modifiers for non-existant variables
3246	    during evaluation of conditionals.
3247	  o ensure MAP_FILE is defined.
3248	  o meta.c use curdir[] now exported by main.c
3249
32502011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3251
3252	* Makefile.in (MAKE_VERSION): bump version to 20110225
3253	  Merge with NetBSD make, pick up
3254	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
3255	    makefiles have been read.
3256	  o fix example of :? modifier in man page.
3257
32582011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3259
3260	* Makefile.in (MAKE_VERSION): bump version to 20110214
3261	  Merge with NetBSD make, pick up
3262	  o meta.c handle realpath() failing when generating meta file
3263	    name.
3264
3265	* sigcompat.c: convert to ansi so we can use higher warning levels.
3266
3267
32682011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3269
3270	* Makefile.in (MAKE_VERSION): bump version to 20110207
3271	  Merge with NetBSD make, pick up
3272	  o fix for bug in meta mode.
3273
32742011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3275
3276	* parse.c: SunOS 5.8 at least does not have MAP_FILE
3277
32782011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3279
3280	* Makefile.in (MAKE_VERSION): bump version to 20110101
3281	  Merge with NetBSD make, pick up
3282	  o use mmap(2) if available, for reading makefiles
3283
32842010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3285
3286	* Makefile.in (MAKE_VERSION): bump version to 20101215
3287	  Merge with NetBSD make, pick up
3288	  o ensure meta_job_error() does not report a previous .meta file
3289	    as being culprit.
3290
32912010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3292
3293	* Makefile.in (MAKE_VERSION): bump version to 20101210
3294	  Merge with NetBSD make, pick up
3295	  o meta_oodate: track cwd per process, and only consider target
3296	    out-of-date if missing file is outside make's CWD.
3297	    Ignore files in /tmp/ etc.
3298	  o to ensure unit-tests results match, need to control LC_ALL
3299	    as well as LANG.
3300	  o fix for parsing bug in var.c
3301
33022010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3303
3304	* Makefile.in (MAKE_VERSION): bump version to 20101126
3305	  Merge with NetBSD make, pick up
3306	  o if stale dependency is an IMPSRC, search via .PATH
3307	  o meta_oodate: if a referenced file is missing, target is
3308	    out-of-date.
3309	  o meta_oodate: if a target uses .OODATE in its commands,
3310	    it (.OODATE) needs to be recomputed.
3311	  o keep a pointer to youngest child node, rather than just its
3312	    mtime.
3313
33142010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3315
3316	* Makefile.in (MAKE_VERSION): bump version to 20101101
3317
33182010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3319
3320	* machine.sh: like os.sh,
3321	allow for uname -p producing useless drivel
3322
33232010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3324
3325	* boot-strap: document configure knobs for meta and filemon.
3326
3327	* Makefile.in (MAKE_VERSION): bump version to 20100911
3328	  Merge with NetBSD make, pick up
3329	  o meta.c - meta mode
3330
3331	* make-bootstrap.sh.in: handle meta.c
3332	* configure.in: add knobs for use_meta and filemon_h
3333	  also, look for dirname, str[e]sep and strlcpy
3334	* util.c: add simple err[x] and warn[x]
3335
33362010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3337
3338	* boot-strap (TOOL_DIFF): set this to ensure tests use
3339	  the same version of diff that configure tested
3340
3341	* Makefile.in (MAKE_VERSION): bump version to 20100808
3342	  Merge with NetBSD make, pick up
3343	  o in jobs mode, when we discover we cannot make something,
3344	    call PrintOnError before exit.
3345
33462010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3347
3348	* Makefile.in (MAKE_VERSION): bump version to 20100806
3349	  Merge with NetBSD make, pick up
3350	  o formatting fixes for ignored errors
3351	  o ensure jobs are cleaned up regardless of where wait() was called.
3352
33532010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3354
3355	* Makefile.in (MAKE_VERSION): bump version to 20100618
3356	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3357
33582010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3359
3360	* Makefile.in (MAKE_VERSION): bump version to 20100616
3361	  Merge with NetBSD make, pick up
3362	  o man page update
3363	  o call PrintOnError from JobFinish when we detect an error we
3364	    are not ignoring.
3365
33662010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3367
3368	* Makefile.in (MAKE_VERSION): bump version to 20100606
3369	  Merge with NetBSD make, pick up
3370	  o man page update
3371
33722010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3373
3374	* Makefile.in (MAKE_VERSION): bump version to 20100605
3375	  Merge with NetBSD make, pick up
3376	  o use bmake_signal() which is a wrapper around sigaction()
3377	    in place of signal()
3378	  o add .export-env to allow exporting variables to environment
3379	    without tracking (so no re-export when the internal value is
3380	    changed).
3381
33822010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3383
3384	* Makefile.in (MAKE_VERSION): bump version to 20100524
3385	  Merge with NetBSD make, pick up
3386	  o fix for .info et al being greedy.
3387
33882010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3389
3390	* Makefile.in (MAKE_VERSION): bump version to 20100520
3391	  Merge with NetBSD make, pick up
3392	  o back to using realpath on argv[0]
3393	    but only if contains '/' and does not start with '/'.
3394
33952010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3396
3397	* boot-strap: use absolute path for bmake when running tests.
3398
3399	* Makefile.in (MAKE_VERSION):  bump version to 20100510
3400	  Merge with NetBSD make, pick up
3401	  o revert use of realpath on argv[0]
3402	    too many corner cases.
3403	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
3404
34052010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3406
3407	* Makefile.in (MAKE_VERSION): bump version to 20100505
3408	  Merge with NetBSD make, pick up
3409	  o fix for missed SIGCHLD when compiled with SunPRO
3410	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
3411	    done the job.
3412
34132010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3414
3415	* Makefile.in (MAKE_VERSION): bump version to 20100430
3416	  Merge with NetBSD make, pick up
3417	  o fflush stdout before writing to stdout
3418
34192010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3420
3421	* Makefile.in (MAKE_VERSION): bump version to 20100423
3422	  Merge with NetBSD make, pick up
3423	  o updated unit tests for Haiku (this time for sure).
3424	* boot-strap: based on patch from joerg
3425	  honor --with-default-sys-path better.
3426	* boot-strap: remove mention of --with-prefix-sys-path
3427
34282010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3429
3430	* Makefile.in (MAKE_VERSION): bump version to 20100422
3431	* Merge with NetBSD make, pick up
3432	  o fix for vfork() on Darwin.
3433	  o fix for bogus $TMPDIR.
3434	  o set .MAKE.MODE=compat for -B
3435	  o set .MAKE.JOBS=max_jobs for -j max_jobs
3436	  o allow unit-tests to run without any *.mk
3437	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
3438	* boot-strap: ignore /usr/share/mk except on NetBSD.
3439	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
3440	  ensure sort(1) behaves as expected.
3441
34422010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3443
3444	* boot-strap: add FindHereOrAbove so we can use -m .../mk
3445
34462010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3447
3448	* Makefile.in (MAKE_VERSION): bump version to 20100420
3449	* Merge with NetBSD make, pick up
3450	  o fix for variable realpath() behavior.
3451	    we have to stat(2) the result to be sure.
3452	  o fix for .export (all) when nested vars use :sh
3453
34542010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3455
3456	* Makefile.in (MAKE_VERSION): bump version to 20100414
3457	* Merge with NetBSD make, pick up
3458	  o use realpath to resolve argv[0] (for .MAKE) if needed.
3459	  o add realpath from libc.
3460	  o add :tA to resolve variable via realpath(3) if possible.
3461
34622010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3463
3464	* Makefile.in (MAKE_VERSION): bump version to 20100408
3465	* Merge with NetBSD make, pick up
3466	  o unit tests for .ERROR, .error
3467	  o fix for .ERROR to ensure it cannot be default target.
3468
34692010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3470
3471	* Makefile.in (MAKE_VERSION): bump version to 20100406
3472	* Merge with NetBSD make, pick up
3473	  o fix for compat mode "Error code" going to debug_file.
3474	  o fix for .ALLSRC being populated twice.
3475	  o support for .info, .warning and .error directives
3476	  o .MAKE.MODE to control make's operational mode
3477	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
3478	    name(s).
3479	  o .MAKE.DEPENDFILE to control the name of the depend file
3480	  o .ERROR target - run on failure.
3481
34822010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3483
3484	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3485
3486	* os.sh,arch.c: patch for Haiku from joerg at netbsd
3487
34882010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3489
3490	* Makefile.in (MAKE_VERSION): bump version to 20100222
3491	* Merge with NetBSD make, pick up
3492	  o better error msg for .for with mutiple inter vars
3493
3494	* boot-strap:
3495	  o use make-bootstrap.sh from joerg at netbsd
3496	    to avoid the need for a native make when bootstrapping.
3497	  o add "" everywhere ;-)
3498	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
3499	    otherwise the pre-formated version.
3500
35012010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3502
3503	* Makefile.in (MAKE_VERSION): bump version to 20100102
3504	* Merge with NetBSD make, pick up:
3505	  o fix for -m .../
3506
35072009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
3508
3509	* Makefile.in (MAKE_VERSION): bump version to 20091118
3510	* Merge with NetBSD make, pick up:
3511	  o .unexport
3512	  o report lines that start with '.' and should have ':'
3513	    (catch typo's of .el*if).
3514
35152009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3516
3517	* configure.in: Ensure that srcdir and mksrc are absolute paths.
3518
35192009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3520
3521	* Makefile.in (MAKE_VERSION): fix version to 20091007
3522
35232009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
3524
3525	* Makefile.in (MAKE_VERSION): bump version to 200910007
3526	* Merge with NetBSD make, pick up:
3527	  o fix for parsing of :S;...;...; applied to .for loop iterator
3528	    appearing in a dependency line.
3529
35302009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3531
3532	* Makefile.in (MAKE_VERSION): bump version to 20090909
3533	* Merge with NetBSD make, pick up:
3534	  o fix for -C, .CURDIR and .OBJDIR
3535	* boot-strap:
3536	  o allow share_dir to be set independent of prefix.
3537	  o select default share_dir better when prefix ends in $HOST_TARGET
3538	  o if FORCE_BSD_MK etc were set, include them in the suggested
3539	    install-mk command.
3540
35412009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
3542
3543	* Makefile.in (MAKE_VERSION): bump version to 20090908
3544	* Merge with NetBSD make, pick up:
3545	  o .MAKE.LEVEL for recursion tracking
3546	  o fix for :M scanning \:
3547
35482009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3549
3550	* configure.in: Don't -D__EXTENSIONS__ if
3551	AC_USE_SYSTEM_EXTENSIONS says "no".
3552
35532009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
3554
3555	* Makefile.in (MAKE_VERSION): bump version to 20090826
3556	Simplify MAKE_VERSION to just the bare date.
3557	* Merge with NetBSD make, pick up:
3558	  o -C directory support.
3559	  o support for SIGINFO
3560	  o use $TMPDIR for temp files.
3561	  o child of vfork should be careful about modifying parent's state.
3562
3563
35642009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
3565
3566	* Appy some patches for MiNT from David Brownlee
3567
35682009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
3569
3570	* Makefile.in (BMAKE_VERSION): bump version to 20090222
3571	* Merge with NetBSD make, pick up:
3572	  o Possible null pointer de-ref in Var_Set.
3573
35742009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
3575
3576	* Makefile.in (BMAKE_VERSION): bump version to 20090204
3577	* Merge with NetBSD make, pick up:
3578	  o bmake_malloc et al moved to their own .c
3579	  o Count both () and {} when looking for the end of a :M pattern
3580	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
3581	  o strlist.c - functions for processing extendable arrays of pointers to strings.
3582	  o ClientData replaced with void *, so const void * can be used.
3583	  o New debug flag C for DEBUG_CWD
3584
35852008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
3586
3587	* Makefile.in (BMAKE_VERSION): bump version to 20081111
3588	  Apply patch from Joerg Sonnenberge to
3589	  configure.in:
3590	  o remove some redundant checks
3591	  o check for emlloc etc only in libutil and require the whole family.
3592	  util.c:
3593	  o remove [v]asprintf which is no longer used.
3594
35952008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3596
3597	* Makefile.in (BMAKE_VERSION): bump version to 20081101
3598	* Merge with NetBSD make, pick up:
3599	  o util.c: avoid use of putenv() - christos
3600
36012008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3602
3603	* Makefile.in (BMAKE_VERSION): bump version to 20081030
3604	  pick up man page tweaks.
3605
36062008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
3607
3608	* Makefile.in: move processing of LIBOBJS to after is definition!
3609	  thus we'll have getenv.c in SRCS only if needed.
3610
3611	* make.1: add examples of how to use :?
3612
3613	* Makefile.in (BMAKE_VERSION): bump version to 20081029
3614	* Merge with NetBSD make, pick up:
3615	  o fix for .END processing with -j
3616	  o segfault from Parse_Error when no makefile is open
3617	  o handle numeric expressions in any variable expansion
3618	  o debug output now defaults to stderr, -dF to change it - apb
3619	  o make now uses bmake_malloc etc so that it can build natively
3620	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
3621
36222008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
3623
3624	* Makefile.in (BMAKE_VERSION): bump version to 20080808
3625	* Merge with NetBSD make, pick up:
3626	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
3627	    long lines in Makefiles
3628	  o optimizations for VarQuote by joerg
3629	  o fix for PR/38756: dominik: make dumps core on invalid makefile
3630
36312008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
3632
3633	* Makefile.in (BMAKE_VERSION): bump version to 20080515
3634	* Merge with NetBSD make, pick up:
3635	  o fix skip setting vars in VAR_GLOBAL context, to handle
3636	    cases where VAR_CMD is used for other than command line vars.
3637
36382008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
3639
3640	* boot-strap (make_version): we may need to look in
3641	$prefix/share/mk for sys.mk
3642
3643	* Makefile.in (BMAKE_VERSION): bump version to 20080514
3644	* Merge with NetBSD make, pick up:
3645	  o skip setting vars in VAR_GLOBAL context, when already set in
3646	  VAR_CMD which takes precedence.
3647
36482008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
3649
3650	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
3651	* Merge with NetBSD make, pick up:
3652	  o fix for ?= when LHS contains variable reference.
3653
36542008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3655
3656	* merge some patches from NetBSD pkgsrc.
3657
3658	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3659	the MAKSYSPATH used during bootstrap.
3660
3661	* Makefile.in (BMAKE_VERSION): bump version to 20080215
3662	* Merge with NetBSD make, pick up:
3663	  o warn if non-space chars follow 'empty' in a conditional.
3664
36652008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3666
3667	* Makefile.in (BMAKE_VERSION): bump version to 20080118
3668	* Merge with NetBSD make, pick up:
3669	  o consider dependencies read from .depend as optional - dsl
3670	  o remember when buffer for reading makefile grows - dsl
3671	  o add -dl (aka LOUD) - David O'Brien
3672
36732007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
3674
3675	* Makefile.in (BMAKE_VERSION): bump version to 20071022
3676	* Merge with NetBSD make, pick up:
3677	  o Allow .PATH<suffix> to be used for .include ""
3678
3679	* boot-strap: source default settings from .bmake-boot-strap.rc
3680
36812007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
3682
3683	* Makefile.in: fix maninstall on various systems
3684	  provided that our man.mk is used.
3685	  For non-BSD systems we install the preformatted page
3686	  into $MANDIR/cat1
3687
36882007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
3689
3690	* boot-strap: make bmake.1 too, so maninstall works.
3691
36922007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
3693
3694	* Makefile.in (BMAKE_VERSION): bump version to 20071014
3695	* Merge with NetBSD make, pick up:
3696	  o revamped handling of defshell - configure no longer needs to
3697	    know the content of the shells array - apb
3698	  o stop Var_Subst modifying its input - apb
3699	  o avoid calling ParseTrackInput too often - dsl
3700
37012007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
3702
3703	* Makefile.in (BMAKE_VERSION): bump version to 20071011
3704	* Merge with NetBSD make, pick up:
3705	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
3706
3707	* sigcompat.c: some tweaks for HP-UX 11.x based on
3708	  patch from Tobias Nygren
3709
3710	* configure.in: update handling of --with-defshell to match
3711	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
3712	  will now do what one might hope - provided the chosen shell
3713	  behaves enough like sh.
3714
37152007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
3716
3717	* Makefile.in (BMAKE_VERSION): bump to 20071008
3718	* Merge with NetBSD make, pick up:
3719	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
3720	  o .export/.MAKE.EXPORTED - export of variables - sjg
3721	  o .MAKE.MAKEFILES - track all makefiles read - sjg
3722	  o performance improvements - dsl
3723	  o revamp parallel job scheduling - dsl
3724
37252006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3726
3727	* Makefile.in (BMAKE_VERSION): bump to 20060728
3728	* Merge with NetBSD make, pick up:
3729	  o extra debug info during variable and cond processing - sjg
3730	  o shell definition now covers newline - rillig
3731	  o minor mem leak in PrintOnError - sjg
3732
37332006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3734
3735	* Makefile.in (BMAKE_VERSION):  bump to 20060511
3736	* Merge with NetBSD make, pick up:
3737	  o more memory leaks - coverity
3738	  o possible overflow in ArchFindMember - coverity
3739	  o extract variable modifier code out of Var_Parse()
3740	    so it can be called recursively - sjg
3741	  o unit-tests/moderrs - sjg
3742
37432006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
3744
3745	* Makefile.in (BMAKE_VERSION): bump to 20060412
3746	* Merge with NetBSD make, pick up:
3747	  o fixes for some memory leaks - coverity
3748	  o only read first sys.mk etc when searching sysIncPath - sjg
3749
3750	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
3751	setting ${MAKEFILE} - OBATA Akio
3752
37532006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
3754
3755	* Makefile.in (BMAKE_VERSION): bump to 20060318
3756	* Merge with NetBSD make, pick up:
3757	  o cleanup of job.c to remove remote handling, distcc is more
3758	    useful and this code was likely bit-rotting - dsl
3759	  o fix for :P modifier - sjg
3760	* boot-strap: set default prefix to something reasonable
3761	  (for me anyway).
3762
37632006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
3764
3765	* Makefile.in (BMAKE_VERSION): bump to 20060301
3766	* Merge with NetBSD make, pick up:
3767	  o make .WAIT apply recursively, document and test case - apb
3768	  o allow variable modifiers in a variable appear anywhere in
3769	    modifier list, document and test case - sjg
3770
37712006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
3772
3773	* Makefile.in (BMAKE_VERSION): bump to 20060222
3774	* Merge with NetBSD make, pick up:
3775	  o improved job token handling - dsl
3776	  o SIG_DFL the correct signal before exec - dsl
3777	  o more debug info during parsing - dsl
3778	  o allow variable modifiers to be specified via variable - sjg
3779	* boot-strap: explain why we died if no mksrc
3780
37812005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
3782
3783	* Makefile.in (BMAKE_VERSION): bump to 20051105
3784	* configure.in: always set default_sys_path
3785	  default is ${prefix}/share/mk
3786	  - remove prefix_sys_path, anyone wanting more than above
3787	    needs to set it manually.
3788
37892005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3790
3791	* boot-strap: make this a bit easier for pkgsrc folk.
3792	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
3793	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
3794
37952005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
3796
3797	* Makefile.in (BMAKE_VERSION): bump to 20051102
3798	* job.c (JobFinish): fix likely ancient merge lossage
3799	fix from Todd Vierling.
3800	* boot-strap (srcdir): allow setting mksrc=none
3801
38022005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
3803
3804	* Makefile.in (BMAKE_VERSION): bump to 20051031
3805	* ranlib.h: skip on OSF too.
3806	  (NetBSD PR 31864)
3807
38082005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
3809
3810	* Makefile.in (BMAKE_VERSION): bump to 20051002
3811	  fix a silly typo
3812
38132005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3814
3815	* Makefile.in (BMAKE_VERSION): bump to 20051001
3816	  support for UnixWare and some other systems,
3817	  based on patches from pkgsrc/bootstrap
3818
38192005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3820
3821	* Makefile.in (BMAKE_VERSION): bump to 20050901
3822	* Merge with NetBSD make, pick up:
3823	  o possible parse error causing us to wander off.
3824
38252005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
3826
3827	* Makefile.in (BMAKE_VERSION): bump to 20050606
3828	* Merge with NetBSD make, pick up:
3829	  o :0x modifier for randomizing a list
3830	  o fixes for a number of -Wuninitialized issues.
3831
38322005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
3833
3834	* Makefile.in (BMAKE_VERSION): bump to 20050530
3835	* Merge with NetBSD make, pick up:
3836	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
3837
3838	* README: was seriously out of date.
3839
38402005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
3841
3842	* Important to use .MAKE rather than MAKE.
3843
38442005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
3845
3846	* Makefile.in (BMAKE_VERSION): bump to 20050315
3847	* Merge with NetBSD make, pick up:
3848	  o don't mistake .elsefoo for .else
3849	  o use suffix-specific search path correctly
3850	  o bunch of style nits
3851
38522004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3853
3854	* boot-strap:
3855	o ensure that args to --src and --with-mksrc
3856	  are resolved before giving them to configure.
3857	o add -o "objdir" so that builder can control it,
3858	  default is $OS as determined by os.sh
3859	o add -q to suppress all the install instructions.
3860
38612004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
3862
3863	* Remove __IDSTRING()
3864
3865	* Makefile.in (BMAKE_VERSION): bump to 20040508
3866	* Merge with NetBSD make, pick up:
3867	  o posix fixes
3868	    - remove '-e' from compat mode
3869	    - add support for '+' command-line prefix.
3870	  o fix for handling '--' on command-line.
3871	  o fix include in lst.lib/lstInt.h to simplify '-I's
3872	  o we also picked up replacement of MAKE_BOOTSTRAP
3873	    with !MAKE_NATIVE which is a noop, but possibly confusing.
3874
38752004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
3876
3877	* Makefile.in (BMAKE_VERSION): bump to 20040414
3878	* Merge with NetBSD make, pick up:
3879	  o allow quoted strings on lhs of conditionals
3880	  o issue warning when extra .else is seen
3881	  o print line numer when errors encountered during parsing from
3882	  string.
3883
38842004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
3885
3886	* Makefile.in (BMAKE_VERSION):  bump to 20040220
3887	* Merge with NetBSD make, pick up:
3888	  o fix for old :M parsing bug.
3889	  o re-jigged unit-tests
3890
38912004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3892
3893	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
3894	so that './bmake -f Makefile test' works.
3895
38962004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
3897
3898	* Makefile.in: (BMAKE_VERSION): bump to 20040214
3899	* Merge with NetBSD make, pick up:
3900	  o search upwards for *.mk
3901	  o fix for double free of var substitution buffers
3902	  o use of getopt replaced with custom code, since the usage
3903	  (re-scanning) isn't posix compatible.
3904
39052004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
3906
3907	* arch.c: don't include ranlib.h on ELF systems
3908	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
3909
39102004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3911
3912	* Makefile.in (BMAKE_VERSION): bump to 20040118
3913
3914	* boot-strap (while): export vars we assign to on cmdline
3915	* unit-test/Makefile.in: ternary is .PHONY
3916
39172004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
3918
3919	* Makefile.in (BMAKE_VERSION): bump version to 20040108
3920	* Merge with NetBSD make, pick up:
3921	  o fix for ternary modifier
3922
39232004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
3924
3925	* Makefile.in (BMAKE_VERSION): bump version to 20040105
3926	* Merge with NetBSD make, pick up:
3927	  o fix for cond.c to handle compound expressions better
3928	  o variable expansion within sysV style replacements
3929
39302003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
3931
3932	* Make portable snprintf safer - output to /dev/null first to
3933	check space needed.
3934
3935	* Makefile.in (BMAKE_VERSION): bump version to 20031222
3936	* Merge with NetBSD make, pick up:
3937	  o -dg3 to show input graph when things go wrong.
3938	  o explicitly look for makefiles in objdir if not found in curdir so
3939	    that errors in .depend etc will be reported accurarely.
3940	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
3941	    instead as it more accurately reflects the expected behavior and
3942	    is more consistently implemented.
3943	  o avoid use of asprintf.
3944
39452003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
3946
3947	* util.c: Add asprintf and vasprintf.
3948
3949	* Makefile.in (BMAKE_VERSION): bump version to 20030928
3950	* Merge with NetBSD make, pick up:
3951	:[] modifier - allows picking words from a variable.
3952	:tW modifier - allows treating value as one big word.
3953	W flag for :C and :S - allows treating value as one big word.
3954
39552003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
3956
3957	* Merge with NetBSD make
3958	pick up -de flag to enable printing failed command.
3959	don't skip 1st two dir entries (normally . and ..) since
3960	coda does not have them.
3961
39622003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3963
3964	* Makefile.in (BMAKE_VERSION): bump version to 20030909
3965	* Merge with NetBSD make, pick up:
3966	- changes for -V '${VAR}' to print fully expanded value
3967	  cf. -V VAR
3968	- CompatRunCommand now prints the command that failed.
3969	- several files got updated 3 clause Berkeley license.
3970
39712003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
3972
3973	* boot-strap: Allow setting configure args on command line.
3974
39752003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
3976
3977	* configure.in: add --with-defshell to allow sh or ksh
3978	to be selected as default shell.
3979
3980	* Makefile.in: bump version to 20030731
3981
3982	* Merge with NetBSD make
3983	Pick up .SHELL spec for ksh and associate man page changes.
3984	Also compat mode now uses the same shell specs.
3985
39862003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
3987
3988	* var.c (Var_Parse): ensure delim is initialized.
3989
3990	* unit-tests/Makefile.in: use single quotes to avoid problems from
3991	some shells.
3992
3993	* makefile.boot.in:
3994	Run the unit-tests as part of the bootstrap procedure.
3995
39962003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3997
3998	* unit-tests/Makefile.in: always force complaints from
3999	${TEST_MAKE} to be from 'make'.
4000
4001	* configure.in: add check for 'diff -u'
4002	also fix some old autoconf'isms
4003
4004	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
4005	if using GCC add -Wno-cast-qual to CFLAGS for var.o
4006
4007	* Merge with NetBSD make
4008	Pick up fix for :ts parsing error in some cases.
4009	Pick unit-tests.
4010
40112003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
4012
4013	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
4014
4015	* var.c (Var_Parse): fix bug in :ts modifier, after const
4016	correctness fixes, must pass nstr to VarModify.
4017
40182003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
4019
4020	* Makefile.in: BMAKE_VERSION switch to a date based version.
4021	We'll generally use the date of last import from NetBSD.
4022
4023	* Merge with NetBSD make
4024	Pick up fixes for const-correctness, now passes WARNS=3 on
4025	NetBSD.
4026	Pick up :ts modifier, allows controlling the separator used
4027	between words in variable expansion.
4028
40292003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
4030
4031	* FILES: include boot-strap and os.sh
4032
4033	* Makefile.in: only set WARNS if we are NetBSD, the effect on
4034	FreeBSD is known to be bad.
4035
4036	* makefile.boot.in (bootstrap): make this the default target.
4037
4038	* Makefile.in: bump version to 3.1.19
4039
4040	* machine.sh: avoid A-Z with tr as it is bound to lose.
4041
40422003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
4043
4044	* Merge with NetBSD make
4045	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
4046	Plus some doc fixes.
4047
40482003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
4049
4050	* Merge with NetBSD make
4051	Pick up fix for PR/1523 - don't count a library as built, if there
4052	is no way to build it
4053
4054	* Bump version to 3.1.18
4055
40562003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
4057
4058	* Merge with NetBSD make
4059	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
4060	appears in src list.
4061
40622003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
4063
4064	* Merge with NetBSD make (mmm 10th anniversary!)
4065	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
4066	pick up -X which tells us to not export VAR=val via setenv if
4067	we are already doing so via MAKEFLAGS.  This saves valuable env
4068	space on systems like Darwin.
4069	set MAKE_VERSION to 3.1.17
4070
4071	* parse.c: pix up fix for suffix rules
4072
40732003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
4074
4075	* Merge with NetBSD make.
4076	pick up fix for propagating -B via MAKEFLAGS.
4077	set MAKE_VERSION to 3.1.16
4078
4079	* Apply some patches from pkgsrc-bootstrap/bmake
4080	Originally by Grant Beattie <grant@netbsd.org>
4081	I may have missed some - since they are based on bmake-3.1.12
4082
40832002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
4084
4085	* makefile.boot.in (bmake): update install targets for those that
4086	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
4087	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
4088
4089	* bmake.cat1: update the pre-formatted man page!
4090
40912002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
4092
4093	* Merge with NetBSD make.
4094	pick up fix for premature free of pointer used in call
4095	to Dir_InitCur().
4096	set MAKE_VERSION to 3.1.15
4097
40982002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
4099
4100	* configure.in: determine suitable value for MKSRC.
4101	override using --with-mksrc=PATH.
4102
4103	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
4104	configs(8) will use 'sun4' as an alias for 'sparc'.
4105
41062002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
4107
4108	* Merge with NetBSD make.
4109	pick up ${.PATH}
4110	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
4111	set MAKE_VERSION to 3.1.14
4112	add configure checks for killpg and sys/socket.h
4113
41142002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
4115
4116	* tag bmake-3-1-13
4117
4118	* makefile.boot.in (bmake): use install-mk
4119	Also setup ./mk before trying to invoke bmake.boot incase we
4120	needed install-mk to create a sys.mk for us.
4121
4122	* configure.in: If we need to add -I${srcdir}/missing, make it an
4123	absolute path so that it works for lst.lib too.
4124
4125	* make.h: always include sys/cdefs.h since we provide one if the
4126	host does not.
4127
4128	* Makefile.in (install-mk):
4129	use MKSRC/install-mk which will do the right thing.
4130	use uname -p for ARCH if possible.
4131	since install-mk will setup links bsd.prog.mk -> prog.mk if
4132	needed, just .include bsd.prog.mk
4133
4134	* Merge with NetBSD make (NetBSD-1.6)
4135	Code is ansi-C only now.
4136	Bug in handling of dotLast is fixed.
4137	Can now assign .OBJDIR and make will reset its notions of life.
4138	New modifiers :tu :tl for toUpper and toLower.
4139
4140Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4141
4142	* Merge with NetBSD make
4143	pick up fix for .END failure in compat mode.
4144	pick up fix for extra va_end() in ParseVErrorInternal.
4145
4146Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4147
4148	* configure.in: for systems that have sys/cdefs.h check if it is
4149	compatible.  If not, include the one under missing, but tell it to
4150	include the native one too - necessary on Linux.
4151
4152	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4153	include_next (for gcc) to get the native sys/cdefs.h
4154
4155Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4156
4157	* job.c (JobFinish): Fix an earlier merge bug that resulted in
4158	leaking descriptors when using -jN.
4159
4160	* job.c (JobPrintCommand): See if "curdir" exists before
4161	attempting to chdir().  Doing the chdir directly in make (when in
4162	compat mode) fails silently, so let the -jN version do the same.
4163	This can happen when building kernels in an object tree and
4164	playing clever games to reset .CURDIR.
4165
4166	* Merged with NetBSD make
4167	pick up .USEBEFORE
4168
4169Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4170
4171	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4172
4173Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4174
4175	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
4176	us not to export the iterator variable when using VAR_CMD context.
4177
4178Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4179
4180	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4181	its the wrong "fix".
4182
4183Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4184
4185	* Redesigned export of VAR_CMD's via MAKEFLAGS.
4186	We now simply append the variable names to .MAKEOVERRIDES, and
4187	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
4188	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
4189	Apart from fixing quoting bugs in previous version, this allows us
4190	to export vars to the environment by simply doing:
4191	.MAKEOVERRIDES+= PATH
4192	Merged again with NetBSD make, but the above is the only change.
4193
4194	* configure.in: added
4195	--disable-pwd-override		disable $PWD overriding getcwd()
4196	--disable-check-make-chdir	disable make trying to guess
4197		when it should automatically cd ${.CURDIR}
4198
4199	* Merge with NetBSD make, changes include:
4200	parse.c (ParseDoDependency): Spot that the syntax error is
4201	caused by an unresolved cvs/rcs conflict and say so.
4202	var.c: most of Var* functions now take a ctxt as 1st arg.
4203	now does variable substituion on rhs of sysv style modifiers.
4204
4205	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
4206	is now done here.  We append the name='value' to .MAKEOVERRIDES
4207	rather than directly into MAKEFLAGS as this allows a Makefile to
4208	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
4209	very similar mechanism.  Note that in adding name='value' to
4210	.MAKEOVERRIDES we do the moral equivalent of:
4211	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
4212
4213Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4214
4215	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
4216
4217	* Merged with NetBSD make
4218	make -dx can now be used to run commands via sh -x
4219	better error messages on exec failures.
4220
4221Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4222
4223	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
4224	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
4225	MACHINE etc otherwise they propagate from the previous bmake.
4226
4227	* configure.in (machine): allow --with-machine=generic to make
4228	configure use machine.sh to set MACHINE.
4229
4230	* job.c (JobInterrupt): convert to using WAIT_T and friends.
4231
4232	* Makefile.in: mention in bmake.1 that we use autoconf.
4233
4234	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4235
4236Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4237
4238	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4239	as that rather defeats the usefulness of ${MAKEFILE}.
4240
4241	* main.c (MainParseArgs): append command line variable assignments
4242	to MAKEFLAGS so that they get propagated to child make's.
4243	Apparently this is required POSIX behaviour?  Its useful anyway.
4244
4245Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4246
4247	* compat.c (CompatRunCommand): don't use perror() since stdio may
4248	cause problems in child of vfork().
4249
4250	* compat.c, main.c: Call PrintOnError() when we are going to bail.
4251	This routine prints out the .curdir where we stopped and will also
4252	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
4253
4254	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
4255	:@ expansion.
4256
4257	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
4258
4259	* Added RCSid's for the files we've touched.
4260
4261Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4262
4263	* configure.in:	Thanks to some clues from mdb@juniper.net,
4264	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
4265	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
4266
4267  --with-machine=MACHINE  explicitly set MACHINE
4268  --with-force-machine=MACHINE  set FORCE_MACHINE
4269  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
4270  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
4271  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
4272  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
4273
4274	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4275
4276	* makefile: added a pathetically simple makefile to drive
4277	bootstrapping.  Running configure by hand is more useful.
4278
4279	* Makefile.in: added MAKE_VERSION, and reworked things to be less
4280	dependent on NetBSD bsd.*.mk
4281
4282	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
4283	_PATH_OBJDIRPREFIX for those that don't want a default.
4284	construct _PATH_DEFSYSPATH from the info we get from configure.
4285
4286	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4287	if MAKE_VERSION is defined.
4288
4289	* compat.c: when we bail, print out the .CURDIR we were in.
4290
4291Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4292
4293	* Merged with NetBSD make
4294
4295	* var.c: fixed a bug in the handling of the modifier :P
4296	if the node as found but the path was null, we segfault trying to
4297	duplicate it.
4298
4299Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4300
4301	* Merged with NetBSD make
4302
4303	* make.c: Make_OODate's test for a library out of date was using
4304	cmtime where it should have used mtime (my bug).
4305
4306	* compat.c: Use perror() to tell us what really went wrong when we
4307	cannot exec a command.
4308
4309Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4310
4311	* Merged with NetBSD make
4312
4313Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4314
4315	* Merged with NetBSD make
4316
4317Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4318
4319	* Merged with NetBSD make
4320
4321Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4322
4323	* Merged with NetBSD make
4324
4325Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4326
4327	* util.c: don't provide signal() since we use sigcompat.c
4328
4329	* Makefile.in: added a build target.
4330
4331	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4332	These allow some quite clever magic.
4333
4334	* main.c (main): added support for getenv(MAKESYSPATH).
4335
4336Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4337
4338	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
4339	This avoids objdir having a different value depending on how a
4340	directory was reached (via command line, or subdir.mk).
4341
4342	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4343
4344Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4345
4346	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
4347	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
4348	I've been testing this in NetBSD's make for some weeks.
4349
4350	* Turn Makefile into Makefile.in and make it useful.
4351
4352Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
4353
4354	* Imported NetBSD's -current make(1) and resolve conflicts.
4355
4356	* Applied autoconf patches from bmake v2
4357
4358	* Imported clean code base from NetBSD-1.0
4359