xref: /freebsd/contrib/bmake/ChangeLog (revision e9ac41698b2f322d55ccf9da50a3596edb2c1800)
12024-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20240625
4	Merge with NetBSD make, pick up
5	o job.c: ensure shellPath is always duped, avoid upsetting free()
6
72024-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
8
9	* VERSION (_MAKE_VERSION): 20240616
10	Merge with NetBSD make, pick up
11	o clean up collection of context information for error messages
12	o in warnings, move the word "warning" to the front
13	o var.c: throw an error on attempt to override an internal
14	read-only variable
15
162024-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
17
18	* VERSION (_MAKE_VERSION): 20240610
19	Merge with NetBSD make, pick up
20	o for.c: remove redundant shortcut for building the .for loop body
21
222024-06-02  Simon J Gerraty  <sjg@beast.crufty.net>
23
24	* VERSION (_MAKE_VERSION): 20240602
25	Merge with NetBSD make, pick up
26	o rename some VarEvalMode constants to better match debug names.
27	o var.c: avoid out-of-bounds read when parsing indirect modifiers.
28
292024-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
30
31	* VERSION (_MAKE_VERSION): 20240601
32	Merge with NetBSD make, pick up
33	o add .export-all rather than allow .export with no argument
34	which can happen accidentally.
35	o if lua is available, run check-expect.lua after unit-tests
36	o main.c: use snprintf rather than strncpy
37	fix memory leak when purging realpath cache.
38
392024-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
40
41	* VERSION (_MAKE_VERSION): 20240528
42	Merge with NetBSD make, pick up
43	o fix a number of memory leaks
44	o replace magic numbers with POSIX FILENO constants
45	o hash.c: remove dead code from HashTable_DeleteEntry
46	o main.c: when complaining about unusable .OBJDIR
47	call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true.
48	o parse.c: use fewer technical terms in debug message for dependency
49
502024-05-20  Simon J Gerraty  <sjg@beast.crufty.net>
51
52	* VERSION (_MAKE_VERSION):
53	Merge with NetBSD make, pick up
54	o dir.c: in FindFile restore last search of .CURDIR even for
55	includes, as a number of existing makefiles are broken otherwise.
56
572024-05-19  Simon J Gerraty  <sjg@beast.crufty.net>
58
59	* VERSION (_MAKE_VERSION): 20240519
60	Merge with NetBSD make, pick up
61	o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR.
62	Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty.
63	o main.c: no need to set .DOTLAST in sysIncPath
64
652024-05-07  Simon J Gerraty  <sjg@beast.crufty.net>
66
67	* VERSION (_MAKE_VERSION): 20240508
68	Merge with NetBSD make, pick up
69	o make: ensure variables set on command line get added to
70	.MAKEOVERRIDES (even if they start with '.') so they are passed to
71	sub-makes.
72
732024-04-30  Simon J Gerraty  <sjg@beast.crufty.net>
74
75	* VERSION (_MAKE_VERSION): 20240430
76	Merge with NetBSD make, pick up
77	o main.c: ensure '.include <makefile>' respects MAKESYSPATH.
78	Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen.
79
802024-04-28  Simon J Gerraty  <sjg@beast.crufty.net>
81
82	* VERSION (_MAKE_VERSION): 20240428
83	Merge with NetBSD make, pick up
84	o simplify freeing of lists
85	o arch.c: trim pointless comments
86	o var.c: delay variable assignments until actually needed
87	don't reallocate memory after evaluating an expression, result is
88	almost always short-lived.
89
902024-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
91
92	* VERSION (_MAKE_VERSION): 20240426
93	Merge with NetBSD make, pick up
94	o job.c: in debug output, print the directory in which a job
95	failed at same time as failed target so it is more easily found in
96	build log.
97
982024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
99
100	* VERSION (_MAKE_VERSION): 20240424
101	Merge with NetBSD make, pick up
102	o clean up comments, code and tests
103
1042024-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
105
106	* VERSION (_MAKE_VERSION): 20240422
107	Merge with NetBSD make, pick up
108	o var.c: avoid LazyBuf for :*time modifiers.
109	LazyBuf's are not nul terminated so not suitable for passing to
110	functions that expect that. These modifiers are used sparingly so
111	an extra allocation is not a problem.
112
1132024-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
114
115	* VERSION (_MAKE_VERSION): 20240420
116	Merge with NetBSD make, pick up
117	o provide more context information for parse/evaluate errors
118
1192024-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
120
121	* VERSION (_MAKE_VERSION): 20240414
122	Merge with NetBSD make, pick up
123	o parse.c: print -dp debug info earlier so we see which
124	.if or .for line is being parsed.
125
1262024-04-04  Simon J Gerraty  <sjg@beast.crufty.net>
127
128	* VERSION (_MAKE_VERSION): 20240404
129	Merge with NetBSD make, pick up
130	o fix some unit tests for Cygwin
131	o parse.c: exit immediately after reading a null byte from a makefile
132
133	* fix generation of bmake.cat1
134
1352024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
136
137	* VERSION (_MAKE_VERSION): 20240314
138	Add/Improve support for Cygwin
139	o uname -s output isn't useful so allow configure to
140	set FORCE_MAKE_OS - to force the value of .MAKE.OS
141	and use Cygwin which matches uname -o
142	o fix some unit-tests for Cygwin
143
1442024-03-10  Simon J Gerraty  <sjg@beast.crufty.net>
145
146	* boot-strap: tests can take a long time; use a cookie to
147	skip them if bmake has not been updated since tests last
148	ran successfully.
149
150	* Makefile: Cygwin handles MANTARGET man
151
152	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin
153
1542024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
155
156	* VERSION (_MAKE_VERSION): 20240309
157	Merge with NetBSD make, pick up
158	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
159	this allows a .ERROR target to ignore the case of
160	.ERROR_EXIT==6 which just means that the build actually
161	failed somewhere else.
162
1632024-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
164
165	* VERSION (_MAKE_VERSION): 20240303
166
167	* var.c: on IRIX we need both inttypes.h and stdint.h
168
1692024-03-01  Simon J Gerraty  <sjg@beast.crufty.net>
170
171	* VERSION (_MAKE_VERSION): 20240301
172	Merge with NetBSD make, pick up
173	o export variables with value from target scope
174	when appropriate.
175
1762024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
177
178	* VERSION (_MAKE_VERSION): 20240212
179	Merge with NetBSD make, pick up
180	o remove unneeded conditional-compilation toggles
181	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
182	GMAKEEXPORT NO_REGEX and SUNSHCMD
183
184	* configure.in: add check for regex.h
185
186	* var.c: replace use of NO_REGEX with HAVE_REGEX_H
187
1882024-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
189
190	* VERSION (_MAKE_VERSION): 20240204
191	Merge with NetBSD make, pick up
192	o var.c: fix some lint (-dL) mode parsing issues
193
1942024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
195
196	* VERSION: (_MAKE_VERSION): 20240202
197	Merge with NetBSD make, pick up
198	o make.1: note that arg to :D and :U can be empty
199	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no
200
2012024-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
202
203	* VERSION (_MAKE_VERSION): 20240108
204	Merge with NetBSD make, pick up
205	o miscellaneous cleanups
206
2072024-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
208
209	* VERSION (_MAKE_VERSION): 20240106
210	Merge with NetBSD make, pick up
211	o fix duplicate progname when reporting an unknown target
212	o unit tests for Cmd_Exec using temp file
213
2142024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
215
216	* VERSION (_MAKE_VERSION): 20240105
217	Merge with NetBSD make, pick up
218	o main.c: Cmd_Exec write cmd to a file if too big
219	avoid blowing commandline/env limits
220
2212024-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
222
223	* VERSION (_MAKE_VERSION): 20240101
224	o util.c: flesh out more of strftime
225	* configure.in: add --with-bmake-strftime
226	it is not a full implementation but enough to pass all
227	the unit-tests.
228	* parse.c: LoadFile do not append \n to empty buffer.
229
2302023-12-30  Simon J Gerraty  <sjg@beast.crufty.net>
231
232	* VERSION (_MAKE_VERSION): 20231230
233	Merge with NetBSD make, pick up
234	o simplify memory allocation for string buffers
235	o fix declared types of list nodes
236	o suff.c: clean up freeing of suffixes
237	o var.c: simplify debug message for the ':@var@...@' modifier
238	clean up variable handling
239
2402023-12-26  Simon J Gerraty  <sjg@beast.crufty.net>
241
242	* VERSION (_MAKE_VERSION): 20231226
243	Merge with NetBSD make, pick up
244	o compat.c: ensure make's output is correctly ordered with that of
245	the target when not going to a tty
246	o main.c: check for shellPath whether to call Shell_Init()
247
2482023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
249
250	* VERSION (_MAKE_VERSION): 20231224
251	Merge with NetBSD make, pick up
252	o compat.c: check for shellPath whether to call Shell_Init()
253	tweak the unit test to detect the bug thus fixed.
254	o make.1: do not claim .SHELL is only used by jobs mode.
255
2562023-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
257
258	* VERSION (_MAKE_VERSION): 20231220
259	Merge with NetBSD make, pick up
260	o str.c: speed up pattern matching in the ':M' modifier
261	o var.c: fix confusing debug logging when deleting a variable
262	use consistent debug messages style when ignoring variables
263
2642023-12-10  Simon J Gerraty  <sjg@beast.crufty.net>
265
266	* VERSION (_MAKE_VERSION): 20231210
267	Merge with NetBSD make, pick up
268	o var.c: avoid segfault on empty :C match expression
269	explain in debug log why variable assignment is ignored.
270
2712023-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
272
273	* VERSION (_MAKE_VERSION): 20231208
274	Merge with NetBSD make, pick up
275	o var.c: ensure fromCmd is set correctly for variables set on
276	command line.
277
2782023-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
279
280	* configure.in: disable generation of 'makefile' for
281	Darwin by default.
282
283	* boot-strap: docuement --without-makefile
284
2852023-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
286
287	* VERSION (_MAKE_VERSION): 20231124
288	Merge with NetBSD make, pick up
289	o main.c: cleanup processing of -j
290	fix lint warning about strchr
291	o var.c: more accurate error message for invalid ':mtime' argument
292	cleanup :[...] modifier
293	avoid reading beyond substring when comparing
294	o unit-tests cover all cases of :mtime, test and explain exporting
295	of variables
296	o cleanup comments
297
2982023-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
299
300	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
301	$FreeBSD$ tag, so avoid adding it.
302
3032023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
304
305	* VERSION (_MAKE_VERSION): 20230909
306	Merge with NetBSD make, pick up
307	o main.c: allow -j to compute a multiple of ncpu
308	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
309	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
310	_SC_NPROCESSORS_ONLN
311	.MAKE.JOBS.C will be "yes" if -jC is supported
312
3132023-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
314
315	* VERSION (_MAKE_VERSION): 20230820
316	Merge with NetBSD make, pick up
317	o make.1: note that :localtime is better for %s
318	o parse.c: improve error messages for invalid input.
319	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
320	correct result, it is still better to use %s:L:localtime.
321
3222023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
323
324	* VERSION (_MAKE_VERSION): 20230818
325	Merge with NetBSD make, pick up
326	o meta.c: meta_ignore - check raw path against metaIgnorePaths
327	to potentially skip call to realpath.
328	o var.c: be strict when parsing the argument of the ':mtime' modifier
329	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
330	should be used to get an equivalent value to time(3).
331
3322023-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
333
334	* VERSION (_MAKE_VERSION): 20230816
335	Merge with NetBSD make, pick up
336	o cond.c: clean up multiple-inclusion guards
337
3382023-07-25  Simon J Gerraty  <sjg@beast.crufty.net>
339
340	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
341	if configure cannot work out how to control TZ.
342	Remove varmod-localtime from BROKEN_TESTS for IRIX*
343
3442023-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
345
346	* VERSION (_MAKE_VERSION): 20230723
347
348	* configure.in: fix the test for wether TZ=Europe/Berlin works.
349	Depending on the time of year, if run between 22:00 and 00:00 UTC
350	the check in configure would fail incorrectly.
351	Take the day into account as well.
352
3532023-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
354
355	* VERSION (_MAKE_VERSION): 20230711
356	Merge with NetBSD make, pick up
357	o make.1: clean up wording, clarify scope of '!' in conditions
358
3592023-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
360
361	* make-bootstrap.sh.in: set prefix
362	If configure is run using ksh we get unexpanded ${prefix} in
363	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
364	correct result.
365
3662023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
367
368	* VERSION (_MAKE_VERSION): 20230711
369	bump version for IRIX tweaks
370
371	* make.h: undef OP_NONE if defined
372
373	* unit-tests/Makefile: set BROKEN_TESTS for IRIX
374
375	* configure.in: override INSTALL on IRIX
376
3772023-06-27  Simon J Gerraty  <sjg@beast.crufty.net>
378
379	* boot-strap op_test: ensure we set TEST_MAKE as we want it.
380
3812023-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
382
383	* VERSION (_MAKE_VERSION): 20230622
384	Merge with NetBSD make, pick up
385	o optimize string matching for ':M' and ':N'
386	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
387
3882023-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
389
390	* VERSION (_MAKE_VERSION): 20230621
391	Merge with NetBSD make, pick up
392	o more extensive tests for include guards
393	o parse.c: if a guard is already defined a file that uses the same
394	guard is still guarded by it.
395
3962023-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
397
398	* VERSION (_MAKE_VERSION): 20230620
399	Merge with NetBSD make, pick up
400	o allow guards to be targets as well as variables
401	The guard targets may include variable references like
402	__${.PARSEDIR:tA}/${.PARSEFILE}__
403
4042023-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
405
406	* VERSION (_MAKE_VERSION): 20230619
407	Merge with NetBSD make, pick up
408	o unit test for .undef of readOnly vars
409	o optimization for makefiles protected from multiple-inclusion
410	skip even opening the file after first include.
411	Initially this only handles makefiles guarded by a variable
412	target guards are next.
413
4142023-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
415
416	* VERSION (_MAKE_VERSION): 20230616
417	Merge with NetBSD make, pick up
418	o var.c: do not allow delete of readOnly variable
419
4202023-06-03  Simon J Gerraty  <sjg@beast.crufty.net>
421
422	* VERSION (_MAKE_VERSION): 20230601
423	Merge with NetBSD make, pick up
424	o parse.c: .break takes no args
425	o lots of unit test updates
426
4272023-05-29  Simon J Gerraty  <sjg@beast.crufty.net>
428
429	* unit-tests/Makefile: skip tests that require /dev/filemon
430	if it does not exists - issue a warning.
431
4322023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
433
434	* VERSION (_MAKE_VERSION): 20230522
435	Fix building on darwin ppc
436
437	* os.sh (MACHINE): Darwin powerpc cannot use `uname -m`
438	also recent NetBSD uses x86_64 for MACHINE_ARCH so conform.
439
4402023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
441
442	* VERSION (_MAKE_VERSION): 20230515
443
444	* Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to
445	compile filemon_ktrace.c
446
4472023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
448
449	* VERSION (_MAKE_VERSION): 20230512
450	o sys.dirdeps.mk - broke after-import target
451
4522023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
453
454	* VERSION (_MAKE_VERSION): 20230510
455	Merge with NetBSD make, pick up
456	o parse.c: don't print null filename in stack traces
457	o var.c: :mtime operate on each word in variable value
458
4592023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
460
461	* VERSION (_MAKE_VERSION): 20230509
462	Merge with NetBSD make, pick up
463	o for.c: skip syntactically wrong .for loops
464	o var.c: allow for :gmtime=${mtime}
465	add :mtime[=timestamp] where timestamp is used if stat(2)
466	fails, if :mtime=error stat(2) failure causes error.
467
4682023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
469
470	* VERSION (_MAKE_VERSION): 20230504
471	Merge with NetBSD make, pick up
472	o compat.c: fix compile on NetBSD 7.2
473	o make.1: fix documentation of .PREFIX to match reality and POSIX
474	o unit-tests: improved var-scope-local
475
4762023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
477
478	* VERSION (_MAKE_VERSION): 20230414
479	Merge with NetBSD make, pick up
480	o minor cleanup
481
4822023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
483
484	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
485	unlimited results in an insane number (0x7fffffffffffffff).
486	If BMAKE_NOFILE_MAX is defined, use that instead.
487
4882023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
489
490	* VERSION (_MAKE_VERSION): 20230321
491	Merge with NetBSD make, pick up
492	* make.1: document seemingly unexplained Error code 6.
493
4942023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
495
496	* VERSION (_MAKE_VERSION): 20230317
497	Merge with NetBSD make, pick up
498	o compat.c: CompatDeleteTarget skip .PHONY targets to be
499	consistent with JobDeleteTarget.
500	o job.c: fix memory leak in handling sysv :from=to modifiers
501
5022023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
503
504	* VERSION (_MAKE_VERSION): 20230303
505	Merge with NetBSD make, pick up
506	o several updated unit-tests
507
5082023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
509
510	* VERSION (_MAKE_VERSION): 20230222
511	Merge with NetBSD make, pick up
512	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
513
5142023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
515
516	* VERSION (_MAKE_VERSION): 20230218
517	Merge with NetBSD make, pick up
518	o var.c: fix parsing of unevaluated subexpressions with
519	unbalanced '{}'
520
5212023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
522
523	* VERSION (_MAKE_VERSION): 20230215
524	Merge with NetBSD make, pick up
525	o inline macros for some variable names
526	o cond.c: reduce complexity of evaluating expressions
527
5282023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
529
530	* VERSION (_MAKE_VERSION): 20230208
531	Merge with NetBSD make, pick up
532	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
533	when it has been used within conditional expressions
534
5352023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
536
537	* VERSION (_MAKE_VERSION): 20230127
538
539	* install-sh: if making directories ensure umask is set
540	to match mode.
541
542	* Makefile: use DIRMODE for directories and
543	NONBINMODE for man pages and mk files
544
5452023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
546
547	* VERSION (_MAKE_VERSION): 20230126
548	Merge with NetBSD make, pick up
549	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
550	should be read-only.
551
5522023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
553
554	* VERSION (_MAKE_VERSION): 20230123
555	Merge with NetBSD make, pick up
556	o .[NO]READONLY: for control of read-only variables
557	o .SYSPATH: for controlling the path searched for makefiles
558
5592023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
560
561	* VERSION (_MAKE_VERSION): 20230120
562	Merge with NetBSD make, pick up
563	o allow for white-space between command specifiers @+-
564	o add more details to warning 'Extra targets ignored'
565
5662023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
567
568	* machine.sh: leverage os.sh rather than duplicate
569	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
570	for that purpose for the past decade or so.
571	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
572
5732023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
574
575	* VERSION (_MAKE_VERSION): 20230101
576	Merge with NetBSD make, pick up
577	o cleanup comments, inline some LazyBuf_ methods
578	o unit-tests/ add/improve comments in tests
579	o make.1: sync list of built-in variables with reality
580	sort list of built-in variables
581	reduce indentation of the long list of variable names
582	use consistent markup for boolean flags
583	move description of .MAKE.MODE below the .MAKE.META block
584	clarify in which case an expression may omit braces
585
5862022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
587
588	* VERSION (_MAKE_VERSION): 20221024
589	Merge with NetBSD make, pick up
590	o change return type of unlink_file back to int
591
5922022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
593
594	* Makefile: Darwin and Linux can handle MANTARGET=man
595
5962022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
597
598	* VERSION (_MAKE_VERSION): 20220928
599	Merge with NetBSD make, pick up
600	o fix more ignored returns from snprintf
601	o compile with higher warnings
602
6032022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
604
605	* main.c meta.c: do not ignore return from snprintf
606
607	* meta.c strlcpy.c: we need prototype for strlcpy
608
609	* sigcompat.c: fix unused function warnings
610
6112022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
612
613	* VERSION (_MAKE_VERSION): 20220924
614	Merge with NetBSD make, pick up
615	o fix bug in .break reset of conditional depth
616	o overhaul and simplify tracking of conditional depth
617
6182022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
619
620	* VERSION (_MAKE_VERSION): 20220912
621	Merge with NetBSD make, pick up
622	o man page updates
623
6242022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
625
626	* VERSION (_MAKE_VERSION): 20220909
627	Merge with NetBSD make, pick up
628	o update unit-tests to handle deprecation of egrep
629	o cond.c: add more details to error message for numeric comparison
630
631	* configure.in: allow for deprecation of egrep
632
633	* Makefile: Linux can handle MANTARGET=man
634
6352022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
636
637	* VERSION (_MAKE_VERSION): 20220903
638	Merge with NetBSD make, pick up
639	o job.c: fix handling of null bytes in output
640
6412022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
642
643	* VERSION (_MAKE_VERSION): 20220902
644	Merge with NetBSD make, pick up
645	o Allow .break to terminate a .for loop early
646
6472022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
648
649	* VERSION (_MAKE_VERSION): 20220901
650	Merge with NetBSD make, pick up
651	o var.c: fix out-of-bounds errors when parsing
652
6532022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
654
655	* VERSION (_MAKE_VERSION): 20220824
656	Merge with NetBSD make, pick up
657	o var.c: revert change to modifier parsing that breaks
658	shell variable references within ':@var@body@'
659	o adjust unit-tests
660
6612022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
662
663	* VERSION (_MAKE_VERSION): 20220818
664	Merge with NetBSD make, pick up
665	o fix exit status for '-q' (since 1994)
666
6672022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
668
669	* VERSION (_MAKE_VERSION): 20220808
670	Merge with NetBSD make, pick up
671	o var.c: fix parsing of modifiers containing unbalanced subexpressions
672	extract parsing of ':D' and ':U' modifiers into separate function
673
6742022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
675
676	* VERSION (_MAKE_VERSION): 20220726
677
678	* Auto-create objdir for bmake/unit-tests if appropriate
679
6802022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
681
682	* VERSION (_MAKE_VERSION): 20220724
683	Merge with NetBSD make, pick up
684	o make.1: describe variable assignment and evaluation more precisely
685	o parse.c: fix out-of-bounds read when parsing an invalid line
686	o var.c: simplify return type of IsShortVarnameValid
687
6882022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
689
690	* VERSION (_MAKE_VERSION): 20220612
691	Merge with NetBSD make, pick up
692	o allow to randomize build order of targets
693	.MAKE.MODE += randomize-targets can help uncover dependency bugs
694	within a makefile.
695	o compat.c: rename Compat_Run to Compat_MakeAll
696	o make.c: inline MakeBuildParent
697	inline make_abort, improve error details
698	o parse.c: reorganize Parse_Error
699	fix memory leak in wildcard targets and sources
700	separate cases in HandleDependencyTargetMundane
701	extract HandleSingleDependencyTargetMundane
702	rename loadfile to LoadFile
703	split IncludeFile into separate functions
704	condense code for searching a file in the paths
705	fix off-by-one error in buffer for .WAIT nodes
706	o str.c: condense Str_Match
707	make code for string matching syntactically more consistent
708
7092022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
710
711	* VERSION (_MAKE_VERSION): 20220418
712	Merge with NetBSD make, pick up
713	o ignore '.POSIX:' if not in first non-comment line
714	of Makefile as specified by POSIX.
715	add unit-tests for above.
716	o meta.c: make it easier to find usage of identifiers
717	o targ.c: add .USEBEFORE to Targ_PrintType
718
7192022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
720
721	* VERSION (_MAKE_VERSION): 20220414
722
723	* unit-tests/Makefile: simplify checks for shells with
724	BROKEN_TESTS, this helps with other Linux distros that
725	use dash.
726
7272022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
728
729	* VERSION (_MAKE_VERSION): 20220330
730	Merge with NetBSD make, pick up
731	o var.c: fix spacing, and a typo in a test
732
7332022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
734
735	* VERSION (_MAKE_VERSION): 20220326
736	Merge with NetBSD make, pick up
737	o parse.c: try to include 'posix.mk' the first time
738	.POSIX: is encountered, to allow for beter POSIX compliance.
739	o var.c: make debug logs more readable
740	prefer 'long long' over 'long' on 32-bit C99 platforms
741	fix crash on .undef of an environment variable
742
7432022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
744
745	* VERSION (_MAKE_VERSION): 20220303
746	Merge with NetBSD make, pick up
747	o tell meta mode unit tests not to expect filemon
748	o cond.c: make debug logging for comparisons less technical
749	o lst.c: fix mem leak in Lst_Remove
750	o str.c: make code for string matching syntactically more consistent
751	o var.c: simplify ParseModifier_Match
752
7532022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
754
755	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
756
757	* VERSION (_MAKE_VERSION): 20220214
758	Merge with NetBSD make, pick up
759	o cond.c: simplify control flow in CondParser_Comparison
760	o job.c: fix echoing of command with '-' in silent target in jobs mode
761	o main.c: prefix the warning about read-only .OBJDIR with a colon
762	o parse.c: remove redundant conditions
763	o var.c: simplify control flow in ModifyWord_SysVSubst
764
7652022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
766
767	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
768	is any chance we have dash as .SHELL
769
770	* VERSION (_MAKE_VERSION): 20220208
771	Merge with NetBSD make, pick up
772	o more unit tests
773	o meta.c: use a variable to hold command line to be filtered
774	to avoid any side effects from content of command line.
775
7762022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
777
778	* VERSION (_MAKE_VERSION): 20220204
779	Merge with NetBSD make, pick up
780	o use unsigned consistently for line numbers, avoid the need for %z
781	o parse.c: do not step off end of input in Parse_IsVar
782	when checking for target local variable assignments
783
7842022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
785
786	* VERSION (_MAKE_VERSION): 20220202
787	Merge with NetBSD make, pick up
788	o remove redundant declaration of HashIter_Init
789	o make DEBUG0 simpler
790
7912022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
792
793	* cast gn->lineno to avoid %z
794
795	* VERSION (_MAKE_VERSION): 20220130
796	Merge with NetBSD make, pick up
797	o more unit tests
798	o make GNode lineno unsigned to please lint
799	o print location of recursive variable references in commands
800	o print "stack trace" (makefile includes) on fatal errors
801	o make.1: refine documentation for target local assignments
802
8032022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
804
805	* VERSION (_MAKE_VERSION): 20220128
806	Merge with NetBSD make, pick up
807	o inline functions called only once
808	o for.c: clean up AddEscape for building the body of a .for loop
809	o hash.c: merge duplicate code for finding an entry in a hash table
810	replace HashEntry_KeyEquals with strncmp
811	o make.1: document quirks of target local variable assignments.
812	o parse.c: cleanup white-space
813
8142022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
815
816	* VERSION (_MAKE_VERSION): 20220126
817	Merge with NetBSD make, pick up
818	o allow setting target local variables
819	o more unit tests
820	o add missing newline after "cannot continue" message
821	o meta.c: clean up eat_dots
822	o parse.c: fix filename in warning about duplicate script
823	o var.c: when expanding nested variables, check simple things first
824
8252022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
826
827	* VERSION (_MAKE_VERSION): 20220116
828	Merge with NetBSD make, pick up
829	o fix for unit-tests/varname-makeflags on non-BSD systems
830	o use Var_Exists rather than Var_Value where appropriate
831	o remove unnecessary functions for expanding variable names
832	o cond.c: inline EvalBare
833	o main.c: lint cleanup
834	o parse.c: condense code in Parse_IsVar
835	use islower for parsing directives (none have upper case)
836
8372022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
838
839	* VERSION (_MAKE_VERSION): 20220112
840	Merge with NetBSD make, pick up
841	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
842	comparion, rarely needed but useful when it is.
843
8442022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
845
846	* VERSION (_MAKE_VERSION): 20220110
847	Merge with NetBSD make, pick up
848	o inline Buf_Clear
849	o remove redundant braces
850	o rename and inline Targ_Precious
851	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
852	o for.c: clean up handling of .for loops
853	fix reported line numbers of continuation lines
854	add details about .for loop variables to stack traces
855	o job.c: reduce code for initializing error handling in shell
856	o main.c: in Cmd_Exec, return error message instead of format string
857	have as few statements as possible between va_start and va_end
858	add debug logging for capturing the output of external commands
859	o make.c: use consistent variable names for varargs
860	o make_malloc.c: remove duplicate code from bmake_strdup
861	o parse.c: add missing printflike annotations
862	remove redundant lines from stack traces
863	fix stack traces in -dp mode
864	reduce confusing code in ParseForLoop
865	fix line number in debug log after returning from a file
866	rename IFile and its fields to match their actual content
867	clean up ParseDependencySources
868	o var.c: shorten ApplyModifier_Assign
869	rename is_shell_metachar, fix character conversion warning
870	merge calls to ApplyModifier_Time
871	merge duplicate code for modifiers 'gmtime' and 'localtime'
872
8732022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
874
875	* parse.c: loadfile restore extra byte in buffer.
876
8772022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
878
879	* VERSION (_MAKE_VERSION): 20220101
880	Merge with NetBSD make, pick up
881	o more unit-tests
882	o remove unnecessary words from command line options in CmdOpts
883	o rename eunlink to unlink_file
884	o cond.c: make ParseWord in condition parser simpler
885	internally return false for irrelevant leaves in conditions
886	replace table for function lookup in conditions with simple code
887	merge duplicate types CondEvalResult and CondResult
888	o for.c: clean up handling of .for loops and .include directives
889	o main.c: constify cached_realpath
890	clean up Cmd_Exec
891	o parse.c: sync API documentation
892	fix error message when reading more than 1 GB from stdin
893	clean up parsing of makefiles
894	fix line number in error message about open conditionals
895	unexport types VarAssignOp and VarAssign
896	clean up function names
897	remove redundant parameters in dependency parsing functions
898	reduce scope of the list of wildcard target names
899	extract OP_NOTARGET into separate function
900	clean up variable names for parsing dependency lines
901	make debug logging a bit more human-friendly
902	o var.c: condense code in ApplyModifier_Assign
903
9042021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
905
906	* VERSION (_MAKE_VERSION): 20211221
907	Merge with NetBSD make, pick up
908	o more unit-tests
909	o style cleanup
910	o in CLEANUP mode, free interned strings at the very end
911	o fix memory leak for filenames in .for loops
912	o buf.c: avoid memory leak
913	o cond.c: condense CondParser_ComparisonOp
914	o hash.c: change return type of HashTable_Set to void
915	o job.c: change return type of Compat_RunCommand from int to bool
916	o main.c: remove bmake_free
917	o parse.c: condense repetetive code in ParseDirective
918	remove dead code for handling traditional include directives
919	clean up parsing of variable assignments
920	remove unreachable code for parsing the dependency operator
921	clean up loading of files
922	fix memory leak in IncludeFile
923	o var.c: fix memory leak when parsing a variable name
924	fix memory leak from ${.SUFFIXES}
925	reduce memory allocation in modifier ':?' and ':C'
926	condense RegexReplace for the modifier ':C' and avoid strlen
927	merge duplicate code for memory handling in Var_Parse
928	distinguish between short-lived and environment variables
929	rename VarFreeEnv to VarFreeShortLived
930
9312021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
932
933	* cond.c: fix mem leak in CondParser_Leaf
934
9352021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
936
937	* VERSION (_MAKE_VERSION): 20211212
938	Merge with NetBSD make, pick up
939	o rename Parse_SetInput to Parse_PushInput
940	o remove remove period from end of error messages and warnings
941	to be more consistent
942	o arch.c: use simpler memory management for parsing archive members
943	o cond.c: rework and reduce recursion
944	o for.c: rename some functions to better reflect purpose
945	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
946	o var.c: in parse errors, mark whitespace more clearly
947	inline ParseEmptyArg into CondParser_FuncCallEmpty
948	minimize calls to LazyBuf_Get in ParseVarnameLong
949	treat .SUFFIXES as a read-only variable
950
9512021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
952
953	* VERSION (_MAKE_VERSION): 20211207
954	Merge with NetBSD make, pick up
955	o inline HashIter_Init
956	o parse.c: inline common subexpression in ParseRawLine
957	o var.c: merge branches for modifiers ':D' and ':U'
958	extract common code into Expr_Words
959	extract common code into Expr_Str
960	move low-level implementation details out of Var_Parse
961
9622021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
963
964	* VERSION (_MAKE_VERSION): 20211206
965	Merge with NetBSD make, pick up
966	o add unit-tests/varmod-loop-delete
967	o for.c: inline Str_Words - reduce memory allocation
968	o parse.c: do not try to expand fixed variable names
969	only allocate the name of an included file if necessary
970	clean up ParseInclude
971	o var.c: fix use-after-free in modifier ':@'
972	save a memory allocation in each modifier ':O' and ':u'
973	save a memory allocation in the modifier ':[...]'
974	in UnexportVars, replace Str_Words with Substring_Words to
975	reduce allocations and copying.
976
9772021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
978
979	* VERSION (_MAKE_VERSION): 20211204
980	Merge with NetBSD make, pick up
981	o flesh out a number of tests
982	o replace enums with bitfields, this simplifies a lot of code.
983	o var.c: refactor ParseModifierPartSubst
984
9852021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
986
987	* VERSION (_MAKE_VERSION): 20211024
988	Merge with NetBSD make, pick up
989	o Punt on write errors - ENOSPC etc.
990
9912021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
992
993	* configure.in: use_defshell, set both DEFSHELL_INDEX
994	and defshell_path if appropriate.
995	This makes it easier to use say the KSH specification with
996	and alternate path for the shell.
997
998	* configure.in compat.c: for SCO we need to force UseShell
999
1000	* configure.in: SCO /bin/sh is not usable, provide a list of
1001	alternatives for use as .SHELL.
1002	We still have to mark some tests as broken, plus more if we end up
1003	with ksh as .SHELL.
1004	Issue a warning about skipped tests.
1005
1006	* boot-strap: leave TOOL_DIFF to configure
1007
1008	* configure.in: on SCO native cc is not usable,
1009	gcc is to be found in /usr/gnu/bin
1010	and while ancient is at least able to compile bmake.
1011	Thus we add /usr/gnu/bin to PATH if it exists, and later
1012	check if $CC would have been found via $PATH.
1013	If not we set CC to the full path of $CC.
1014	Also gnu diff is known to support -u, so if it exists use it.
1015
1016	* configure.in: move getopt to AC_REPLACE_FUNCS
1017	also add AC_C_INLINE - in an attempt to compile using
1018	native cc on SCO.
1019
1020	* configure.in: check for stresep as well as strsep, since we
1021	define the later to the former if necessary, and if we have to
1022	provide stresep we also need to provide a prototype.
1023
1024	* configure.in: we no longer need to worry about
1025	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
1026
1027	* make.h: make sure we have __RCSID
1028
1029	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
1030	can control it.
1031
10322021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
1033
1034	* VERSION: 20211020
1035	Merge with NetBSD make, pick up
1036	o confirm sync of unit-tests
1037
10382021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1039
1040	* configure.in: check if timezone Europe/Berlin is supported
1041	if not try UTC-1
1042	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
1043	symlink unit-tests -> ../unit-tests/obj so that
1044	unit-tests/Makefile.config is put in the right place.
1045	* refine filtering of .OBJDIR in unit-tests
1046
10472021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
1048
1049	* Fix unit-tests on Minix 3.2.0
1050	o job.c: do not punt if read of token pipe fails for EAGAIN.
1051	On Minix at least, we are not ready to read the childExitJob pipe
1052	when poll says we are.
1053	There should actually be no reason for this pipe to be
1054	non-blocking, but while that works fine on {Net,Free}BSD it
1055	breaks another test case on Minix.
1056	o unit-tests/Makefile: deal with variants of error messages
1057	  and use of obj as .OBJDIR
1058
10592021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
1060
1061	* configure.in: add sigaction to AC_REPLACE_FUNCS
1062	we also need to check for sigaddset etc just for the benefit of
1063	sigact.c
1064
1065	* Add sigact.c as sigaction.c so this "just works".
1066	This should have been done back when bmake_signal started using
1067	sigaction (I only just noticed that sigact.c wasn't here ;-)
1068	Note: I no longer have access to any system where this would matter.
1069
10702021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
1071
1072	* VERSION (_MAKE_VERSION): 20211011
1073
1074	* Makefile: cleanup a little
1075
1076	* configure.in: check for sigsetmask
1077
10782021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1079
1080	* VERSION (_MAKE_VERSION): 20211001
1081	Merge with NetBSD make, pick up
1082	o reduce locations reducing text size
1083	o remove unnecessary const
1084	o cond.c: fix lint warning on i386
1085	do not allow unquoted 'left == right' after modifier ':?'
1086	o hash.c: fix build for DEBUG_HASH_LOOKUP
1087	o var.c: fix memory leak in error case of the ':?' modifier
1088
10892021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1090
1091	* VERSION (_MAKE_VERSION): 20210911
1092	Merge with NetBSD make, pick up
1093	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
1094
10952021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
1096
1097	* VERSION (_MAKE_VERSION): 20210906
1098	Merge with NetBSD make, pick up
1099	o more unit tests
1100	o lint cleanup
1101	o rename some functions to better fit purpose
1102	o for.c: cleanup - remove unnecessary optimization
1103	  fix embedded newlines
1104	o parse.c: correct case for CVS/RCS
1105
11062021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
1107
1108	* VERSION (_MAKE_VERSION): 20210808
1109	Merge with NetBSD make, pick up
1110	o var.c: remove redundant initialization in ApplyModifier_Order
1111
1112	* mk/options.mk: issue warning for incorrect usage
1113
11142021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1115
1116	* var.c: use long for :On if we don't have a 64bit int type
1117
1118	* VERSION (_MAKE_VERSION): 20210803
1119	Merge with NetBSD make, pick up
1120	o rework varmod-order tests to avoid qsort instability
1121	o make.1: clarify :On entry
1122
11232021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1124
1125	* VERSION (_MAKE_VERSION): 20210731
1126	Merge with NetBSD make, pick up
1127	o fix some lint issues
1128	o more unit tests
1129	o var.c: rework of ApplyModifier_Order
1130
11312021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1132
1133	* util.c: add strto*l if HAVE_STRTO*L not defined
1134
1135	* VERSION (_MAKE_VERSION): 20210730
1136	Merge with NetBSD make, pick up
1137	o var.c: add :On and :Orn for numeric sort
1138	  disabled if no 64bit type available.
1139	o _strtol.h: to implement strto*l functions
1140
11412021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1142
1143	* VERSION (_MAKE_VERSION): 20210704
1144	Merge with NetBSD make, pick up
1145	o unit-tests: fix some tests to be more portable
1146	- job-output-null not all shells do the same number of write calls
1147	- objdir-writable if TMPDIR is set; /tmp may not be usable
1148
11492021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1150
1151	* VERSION (_MAKE_VERSION): 20210701
1152	Merge with NetBSD make, pick up
1153	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
1154	some tests just cannot work in some environments.
1155	o buf.c: simpler upper bound for length in Buf_AddInt
1156	o cond.c: fix grammar in error message for malformed conditional
1157	o for.c: prevent newline injection (from ${.newline}) in .for loops
1158	o var.c: use more practical data type in RegexReplace
1159	(avoid need for %zu)
1160	extract RegexReplace from ModifyWord_SubstRegex
1161
11622021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
1163
1164	* VERSION (_MAKE_VERSION): 20210621
1165	Merge with NetBSD make, pick up
1166	o var.c: only report error for unmatched regex subexpression
1167	when linting (-dL) since we cannot tell when an unmatched
1168	subexpression is an expected result.
1169	o move unmatched regex subexpression tests to
1170	varmod-subst-regex.mk and enable strict (lint) mode
1171
11722021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
1173
1174	* VERSION (_MAKE_VERSION): 20210616
1175	Merge with NetBSD make, pick up
1176	o more unit tests
1177	o cond.c: rename If_Eval to EvalBare
1178	improve function names for parsing conditions
1179	o job.c: fix error handling of targets that cannot be made
1180	o var.c: uncompress code in ApplyModifier_Unique
1181
11822021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
1183
1184	* VERSION (_MAKE_VERSION): 20210518
1185	Merge with NetBSD make, pick up
1186	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
1187	o job.c: Print -de error information when running multiple jobs
1188
11892021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1190
1191	* VERSION (_MAKE_VERSION): 20210420
1192	Merge with NetBSD make, pick up
1193	o use C99 bool type
1194	o convert VarEvalFlags back into an enum
1195	o cond.c: do not complain when skipping the condition 'no >= 10'
1196	o hash.c: avoid allocating memory for simple variable names
1197	o job.c: use distinct wording for writing to the shell commands file
1198	remove type name for the abort status in job handling
1199	rename PrintOutput to PrintFilteredOutput to avoid confusion
1200	o main.c: avoid double slash in name of temporary directory
1201	o var.c: use straight quotes for error 'Bad conditional expression'
1202	reduce memory allocations in the modifiers ':D' and ':U'
1203	rename members of ModifyWord_LoopArgs
1204	clean up pattern flags for the modifiers ':S' and ':C'
1205	reduce memory allocation and strlen calls in modifier ':from=to'
1206	in the ':Q' modifier, only allocate memory if necessary
1207	improve performance for LazyBuf
1208	remove redundant parameter from ParseVarnameLong
1209	migrate ParseModifierPart to use Substring
1210	avoid unnecessary calls to strlen when evaluating modifiers
1211	migrate ModifyWord functions to use Substring
1212	migrate handling of the modifier ':S,from,to,' to Substring
1213	reduce debug logging and memory allocation for ${:U...}
1214	reduce verbosity of the -dv debug logging for standard cases
1215	clean up debug logging for ':M' and ':N'
1216	disallow '$' in the variable name of the modifier ':@'
1217	simplify access to the name of an expression during evaluation
1218
12192021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1220
1221	* VERSION (_MAKE_VERSION): 20210330
1222	Merge with NetBSD make, pick up
1223	o replace enum bit-field with struct bit-field for VarEvalFlags
1224	o rename VARE_NONE to VARE_PARSE_ONLY
1225	o var.c: rename ApplyModifiersState to ModChain
1226	fix double varname expansion in the variable modifier '::='
1227	change debug log for variable evaluation flags to lowercase
1228
12292021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
1230
1231	* VERSION (_MAKE_VERSION): 20210314
1232	Merge with NetBSD make, pick up
1233	o var.c: avoid evaluating many modifiers in parse only mode
1234	in strict mode (-dL) many variable references are parsed twice,
1235	the first time just to report parse errors early, so we want to
1236	avoid side effects and wasted effort to the extent possible.
1237
12382021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
1239
1240	* VERSION (_MAKE_VERSION): 20210226
1241	Merge with NetBSD make, pick up
1242	o remove freestanding freeIt variables
1243	link via FStr
1244	o var.c: restructure code in ParseVarname to target human readers
1245	improve error message for;
1246	  bad modifier in variable expression
1247	  unclosed modifier
1248	  unknown modifier
1249	remove redundant parameter of ApplySingleModifier
1250	explain non-obvious code around indirect variable modifiers
1251	quote ':S' in error message about missing delimiter
1252	extract ParseModifier_Match into separate function
1253	add context information to error message about ':range' modifier
1254	add quotes around variable name in an error message
1255	reorder code in ModifyWords
1256	use more common parameter order for VarSelectWords
1257	make ModifyWord_Subst a little easier to understand
1258	do not expand variable name from the command line twice
1259	extract ExistsInCmdline from Var_SetWithFlags
1260	save a hash map lookup when defining a cmdline variable
1261	clean up VarAdd, Var_Delete, Var_ReexportVars
1262	use bit-shift expressions for VarFlags constants
1263	rename constants for VarFlags
1264	rename ExprDefined constants for debug logging
1265	rename ExprStatus to ExprDefined
1266	split parameters for evaluating variable expressions
1267	reduce redundant code around ModifyWords
1268	print error about failed shell command before overwriting variable
1269	clean up ValidShortVarname, ParseVarnameShort
1270	rename VarExprStatus to ExprStatus
1271	add functions for assigning the value of an expression
1272	rename ApplyModifiersState_Define to Expr_Define
1273	condense the code for parsing :S and :C modifiers
1274
12752021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
1276
1277	* VERSION (_MAKE_VERSION): 20210206
1278	Merge with NetBSD make, pick up
1279	o unit-tests: use private TMPDIR to avoid errors from other users
1280
12812021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1282
1283	* VERSION (_MAKE_VERSION): 20210205
1284	Merge with NetBSD make, pick up
1285	o avoid strdup in mkTempFile
1286	o always use vfork
1287	o rename context and ctxt to scope
1288	o rename some VAR constants to SCOPE
1289	o Var_ functions, move the scope to the front
1290	o use shortcut functions Global_Set and Global_Append
1291	o add shortcut Global_Delete for deleting a global variable
1292	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
1293	o compat.c: when exiting due to an error, print graph information
1294	o enum.c: remove overengineered Enum_ValueToString
1295	o make.c: remove unused INTERNAL flag
1296	remove unused return type of MakeBuildParent
1297	o parse.c: replace parse error "Need an operator" with better message
1298	o var.c: improve documentation about variable scopes
1299	rename Var_ValueDirect to GNode_ValueDirect
1300	rename old Var_SetWithFlags to Var_SetExpandWithFlags
1301	merge SetVar into Var_SetWithFlags
1302	split Var_Exists into plain Var_Exists and Var_ExistsExpand
1303	split Var_Append into Var_Append and Var_AppendExpand
1304	replace enum bit-set with bit-field
1305	o unit-tests/var-op-shell: use kill rather than kill -14
1306	which broke on darwin with recent update.
1307
13082021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
1309
1310	* configure.in: check for sig_atomic_t and define it as 'int'
1311	if missing.
1312
1313	* VERSION (_MAKE_VERSION): 20210201
1314	Merge with NetBSD make, pick up
1315	o use sig_atomic_t for caught_sigchld
1316
13172021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1318
1319	* VERSION (_MAKE_VERSION): 20210130
1320	Merge with NetBSD make, pick up
1321	o more unit tests
1322	o convert SearchPath to struct
1323	o split Buf_Destroy into Buf_Done and Buf_DoneData
1324	o for.c: split For_Eval into separate functions
1325	rename struct For to struct ForLoop
1326	o job.c: do not create empty shell files in jobs mode
1327	rename JobOpenTmpFile to JobWriteShellCommands
1328	reduce unnecessary calls to waitpid
1329	o parse.c: in -dp mode, print stack trace with each diagnostic
1330
13312021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1332
1333	* VERSION (_MAKE_VERSION): 20210123
1334	Merge with NetBSD make, pick up
1335	o rename Dir_Expand to SearchPath_Expand
1336	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
1337	o cond.c: fix debug output for comparison operators in conditionals
1338	o dir.c: split Dir_FindFile into separate functions
1339
13402021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1341
1342	* VERSION (_MAKE_VERSION): 20210120
1343	Merge with NetBSD make, pick up
1344	o fix some more lint nits
1345	o refine some unit tests for portability
1346	o cond.c: rework parsing
1347
13482021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1349
1350	* VERSION (_MAKE_VERSION): 20210110
1351	Merge with NetBSD make, pick up
1352	o fix lint warnings
1353	o consistently use boolean expressions in conditions
1354
13552021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
1356
1357	* VERSION (_MAKE_VERSION): 20210108
1358	Merge with NetBSD make, pick up
1359	o job.c: back to polling token pipe if we want a token
1360	o main.c: always print 'stopped in' on first call
1361	The execption is if we bail because of an abort token
1362	in which case just exit 6.
1363
13642021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1365
1366	* VERSION (_MAKE_VERSION): 20210101
1367	Merge with NetBSD make, pick up
1368	o Happy New Year!
1369	o rename CmdOpts.lint to strict
1370	o exit 2 on technical errors
1371	o replace pointers in controlling conditions with booleans
1372	o replace global preserveUndefined with VARE_KEEP_UNDEF
1373	o compat.c: re-export variables from the actual make process
1374	if using vfork this is the effect anyway
1375	o cond.c: clean up VarParseResult constants
1376	o for.c: fix undefined behavior in SubstVarLong
1377	make control flow in SubstVarLong of .for loops more obvious
1378	clean up SubstVarShort in .for loops
1379	extract ForSubstBody from ForReadMore
1380	clean up ForReadMore
1381	simplify termination condition for .for loop
1382	add error handling for .for loop items
1383	job.c: re-export variables from the actual make process
1384	parse.c: remove mmap for loading files, only allow files < 1 GiB
1385	fix edge case in := with undefined in variable name
1386	skip variable expansion in ParseDependencyTargetWord
1387	var.c: split ExportVar into separate functions
1388	clean up code in extracted ExportVar functions
1389	remove dead code from ApplyModifiersIndirect
1390	split Var_Subst into easily understandable functions
1391	clean up VarParseResult constants
1392
13932020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
1394
1395	* main.c: use .MAKE.DEPENDFILE as set by makefiles
1396
13972020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1398
1399	* VERSION (_MAKE_VERSION): 20201222
1400	Merge with NetBSD make, pick up
1401	o make DEBUG macro return boolean
1402	o parse.c: fix assertion failure for files without trailing newline
1403	o var.c: allow .undef to undefine multiple variables at once
1404	remove excess newline from parse errors
1405
14062020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1407
1408	* VERSION (_MAKE_VERSION): 20201221
1409	Merge with NetBSD make, pick up
1410	o some unit-test updates
1411
14122020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1413
1414	* VERSION (_MAKE_VERSION): 20201220
1415	Merge with NetBSD make, pick up
1416	o more unit tests
1417	o return FStr from Var_Parse and Var_Value
1418	o spell nonexistent consistently
1419	o add str_basename to reduce duplicate code
1420	o compat.c: fix .ERROR_TARGET in compat -k mode
1421	extract InitSignals from Compat_Run
1422	extract UseShell from Compat_RunCommand
1423	o cond.c: error out if an '.endif' or '.else' contain extraneous text
1424	o for.c: rename ForIterate to ForReadMore
1425	o hash.c: clean up hash function for HashTable
1426	o lst.c: rename Vector.priv_cap to cap
1427	o main.c: remove constant parameter from MakeMode
1428	o make.c: use symbolic time for 0 in Make_Recheck
1429	extract MakeChildren from MakeStartJobs
1430	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
1431	fix error message for .info/.warning/.error without argument
1432	extract Var_Undef from ParseDirective
1433	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
1434	rename mode constants for ParseGetLine to be more expressive
1435	reduce debugging details in Parse_SetInput
1436	fix line numbers in .for loops
1437	split ParseGetLine into separate functions
1438	fix garbled output for failed shell command
1439	var.c: remove redundant assignment in ApplyModifier_SysV
1440	error out on unknown variable modifiers at parse time
1441	remove wrong error message for indirect modifier in lint mode
1442	extract ApplySingleModifier from ApplyModifiers
1443	use FStr for memory management in Var_SetWithFlags
1444	extract SetVar from Var_SetWithFlags
1445	use FStr in VarNew
1446	extract string functions from ApplyModifier_To
1447	error out if .undef has not exactly 1 argument
1448	extract Var_DeleteVar from Var_Delete
1449	extract Var_Undef from ParseDirective
1450	clean up memory management for expanding variable expressions
1451
14522020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1453
1454	* avoid %zu
1455
1456	* lst.c: avoid anonymous union
1457
1458	* VERSION (_MAKE_VERSION): 20201212
1459	Merge with NetBSD make, pick up
1460	o more unit tests
1461	o inline Targ_Ignore and Targ_Silent
1462	o split JobFlags into separate fields
1463	o remove const from function parameters (left overs from refactoring)
1464	o eliminate boolean argument of Var_Export
1465	o make API of Buf_Init simpler
1466	o rename ParseRunOptions to ParseCommandFlags
1467	o replace *line with line[0]
1468	o compat.c: fix wrong exit status for multiple failed main targets
1469	refactor Compat_Run to show the error condition more clearly
1470	don't make .END if the main targets already failed (-k mode)
1471	fix exit status in -k mode if a dependency fails
1472	o for.c: clean up Buf_AddEscaped in .for loops
1473	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
1474	make Job_Touch simpler
1475	refactor JobFinish
1476	rename Shell.exitFlag to errFlag
1477	move Job.xtraced to ShellWriter
1478	make printing of shell commands independent from the job
1479	rename shell flags in struct Shell
1480	extract JobOpenTmpFile from JobStart
1481	rename RunFlags to CommandFlags
1482	split various Job.* into separate fields
1483	rename commandShell to shell
1484	extract InitShellNameAndPath from Shell_Init
1485	replace signal handling macros with local functions
1486	replace macro MESSAGE with local function
1487	parse.c: error out on null bytes in makefiles
1488	error out on misspelled directives
1489	rename IFile.nextbuf to readMore
1490	fix undefined behavior in ParseEOF
1491	str.c: remove redundant call to strlen in Str_Words
1492	var.c: error out on misspelled .unexport-env
1493	error out on misspelled .export directives
1494	extract ExportVars from Var_Export
1495	extract ExportVarsExpand from Var_Export
1496	eliminate boolean argument of Var_Export
1497	fix undefined behavior when exporting ${:U }
1498	rename Var_ExportVars to Var_ReexportVars
1499	rename Var_Export1 to ExportVar
1500
15012020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1502
1503	* VERSION (_MAKE_VERSION): 20201206
1504	Merge with NetBSD make, pick up
1505	o more unit tests
1506	o inline macros for debug logging
1507	o use consistent variable names for list nodes
1508	o define constants for enum zero-values
1509	o dir.c: use fixed format for debug output of the directory cache
1510	remove Dir_InitDir
1511	o lst.c: inline Lst_Enqueue, Vector_Done
1512	o meta.c: remove unused parameter from meta_needed
1513	o parse.c: rename parse functions
1514	o suff.c: extract ExpandChildrenRegular from ExpandChildren
1515	o targ.c: don't concatenate identifiers in Targ_PrintType
1516	o var.c: remove comment decoration
1517	extract UnexportVars from Var_UnExport
1518	extract GetVarnamesToUnexport from Var_UnExport
1519	extract UnexportEnv from Var_UnExport
1520	extract UnexportVar from Var_UnExport
1521	move CleanEnv to UnexportVars
1522	replace pointer comparisons with enum
1523	add FStr to var.c to make memory handling simpler
1524	use FStr in Var_UnExport
1525	move type definitions in var.c to the top
1526	extract FreeEnvVar from Var_Parse
1527	extract ShuffleStrings from ApplyModifier_Order
1528
15292020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
1530
1531	* VERSION (_MAKE_VERSION): 20201130
1532	Merge with NetBSD make, pick up
1533	o add unit tests for META MODE
1534	o reduce memory allocation for dirSearchPath, GNode.parents,
1535	GNode.children, OpenDirs
1536	o reduce pointer indirection for GNode.cohorts and
1537	GNode.implicitParents
1538	o remove pointer indirection from GNode.commands
1539	o inline Lst_ForEachUntil in meta mode
1540	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
1541	clean up memory management for CachedDirs
1542	fix the reference count of dotLast going negative
1543	add debug logging for OpenDirs_Done
1544	extract CacheNewDir from Dir_AddDir
1545	add debug logging for reference counting of CachedDir
1546	rename some Dir functions to SearchPath
1547	o job.c: rename some global variables
1548	o main.c: reduce memory allocation in ReadBuiltinRules
1549	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
1550	CmdOpts.makefiles
1551	Add .MAKE.UID and .MAKE.GID
1552	o make.c: reduce memory allocation for/in toBeMade,
1553	Make_ProcessWait, Make_ExpandUse
1554	o meta.c: reduce memory allocation in meta_oodate
1555	o parse.c: reduce memory allocations for parsing dependencies and
1556	targets
1557	o suff.c: reduce memory allocation in suffix handling
1558
15592020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
1560
1561	* VERSION (_MAKE_VERSION): 20201124
1562	Merge with NetBSD make, pick up
1563	o .MAKE.{UID,GID} represent uid and gid running make.
1564	o fix error handling for .BEGIN and .END dependency in -k mode
1565	o fix missing "Stop." after failed .END node in -k mode
1566	o use properly typed comparisons in boolean contexts
1567	o replace a few HashTable_CreateEntry with HashTable_Set
1568	o add HashSet type
1569	o compat.c: split Compat_Make into smaller functions
1570	extract DebugFailedTarget from Compat_RunCommand
1571	o dir.c: refactor Dir_UpdateMTime
1572	migrate CachedDir.files from HashTable to HashSet
1573	o make.c: add high-level API for GNode.made
1574
15752020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
1576
1577	* VERSION (_MAKE_VERSION): 20201122
1578	Merge with NetBSD make, pick up
1579	o rename GNode.context to vars
1580	o suff.c: cleanup and refactor
1581	rename some functions and vars to better reflect usage
1582	add high-level API for CandidateSearcher
1583	o targ.c: add more debug logging for suffix handling
1584	o more unit tests
1585	o add debug logging for setting and resetting the main target
1586
15872020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
1588
1589	* VERSION (_MAKE_VERSION): 20201117
1590	Merge with NetBSD make, pick up
1591	o fix some unit-tests when .SHELL is dash
1592	o rename Targ_NewGN to GNode_New
1593	o make some GNode functions const
1594	o main.c: call Targ_Init before Var_Init
1595	cleanup PrintOnError, getTmpdir and ParseBoolean
1596	o var.c: fix error message of failed :!cmd! modifier
1597
15982020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
1599
1600	* VERSION (_MAKE_VERSION): 20201114
1601	Merge with NetBSD make, pick up
1602	o replace a few HashTable_CreateEntry with HashTable_Set
1603	o clean up cached_stats
1604	o rename DEFAULT to defaultNode
1605	o remove redundant struct make_stat
1606	o cond.c: in lint mode, check for ".else <cond>"
1607	use bitset for IfState
1608	replace large switch with if-else in Cond_EvalLine
1609	o job.c: clean up JobExec, JobStart, JobDoOutput
1610	use stderr for error message about failed touch
1611	clean up Job_Touch
1612	replace macro DBPRINTF with JobPrintln
1613	rename JobState to JobStatus
1614	main.c: switch cache for realpath from GNode to HashTable
1615	clean up Fatal
1616	clean up InitDefSysIncPath
1617	use progname instead of hard-coded 'make' in warning
1618	rename Main_SetVarObjdir to SetVarObjdir
1619	make.1: document the -S option
1620	make.c: fix debug output for GNode details
1621	use symbolic names in debug output of GNodes
1622
16232020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
1624
1625	* configure.in: fix --with-force-machine-arch
1626
1627	* VERSION (_MAKE_VERSION): 20201112
1628	Merge with NetBSD make, pick up
1629	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
1630	checks in InitObjdir.  Explicit .OBJDIR target always allows
1631	read-only directory.
1632	o cond.c: clean up Cond_EvalLine
1633
16342020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1635
1636	* VERSION (_MAKE_VERSION): 20201111
1637	Merge with NetBSD make, pick up
1638	o more unit-tests
1639	o style cleanup
1640	remove redundant parentheses from sizeof operator
1641	replace character literal 0 with '\0'.
1642	replace pointer literal 0 with NULL.
1643	remove redundant parentheses.
1644	replace (expr & mask) == 0 with !(expr & mask).
1645	use strict typing in conditions of the form !var
1646	o rename Make_OODate to GNode_IsOODate
1647	o rename Make_TimeStamp to GNode_UpdateYoungestChild
1648	o rename Var_Set_with_flags to Var_SetWithFlags
1649	o rename dieQuietly to shouldDieQuietly
1650	o buf.c: make API of Buf_Init simpler
1651	o compat.c: clean up Compat_Make, Compat_RunCommand,
1652	CompatDeleteTarget and CompatInterrupt
1653	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
1654	clean up CondParser_Comparison
1655	o main.c: rename getBoolean and s2Boolean
1656	rename MAKEFILE_PREFERENCE for consistency
1657	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
1658	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
1659	replace emptyString with allocated empty string
1660	error out on unclosed expressions after the colon
1661
16622020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1663
1664	* VERSION (_MAKE_VERSION): 20201101
1665	Merge with NetBSD make, pick up
1666	o negate NoExecute to GNode_ShouldExecute
1667	o job.c: rename JobMatchShell to FindShellByName
1668	extract EscapeShellDblQuot from JobPrintCommand
1669	extract ParseRunOptions from JobPrintCommand
1670	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
1671	treat malformed :range, :ts and :[...] as errors
1672	add tests for the variable modifiers :[words] and :range
1673
16742020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
1675
1676	* VERSION (_MAKE_VERSION): 20201031
1677	Merge with NetBSD make, pick up
1678	o format #include directives consistently
1679	o do not look up local variables like .TARGET anywhere else
1680	o main.c: Main_SetObjdir is first called for curdir which may be
1681	readonly
1682	reduce the scope where recursive expressions are detected
1683	remove redundant :tl from getBoolean
1684	clean up mkTempFile
1685	o meta.c: simplify memory allocation in meta_create and meta_oodate
1686	o parse.c: extract loadedfile_mmap from loadfile
1687	o trace.c: document possible undefined behavior with .CURDIR
1688	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
1689	rename ismeta to is_shell_metachar
1690	remove debug logging for the :Q variable modifier
1691	rename VarIsDynamic to VarnameIsDynamic
1692	use consistent parameter order in varname parsing functions
1693	extract ParseVarnameLong from Var_Parse
1694	extract ParseVarnameShort from Var_Parse
1695	fix type of ParseModifierPart parameter delim
1696	extract IsEscapedModifierPart from ParseModifierPart
1697	clean up ModifyWords
1698	add test for combining the :@ and :? variable modifiers
1699
17002020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
1701
1702	* VERSION (_MAKE_VERSION): 20201030
1703	Merge with NetBSD make, pick up
1704	o change char * to void * in Var_Value
1705	o make iterating over HashTable simpler
1706	o rename VAR_CMD to VAR_CMDLINE
1707	o cond.c: clean up is_separator
1708	fix parse error in string literal in conditional
1709	o main.c: do not use objdir that is not writable
1710	in lint mode, exit with error status on errors
1711	o  parse.c: clean up StrContainsWord
1712	fix out-of-bounds pointer in ParseTrackInput
1713	o var.c: rename Str_SYSVMatch and its parameters
1714	remove unsatisfiable conditions in Var_Set_with_flags
1715	document where the variable name is expanded
1716	fix documentation for VARP_SUB_ONE
1717	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
1718	document VAR_READONLY
1719	prevent appending to read-only variables
1720	extract MayExport from Var_Export1
1721	remove redundant evaluations in VarFind
1722	replace VarFindFlags with a simple Boolean
1723	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
1724
17252020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1726
1727	* VERSION (_MAKE_VERSION): 20201028
1728	Merge with NetBSD make, pick up
1729	o rename defIncPath to defSysIncPath
1730	o initialize all CmdOpts fields
1731	o lst.c: inline Vector_Get
1732	o main.c: refactor main extract
1733	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
1734	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
1735	InitDefIncPath,CmdOpts_Init,UnlimitFiles
1736	o parse.c: merge curFile into includes
1737	rename predecessor to order_pred
1738	sort ParseSpecial alphabetically
1739	remove unused, undocumented .NOEXPORT
1740	rename ParseSpecial enum values consistently
1741	rename some fields of struct IFile
1742
17432020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
1744
1745	* VERSION (_MAKE_VERSION): 20201026
1746	Merge with NetBSD make, pick up
1747	o group the command line options and arguments into a struct
1748	o rename GNode.cmgn to youngestChild
1749	o rename hash functions to identify the type name
1750	o negate OP_NOP and rename it to GNode_IsTarget
1751	o add GNode_Path to access the path of a GNode
1752	o remove macros MIN and MAX
1753	o remove unused Lst_Find and Lst_FindFrom
1754	o arch.c: and make Arch_FindLib simpler
1755	clean up code layout
1756	make Arch_ParseArchive simpler
1757	o cond.c: inline CondFindStrMatch into FuncMake
1758	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
1759	omit trailing space in debug output for expanding file patterns
1760	refactor DirMatchFiles
1761	document that the SearchPath of Dir_FindFile may be NULL
1762	remove UNCONST from Dir_Expand
1763	inline DirFindName
1764	o for.c: clean up code for handling .for loops
1765	o hash.c: print hash in debug log with fixed width
1766	clean up hash table functions
1767	reduce amount of string hashing
1768	o job.c: refactor JobDeleteTarget
1769	use proper enum constants for aborting
1770	convert result of JobStart from macros to enum
1771	convert abort reason macros to enum
1772	rework Job_CheckCommands to reduce indentation
1773	rename Shell fields
1774	add field names in declaration of DEFSHELL_CUSTOM
1775	convert JobState and JobFlags to enum types
1776	move handling of the "..." command to JobPrintCommands
1777	o lst.c: clean up
1778	refactor LstNodeNew
1779	remove Lst_Open, Lst_Next, Lst_Close
1780	remove code for circular lists from Lst_Next
1781	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
1782	/dev/null or anything starting with "no"
1783	convert macros for debug flags into enum
1784	o make.c: inline Lst_Copy in Make_ExpandUse
1785	o meta.c: inline Lst_Find in meta_oodate
1786	make Lst_RemoveIf simpler in meta_oodate
1787	o parse.c: convert error level for Parse_Error to an enum
1788	o suff.c: properly terminate debug output with newline
1789	add more details to DEBUG_SRC log
1790	replace Dir_CopyDir with Dir_CopyDirSearchPath
1791	don't modify GNode name while rebuilding the suffix graph
1792	o var.c: reduce duplicate code in VarFind
1793
17942020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1795
1796	* VERSION (_MAKE_VERSION): 20201022
1797	Merge with NetBSD make, pick up
1798	o more refactoring and simplification to reduce code size
1799	o var.c: extract CanonicalVarname from VarFind
1800	o make.c: extract UpdateImplicitParentsVars from Make_Update
1801	o main.c: extract PrintVar from doPrintVars
1802	extract HandlePWD from main
1803	o lst.c: inline simple Lst getters
1804	remove unused Lst_ForEach
1805	o job.c: move struct Shell from job.h to job.c
1806	o more unit tests
1807
18082020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
1809
1810	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1811
18122020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1813
1814	* VERSION (_MAKE_VERSION): 20201018
1815	Merge with NetBSD make, pick up
1816	o remove USE_IOVEC
1817	o rename some Hash_* apis to Hash*
1818	o replace execError with execDie
1819	o rename Lst_Init to Lst_New
1820	o add tags to enum types
1821	o rename Stack to Vector
1822	o parse.c: more refactoring
1823	o unit-tests: make some tests use line buffered stdout
1824	o unit-tests/Makefile: in meta mode do not make all tests depend on
1825	Makefile, it isn't necessary.
1826
18272020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
1828
1829	* main.c: check for CTL_HW being defined.
1830	* unit-tests/Makefile: ensure export tests output are POSIX compliant
1831	disable opt-debug-jobs test until it works on ubuntu
1832
1833	* VERSION (_MAKE_VERSION): 20201010
1834	Merge with NetBSD make, pick up
1835	o dir.c: remove pathname limit for Dir_FindHereOrAbove
1836	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
1837	o main.c: extract init_machine and init_machine_arch from main
1838	allow to disable debug logging options
1839	o parse.c: enable format string truncation warnings
1840	extract parsing of sources from ParseDoDependency
1841	split ParseDoSrc into smaller functions
1842	hide implementation details from Parse_DoVar
1843	clean up parsing of variable assignments
1844	split Parse_DoVar into manageable pieces
1845	don't modify the given line during Parse_DoVar
1846	fix out-of-bounds memory access in Parse_DoVar
1847	fix parsing of the :sh assignment modifier
1848	o var.c: rework memory allocation for the name of variables
1849	extract ApplyModifier_Literal into separate function
1850	in lint mode, reject modifiers without delimiter
1851	do not export variable names starting with '-'
1852	o fix double-free bug in -DCLEANUP mode
1853	o more cleanup to enable higher warnings level
1854	o more unit tests
1855
18562020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1857
1858	* VERSION (_MAKE_VERSION): 20201002
1859	Merge with NetBSD make, pick up
1860	o dir.c: use hash table for looking up open directories by name
1861	o main.c: clean up option handling
1862	o parse.c: add missing const for Parse_AddIncludeDir
1863	o var.c: ApplyModifier_To, update pp in each branch
1864	o remove redundant function prototypes
1865	o more unit tests
1866
18672020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1868
1869	* VERSION (_MAKE_VERSION): 20201001
1870	Merge with NetBSD make, pick up
1871	o compat.c: comment about "..."
1872
18732020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
1874
1875	* VERSION (_MAKE_VERSION): 20200930
1876	Merge with NetBSD make, pick up
1877	o job.c: split Job.jobPipe into 2 separate fields
1878	replace Lst_Open with direct iteration
1879	o lst.c: remove redundant assertions
1880	o targ.c: replace Lst_Open with direct iteration
1881	o var.c: fix bug in evaluation of indirect variable modifiers
1882	extract ApplyModifier_Quote into separate function
1883	o make debug logging simpler
1884
18852020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1886
1887	* VERSION (_MAKE_VERSION): 20200927
1888	Merge with NetBSD make, pick up
1889	o parse.c: ensure parse errors result in 'stopped in' message.
1890	o compat.c: make parameter of Compat_RunCommand const
1891	o main.c: extract InitVarTarget from main
1892	o parse.c: rename ParseFinishLine to FinishDependencyGroup
1893	refactor ParseDoDependency
1894	o var.c: Var_Subst no longer returns string result
1895	rename Var_ParsePP back to Var_Parse
1896	in lint mode, improve error handling for undefined variables
1897	extract ParseVarname from Var_Parse
1898	o rename Lst_ForEach to Lst_ForEachUntil
1899	o inline Lst_ForEachUntil in several cases
1900	o clean up API for finding and creating GNodes
1901	o fix assertion failure in -j mode with .END node
1902	o inline and remove LstNode_Prev and LstNode_Next
1903	o use fine-grained type names for lists and their nodes
1904	o more unit tests
1905
19062020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1907
1908	* VERSION (_MAKE_VERSION): 20200911
1909	Merge with NetBSD make, pick up
1910	o cond.c: split EvalComparison into smaller functions
1911	reorder parameters of condition parsing functions
1912	reduce code size in CondParser_Eval
1913	rename CondGetString to CondParser_String
1914	add CondLexer_SkipWhitespace
1915	group the condition parsing state into a struct
1916	in CondGetString, replace repeated Buf_Add with Buf_AddStr
1917	o migrate Var_Parse to Var_ParsePP
1918	o add wrappers around ctype.h functions
1919	o lst.c: use a stack instead of a list for the nested include path
1920	o more unit tests
1921
19222020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
1923
1924	* make-bootstrap.sh.in: adjust object list
1925
19262020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
1927
1928	* VERSION (_MAKE_VERSION): 20200902
1929	Merge with NetBSD make, pick up
1930	o use make_stat to ensure no confusion over valid fields
1931	returned by cached_stat
1932	o var.c: make VarQuote const-correct
1933	o add unit tests for .for
1934
19352020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1936
1937	* VERSION (_MAKE_VERSION): 20200901
1938	Merge with NetBSD make, pick up
1939	o rename Hash_Table fields
1940	o make data types in Dir_HasWildcards more precise
1941
19422020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
1943
1944	* VERSION (_MAKE_VERSION): 20200831
1945	Merge with NetBSD make, pick up
1946	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
1947	o lst.c: Lst_Open renable assert that list isn't open
1948	o unit test for .TARGET dependent flags
1949	o var.c: fix aliasing bug in VarUniq
1950	o more unit tests for :u
1951
19522020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
1953
1954	* VERSION (_MAKE_VERSION): 20200830
1955	Merge with NetBSD make, pick up
1956	o allow for strict type checking for Boolean
1957	o Var_Parse never returns NULL
1958	o Var_Subst never returns NULL
1959	o Lst_Find now takes boolean match function
1960	o rename Lst_Memeber to Lst_FindDatum
1961	o rename LstNode functions to match their type
1962	o rename GNode.iParents to implicitParents
1963	o fix assertion failure for .SUFFIXES in archives
1964	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
1965	remove unreachable code from CompatRunCommand
1966	o main.c: simplify getBoolean
1967	o stc.c: replace brk_string with simpler Str_Words
1968	o suff.c: add debug macros
1969
19702020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
1971
1972	* VERSION (_MAKE_VERSION): 20200828
1973	Merge with NetBSD make, pick up
1974	o lst.c: inline LstIsValid and LstNodeIsValid
1975	o remove trailing S from Lst function names after migration complete
1976	o more comment cleanup/clarification
1977	o suff.c: clean up suffix handling
1978	o more unit tests
1979
19802020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1981
1982	* VERSION (_MAKE_VERSION): 20200826
1983	Merge with NetBSD make, pick up
1984	o enum.c: distinguish between bitsets containing flags and
1985	ordinary enums
1986	o var.c: fix error message for ::!= modifier with shell error
1987	o fix bugs in -DCLEANUP mode
1988
19892020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1990
1991	* VERSION (_MAKE_VERSION): 20200824
1992	Merge with NetBSD make, pick up
1993	o in debug mode, print GNode details in symbols
1994
19952020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
1996
1997	* VERSION (_MAKE_VERSION): 20200823
1998	Merge with NetBSD make, pick up
1999	o lst.c: more asserts,
2000	make args to Lst_Find match others.
2001	o var.c: pass flags to VarAdd
2002	o arch.c: use Buffer
2003	o str.c: brk_string return size_t for nwords
2004	o more unit tests
2005
20062020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
2007
2008	* VERSION (_MAKE_VERSION):
2009	Merge with NetBSD make, pick up
2010	o var.c: support for read-only variables eg .SHELL
2011	being the shell used to run scripts.
2012	o lst.c: more simplification
2013	o more documentation and style cleanup
2014	o more unit tests
2015	o ensure unit-test/Makefile is run by TEST_MAKE
2016	o reduce duplication of header inclusion
2017
20182020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
2019
2020	* VERSION (_MAKE_VERSION): 20200821
2021	Merge with NetBSD make, pick up
2022	o lst.c: revert invalid assertion - but document it
2023	o dir.c: split Dir_Init into two functions
2024
20252020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
2026
2027	* lst.c: needs inttypes.h on Linux
2028
2029	* VERSION (_MAKE_VERSION): 20200820
2030	Merge with NetBSD make, pick up
2031	o make.1: clarify some passages
2032	o var.c: more cleanup, clarify comments
2033	o make_malloc.c: remove unreachable code
2034	o cond.c: make CondGetString easier to debug
2035	o simplify list usage
2036	o unit-tests: more
2037
20382020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
2039
2040	* VERSION (_MAKE_VERSION): 20200816
2041	Merge with NetBSD make, pick up
2042	o refactor unit-tests to be more fine grained
2043	  not all tests moved yet
2044
20452020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
2046
2047	* VERSION (_MAKE_VERSION): 20200814
2048	Merge with NetBSD make, pick up
2049	o more str_concat variants
2050	o more enums for flags
2051	o var.c: cleanup for higher warnings level
2052
20532020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
2054
2055	* VERSION (_MAKE_VERSION): 20200810
2056	Merge with NetBSD make, pick up
2057	o more unit tests
2058	o general comment and style cleanup
2059
20602020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
2061
2062	* VERSION (_MAKE_VERSION): 20200808
2063	Merge with NetBSD make, pick up
2064	o enum.[ch]: streamline, enums for use in flags and debug output
2065	o cond.c: cleanup
2066	o var.c: reduce duplicate code for modifiers
2067	debug logging for Var_Parse
2068	more detailed debug output
2069	o more unit tests
2070
20712020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
2072
2073	* unit-tests/Makefile: -r for recursive and include Makefile.inc
2074	so I can run tests in meta mode
2075	supress extra noise if in meta mode
2076
2077	* VERSION (_MAKE_VERSION): 20200806
2078	Merge with NetBSD make, pick up
2079	o parse.c: remove VARE_WANTRES for LINT
2080	we just want to check parsing (for now).
2081
20822020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
2083
2084	* VERSION (_MAKE_VERSION): 20200805
2085	Merge with NetBSD make, pick up
2086	o make.1: Rework the description of dependence operators
2087
20882020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
2089
2090	* VERSION (_MAKE_VERSION): 20200803
2091	Merge with NetBSD make, pick up
2092	o revert some C99 usage, for max portability
2093	o unit-tests/lint
2094
20952020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
2096
2097	* VERSION (_MAKE_VERSION): 20200802
2098	Merge with NetBSD make, pick up
2099	o more unit tests
2100
21012020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
2102
2103	* Remove NetBSD specific plumbing from unit-tests/Makefile
2104
2105	* VERSION (_MAKE_VERSION): 20200801
2106	Merge with NetBSD make, pick up
2107	o make Var_Value return const
2108	o size_t for buf sizes
2109	o optimize some buffer operations - avoid strlen
2110
21112020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
2112
2113	* VERSION (_MAKE_VERSION): 20200731
2114	Merge with NetBSD make, pick up
2115	o var.c: fix undefinded behavior for incomplete :t modifier
2116	  fixes unit-test/moderrs on Ubuntu
2117	o parse.c: When parsing variable assignments other than :=
2118	  if DEBUG(LINT) test substition of value, so we get a file and
2119	  line number in the resulting error.
2120	o dir.c: fix parsing of nested braces in dependency lines
2121	  add unit-tests
2122
21232020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
2124
2125	* VERSION (_MAKE_VERSION): 20200730
2126	Merge with NetBSD make, pick up
2127	o var.c: minor cleanup
2128	o unit-tests: more tests to improve code coverage
2129
21302020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
2131
2132	* VERSION (_MAKE_VERSION): 20200728
2133	Merge with NetBSD make, pick up
2134	o var.c: more optimizations
2135
21362020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
2137
2138	* VERSION (_MAKE_VERSION): 20200726
2139	Merge with NetBSD make, pick up
2140	o collapse lsd.lib into lst.c - reduce code size and allow inlining
2141	o lots of function comment updates
2142	o var.c: more optimizations
2143	o make return of Var_Parse const
2144
21452020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
2146
2147	* VERSION (_MAKE_VERSION): 20200720
2148	Merge with NetBSD make, pick up
2149	o DEBUG_HASH report stats at end and tone down the noise
2150	o var.c: each flag type gets its own prefix.
2151	move SysV string matching to var.c
2152	make ampersand in ${VAR:from=to&} an ordinary character
2153	cleanup and simplify implementation of modifiers
2154	o make.1: move documentation for assignment modifiers
2155
21562020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
2157
2158	* VERSION (_MAKE_VERSION): 20200718
2159	Merge with NetBSD make, pick up
2160	o DEBUG_HASH to see how well the hash tables are working
2161
21622020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
2163
2164	* bsd.after-import.mk: make sure we update unit-tests/Makefile
2165
21662020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
2167
2168	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
2169
2170	* VERSION (_MAKE_VERSION): 20200710
2171	Merge with NetBSD make, pick up
2172	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
2173	o meta.c: target flagged .META is out-of-date if meta file missing
2174
21752020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
2176
2177	* VERSION (_MAKE_VERSION): 20200709
2178	Merge with NetBSD make, pick up
2179	o cond.c: fix for compare_expression when doEval=0
2180	o unit-tests/Makefile: rework
2181	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
2182
21832020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
2184
2185	* VERSION (_MAKE_VERSION): 20200704
2186	Merge with NetBSD make, pick up
2187	(most of this by rillig@)
2188	o lots of style and white-space cleanup
2189	o lots more unit tests for variable modifiers
2190	o simplified description of some functions
2191	o str.c: refactor Str_Match
2192	o var.c: debugging output for :@
2193	  constify VarModify parameter
2194	  fix :hash modifier on 16-bit platforms
2195	  remove unnecessary forward declarations
2196	  refactor ApplyModifier_SysV to have less indentation
2197	  simplify code for :E and :R
2198	  clean up code for :H and :T
2199	  refactor ApplyModifiers
2200
2201	* var.c: we need stdint.h on some platforms to get uint32_t
2202	* unit-test/Makefile: we need to supress the specific error
2203	for RE substitution error in modmisc, since it varies accross
2204	different OS.
2205
22062020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
2207
2208	* VERSION (_MAKE_VERSION): 20200702
2209	Merge with NetBSD make, pick up
2210	o var.c: more improvements to avoiding unnecessary evaluation
2211	use enums for flags
2212	o remove flags arg to Var_Set which outside of var.c is always 0
2213
22142020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
2215
2216	* VERSION (_MAKE_VERSION): 20200701
2217	Merge with NetBSD make, pick up
2218	o var.c: with change to cond.c; ensure that nested variables
2219	within a variable name are expanded.
2220	o unit-tests/varmisc.mk: test for nested varname
2221
22222020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
2223
2224	* VERSION (_MAKE_VERSION): 20200629
2225	Merge with NetBSD make, pick up
2226	o cond.c: do not eval unnecessary terms of conditionals.
2227
22282020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
2229
2230	* VERSION (_MAKE_VERSION): 20200625
2231	Merge with NetBSD make, pick up
2232	o meta.c: report error if lseek in filemon_read fails
2233
22342020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
2235
2236	* VERSION (_MAKE_VERSION): 20200622
2237	Merge with NetBSD make, pick up
2238	o dieQuietly: ignore OP_SUBMAKE as too aggressive
2239
22402020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
2241
2242	* VERSION (_MAKE_VERSION): 20200619
2243	Merge with NetBSD make, pick up
2244	o str.c: performance improvement for Str_Match for multiple '*'
2245	o dieQuietly: supress the failure output from make
2246	when failing node is a sub-make or a sibling failed.
2247	This cuts down greatly on unhelpful noise at the end of
2248	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
2249
22502020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
2251
2252	* FILES: add LICENSE to appease some packagers.
2253	This is an attempt to fairly represent the license on almost
2254	200 files, which are almost all BSD-3-Clause
2255	The few exceptions being more liberal.
2256
2257	* VERSION (_MAKE_VERSION): 20200610
2258	Merge with NetBSD make, pick up
2259	o unit test for :Or
2260
22612020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
2262
2263	* VERSION (_MAKE_VERSION): 20200606
2264	Merge with NetBSD make, pick up
2265	o make.1: cleanup
2266
2267	* Makefile: fix depends for main.o which broke MAKE_VERSION
2268
22692020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
2270
2271	* VERSION (_MAKE_VERSION): 20200605
2272	Merge with NetBSD make, pick up
2273	o dir.c: cached_stats - don't confuse stat and lstat results.
2274	o var.c: add :Or for reverse sort.
2275
22762020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
2277
2278	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
2279	also if --with-filemon= specifies path to filemon.h
2280	set use_filemon=dev
2281	* dirname.c: remove include of namespace.h
2282
22832020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
2284
2285	* VERSION (_MAKE_VERSION): 20200517
2286	Merge with NetBSD make, pick up
2287	o modified dollar tests to avoid shell dependencies
2288	o new tests for .INCLUDEFROM
2289
22902020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
2291
2292	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
2293	to not depend so much on shell behavior
2294
22952020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
2296
2297	* VERSION (_MAKE_VERSION): 20200510
2298	Merge with NetBSD make, pick up
2299	o unit test for dollar handling
2300
23012020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
2302
2303	* VERSION (_MAKE_VERSION): 20200506
2304	Merge with NetBSD make, pick up
2305	o str.c: empty string does not match % pattern
2306	  plus unit-test changes
2307
23082020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
2309
2310	* VERSION (_MAKE_VERSION): 20200504
2311	May the 4th be with you
2312	Merge with NetBSD make, pick up
2313	o var.c: import handling of old sysV style modifier using '%'
2314	o str.c: refactor brk_string
2315	o unit-tests: add test case for lazy conditions
2316
23172020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
2318
2319	* VERSION (_MAKE_VERSION): 20200418
2320
2321	* configure.in: use_makefile=no for Cygwin et al.
2322	case insensitive filesystems just don't work if both
2323	makefile and Makefile exist.
2324	NOTE: bmake does not support Cygwin and likely never will,
2325	but if brave souls want to try it - help them out.
2326
23272020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
2328
2329	* VERSION (_MAKE_VERSION): 20200402
2330	Merge with NetBSD make, pick up
2331	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
2332	  a blank command is perfectly valid.
2333
23342020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
2335
2336	* VERSION (_MAKE_VERSION): 20200330
2337	Merge with NetBSD make, pick up
2338	o make.h: extern debug_file
2339
23402020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
2341
2342	* VERSION (_MAKE_VERSION): 20200318
2343	Merge with NetBSD make, pick up
2344	o meta.c: meta_oodate, check for corrupted meta file
2345	  earlier and more often.
2346
23472020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
2348
2349	* VERSION (_MAKE_VERSION): 20200220
2350
23512020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
2352
2353	* boot-strap: unset MAKEFLAGS
2354
23552020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
2356
2357	* VERSION (_MAKE_VERSION): 20200212
2358	* meta.c: meta_compat_parent check for USE_FILEMON
2359	  patch from Soeren Tempel
2360
23612020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
2362
2363	* VERSION: 20200205
2364	Merge with NetBSD make, pick up
2365	o meta.c: fix compat mode, need to call meta_job_output()
2366	o job.c: extra fds for meta mode not needed if using filemon_dev
2367
23682020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
2369
2370	* VERSION: 20200122
2371	Merge with NetBSD make, pick up
2372	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
2373	  returns FALSE.
2374
23752020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
2376
2377	* VERSION: 20200121
2378	Merge with NetBSD make, pick up
2379	o filemon/filemon_{dev,ktrace}.c: allow selection of
2380	  filemon implementation.  filemon_dev.c uses the kernel module
2381	  while filemon_ktrace.c leverages the fktrace api available in
2382	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
2383	  adding support for other tracing mechanisms such as strace on
2384	  Linux.
2385	o meta.c: when target is out-of-date per normal make rules
2386	  record value of .OODATE in meta file.
2387
23882019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
2389
2390	* VERSION: 20190926
2391	  Merge with NetBSD make, pick up
2392	  o parse.c: don't pass NULL to realpath(3)
2393	    some versions cannot handle it.
2394
23952019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
2396
2397	* VERSION: 20190409
2398	  Merge with NetBSD make, pick up
2399	  o parse.c: ParseDoDependency: free paths rather than assert
2400
24012018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
2402
2403	* VERSION: 20181222
2404
2405	* configure.in: add --without-makefile to avoid generating
2406	  makefile and make-bootstrap.sh
2407
2408	* include Makefile.inc if it exists
2409
2410	* Use Makefile and Makefile.config.in in unit-tests
2411	  so we can use just: make obj && make && make test
2412	  when bmake is already available.
2413	  We add --without-makefile to CONFIGURE_ARGS in this case.
2414
2415	* tweak bsd.after-import.mk (captures Makefile.config etc
2416	  after import to FreeBSD for example) to cope with all the above.
2417
24182018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
2419
2420	* VERSION: 20181221
2421	  Merge with NetBSD make, pick up
2422	  o parse.c: ParseVErrorInternal use .PARSEDIR
2423	    and apply if relative, and then use .PARSEFILE
2424	    for consistent result.
2425
24262018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
2427
2428	* VERSION: 20181220
2429	  Merge with NetBSD make, pick up
2430	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
2431	    is relative
2432	  o var.c: avoid SEGFAULT in .unexport-env
2433	    when MAKELEVEL is not set
2434
24352018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
2436
2437	* VERSION: 20181216
2438	  Merge with NetBSD make, pick up
2439	  o fix for unit-tests/varquote.mk on Debian
2440
24412018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2442
2443	* VERSION: 20180919
2444	  Merge with NetBSD make, pick up
2445	  o var.c: add :q
2446	  o dir.c: cleanup caching of stats
2447
24482018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
2449
2450	* Makefile.config.in: use += where it makes sense.
2451
24522018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2453
2454	* VERSION: 20180512
2455	  Merge with NetBSD make, pick up
2456	  o job.c: skip polling job token pipe
2457
24582018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2459
2460	* VERSION: 20180405
2461	  Merge with NetBSD make, pick up
2462	  o parse.c: be more cautious about detecting depenency line
2463	    rather than sysV style include.
2464
24652018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2466
2467	* VERSION: 20180222
2468	  Merge with NetBSD make, pick up
2469	  o parse.c: avoid calling sysconf for every call to loadfile
2470
24712018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2472
2473	* VERSION: 20180218
2474	  Merge with NetBSD make, pick up
2475	  o var.c: Var_Set handle NULL value anytime.
2476
24772018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2478
2479	* VERSION: 20180212
2480	  Merge with NetBSD make, pick up
2481	  o parse.c: do not treat .info as warning with -W
2482
24832017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2484
2485	* VERSION: 20171207
2486	  Merge with NetBSD make, pick up
2487	  o var.c: Var_Append use Var_Set if var not previously set
2488	    so that VAR_CMD is handled correctly.
2489	    Add a suitable unit-test.
2490
24912017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2492
2493	* VERSION (_MAKE_VERSION): 20171126
2494
2495	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
2496	  since AC_TRY_COMPILE puts input inside main()
2497	  which upsets modern compilers.
2498
24992017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2500
2501	* VERSION: 20171118
2502	  Merge with NetBSD make, pick up
2503	  o var.c: do not append to variable set on command line
2504	    add unit-test to catch this.
2505
25062017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2507
2508	* VERSION: 20171028
2509	  Merge with NetBSD make, pick up
2510	  o main.c: ignore empty MAKEOBJDIR
2511
2512	* Makefile.config.in:
2513	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
2514
25152017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2516
2517	* VERSION: 20171005
2518
2519	* unit-tests/dotwait.mk: redirect stderr through pipe for more
2520	  consistent result on some platforms.
2521
25222017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2523
2524	* machine.sh: entry for AIX
2525
25262017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2527
2528	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
2529	  to a file that can be included by configure as well as make.
2530	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
2531
25322017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2533
2534	* Makefile (_MAKE_VERSION): 20170810
2535	  Merge with NetBSD make, pick up
2536	  o meta.c: if target is in subdir we only need subdir name in
2537	    meta_name.
2538
25392017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2540
2541	* Makefile (_MAKE_VERSION): 20170720
2542	  Merge with NetBSD make, pick up
2543	  o compat.c: pass SIGINT etc onto child and wait for it to exit
2544	    before we self-terminate.
2545
25462017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2547
2548	* Makefile (_MAKE_VERSION): 20170711
2549	  forgot to update after merge on 20170708 ;-)
2550	  o main.c: refactor to reduce size of main function.
2551	    add -v option to always fully expand values.
2552	  o meta.c: ensure command output in meta file has ending newline
2553	    even when filemon not being used.
2554	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
2555	    pathname via ':L' since any ':' in pathname breaks that.
2556	    Instead set a '${.p.}' to pathname in the target context and
2557	    use that.
2558
25592017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2560
2561	* Makefile (_MAKE_VERSION): 20170510
2562	  Merge with NetBSD make, pick up
2563	  o main.c: Main_SetObjdir: ensure buf2 is in scope
2564
25652017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2566
2567	* Makefile (_MAKE_VERSION): 20170505
2568	  see mk/ChangeLog
2569
25702017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2571
2572	* parse.c: not everyone has stdint.h
2573
25742017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2575
2576	* Makefile (_MAKE_VERSION): 20170501
2577	  see mk/ChangeLog
2578
25792017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2580
2581	* Makefile (_MAKE_VERSION): 20170421
2582	  Merge with NetBSD make, pick up
2583	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
2584
25852017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2586
2587	* Makefile (_MAKE_VERSION): 20170420
2588	  Merge with NetBSD make, pick up
2589	  o main.c: only use -C arg "as is" if it contains no
2590	    relative component.
2591
25922017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2593
2594	* Makefile (_MAKE_VERSION): 20170418
2595	  Merge with NetBSD make, pick up
2596	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2597
25982017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2599
2600	* Makefile (_MAKE_VERSION): 20170417
2601	  Merge with NetBSD make, pick up
2602	  o fixes a number of coverity complaints
2603	    - check return value of fseek, fcntl
2604	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
2605	      JobPrintCommand, ParseTraditionalInclude
2606	    - use bmake_malloc() where NULL is not tollerated
2607	    - use MAKE_ATTR_UNUSED rather that kludges like
2608	      return(unused ? 0 : 0)
2609	    - use purge_cached_realpaths() rather than abuse cached_realpath()
2610
26112017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2612
2613	* Makefile (_MAKE_VERSION): 20170413
2614	  Merge with NetBSD make, pick up
2615	  o main.c: when setting .OBJDIR ignore '$' in paths.
2616
2617	* job.c: use MALLOC_OPTIONS to set malloc_options.
2618
26192017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2620
2621	* Makefile (_MAKE_VERSION): 20170411
2622	  Merge with NetBSD make, pick up
2623	  o str.c: Str_Match: allow [^a-z] to behave as expected.
2624
26252017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2626
2627	* Makefile (_MAKE_VERSION): 20170326
2628	  Merge with NetBSD make, pick up
2629	  o main.c: purge relative paths from realpath cache when .OBJDIR
2630	    is changed.
2631
26322017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2633
2634	* Makefile (_MAKE_VERSION): 20170311
2635	  Merge with NetBSD make, pick up
2636          o main.c: only use -C arg "as is" if it starts with '/'.
2637
26382017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2639
2640	* Makefile (_MAKE_VERSION): 20170301
2641	  Merge with NetBSD make, pick up
2642	  o main.c: use -C arg "as is" rather than getcwd()
2643	    if they identify the same directory.
2644	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
2645
26462017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2647
2648	* Makefile (_MAKE_VERSION): 20170201
2649	  Merge with NetBSD make, pick up
2650	  o var.c: allow :_=var and avoid use of special context.
2651
26522017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2653
2654	* Makefile (_MAKE_VERSION): 20170130
2655	  Merge with NetBSD make, pick up
2656	  o var.c: add :range and :_
2657	  o main.c: partially initialize Dir_* before MainParseArgs()
2658	    can be called.
2659	    If -V, skip Main_ExportMAKEFLAGS()
2660
26612017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2662
2663	* Makefile (_MAKE_VERSION): 20170114
2664	  Merge with NetBSD make, pick up
2665	  o var.c: allow specifying the utc value used by :{gm,local}time
2666
26672016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2668
2669	* Makefile (_MAKE_VERSION): 20161212
2670	  Merge with NetBSD make, pick up
2671          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2672
26732016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2674
2675	* Makefile (_MAKE_VERSION): 20161209
2676	  Merge with NetBSD make, pick up
2677	  o main.c: cleanup setting of .OBJDIR
2678	  o parse.c: avoid coredump from (var)=val
2679
26802016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2681
2682	* Makefile (_MAKE_VERSION): 20161126
2683	  Merge with NetBSD make, pick up
2684	  o make.c: Make_OODate: report src node name if path not set
2685
26862016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2687
2688	* Makefile (_MAKE_VERSION): 20160926
2689	  Merge with NetBSD make, pick up
2690	  o support for .DELETE_ON_ERROR: (remove targets that fail)
2691
26922016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2693
2694	* Makefile MAN: tweak .Dt to match ${PROG}
2695
26962016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2697
2698	* Makefile (_MAKE_VERSION): 20160818
2699	  its a neater number; pick up whitespace fixes to man page.
2700
27012016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2702
2703	* Makefile (_MAKE_VERSION): 20160817
2704	  Merge with NetBSD make, pick up
2705	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
2706	    so we can call it before adding entries to missingFiles.
2707	    Thus we do not track files we have been told to ignore.
2708
27092016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2710
2711	* Makefile (_MAKE_VERSION): 20160815
2712	  Merge with NetBSD make, pick up
2713	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
2714	    pathnames, and skip if the expansion is empty.
2715	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
2716
27172016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2718
2719	* Makefile (_MAKE_VERSION): 20160812
2720	  Merge with NetBSD make, pick up
2721	  o meta.c: remove all missingFiles entries that match a deleted
2722	    dir.
2723	  o main.c: set .ERROR_CMD if possible.
2724
27252016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2726
2727	* Makefile (_MAKE_VERSION): 20160606
2728	  Merge with NetBSD make, pick up
2729	  o dir.c: extend mtimes cache to others via cached_stat()
2730
27312016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2732
2733	* Makefile (_MAKE_VERSION): 20160604
2734	  Merge with NetBSD make, pick up
2735	  o meta.c: missing filemon data is only relevant if we read a
2736	    meta file.
2737	    Also do not return oodate for a missing metafile if gn->path
2738	    points to .CURDIR
2739
27402016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2741
2742	* Makefile (_MAKE_VERSION): 20160602
2743	  Merge with NetBSD make, pick up
2744	  o cached_realpath(): avoid hitting filesystem more than necessary.
2745	  o meta.c: refactor need_meta decision, add knobs for
2746	    missing meta file and filemon data wrt out-of-datedness.
2747
27482016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2749
2750	* Makefile (_MAKE_VERSION): 20160528
2751
2752	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2753
27542016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2755
2756	* Makefile (_MAKE_VERSION): 20160512
2757	  Merge with NetBSD make, pick up
2758	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
2759	    this is useful for gcov builds.
2760	  o propagate errors from filemon(4).
2761
27622016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2763
2764	* Makefile (_MAKE_VERSION): 20160509
2765	  Merge with NetBSD make, pick up
2766	  o remove use of non-standard types u_int etc.
2767	  o meta.c: apply realpath() before matching against metaIgnorePaths
2768
27692016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2770
2771	* Makefile (_MAKE_VERSION): 20160404
2772	  Merge with NetBSD make, pick up
2773	  o allow makefile to set .MAKE.JOBS
2774
2775	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
2776
27772016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2778
2779	* Makefile (_MAKE_VERSION): 20160315
2780	  Merge with NetBSD make, pick up
2781	  o fix handling of archive members
2782
27832016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2784
2785	* Makefile (_MAKE_VERSION): rename variable to avoid interference
2786	  with checks for ${MAKE_VERSION}
2787
27882016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2789
2790	* Makefile (MAKE_VERSION): 20160310
2791	  Merge with NetBSD make, pick up
2792	  o meta.c: treat missing Read file same as Write, incase we Delete it.
2793
27942016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2795
2796	* Makefile (MAKE_VERSION): 20160307
2797	  Merge with NetBSD make, pick up
2798	  o var.c: fix :ts\nnn to be octal by default.
2799	  o meta.c: meta_finish() to cleanup memory.
2800
28012016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2802
2803	* Makefile (MAKE_VERSION): 20160226
2804	  Merge with NetBSD make, pick up
2805	  o meta.c: allow meta file for makeDepend if makefiles want it.
2806
28072016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2808
2809	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
2810	  for backwards compatability.
2811
2812	* Makefile (MAKE_VERSION): 20160220
2813	  Merge with NetBSD make, pick up
2814	  o var.c: add knob to control handling of '$$' in :=
2815
28162016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2817
2818	* Makefile (MAKE_VERSION): 20160218
2819	  Merge with NetBSD make, pick up
2820	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
2821	    post the changes to Var_Subst.
2822	    Var_Subst now takes flags, and does not consume '$$' in :=
2823
28242016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2825
2826	* Makefile (MAKE_VERSION): 20160217
2827	  Merge with NetBSD make, pick up
2828	  o var.c: preserve '$$' in :=
2829	  o parse.c: add .dinclude for handling included
2830	    makefile like .depend
2831
28322015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2833
2834	* Makefile (MAKE_VERSION): 20151220
2835	  Merge with NetBSD make, pick up
2836	  o suff.c: re-initialize suffNull when clearing suffixes.
2837
28382015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2839
2840	* Makefile (MAKE_VERSION): 20151201
2841	  Merge with NetBSD make, pick up
2842	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
2843	  o meta.c: meta_oodate: use lstat(2) for checking link target
2844	    in case it is a symlink.
2845	  o var.c: avoid calling brk_string and Var_Export1 with empty
2846	    strings.
2847
28482015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2849
2850	* Makefile (MAKE_VERSION): 20151126
2851	  Merge with NetBSD make, pick up
2852	  o parse.c: ParseTrackInput don't access beyond
2853	    end of old value.
2854
28552015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2856
2857	* Makefile (MAKE_VERSION): 20151022
2858
2859	* Add support for BSD/OS which lacks inttypes.h
2860	  and really needs sys/param.h for sys/sysctl.h
2861	  also 'type' is not a shell builtin.
2862
2863	* var.c: eliminate uint32_t and need for inttypes.h
2864
2865	* main.c: PrintOnError flush stdout before run .ERROR
2866
2867	* parse.c: cope with _SC_PAGESIZE not being defined.
2868
2869
28702015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2871
2872	* Makefile (MAKE_VERSION): 20151020
2873	  Merge with NetBSD make, pick up
2874	  o var.c: fix uninitialized var
2875
28762015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2877
2878	* var.c: the conditional expressions used with ':?' can be
2879	expensive, if already discarding do not evaluate or expand
2880	anything.
2881
28822015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2883
2884	* Makefile (MAKE_VERSION): 20151010
2885	  Merge with NetBSD make, pick up
2886	  o Add Boolean wantit flag to Var_Subst and Var_Parse
2887	    when FALSE we know we are discarding the result and can
2888	    skip operations like Cmd_Exec.
2889
28902015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2891
2892	* Makefile (MAKE_VERSION): 20151009
2893	  Merge with NetBSD make, pick up
2894	  o var.c: don't check for NULL before free()
2895	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
2896
28972015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2898
2899	* Makefile (MAKE_VERSION): 20150910
2900	  Merge with NetBSD make, pick up
2901	  o main.c: with -w print Enter/Leaving messages for objdir too
2902	    if necessary.
2903	  o centralize shell metachar handling
2904
2905	* FILES: add metachar.[ch]
2906
29072015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2908
2909	* Makefile (MAKE_VERSION): 20150606
2910	  Merge with NetBSD make, pick up
2911	  o make.1: document .OBJDIR target
2912
29132015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2914
2915	* Makefile (MAKE_VERSION): 20150505
2916	  Merge with NetBSD make, pick up
2917	  o cond.c: be strict about lhs of comparison when evaluating .if
2918	    but less so when called from variable expansion.
2919	  o unit-tests/cond2.mk: test various error conditions
2920
29212015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2922
2923	* machine.sh (MACHINE): Add Bitrig
2924	  patch from joerg@netbsd.org
2925
29262015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2927
2928	* Makefile (MAKE_VERSION): 20150418
2929	  Merge with NetBSD make, pick up
2930	  o job.c: use memmove() rather than memcpy()
2931
2932	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2933	  case, so skip it.
2934
29352015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2936
2937	* Makefile (MAKE_VERSION): 20150411
2938	  bump version - only mk/ changes.
2939
29402015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2941
2942	* Makefile (MAKE_VERSION): 20150410
2943	  Merge with NetBSD make, pick up
2944	  o document different handling of '-' in jobs mode vs compat
2945	  o fix jobs mode so that '-' only applies to whole job
2946	    when shell lacks hasErrCtl
2947	  o meta.c: use separate vars to track lcwd and latestdir (read)
2948	    per process
2949
29502015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2951
2952	* Makefile (MAKE_VERSION): 20150401
2953	  Merge with NetBSD make, pick up
2954	  o meta.c: close meta file in child
2955
2956	* Makefile: use BINDIR.bmake if set.
2957	  Same for MANDIR and SHAREDIR
2958	  Handy for testing release candidates
2959	  in various environments.
2960
29612015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2962
2963	* move initialization of savederr to block where it is used
2964	  to avoid spurious warning from gcc5
2965
29662014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2967
2968	* Makefile (MAKE_VERSION): 20141111
2969	  just a cooler number
2970
29712014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2972
2973	* Makefile (MAKE_VERSION): 20141105
2974	  Merge with NetBSD make, pick up
2975	  o revert major overhaul of suffix handling
2976	    and POSIX compliance - too much breakage
2977	    and impossible to make backwards compatible.
2978	  o we still have the new unit test structure which is ok.
2979	  o meta.c ensure "-- filemon" is at start of line.
2980
29812014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2982
2983	* configure.in: test that result of getconf PATH_MAX is numeric
2984	  and discard if not.  Apparently needed for Hurd.
2985
29862014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2987
2988	* Makefile (MAKE_VERSION): 20140830
2989	  Merge with NetBSD make, pick up
2990	  o major overhaul of suffix handling
2991	  o improved POSIX compliance
2992	  o overhauled unit-tests
2993
29942014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2995
2996	* Makefile (MAKE_VERSION): 20140620
2997	  Merge with NetBSD make, pick up
2998	  o var.c return varNoError rather than var_Error for ::= modifiers.
2999
30002014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3001
3002	* Makefile (MAKE_VERSION): 20140522
3003	  Merge with NetBSD make, pick up
3004	  o var.c detect some parse errors.
3005
30062014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3007
3008	* Fix spelling errors - patch from Pedro Giffuni
3009
30102014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3011
3012	* Makefile (MAKE_VERSION): 20140214
3013	  Merge with NetBSD make, pick up
3014	  o .INCLUDEFROM*
3015	  o use Var_Value to get MAKEOBJDIR[PREFIX]
3016	  o reduced realloc'ign in brk_string.
3017	* configure.in: add a check for compiler supporting __func__
3018
30192014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3020
3021	* boot-strap: ignore mksrc=none
3022
30232014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3024
3025	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
3026
30272014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3028
3029	* Makefile (MAKE_VERSION): 20140101
3030	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
3031	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
3032	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
3033	  Hurd)
3034	* configure.in: Add AC_PREREQ and check for
3035	  sysctl; patch from Andrew Shadura andrewsh at debian.org
3036
30372013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3038
3039	* Makefile (MAKE_VERSION): 20131010
3040	* lose the const from arg to systcl to avoid problems on older BSDs.
3041
30422013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3043
3044	* Makefile (MAKE_VERSION): 20131001
3045	  Merge with NetBSD make, pick up
3046	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
3047	    hw.machine_arch if necessary.
3048	  o meta.c: meta_oodate - need to look at src of Link and target
3049	    of Move as well.
3050	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
3051	  provide __arraycount() if needed.
3052
30532013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3054
3055	* Makefile (MAKE_VERSION): 20130904
3056	  Merge with NetBSD make, pick up
3057	  o Add VAR_INTERNAL context, so that internal setting of
3058	    MAKEFILE does not override value set by makefiles.
3059
30602013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3061
3062	* Makefile (MAKE_VERSION): 20130902
3063	  Merge with NetBSD make, pick up
3064	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
3065
30662013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3067
3068	* Makefile (MAKE_VERSION): 20130828
3069	  Merge with NetBSD make, pick up
3070	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
3071	  o Call Job_SetPrefix() from Job_Init() so makefiles have
3072	    opportunity to set .MAKE.JOB.PREFIX
3073
30742013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3075
3076	* Makefile (MAKE_VERSION): 20130730
3077	  Merge with NetBSD make, pick up
3078	  o Allow suppression of --- job -- tokens by setting
3079	    .MAKE.JOB.PREFIX empty.
3080
30812013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3082
3083	* Makefile (MAKE_VERSION): 20130716
3084	  Merge with NetBSD make, pick up
3085	  o number of gmake compatibility tweaks
3086	    -w for gmake style entering/leaving messages
3087	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
3088	    handle MAKEFLAGS containing only letters.
3089	  o when overriding a GLOBAL variable on the command line,
3090	    delete it from GLOBAL context so -V doesn't show the wrong
3091	    value.
3092
30932013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3094
3095	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
3096
3097	* Makefile (MAKE_VERSION): 20130706
3098	  Merge with NetBSD make, pick up
3099	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
3100	    true so that CompatRunCommand() can use it, to ensure
3101	    consistent behavior with jobs mode.
3102	  o use MAKE_LEVEL_ENV to define the variable to propagate
3103	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
3104	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
3105	    paths to ignore.
3106
31072013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3108
3109	* Makefile (MAKE_VERSION): 20130604
3110	  Merge with NetBSD make, pick up
3111	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
3112	    to avoid leaking descriptors.
3113
31142013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3115
3116	* Makefile (MAKE_VERSION): 20130528
3117	  Merge with NetBSD make, pick up
3118	  o var.c: cleanup some left-overs in VarHash()
3119
31202013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3121
3122	* Makefile (MAKE_VERSION): 20130520
3123	  generate manifest from component FILES rather than have to
3124	  update FILES when mk/FILES changes.
3125
31262013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3127
3128	* Makefile (MAKE_VERSION): 20130518
3129	  Merge with NetBSD make, pick up
3130	  o suff.c: don't skip all processsing for .PHONY targets
3131	    else wildcard srcs do not get expanded.
3132	  o var.c: expand name of variable to delete if necessary.
3133
31342013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3135
3136	* Makefile (MAKE_VERSION): 20130330
3137	  Merge with NetBSD make, pick up
3138	  o meta.c: refine the handling of .OODATE in commands.
3139	    Rather than suppress command comparison for the entire script
3140	    as though .NOMETA_CMP had been used, only suppress it for the
3141	    one command line.
3142	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
3143	    suppress comparison of a command without otherwise affecting it.
3144	  o make.1: document that
3145
31462013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3147
3148	* Makefile (MAKE_VERSION): 20130321
3149	  yes, not quite right but its a cooler number.
3150	  Merge with NetBSD make, pick up
3151	  o parse.c: fix ParseGmakeExport to be portable
3152	    and add a unit-test.
3153	* meta.c: call meta_init() before makefiles are read and if built
3154	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
3155	  this let's makefiles test for support.
3156	  Call meta_mode_init() to process .MAKE.MODE.
3157
31582013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3159
3160	* Makefile (MAKE_VERSION): 20130305
3161	  Merge with NetBSD make, pick up
3162	  o run .STALE: target when a dependency from .depend is missing.
3163	  o job.c: add Job_RunTarget() for the above and .BEGIN
3164
31652013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3166
3167	* Makefile (MAKE_VERSION): 20130303
3168	  Merge with NetBSD make, pick up
3169	  o main.c: set .MAKE.OS to utsname.sysname
3170	  o job.c: more checks for read and poll errors
3171	  o var.c: lose VarChangeCase() saves 4% time
3172
31732013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3174
3175	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
3176	  want to use MAKEOBJDIR
3177
31782013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3179
3180	* Merge with NetBSD make, pick up
3181	  o make.1: more info on how shell commands are handled.
3182	  o job.c,main.c: detect write errors to job pipes.
3183
31842013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3185
3186	* Makefile (MAKE_VERSION): 20130123
3187	  Merge with NetBSD make, pick up
3188	  o meta.c: if script uses .OODATE and meta_oodate() decides
3189	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
3190	  o var.c: in debug output indicate which variabale modifiers
3191	    apply to.
3192	  o remove Check_Cwd logic the makefiles have been fixed.
3193
31942012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3195
3196	* makefile.in: add a simple makefile for folk who insist on
3197	  ./configure; make; make install
3198	  it just runs boot-strap
3199	* include mk/* to accommodate the above
3200	* boot-strap:  re-work to accommodate the above
3201	  mksrc defaults to $Mydir/mk
3202	  allow op={configure,build,install,clean,all}
3203	  add options to facilitate install
3204	* Makefile.config.in: just the bits set by configure
3205	* Makefile: bump version to 20121212
3206	  abandon Makefile.in (NetBSD Makefile)
3207	  leverage mk/* instead
3208	* configure.in: ensure srcdir is absolute
3209
32102012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3211
3212	* Makefile.in (MAKE_VERSION): 20121111
3213	  fix generation of bmake.cat1
3214
32152012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3216
3217	* Makefile.in (MAKE_VERSION): 20121109
3218	  Merge with NetBSD make, pick up
3219	  o make.c: MakeBuildChild: return 0 so search continues if a
3220	    .ORDER dependency is detected.
3221	  o unit-tests/order: test the above
3222
32232012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3224
3225	* Makefile.in (MAKE_VERSION): 20121102
3226	  Merge with NetBSD make, pick up
3227	  o cond.c: allow cond_state[] to grow.
3228	    In meta mode with a very large tree, we can hit the limit
3229	    while processing dirdeps.
3230
32312012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3232
3233	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
3234
32352012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3236
3237	* Makefile.in (MAKE_VERSION): 20121010
3238	  o protect syntax that only bmake parses correctly.
3239	  o remove auto setting of FORCE_MACHINE, use configure's
3240	    --with-force-machine=whatever if that is desired.
3241
32422012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3243
3244	* Makefile.in: do not lose history from make.1 when generating bmake.1
3245
32462012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3247
3248	* Makefile.in (MAKE_VERSION): 20121007
3249	  Merge with NetBSD make, pick up
3250	  o compat.c: ignore empty commands - same as jobs mode.
3251	  o make.1: document meta chars that cause use of shell
3252
32532012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3254
3255	* Makefile.in (MAKE_VERSION): bump version to 20120911
3256	* bsd.after-import.mk: include Makefile.inc early and allow it to
3257	  override PROG
3258
32592012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
3260
3261	* Makefile.in (MAKE_VERSION): bump version to 20120831
3262	  Merge with NetBSD make, pick up
3263	  o cast sizeof() to int for comparison
3264	  o minor make.1 tweak
3265
32662012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3267
3268	* Makefile.in (MAKE_VERSION): bump version to 20120830
3269	  Merge with NetBSD make, pick up
3270	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
3271	  o debug flag -dV causes -V to show raw value regardless.
3272
32732012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3274
3275	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
3276	  gets SRCTOP set.
3277
32782012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3279
3280	* Makefile.in (MAKE_VERSION): bump version to 20120704
3281	  Merge with NetBSD make, pick up
3282	  o Job_ParseShell should call Shell_Init if it has been
3283	    previously called.
3284	* Makefile.in: set USE_META based on configure result.
3285	  also .PARSEDIR is safer indicator of bmake.
3286
32872012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3288
3289	* Makefile.in: bump version to 20120626
3290	  ensure CPPFLAGS is in CFLAGS
3291	* meta.c: avoid nested externs
3292	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
3293
32942012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3295
3296	* Makefile.in (MAKE_VERSION): bump version to 20120620
3297	  Merge with NetBSD make, pick up
3298	  o make_malloc.c: avoid including make_malloc.h again
3299
3300	* Makefile.in: avoid bmake only syntax or protect with
3301	  .if defined(.MAKE.LEVEL)
3302	* bsd.after-import.mk: replace .-include with .sinclude
3303	  ensure? SRCTOP gets a value
3304	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
3305
33062012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3307
3308	* Makefile.in (MAKE_VERSION): bump version to 20120612
3309	  Merge with NetBSD make, pick up
3310	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
3311	    for greater portability.
3312	  o unit-tests/forloop: check that .for works as expected wrt
3313	    number of times and with "quoted strings".
3314
33152012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3316
3317	* Makefile.in (MAKE_VERSION): bump version to 20120606
3318	  Merge with NetBSD make, pick up
3319	  o compat.c: use kill(2) rather than raise(3).
3320	* configure.in: look for sys/dev/filemon
3321	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
3322	  and pass BOOTSTRAP_XTRAS to boot-strap.
3323
33242012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3325
3326	* Makefile.in (MAKE_VERSION): bump version to 20120604
3327	  Merge with NetBSD make, pick up
3328	  o util.c and var.c share same var for tracking if environ
3329	    has been reallocated.
3330	  o util.c provide getenv with setenv.
3331	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
3332	  when the shell actively strips .MAKE.* from the environment.
3333	  We still refer to the variable always as .MAKE.LEVEL
3334	* util.c fix bug in findenv() was finding prefix of name.
3335	* compat.c: re-raising SIGINT etc after running .INTERRUPT
3336	  results in more reliable termination of all activity on many
3337	  platforms.
3338
33392012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3340
3341	* Makefile.in (MAKE_VERSION): bump version to 20120602
3342	  Merge with NetBSD make, pick up
3343	  o for.c: handle quoted items in .for list
3344
33452012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3346
3347	* Makefile.in (MAKE_VERSION): bump version to 20120530
3348	  Merge with NetBSD make, pick up
3349	  o compat.c: ignore empty command.
3350
33512012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3352
3353	* Makefile.in (MAKE_VERSION): bump version to 20120524
3354	* FILES: add bsd.after-import.mk:
3355	  A simple means of integrating bmake into a BSD build system.
3356
33572012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3358
3359	* Makefile.in (MAKE_VERSION): bump version to 20120520
3360	  Merge with NetBSD make, pick up
3361	  o increased limit for nested conditionals.
3362
33632012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3364
3365	* Makefile.in (MAKE_VERSION): bump version to 20120518
3366	  Merge with NetBSD make, pick up
3367	  o use _exit(2) in signal hanlder
3368	  o Don't use the [dir] cache when building nodes that might have
3369	    changed since the last exec.
3370	  o Avoid nested extern declaration warnings.
3371
33722012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3373
3374	* meta.c (fgetLine): avoid %z - not portable.
3375	* parse.c: Since we moved include of sys/mman.h
3376	  and def's of MAP_COPY etc. we got dups from a merge.
3377
33782012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3379
3380	* Makefile.in (MAKE_VERSION): bump version to 20120420
3381	  Merge with NetBSD make, pick up
3382	  o restore duplicate supression in .MAKE.MAKEFILES
3383	    runtime saving can be significant.
3384	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
3385	    consumption up to 20%.
3386
33872012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3388
3389	* Makefile.in (MAKE_VERSION): bump version to 20120420
3390          Merge with NetBSD make, pick up
3391	  o remove duplicate supression in .MAKE.MAKEFILES
3392	  o improved dir cache behavior
3393	  o gmake'ish export command
3394
33952012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3396
3397	* Makefile.in (MAKE_VERSION): bump version to 20120325
3398	  Merge with NetBSD make, pick up
3399	  o fix parsing of :[#] in conditionals.
3400
34012012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3402
3403	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
3404	  since some systems cannot cope with .Nx <version>
3405
34062011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3407
3408	* Makefile.in (MAKE_VERSION): bump version to 20111111
3409	  Merge with NetBSD make, pick up
3410	  o debug output for .PARSEDIR and .PARSEFILE
3411
34122011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3413
3414	* Makefile.in (MAKE_VERSION):  bump version to 20111010
3415
34162011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3417
3418	* boot-strap: check for an expected file in the dirs we look for.
3419	* make-bootstrap.sh: pass on LDSTATIC
3420
34212011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3422
3423	* Makefile.in (MAKE_VERSION): bump version to 20111001
3424	  Merge with NetBSD make, pick up
3425	  o ensure .PREFIX is set for .PHONY
3426	    and .TARGET set for .PHONY run via .END
3427	  o __dead used consistently
3428
34292011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3430
3431	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
3432
34332011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3434
3435	* Makefile.in (MAKE_VERSION): bump version to 20110905
3436	  Merge with NetBSD make, pick up
3437	  o meta_oodate: ignore makeDependfile
3438
34392011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3440
3441	* Makefile.in (MAKE_VERSION): bump version to 20110828
3442	  Merge with NetBSD make, pick up
3443	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
3444	    as SILENT if a .meta file is created
3445
34462011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3447
3448	* Makefile.in (MAKE_VERSION): bump version to 20110818
3449	  Merge with NetBSD make, pick up
3450	  o in meta mode, if target flagged .META a missing .meta file
3451	    means target is out-of-date
3452	  o fixes for gcc 4.5 warnings
3453	  o simplify job printing code
3454
34552011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3456
3457	* Makefile.in (MAKE_VERSION): bump version to 20110808
3458	  Merge with NetBSD make, pick up
3459	  o do not touch OP_SPECIAL targets when doing make -t
3460
34612011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3462
3463	* Makefile.in (MAKE_VERSION): bump version to 20110622
3464	  Merge with NetBSD make, pick up
3465	  o meta_oodate detect corrupted .meta file and declare oodate.
3466	* configure.in: add check for setsid
3467
34682011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3469
3470	* Merge with NetBSD make, pick up
3471	  o unit-tests/modts now works on MirBSD
3472
34732011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3474
3475	* Makefile.in (MAKE_VERSION): bump version to 20110606
3476	  Merge with NetBSD make, pick up
3477	  o ApplyModifiers: when we parse a variable which is not
3478	    the entire modifier string, or not followed by ':', do not
3479	    consider it as containing modifiers.
3480	  o loadfile: ensure newline at end of mapped file.
3481
34822011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3483
3484	* Makefile.in (MAKE_VERSION): bump version to 20110505
3485	  Merge with NetBSD make, pick up
3486	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
3487	    of make's control.  In meta mode, any generated file within
3488	    said bailiwick, which  is found to be missing, causes current
3489	    target to be out-of-date.
3490
34912011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3492
3493	* Makefile.in (MAKE_VERSION): bump version to 20110411
3494	  Merge with NetBSD make, pick up
3495	  o when long modifiers fail to match, check sysV style.
3496	    - add a test case
3497
34982011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3499
3500	* Makefile.in (MAKE_VERSION): bump version to 20110410
3501	  Merge with NetBSD make, pick up
3502	  o :hash - cheap 32bit hash of value
3503	  o :localtime, :gmtime - use value as format string for strftime.
3504
35052011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3506
3507	* Makefile.in (MAKE_VERSION): bump version to 20110330
3508	  mostly because its a cooler version.
3509	  Merge with NetBSD make, pick up
3510	  o NetBSD tags for meta.[ch]
3511	  o job.c call meta_job_finish() after meta_job_error().
3512	  o meta_job_error() should call meta_job_finish() to ensure
3513	    .meta file is closed, and safe to copy - if .ERROR target wants.
3514	   meta_job_finish() is safe to call repeatedly.
3515
35162011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
3517
3518	* unit-tests/modts: use printf if it is a builtin,
3519	  to save us from MirBSD
3520
3521	* Makefile.in (MAKE_VERSION): bump version to 20110329
3522	  Merge with NetBSD make, pick up
3523	  o fix for use after free() in CondDoExists().
3524	  o meta_oodate() report extra commands and return earlier.
3525
35262011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3527
3528	* Makefile.in (MAKE_VERSION): bump version to 20110327
3529	  Merge with NetBSD make, pick up
3530	  o meta.c, if .MAKE.MODE contains curdirOk=yes
3531	    allow creating .meta files in .CURDIR
3532	* boot-strap (TOOL_DIFF): aparently at least on linux distro
3533	  formats the output of 'type' differently - so eat any "()"
3534
35352011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3536
3537	* Makefile.in (MAKE_VERSION): bump version to 20110306
3538	  Merge with NetBSD make, pick up
3539	  o meta.c, only do getcwd() once
3540
35412011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3542
3543	* Makefile.in (MAKE_VERSION): bump version to 20110305
3544	  Merge with NetBSD make, pick up
3545	  o correct sysV substitution handling of empty lhs and variable
3546	  o correct exists() check for dir with trailing /
3547	  o correct handling of modifiers for non-existant variables
3548	    during evaluation of conditionals.
3549	  o ensure MAP_FILE is defined.
3550	  o meta.c use curdir[] now exported by main.c
3551
35522011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3553
3554	* Makefile.in (MAKE_VERSION): bump version to 20110225
3555	  Merge with NetBSD make, pick up
3556	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
3557	    makefiles have been read.
3558	  o fix example of :? modifier in man page.
3559
35602011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3561
3562	* Makefile.in (MAKE_VERSION): bump version to 20110214
3563	  Merge with NetBSD make, pick up
3564	  o meta.c handle realpath() failing when generating meta file
3565	    name.
3566
3567	* sigcompat.c: convert to ansi so we can use higher warning levels.
3568
3569
35702011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3571
3572	* Makefile.in (MAKE_VERSION): bump version to 20110207
3573	  Merge with NetBSD make, pick up
3574	  o fix for bug in meta mode.
3575
35762011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3577
3578	* parse.c: SunOS 5.8 at least does not have MAP_FILE
3579
35802011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3581
3582	* Makefile.in (MAKE_VERSION): bump version to 20110101
3583	  Merge with NetBSD make, pick up
3584	  o use mmap(2) if available, for reading makefiles
3585
35862010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3587
3588	* Makefile.in (MAKE_VERSION): bump version to 20101215
3589	  Merge with NetBSD make, pick up
3590	  o ensure meta_job_error() does not report a previous .meta file
3591	    as being culprit.
3592
35932010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3594
3595	* Makefile.in (MAKE_VERSION): bump version to 20101210
3596	  Merge with NetBSD make, pick up
3597	  o meta_oodate: track cwd per process, and only consider target
3598	    out-of-date if missing file is outside make's CWD.
3599	    Ignore files in /tmp/ etc.
3600	  o to ensure unit-tests results match, need to control LC_ALL
3601	    as well as LANG.
3602	  o fix for parsing bug in var.c
3603
36042010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3605
3606	* Makefile.in (MAKE_VERSION): bump version to 20101126
3607	  Merge with NetBSD make, pick up
3608	  o if stale dependency is an IMPSRC, search via .PATH
3609	  o meta_oodate: if a referenced file is missing, target is
3610	    out-of-date.
3611	  o meta_oodate: if a target uses .OODATE in its commands,
3612	    it (.OODATE) needs to be recomputed.
3613	  o keep a pointer to youngest child node, rather than just its
3614	    mtime.
3615
36162010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3617
3618	* Makefile.in (MAKE_VERSION): bump version to 20101101
3619
36202010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3621
3622	* machine.sh: like os.sh,
3623	allow for uname -p producing useless drivel
3624
36252010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3626
3627	* boot-strap: document configure knobs for meta and filemon.
3628
3629	* Makefile.in (MAKE_VERSION): bump version to 20100911
3630	  Merge with NetBSD make, pick up
3631	  o meta.c - meta mode
3632
3633	* make-bootstrap.sh.in: handle meta.c
3634	* configure.in: add knobs for use_meta and filemon_h
3635	  also, look for dirname, str[e]sep and strlcpy
3636	* util.c: add simple err[x] and warn[x]
3637
36382010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3639
3640	* boot-strap (TOOL_DIFF): set this to ensure tests use
3641	  the same version of diff that configure tested
3642
3643	* Makefile.in (MAKE_VERSION): bump version to 20100808
3644	  Merge with NetBSD make, pick up
3645	  o in jobs mode, when we discover we cannot make something,
3646	    call PrintOnError before exit.
3647
36482010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3649
3650	* Makefile.in (MAKE_VERSION): bump version to 20100806
3651	  Merge with NetBSD make, pick up
3652	  o formatting fixes for ignored errors
3653	  o ensure jobs are cleaned up regardless of where wait() was called.
3654
36552010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3656
3657	* Makefile.in (MAKE_VERSION): bump version to 20100618
3658	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3659
36602010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3661
3662	* Makefile.in (MAKE_VERSION): bump version to 20100616
3663	  Merge with NetBSD make, pick up
3664	  o man page update
3665	  o call PrintOnError from JobFinish when we detect an error we
3666	    are not ignoring.
3667
36682010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3669
3670	* Makefile.in (MAKE_VERSION): bump version to 20100606
3671	  Merge with NetBSD make, pick up
3672	  o man page update
3673
36742010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3675
3676	* Makefile.in (MAKE_VERSION): bump version to 20100605
3677	  Merge with NetBSD make, pick up
3678	  o use bmake_signal() which is a wrapper around sigaction()
3679	    in place of signal()
3680	  o add .export-env to allow exporting variables to environment
3681	    without tracking (so no re-export when the internal value is
3682	    changed).
3683
36842010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3685
3686	* Makefile.in (MAKE_VERSION): bump version to 20100524
3687	  Merge with NetBSD make, pick up
3688	  o fix for .info et al being greedy.
3689
36902010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3691
3692	* Makefile.in (MAKE_VERSION): bump version to 20100520
3693	  Merge with NetBSD make, pick up
3694	  o back to using realpath on argv[0]
3695	    but only if contains '/' and does not start with '/'.
3696
36972010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3698
3699	* boot-strap: use absolute path for bmake when running tests.
3700
3701	* Makefile.in (MAKE_VERSION):  bump version to 20100510
3702	  Merge with NetBSD make, pick up
3703	  o revert use of realpath on argv[0]
3704	    too many corner cases.
3705	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
3706
37072010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3708
3709	* Makefile.in (MAKE_VERSION): bump version to 20100505
3710	  Merge with NetBSD make, pick up
3711	  o fix for missed SIGCHLD when compiled with SunPRO
3712	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
3713	    done the job.
3714
37152010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3716
3717	* Makefile.in (MAKE_VERSION): bump version to 20100430
3718	  Merge with NetBSD make, pick up
3719	  o fflush stdout before writing to stdout
3720
37212010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3722
3723	* Makefile.in (MAKE_VERSION): bump version to 20100423
3724	  Merge with NetBSD make, pick up
3725	  o updated unit tests for Haiku (this time for sure).
3726	* boot-strap: based on patch from joerg
3727	  honor --with-default-sys-path better.
3728	* boot-strap: remove mention of --with-prefix-sys-path
3729
37302010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3731
3732	* Makefile.in (MAKE_VERSION): bump version to 20100422
3733	* Merge with NetBSD make, pick up
3734	  o fix for vfork() on Darwin.
3735	  o fix for bogus $TMPDIR.
3736	  o set .MAKE.MODE=compat for -B
3737	  o set .MAKE.JOBS=max_jobs for -j max_jobs
3738	  o allow unit-tests to run without any *.mk
3739	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
3740	* boot-strap: ignore /usr/share/mk except on NetBSD.
3741	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
3742	  ensure sort(1) behaves as expected.
3743
37442010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3745
3746	* boot-strap: add FindHereOrAbove so we can use -m .../mk
3747
37482010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3749
3750	* Makefile.in (MAKE_VERSION): bump version to 20100420
3751	* Merge with NetBSD make, pick up
3752	  o fix for variable realpath() behavior.
3753	    we have to stat(2) the result to be sure.
3754	  o fix for .export (all) when nested vars use :sh
3755
37562010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3757
3758	* Makefile.in (MAKE_VERSION): bump version to 20100414
3759	* Merge with NetBSD make, pick up
3760	  o use realpath to resolve argv[0] (for .MAKE) if needed.
3761	  o add realpath from libc.
3762	  o add :tA to resolve variable via realpath(3) if possible.
3763
37642010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3765
3766	* Makefile.in (MAKE_VERSION): bump version to 20100408
3767	* Merge with NetBSD make, pick up
3768	  o unit tests for .ERROR, .error
3769	  o fix for .ERROR to ensure it cannot be default target.
3770
37712010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3772
3773	* Makefile.in (MAKE_VERSION): bump version to 20100406
3774	* Merge with NetBSD make, pick up
3775	  o fix for compat mode "Error code" going to debug_file.
3776	  o fix for .ALLSRC being populated twice.
3777	  o support for .info, .warning and .error directives
3778	  o .MAKE.MODE to control make's operational mode
3779	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
3780	    name(s).
3781	  o .MAKE.DEPENDFILE to control the name of the depend file
3782	  o .ERROR target - run on failure.
3783
37842010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3785
3786	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3787
3788	* os.sh,arch.c: patch for Haiku from joerg at netbsd
3789
37902010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3791
3792	* Makefile.in (MAKE_VERSION): bump version to 20100222
3793	* Merge with NetBSD make, pick up
3794	  o better error msg for .for with mutiple inter vars
3795
3796	* boot-strap:
3797	  o use make-bootstrap.sh from joerg at netbsd
3798	    to avoid the need for a native make when bootstrapping.
3799	  o add "" everywhere ;-)
3800	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
3801	    otherwise the pre-formated version.
3802
38032010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3804
3805	* Makefile.in (MAKE_VERSION): bump version to 20100102
3806	* Merge with NetBSD make, pick up:
3807	  o fix for -m .../
3808
38092009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
3810
3811	* Makefile.in (MAKE_VERSION): bump version to 20091118
3812	* Merge with NetBSD make, pick up:
3813	  o .unexport
3814	  o report lines that start with '.' and should have ':'
3815	    (catch typo's of .el*if).
3816
38172009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3818
3819	* configure.in: Ensure that srcdir and mksrc are absolute paths.
3820
38212009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3822
3823	* Makefile.in (MAKE_VERSION): fix version to 20091007
3824
38252009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
3826
3827	* Makefile.in (MAKE_VERSION): bump version to 200910007
3828	* Merge with NetBSD make, pick up:
3829	  o fix for parsing of :S;...;...; applied to .for loop iterator
3830	    appearing in a dependency line.
3831
38322009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3833
3834	* Makefile.in (MAKE_VERSION): bump version to 20090909
3835	* Merge with NetBSD make, pick up:
3836	  o fix for -C, .CURDIR and .OBJDIR
3837	* boot-strap:
3838	  o allow share_dir to be set independent of prefix.
3839	  o select default share_dir better when prefix ends in $HOST_TARGET
3840	  o if FORCE_BSD_MK etc were set, include them in the suggested
3841	    install-mk command.
3842
38432009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
3844
3845	* Makefile.in (MAKE_VERSION): bump version to 20090908
3846	* Merge with NetBSD make, pick up:
3847	  o .MAKE.LEVEL for recursion tracking
3848	  o fix for :M scanning \:
3849
38502009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3851
3852	* configure.in: Don't -D__EXTENSIONS__ if
3853	AC_USE_SYSTEM_EXTENSIONS says "no".
3854
38552009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
3856
3857	* Makefile.in (MAKE_VERSION): bump version to 20090826
3858	Simplify MAKE_VERSION to just the bare date.
3859	* Merge with NetBSD make, pick up:
3860	  o -C directory support.
3861	  o support for SIGINFO
3862	  o use $TMPDIR for temp files.
3863	  o child of vfork should be careful about modifying parent's state.
3864
3865
38662009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
3867
3868	* Appy some patches for MiNT from David Brownlee
3869
38702009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
3871
3872	* Makefile.in (BMAKE_VERSION): bump version to 20090222
3873	* Merge with NetBSD make, pick up:
3874	  o Possible null pointer de-ref in Var_Set.
3875
38762009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
3877
3878	* Makefile.in (BMAKE_VERSION): bump version to 20090204
3879	* Merge with NetBSD make, pick up:
3880	  o bmake_malloc et al moved to their own .c
3881	  o Count both () and {} when looking for the end of a :M pattern
3882	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
3883	  o strlist.c - functions for processing extendable arrays of pointers to strings.
3884	  o ClientData replaced with void *, so const void * can be used.
3885	  o New debug flag C for DEBUG_CWD
3886
38872008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
3888
3889	* Makefile.in (BMAKE_VERSION): bump version to 20081111
3890	  Apply patch from Joerg Sonnenberge to
3891	  configure.in:
3892	  o remove some redundant checks
3893	  o check for emlloc etc only in libutil and require the whole family.
3894	  util.c:
3895	  o remove [v]asprintf which is no longer used.
3896
38972008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3898
3899	* Makefile.in (BMAKE_VERSION): bump version to 20081101
3900	* Merge with NetBSD make, pick up:
3901	  o util.c: avoid use of putenv() - christos
3902
39032008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3904
3905	* Makefile.in (BMAKE_VERSION): bump version to 20081030
3906	  pick up man page tweaks.
3907
39082008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
3909
3910	* Makefile.in: move processing of LIBOBJS to after is definition!
3911	  thus we'll have getenv.c in SRCS only if needed.
3912
3913	* make.1: add examples of how to use :?
3914
3915	* Makefile.in (BMAKE_VERSION): bump version to 20081029
3916	* Merge with NetBSD make, pick up:
3917	  o fix for .END processing with -j
3918	  o segfault from Parse_Error when no makefile is open
3919	  o handle numeric expressions in any variable expansion
3920	  o debug output now defaults to stderr, -dF to change it - apb
3921	  o make now uses bmake_malloc etc so that it can build natively
3922	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
3923
39242008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
3925
3926	* Makefile.in (BMAKE_VERSION): bump version to 20080808
3927	* Merge with NetBSD make, pick up:
3928	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
3929	    long lines in Makefiles
3930	  o optimizations for VarQuote by joerg
3931	  o fix for PR/38756: dominik: make dumps core on invalid makefile
3932
39332008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
3934
3935	* Makefile.in (BMAKE_VERSION): bump version to 20080515
3936	* Merge with NetBSD make, pick up:
3937	  o fix skip setting vars in VAR_GLOBAL context, to handle
3938	    cases where VAR_CMD is used for other than command line vars.
3939
39402008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
3941
3942	* boot-strap (make_version): we may need to look in
3943	$prefix/share/mk for sys.mk
3944
3945	* Makefile.in (BMAKE_VERSION): bump version to 20080514
3946	* Merge with NetBSD make, pick up:
3947	  o skip setting vars in VAR_GLOBAL context, when already set in
3948	  VAR_CMD which takes precedence.
3949
39502008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
3951
3952	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
3953	* Merge with NetBSD make, pick up:
3954	  o fix for ?= when LHS contains variable reference.
3955
39562008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3957
3958	* merge some patches from NetBSD pkgsrc.
3959
3960	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3961	the MAKSYSPATH used during bootstrap.
3962
3963	* Makefile.in (BMAKE_VERSION): bump version to 20080215
3964	* Merge with NetBSD make, pick up:
3965	  o warn if non-space chars follow 'empty' in a conditional.
3966
39672008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3968
3969	* Makefile.in (BMAKE_VERSION): bump version to 20080118
3970	* Merge with NetBSD make, pick up:
3971	  o consider dependencies read from .depend as optional - dsl
3972	  o remember when buffer for reading makefile grows - dsl
3973	  o add -dl (aka LOUD) - David O'Brien
3974
39752007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
3976
3977	* Makefile.in (BMAKE_VERSION): bump version to 20071022
3978	* Merge with NetBSD make, pick up:
3979	  o Allow .PATH<suffix> to be used for .include ""
3980
3981	* boot-strap: source default settings from .bmake-boot-strap.rc
3982
39832007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
3984
3985	* Makefile.in: fix maninstall on various systems
3986	  provided that our man.mk is used.
3987	  For non-BSD systems we install the preformatted page
3988	  into $MANDIR/cat1
3989
39902007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
3991
3992	* boot-strap: make bmake.1 too, so maninstall works.
3993
39942007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
3995
3996	* Makefile.in (BMAKE_VERSION): bump version to 20071014
3997	* Merge with NetBSD make, pick up:
3998	  o revamped handling of defshell - configure no longer needs to
3999	    know the content of the shells array - apb
4000	  o stop Var_Subst modifying its input - apb
4001	  o avoid calling ParseTrackInput too often - dsl
4002
40032007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
4004
4005	* Makefile.in (BMAKE_VERSION): bump version to 20071011
4006	* Merge with NetBSD make, pick up:
4007	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
4008
4009	* sigcompat.c: some tweaks for HP-UX 11.x based on
4010	  patch from Tobias Nygren
4011
4012	* configure.in: update handling of --with-defshell to match
4013	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
4014	  will now do what one might hope - provided the chosen shell
4015	  behaves enough like sh.
4016
40172007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
4018
4019	* Makefile.in (BMAKE_VERSION): bump to 20071008
4020	* Merge with NetBSD make, pick up:
4021	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
4022	  o .export/.MAKE.EXPORTED - export of variables - sjg
4023	  o .MAKE.MAKEFILES - track all makefiles read - sjg
4024	  o performance improvements - dsl
4025	  o revamp parallel job scheduling - dsl
4026
40272006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4028
4029	* Makefile.in (BMAKE_VERSION): bump to 20060728
4030	* Merge with NetBSD make, pick up:
4031	  o extra debug info during variable and cond processing - sjg
4032	  o shell definition now covers newline - rillig
4033	  o minor mem leak in PrintOnError - sjg
4034
40352006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4036
4037	* Makefile.in (BMAKE_VERSION):  bump to 20060511
4038	* Merge with NetBSD make, pick up:
4039	  o more memory leaks - coverity
4040	  o possible overflow in ArchFindMember - coverity
4041	  o extract variable modifier code out of Var_Parse()
4042	    so it can be called recursively - sjg
4043	  o unit-tests/moderrs - sjg
4044
40452006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
4046
4047	* Makefile.in (BMAKE_VERSION): bump to 20060412
4048	* Merge with NetBSD make, pick up:
4049	  o fixes for some memory leaks - coverity
4050	  o only read first sys.mk etc when searching sysIncPath - sjg
4051
4052	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
4053	setting ${MAKEFILE} - OBATA Akio
4054
40552006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
4056
4057	* Makefile.in (BMAKE_VERSION): bump to 20060318
4058	* Merge with NetBSD make, pick up:
4059	  o cleanup of job.c to remove remote handling, distcc is more
4060	    useful and this code was likely bit-rotting - dsl
4061	  o fix for :P modifier - sjg
4062	* boot-strap: set default prefix to something reasonable
4063	  (for me anyway).
4064
40652006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
4066
4067	* Makefile.in (BMAKE_VERSION): bump to 20060301
4068	* Merge with NetBSD make, pick up:
4069	  o make .WAIT apply recursively, document and test case - apb
4070	  o allow variable modifiers in a variable appear anywhere in
4071	    modifier list, document and test case - sjg
4072
40732006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
4074
4075	* Makefile.in (BMAKE_VERSION): bump to 20060222
4076	* Merge with NetBSD make, pick up:
4077	  o improved job token handling - dsl
4078	  o SIG_DFL the correct signal before exec - dsl
4079	  o more debug info during parsing - dsl
4080	  o allow variable modifiers to be specified via variable - sjg
4081	* boot-strap: explain why we died if no mksrc
4082
40832005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
4084
4085	* Makefile.in (BMAKE_VERSION): bump to 20051105
4086	* configure.in: always set default_sys_path
4087	  default is ${prefix}/share/mk
4088	  - remove prefix_sys_path, anyone wanting more than above
4089	    needs to set it manually.
4090
40912005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
4092
4093	* boot-strap: make this a bit easier for pkgsrc folk.
4094	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
4095	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
4096
40972005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
4098
4099	* Makefile.in (BMAKE_VERSION): bump to 20051102
4100	* job.c (JobFinish): fix likely ancient merge lossage
4101	fix from Todd Vierling.
4102	* boot-strap (srcdir): allow setting mksrc=none
4103
41042005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
4105
4106	* Makefile.in (BMAKE_VERSION): bump to 20051031
4107	* ranlib.h: skip on OSF too.
4108	  (NetBSD PR 31864)
4109
41102005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
4111
4112	* Makefile.in (BMAKE_VERSION): bump to 20051002
4113	  fix a silly typo
4114
41152005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
4116
4117	* Makefile.in (BMAKE_VERSION): bump to 20051001
4118	  support for UnixWare and some other systems,
4119	  based on patches from pkgsrc/bootstrap
4120
41212005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
4122
4123	* Makefile.in (BMAKE_VERSION): bump to 20050901
4124	* Merge with NetBSD make, pick up:
4125	  o possible parse error causing us to wander off.
4126
41272005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
4128
4129	* Makefile.in (BMAKE_VERSION): bump to 20050606
4130	* Merge with NetBSD make, pick up:
4131	  o :0x modifier for randomizing a list
4132	  o fixes for a number of -Wuninitialized issues.
4133
41342005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
4135
4136	* Makefile.in (BMAKE_VERSION): bump to 20050530
4137	* Merge with NetBSD make, pick up:
4138	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
4139
4140	* README: was seriously out of date.
4141
41422005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
4143
4144	* Important to use .MAKE rather than MAKE.
4145
41462005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
4147
4148	* Makefile.in (BMAKE_VERSION): bump to 20050315
4149	* Merge with NetBSD make, pick up:
4150	  o don't mistake .elsefoo for .else
4151	  o use suffix-specific search path correctly
4152	  o bunch of style nits
4153
41542004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4155
4156	* boot-strap:
4157	o ensure that args to --src and --with-mksrc
4158	  are resolved before giving them to configure.
4159	o add -o "objdir" so that builder can control it,
4160	  default is $OS as determined by os.sh
4161	o add -q to suppress all the install instructions.
4162
41632004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
4164
4165	* Remove __IDSTRING()
4166
4167	* Makefile.in (BMAKE_VERSION): bump to 20040508
4168	* Merge with NetBSD make, pick up:
4169	  o posix fixes
4170	    - remove '-e' from compat mode
4171	    - add support for '+' command-line prefix.
4172	  o fix for handling '--' on command-line.
4173	  o fix include in lst.lib/lstInt.h to simplify '-I's
4174	  o we also picked up replacement of MAKE_BOOTSTRAP
4175	    with !MAKE_NATIVE which is a noop, but possibly confusing.
4176
41772004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
4178
4179	* Makefile.in (BMAKE_VERSION): bump to 20040414
4180	* Merge with NetBSD make, pick up:
4181	  o allow quoted strings on lhs of conditionals
4182	  o issue warning when extra .else is seen
4183	  o print line numer when errors encountered during parsing from
4184	  string.
4185
41862004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
4187
4188	* Makefile.in (BMAKE_VERSION):  bump to 20040220
4189	* Merge with NetBSD make, pick up:
4190	  o fix for old :M parsing bug.
4191	  o re-jigged unit-tests
4192
41932004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4194
4195	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
4196	so that './bmake -f Makefile test' works.
4197
41982004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
4199
4200	* Makefile.in: (BMAKE_VERSION): bump to 20040214
4201	* Merge with NetBSD make, pick up:
4202	  o search upwards for *.mk
4203	  o fix for double free of var substitution buffers
4204	  o use of getopt replaced with custom code, since the usage
4205	  (re-scanning) isn't posix compatible.
4206
42072004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
4208
4209	* arch.c: don't include ranlib.h on ELF systems
4210	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
4211
42122004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4213
4214	* Makefile.in (BMAKE_VERSION): bump to 20040118
4215
4216	* boot-strap (while): export vars we assign to on cmdline
4217	* unit-test/Makefile.in: ternary is .PHONY
4218
42192004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
4220
4221	* Makefile.in (BMAKE_VERSION): bump version to 20040108
4222	* Merge with NetBSD make, pick up:
4223	  o fix for ternary modifier
4224
42252004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
4226
4227	* Makefile.in (BMAKE_VERSION): bump version to 20040105
4228	* Merge with NetBSD make, pick up:
4229	  o fix for cond.c to handle compound expressions better
4230	  o variable expansion within sysV style replacements
4231
42322003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
4233
4234	* Make portable snprintf safer - output to /dev/null first to
4235	check space needed.
4236
4237	* Makefile.in (BMAKE_VERSION): bump version to 20031222
4238	* Merge with NetBSD make, pick up:
4239	  o -dg3 to show input graph when things go wrong.
4240	  o explicitly look for makefiles in objdir if not found in curdir so
4241	    that errors in .depend etc will be reported accurarely.
4242	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
4243	    instead as it more accurately reflects the expected behavior and
4244	    is more consistently implemented.
4245	  o avoid use of asprintf.
4246
42472003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
4248
4249	* util.c: Add asprintf and vasprintf.
4250
4251	* Makefile.in (BMAKE_VERSION): bump version to 20030928
4252	* Merge with NetBSD make, pick up:
4253	:[] modifier - allows picking words from a variable.
4254	:tW modifier - allows treating value as one big word.
4255	W flag for :C and :S - allows treating value as one big word.
4256
42572003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
4258
4259	* Merge with NetBSD make
4260	pick up -de flag to enable printing failed command.
4261	don't skip 1st two dir entries (normally . and ..) since
4262	coda does not have them.
4263
42642003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
4265
4266	* Makefile.in (BMAKE_VERSION): bump version to 20030909
4267	* Merge with NetBSD make, pick up:
4268	- changes for -V '${VAR}' to print fully expanded value
4269	  cf. -V VAR
4270	- CompatRunCommand now prints the command that failed.
4271	- several files got updated 3 clause Berkeley license.
4272
42732003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
4274
4275	* boot-strap: Allow setting configure args on command line.
4276
42772003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
4278
4279	* configure.in: add --with-defshell to allow sh or ksh
4280	to be selected as default shell.
4281
4282	* Makefile.in: bump version to 20030731
4283
4284	* Merge with NetBSD make
4285	Pick up .SHELL spec for ksh and associate man page changes.
4286	Also compat mode now uses the same shell specs.
4287
42882003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
4289
4290	* var.c (Var_Parse): ensure delim is initialized.
4291
4292	* unit-tests/Makefile.in: use single quotes to avoid problems from
4293	some shells.
4294
4295	* makefile.boot.in:
4296	Run the unit-tests as part of the bootstrap procedure.
4297
42982003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4299
4300	* unit-tests/Makefile.in: always force complaints from
4301	${TEST_MAKE} to be from 'make'.
4302
4303	* configure.in: add check for 'diff -u'
4304	also fix some old autoconf'isms
4305
4306	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
4307	if using GCC add -Wno-cast-qual to CFLAGS for var.o
4308
4309	* Merge with NetBSD make
4310	Pick up fix for :ts parsing error in some cases.
4311	Pick unit-tests.
4312
43132003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
4314
4315	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
4316
4317	* var.c (Var_Parse): fix bug in :ts modifier, after const
4318	correctness fixes, must pass nstr to VarModify.
4319
43202003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
4321
4322	* Makefile.in: BMAKE_VERSION switch to a date based version.
4323	We'll generally use the date of last import from NetBSD.
4324
4325	* Merge with NetBSD make
4326	Pick up fixes for const-correctness, now passes WARNS=3 on
4327	NetBSD.
4328	Pick up :ts modifier, allows controlling the separator used
4329	between words in variable expansion.
4330
43312003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
4332
4333	* FILES: include boot-strap and os.sh
4334
4335	* Makefile.in: only set WARNS if we are NetBSD, the effect on
4336	FreeBSD is known to be bad.
4337
4338	* makefile.boot.in (bootstrap): make this the default target.
4339
4340	* Makefile.in: bump version to 3.1.19
4341
4342	* machine.sh: avoid A-Z with tr as it is bound to lose.
4343
43442003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
4345
4346	* Merge with NetBSD make
4347	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
4348	Plus some doc fixes.
4349
43502003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
4351
4352	* Merge with NetBSD make
4353	Pick up fix for PR/1523 - don't count a library as built, if there
4354	is no way to build it
4355
4356	* Bump version to 3.1.18
4357
43582003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
4359
4360	* Merge with NetBSD make
4361	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
4362	appears in src list.
4363
43642003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
4365
4366	* Merge with NetBSD make (mmm 10th anniversary!)
4367	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
4368	pick up -X which tells us to not export VAR=val via setenv if
4369	we are already doing so via MAKEFLAGS.  This saves valuable env
4370	space on systems like Darwin.
4371	set MAKE_VERSION to 3.1.17
4372
4373	* parse.c: pix up fix for suffix rules
4374
43752003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
4376
4377	* Merge with NetBSD make.
4378	pick up fix for propagating -B via MAKEFLAGS.
4379	set MAKE_VERSION to 3.1.16
4380
4381	* Apply some patches from pkgsrc-bootstrap/bmake
4382	Originally by Grant Beattie <grant@netbsd.org>
4383	I may have missed some - since they are based on bmake-3.1.12
4384
43852002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
4386
4387	* makefile.boot.in (bmake): update install targets for those that
4388	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
4389	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
4390
4391	* bmake.cat1: update the pre-formatted man page!
4392
43932002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
4394
4395	* Merge with NetBSD make.
4396	pick up fix for premature free of pointer used in call
4397	to Dir_InitCur().
4398	set MAKE_VERSION to 3.1.15
4399
44002002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
4401
4402	* configure.in: determine suitable value for MKSRC.
4403	override using --with-mksrc=PATH.
4404
4405	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
4406	configs(8) will use 'sun4' as an alias for 'sparc'.
4407
44082002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
4409
4410	* Merge with NetBSD make.
4411	pick up ${.PATH}
4412	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
4413	set MAKE_VERSION to 3.1.14
4414	add configure checks for killpg and sys/socket.h
4415
44162002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
4417
4418	* tag bmake-3-1-13
4419
4420	* makefile.boot.in (bmake): use install-mk
4421	Also setup ./mk before trying to invoke bmake.boot incase we
4422	needed install-mk to create a sys.mk for us.
4423
4424	* configure.in: If we need to add -I${srcdir}/missing, make it an
4425	absolute path so that it works for lst.lib too.
4426
4427	* make.h: always include sys/cdefs.h since we provide one if the
4428	host does not.
4429
4430	* Makefile.in (install-mk):
4431	use MKSRC/install-mk which will do the right thing.
4432	use uname -p for ARCH if possible.
4433	since install-mk will setup links bsd.prog.mk -> prog.mk if
4434	needed, just .include bsd.prog.mk
4435
4436	* Merge with NetBSD make (NetBSD-1.6)
4437	Code is ansi-C only now.
4438	Bug in handling of dotLast is fixed.
4439	Can now assign .OBJDIR and make will reset its notions of life.
4440	New modifiers :tu :tl for toUpper and toLower.
4441
4442Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4443
4444	* Merge with NetBSD make
4445	pick up fix for .END failure in compat mode.
4446	pick up fix for extra va_end() in ParseVErrorInternal.
4447
4448Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4449
4450	* configure.in: for systems that have sys/cdefs.h check if it is
4451	compatible.  If not, include the one under missing, but tell it to
4452	include the native one too - necessary on Linux.
4453
4454	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4455	include_next (for gcc) to get the native sys/cdefs.h
4456
4457Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4458
4459	* job.c (JobFinish): Fix an earlier merge bug that resulted in
4460	leaking descriptors when using -jN.
4461
4462	* job.c (JobPrintCommand): See if "curdir" exists before
4463	attempting to chdir().  Doing the chdir directly in make (when in
4464	compat mode) fails silently, so let the -jN version do the same.
4465	This can happen when building kernels in an object tree and
4466	playing clever games to reset .CURDIR.
4467
4468	* Merged with NetBSD make
4469	pick up .USEBEFORE
4470
4471Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4472
4473	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4474
4475Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4476
4477	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
4478	us not to export the iterator variable when using VAR_CMD context.
4479
4480Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4481
4482	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4483	its the wrong "fix".
4484
4485Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4486
4487	* Redesigned export of VAR_CMD's via MAKEFLAGS.
4488	We now simply append the variable names to .MAKEOVERRIDES, and
4489	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
4490	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
4491	Apart from fixing quoting bugs in previous version, this allows us
4492	to export vars to the environment by simply doing:
4493	.MAKEOVERRIDES+= PATH
4494	Merged again with NetBSD make, but the above is the only change.
4495
4496	* configure.in: added
4497	--disable-pwd-override		disable $PWD overriding getcwd()
4498	--disable-check-make-chdir	disable make trying to guess
4499		when it should automatically cd ${.CURDIR}
4500
4501	* Merge with NetBSD make, changes include:
4502	parse.c (ParseDoDependency): Spot that the syntax error is
4503	caused by an unresolved cvs/rcs conflict and say so.
4504	var.c: most of Var* functions now take a ctxt as 1st arg.
4505	now does variable substituion on rhs of sysv style modifiers.
4506
4507	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
4508	is now done here.  We append the name='value' to .MAKEOVERRIDES
4509	rather than directly into MAKEFLAGS as this allows a Makefile to
4510	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
4511	very similar mechanism.  Note that in adding name='value' to
4512	.MAKEOVERRIDES we do the moral equivalent of:
4513	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
4514
4515Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4516
4517	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
4518
4519	* Merged with NetBSD make
4520	make -dx can now be used to run commands via sh -x
4521	better error messages on exec failures.
4522
4523Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4524
4525	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
4526	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
4527	MACHINE etc otherwise they propagate from the previous bmake.
4528
4529	* configure.in (machine): allow --with-machine=generic to make
4530	configure use machine.sh to set MACHINE.
4531
4532	* job.c (JobInterrupt): convert to using WAIT_T and friends.
4533
4534	* Makefile.in: mention in bmake.1 that we use autoconf.
4535
4536	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4537
4538Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4539
4540	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4541	as that rather defeats the usefulness of ${MAKEFILE}.
4542
4543	* main.c (MainParseArgs): append command line variable assignments
4544	to MAKEFLAGS so that they get propagated to child make's.
4545	Apparently this is required POSIX behaviour?  Its useful anyway.
4546
4547Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4548
4549	* compat.c (CompatRunCommand): don't use perror() since stdio may
4550	cause problems in child of vfork().
4551
4552	* compat.c, main.c: Call PrintOnError() when we are going to bail.
4553	This routine prints out the .curdir where we stopped and will also
4554	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
4555
4556	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
4557	:@ expansion.
4558
4559	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
4560
4561	* Added RCSid's for the files we've touched.
4562
4563Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4564
4565	* configure.in:	Thanks to some clues from mdb@juniper.net,
4566	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
4567	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
4568
4569  --with-machine=MACHINE  explicitly set MACHINE
4570  --with-force-machine=MACHINE  set FORCE_MACHINE
4571  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
4572  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
4573  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
4574  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
4575
4576	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4577
4578	* makefile: added a pathetically simple makefile to drive
4579	bootstrapping.  Running configure by hand is more useful.
4580
4581	* Makefile.in: added MAKE_VERSION, and reworked things to be less
4582	dependent on NetBSD bsd.*.mk
4583
4584	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
4585	_PATH_OBJDIRPREFIX for those that don't want a default.
4586	construct _PATH_DEFSYSPATH from the info we get from configure.
4587
4588	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4589	if MAKE_VERSION is defined.
4590
4591	* compat.c: when we bail, print out the .CURDIR we were in.
4592
4593Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4594
4595	* Merged with NetBSD make
4596
4597	* var.c: fixed a bug in the handling of the modifier :P
4598	if the node as found but the path was null, we segfault trying to
4599	duplicate it.
4600
4601Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4602
4603	* Merged with NetBSD make
4604
4605	* make.c: Make_OODate's test for a library out of date was using
4606	cmtime where it should have used mtime (my bug).
4607
4608	* compat.c: Use perror() to tell us what really went wrong when we
4609	cannot exec a command.
4610
4611Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4612
4613	* Merged with NetBSD make
4614
4615Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4616
4617	* Merged with NetBSD make
4618
4619Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4620
4621	* Merged with NetBSD make
4622
4623Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4624
4625	* Merged with NetBSD make
4626
4627Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4628
4629	* util.c: don't provide signal() since we use sigcompat.c
4630
4631	* Makefile.in: added a build target.
4632
4633	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4634	These allow some quite clever magic.
4635
4636	* main.c (main): added support for getenv(MAKESYSPATH).
4637
4638Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4639
4640	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
4641	This avoids objdir having a different value depending on how a
4642	directory was reached (via command line, or subdir.mk).
4643
4644	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4645
4646Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4647
4648	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
4649	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
4650	I've been testing this in NetBSD's make for some weeks.
4651
4652	* Turn Makefile into Makefile.in and make it useful.
4653
4654Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
4655
4656	* Imported NetBSD's -current make(1) and resolve conflicts.
4657
4658	* Applied autoconf patches from bmake v2
4659
4660	* Imported clean code base from NetBSD-1.0
4661