xref: /freebsd/contrib/bmake/ChangeLog (revision 6580f5c38dd5b01aeeaed16b370f1a12423437f0)
12024-04-30  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20240430
4	Merge with NetBSD make, pick up
5	o main.c: ensure '.include <makefile>' respects MAKESYSPATH.
6	Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen.
7
82024-04-28  Simon J Gerraty  <sjg@beast.crufty.net>
9
10	* VERSION (_MAKE_VERSION): 20240428
11	Merge with NetBSD make, pick up
12	o simplify freeing of lists
13	o arch.c: trim pointless comments
14	o var.c: delay variable assignments until actually needed
15	don't reallocate memory after evaluating an expression, result is
16	almost always short-lived.
17
182024-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
19
20	* VERSION (_MAKE_VERSION): 20240426
21	Merge with NetBSD make, pick up
22	o job.c: in debug output, print the directory in which a job
23	failed at same time as failed target so it is more easily found in
24	build log.
25
262024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
27
28	* VERSION (_MAKE_VERSION): 20240424
29	Merge with NetBSD make, pick up
30	o clean up comments, code and tests
31
322024-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
33
34	* VERSION (_MAKE_VERSION): 20240422
35	Merge with NetBSD make, pick up
36	o var.c: avoid LazyBuf for :*time modifiers.
37	LazyBuf's are not nul terminated so not suitable for passing to
38	functions that expect that. These modifiers are used sparingly so
39	an extra allocation is not a problem.
40
412024-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
42
43	* VERSION (_MAKE_VERSION): 20240420
44	Merge with NetBSD make, pick up
45	o provide more context information for parse/evaluate errors
46
472024-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
48
49	* VERSION (_MAKE_VERSION): 20240414
50	Merge with NetBSD make, pick up
51	o parse.c: print -dp debug info earlier so we see which
52	.if or .for line is being parsed.
53
542024-04-04  Simon J Gerraty  <sjg@beast.crufty.net>
55
56	* VERSION (_MAKE_VERSION): 20240404
57	Merge with NetBSD make, pick up
58	o fix some unit tests for Cygwin
59	o parse.c: exit immediately after reading a null byte from a makefile
60
61	* fix generation of bmake.cat1
62
632024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
64
65	* VERSION (_MAKE_VERSION): 20240314
66	Add/Improve support for Cygwin
67	o uname -s output isn't useful so allow configure to
68	set FORCE_MAKE_OS - to force the value of .MAKE.OS
69	and use Cygwin which matches uname -o
70	o fix some unit-tests for Cygwin
71
722024-03-10  Simon J Gerraty  <sjg@beast.crufty.net>
73
74	* boot-strap: tests can take a long time; use a cookie to
75	skip them if bmake has not been updated since tests last
76	ran successfully.
77
78	* Makefile: Cygwin handles MANTARGET man
79
80	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin
81
822024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
83
84	* VERSION (_MAKE_VERSION): 20240309
85	Merge with NetBSD make, pick up
86	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
87	this allows a .ERROR target to ignore the case of
88	.ERROR_EXIT==6 which just means that the build actually
89	failed somewhere else.
90
912024-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
92
93	* VERSION (_MAKE_VERSION): 20240303
94
95	* var.c: on IRIX we need both inttypes.h and stdint.h
96
972024-03-01  Simon J Gerraty  <sjg@beast.crufty.net>
98
99	* VERSION (_MAKE_VERSION): 20240301
100	Merge with NetBSD make, pick up
101	o export variables with value from target scope
102	when appropriate.
103
1042024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
105
106	* VERSION (_MAKE_VERSION): 20240212
107	Merge with NetBSD make, pick up
108	o remove unneeded conditional-compilation toggles
109	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
110	GMAKEEXPORT NO_REGEX and SUNSHCMD
111
112	* configure.in: add check for regex.h
113
114	* var.c: replace use of NO_REGEX with HAVE_REGEX_H
115
1162024-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
117
118	* VERSION (_MAKE_VERSION): 20240204
119	Merge with NetBSD make, pick up
120	o var.c: fix some lint (-dL) mode parsing issues
121
1222024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
123
124	* VERSION: (_MAKE_VERSION): 20240202
125	Merge with NetBSD make, pick up
126	o make.1: note that arg to :D and :U can be empty
127	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no
128
1292024-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
130
131	* VERSION (_MAKE_VERSION): 20240108
132	Merge with NetBSD make, pick up
133	o miscellaneous cleanups
134
1352024-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
136
137	* VERSION (_MAKE_VERSION): 20240106
138	Merge with NetBSD make, pick up
139	o fix duplicate progname when reporting an unknown target
140	o unit tests for Cmd_Exec using temp file
141
1422024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
143
144	* VERSION (_MAKE_VERSION): 20240105
145	Merge with NetBSD make, pick up
146	o main.c: Cmd_Exec write cmd to a file if too big
147	avoid blowing commandline/env limits
148
1492024-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
150
151	* VERSION (_MAKE_VERSION): 20240101
152	o util.c: flesh out more of strftime
153	* configure.in: add --with-bmake-strftime
154	it is not a full implementation but enough to pass all
155	the unit-tests.
156	* parse.c: LoadFile do not append \n to empty buffer.
157
1582023-12-30  Simon J Gerraty  <sjg@beast.crufty.net>
159
160	* VERSION (_MAKE_VERSION): 20231230
161	Merge with NetBSD make, pick up
162	o simplify memory allocation for string buffers
163	o fix declared types of list nodes
164	o suff.c: clean up freeing of suffixes
165	o var.c: simplify debug message for the ':@var@...@' modifier
166	clean up variable handling
167
1682023-12-26  Simon J Gerraty  <sjg@beast.crufty.net>
169
170	* VERSION (_MAKE_VERSION): 20231226
171	Merge with NetBSD make, pick up
172	o compat.c: ensure make's output is correctly ordered with that of
173	the target when not going to a tty
174	o main.c: check for shellPath whether to call Shell_Init()
175
1762023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
177
178	* VERSION (_MAKE_VERSION): 20231224
179	Merge with NetBSD make, pick up
180	o compat.c: check for shellPath whether to call Shell_Init()
181	tweak the unit test to detect the bug thus fixed.
182	o make.1: do not claim .SHELL is only used by jobs mode.
183
1842023-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
185
186	* VERSION (_MAKE_VERSION): 20231220
187	Merge with NetBSD make, pick up
188	o str.c: speed up pattern matching in the ':M' modifier
189	o var.c: fix confusing debug logging when deleting a variable
190	use consistent debug messages style when ignoring variables
191
1922023-12-10  Simon J Gerraty  <sjg@beast.crufty.net>
193
194	* VERSION (_MAKE_VERSION): 20231210
195	Merge with NetBSD make, pick up
196	o var.c: avoid segfault on empty :C match expression
197	explain in debug log why variable assignment is ignored.
198
1992023-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
200
201	* VERSION (_MAKE_VERSION): 20231208
202	Merge with NetBSD make, pick up
203	o var.c: ensure fromCmd is set correctly for variables set on
204	command line.
205
2062023-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
207
208	* configure.in: disable generation of 'makefile' for
209	Darwin by default.
210
211	* boot-strap: docuement --without-makefile
212
2132023-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
214
215	* VERSION (_MAKE_VERSION): 20231124
216	Merge with NetBSD make, pick up
217	o main.c: cleanup processing of -j
218	fix lint warning about strchr
219	o var.c: more accurate error message for invalid ':mtime' argument
220	cleanup :[...] modifier
221	avoid reading beyond substring when comparing
222	o unit-tests cover all cases of :mtime, test and explain exporting
223	of variables
224	o cleanup comments
225
2262023-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
227
228	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
229	$FreeBSD$ tag, so avoid adding it.
230
2312023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
232
233	* VERSION (_MAKE_VERSION): 20230909
234	Merge with NetBSD make, pick up
235	o main.c: allow -j to compute a multiple of ncpu
236	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
237	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
238	_SC_NPROCESSORS_ONLN
239	.MAKE.JOBS.C will be "yes" if -jC is supported
240
2412023-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
242
243	* VERSION (_MAKE_VERSION): 20230820
244	Merge with NetBSD make, pick up
245	o make.1: note that :localtime is better for %s
246	o parse.c: improve error messages for invalid input.
247	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
248	correct result, it is still better to use %s:L:localtime.
249
2502023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
251
252	* VERSION (_MAKE_VERSION): 20230818
253	Merge with NetBSD make, pick up
254	o meta.c: meta_ignore - check raw path against metaIgnorePaths
255	to potentially skip call to realpath.
256	o var.c: be strict when parsing the argument of the ':mtime' modifier
257	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
258	should be used to get an equivalent value to time(3).
259
2602023-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
261
262	* VERSION (_MAKE_VERSION): 20230816
263	Merge with NetBSD make, pick up
264	o cond.c: clean up multiple-inclusion guards
265
2662023-07-25  Simon J Gerraty  <sjg@beast.crufty.net>
267
268	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
269	if configure cannot work out how to control TZ.
270	Remove varmod-localtime from BROKEN_TESTS for IRIX*
271
2722023-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
273
274	* VERSION (_MAKE_VERSION): 20230723
275
276	* configure.in: fix the test for wether TZ=Europe/Berlin works.
277	Depending on the time of year, if run between 22:00 and 00:00 UTC
278	the check in configure would fail incorrectly.
279	Take the day into account as well.
280
2812023-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
282
283	* VERSION (_MAKE_VERSION): 20230711
284	Merge with NetBSD make, pick up
285	o make.1: clean up wording, clarify scope of '!' in conditions
286
2872023-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
288
289	* make-bootstrap.sh.in: set prefix
290	If configure is run using ksh we get unexpanded ${prefix} in
291	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
292	correct result.
293
2942023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
295
296	* VERSION (_MAKE_VERSION): 20230711
297	bump version for IRIX tweaks
298
299	* make.h: undef OP_NONE if defined
300
301	* unit-tests/Makefile: set BROKEN_TESTS for IRIX
302
303	* configure.in: override INSTALL on IRIX
304
3052023-06-27  Simon J Gerraty  <sjg@beast.crufty.net>
306
307	* boot-strap op_test: ensure we set TEST_MAKE as we want it.
308
3092023-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
310
311	* VERSION (_MAKE_VERSION): 20230622
312	Merge with NetBSD make, pick up
313	o optimize string matching for ':M' and ':N'
314	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
315
3162023-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
317
318	* VERSION (_MAKE_VERSION): 20230621
319	Merge with NetBSD make, pick up
320	o more extensive tests for include guards
321	o parse.c: if a guard is already defined a file that uses the same
322	guard is still guarded by it.
323
3242023-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
325
326	* VERSION (_MAKE_VERSION): 20230620
327	Merge with NetBSD make, pick up
328	o allow guards to be targets as well as variables
329	The guard targets may include variable references like
330	__${.PARSEDIR:tA}/${.PARSEFILE}__
331
3322023-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
333
334	* VERSION (_MAKE_VERSION): 20230619
335	Merge with NetBSD make, pick up
336	o unit test for .undef of readOnly vars
337	o optimization for makefiles protected from multiple-inclusion
338	skip even opening the file after first include.
339	Initially this only handles makefiles guarded by a variable
340	target guards are next.
341
3422023-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
343
344	* VERSION (_MAKE_VERSION): 20230616
345	Merge with NetBSD make, pick up
346	o var.c: do not allow delete of readOnly variable
347
3482023-06-03  Simon J Gerraty  <sjg@beast.crufty.net>
349
350	* VERSION (_MAKE_VERSION): 20230601
351	Merge with NetBSD make, pick up
352	o parse.c: .break takes no args
353	o lots of unit test updates
354
3552023-05-29  Simon J Gerraty  <sjg@beast.crufty.net>
356
357	* unit-tests/Makefile: skip tests that require /dev/filemon
358	if it does not exists - issue a warning.
359
3602023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
361
362	* VERSION (_MAKE_VERSION): 20230522
363	Fix building on darwin ppc
364
365	* os.sh (MACHINE): Darwin powerpc cannot use `uname -m`
366	also recent NetBSD uses x86_64 for MACHINE_ARCH so conform.
367
3682023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
369
370	* VERSION (_MAKE_VERSION): 20230515
371
372	* Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to
373	compile filemon_ktrace.c
374
3752023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
376
377	* VERSION (_MAKE_VERSION): 20230512
378	o sys.dirdeps.mk - broke after-import target
379
3802023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
381
382	* VERSION (_MAKE_VERSION): 20230510
383	Merge with NetBSD make, pick up
384	o parse.c: don't print null filename in stack traces
385	o var.c: :mtime operate on each word in variable value
386
3872023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
388
389	* VERSION (_MAKE_VERSION): 20230509
390	Merge with NetBSD make, pick up
391	o for.c: skip syntactically wrong .for loops
392	o var.c: allow for :gmtime=${mtime}
393	add :mtime[=timestamp] where timestamp is used if stat(2)
394	fails, if :mtime=error stat(2) failure causes error.
395
3962023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
397
398	* VERSION (_MAKE_VERSION): 20230504
399	Merge with NetBSD make, pick up
400	o compat.c: fix compile on NetBSD 7.2
401	o make.1: fix documentation of .PREFIX to match reality and POSIX
402	o unit-tests: improved var-scope-local
403
4042023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
405
406	* VERSION (_MAKE_VERSION): 20230414
407	Merge with NetBSD make, pick up
408	o minor cleanup
409
4102023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
411
412	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
413	unlimited results in an insane number (0x7fffffffffffffff).
414	If BMAKE_NOFILE_MAX is defined, use that instead.
415
4162023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
417
418	* VERSION (_MAKE_VERSION): 20230321
419	Merge with NetBSD make, pick up
420	* make.1: document seemingly unexplained Error code 6.
421
4222023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
423
424	* VERSION (_MAKE_VERSION): 20230317
425	Merge with NetBSD make, pick up
426	o compat.c: CompatDeleteTarget skip .PHONY targets to be
427	consistent with JobDeleteTarget.
428	o job.c: fix memory leak in handling sysv :from=to modifiers
429
4302023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
431
432	* VERSION (_MAKE_VERSION): 20230303
433	Merge with NetBSD make, pick up
434	o several updated unit-tests
435
4362023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
437
438	* VERSION (_MAKE_VERSION): 20230222
439	Merge with NetBSD make, pick up
440	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
441
4422023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
443
444	* VERSION (_MAKE_VERSION): 20230218
445	Merge with NetBSD make, pick up
446	o var.c: fix parsing of unevaluated subexpressions with
447	unbalanced '{}'
448
4492023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
450
451	* VERSION (_MAKE_VERSION): 20230215
452	Merge with NetBSD make, pick up
453	o inline macros for some variable names
454	o cond.c: reduce complexity of evaluating expressions
455
4562023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
457
458	* VERSION (_MAKE_VERSION): 20230208
459	Merge with NetBSD make, pick up
460	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
461	when it has been used within conditional expressions
462
4632023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
464
465	* VERSION (_MAKE_VERSION): 20230127
466
467	* install-sh: if making directories ensure umask is set
468	to match mode.
469
470	* Makefile: use DIRMODE for directories and
471	NONBINMODE for man pages and mk files
472
4732023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
474
475	* VERSION (_MAKE_VERSION): 20230126
476	Merge with NetBSD make, pick up
477	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
478	should be read-only.
479
4802023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
481
482	* VERSION (_MAKE_VERSION): 20230123
483	Merge with NetBSD make, pick up
484	o .[NO]READONLY: for control of read-only variables
485	o .SYSPATH: for controlling the path searched for makefiles
486
4872023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
488
489	* VERSION (_MAKE_VERSION): 20230120
490	Merge with NetBSD make, pick up
491	o allow for white-space between command specifiers @+-
492	o add more details to warning 'Extra targets ignored'
493
4942023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
495
496	* machine.sh: leverage os.sh rather than duplicate
497	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
498	for that purpose for the past decade or so.
499	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
500
5012023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
502
503	* VERSION (_MAKE_VERSION): 20230101
504	Merge with NetBSD make, pick up
505	o cleanup comments, inline some LazyBuf_ methods
506	o unit-tests/ add/improve comments in tests
507	o make.1: sync list of built-in variables with reality
508	sort list of built-in variables
509	reduce indentation of the long list of variable names
510	use consistent markup for boolean flags
511	move description of .MAKE.MODE below the .MAKE.META block
512	clarify in which case an expression may omit braces
513
5142022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
515
516	* VERSION (_MAKE_VERSION): 20221024
517	Merge with NetBSD make, pick up
518	o change return type of unlink_file back to int
519
5202022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
521
522	* Makefile: Darwin and Linux can handle MANTARGET=man
523
5242022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
525
526	* VERSION (_MAKE_VERSION): 20220928
527	Merge with NetBSD make, pick up
528	o fix more ignored returns from snprintf
529	o compile with higher warnings
530
5312022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
532
533	* main.c meta.c: do not ignore return from snprintf
534
535	* meta.c strlcpy.c: we need prototype for strlcpy
536
537	* sigcompat.c: fix unused function warnings
538
5392022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
540
541	* VERSION (_MAKE_VERSION): 20220924
542	Merge with NetBSD make, pick up
543	o fix bug in .break reset of conditional depth
544	o overhaul and simplify tracking of conditional depth
545
5462022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
547
548	* VERSION (_MAKE_VERSION): 20220912
549	Merge with NetBSD make, pick up
550	o man page updates
551
5522022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
553
554	* VERSION (_MAKE_VERSION): 20220909
555	Merge with NetBSD make, pick up
556	o update unit-tests to handle deprecation of egrep
557	o cond.c: add more details to error message for numeric comparison
558
559	* configure.in: allow for deprecation of egrep
560
561	* Makefile: Linux can handle MANTARGET=man
562
5632022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
564
565	* VERSION (_MAKE_VERSION): 20220903
566	Merge with NetBSD make, pick up
567	o job.c: fix handling of null bytes in output
568
5692022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
570
571	* VERSION (_MAKE_VERSION): 20220902
572	Merge with NetBSD make, pick up
573	o Allow .break to terminate a .for loop early
574
5752022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
576
577	* VERSION (_MAKE_VERSION): 20220901
578	Merge with NetBSD make, pick up
579	o var.c: fix out-of-bounds errors when parsing
580
5812022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
582
583	* VERSION (_MAKE_VERSION): 20220824
584	Merge with NetBSD make, pick up
585	o var.c: revert change to modifier parsing that breaks
586	shell variable references within ':@var@body@'
587	o adjust unit-tests
588
5892022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
590
591	* VERSION (_MAKE_VERSION): 20220818
592	Merge with NetBSD make, pick up
593	o fix exit status for '-q' (since 1994)
594
5952022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
596
597	* VERSION (_MAKE_VERSION): 20220808
598	Merge with NetBSD make, pick up
599	o var.c: fix parsing of modifiers containing unbalanced subexpressions
600	extract parsing of ':D' and ':U' modifiers into separate function
601
6022022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
603
604	* VERSION (_MAKE_VERSION): 20220726
605
606	* Auto-create objdir for bmake/unit-tests if appropriate
607
6082022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
609
610	* VERSION (_MAKE_VERSION): 20220724
611	Merge with NetBSD make, pick up
612	o make.1: describe variable assignment and evaluation more precisely
613	o parse.c: fix out-of-bounds read when parsing an invalid line
614	o var.c: simplify return type of IsShortVarnameValid
615
6162022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
617
618	* VERSION (_MAKE_VERSION): 20220612
619	Merge with NetBSD make, pick up
620	o allow to randomize build order of targets
621	.MAKE.MODE += randomize-targets can help uncover dependency bugs
622	within a makefile.
623	o compat.c: rename Compat_Run to Compat_MakeAll
624	o make.c: inline MakeBuildParent
625	inline make_abort, improve error details
626	o parse.c: reorganize Parse_Error
627	fix memory leak in wildcard targets and sources
628	separate cases in HandleDependencyTargetMundane
629	extract HandleSingleDependencyTargetMundane
630	rename loadfile to LoadFile
631	split IncludeFile into separate functions
632	condense code for searching a file in the paths
633	fix off-by-one error in buffer for .WAIT nodes
634	o str.c: condense Str_Match
635	make code for string matching syntactically more consistent
636
6372022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
638
639	* VERSION (_MAKE_VERSION): 20220418
640	Merge with NetBSD make, pick up
641	o ignore '.POSIX:' if not in first non-comment line
642	of Makefile as specified by POSIX.
643	add unit-tests for above.
644	o meta.c: make it easier to find usage of identifiers
645	o targ.c: add .USEBEFORE to Targ_PrintType
646
6472022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
648
649	* VERSION (_MAKE_VERSION): 20220414
650
651	* unit-tests/Makefile: simplify checks for shells with
652	BROKEN_TESTS, this helps with other Linux distros that
653	use dash.
654
6552022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
656
657	* VERSION (_MAKE_VERSION): 20220330
658	Merge with NetBSD make, pick up
659	o var.c: fix spacing, and a typo in a test
660
6612022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
662
663	* VERSION (_MAKE_VERSION): 20220326
664	Merge with NetBSD make, pick up
665	o parse.c: try to include 'posix.mk' the first time
666	.POSIX: is encountered, to allow for beter POSIX compliance.
667	o var.c: make debug logs more readable
668	prefer 'long long' over 'long' on 32-bit C99 platforms
669	fix crash on .undef of an environment variable
670
6712022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
672
673	* VERSION (_MAKE_VERSION): 20220303
674	Merge with NetBSD make, pick up
675	o tell meta mode unit tests not to expect filemon
676	o cond.c: make debug logging for comparisons less technical
677	o lst.c: fix mem leak in Lst_Remove
678	o str.c: make code for string matching syntactically more consistent
679	o var.c: simplify ParseModifier_Match
680
6812022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
682
683	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
684
685	* VERSION (_MAKE_VERSION): 20220214
686	Merge with NetBSD make, pick up
687	o cond.c: simplify control flow in CondParser_Comparison
688	o job.c: fix echoing of command with '-' in silent target in jobs mode
689	o main.c: prefix the warning about read-only .OBJDIR with a colon
690	o parse.c: remove redundant conditions
691	o var.c: simplify control flow in ModifyWord_SysVSubst
692
6932022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
694
695	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
696	is any chance we have dash as .SHELL
697
698	* VERSION (_MAKE_VERSION): 20220208
699	Merge with NetBSD make, pick up
700	o more unit tests
701	o meta.c: use a variable to hold command line to be filtered
702	to avoid any side effects from content of command line.
703
7042022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
705
706	* VERSION (_MAKE_VERSION): 20220204
707	Merge with NetBSD make, pick up
708	o use unsigned consistently for line numbers, avoid the need for %z
709	o parse.c: do not step off end of input in Parse_IsVar
710	when checking for target local variable assignments
711
7122022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
713
714	* VERSION (_MAKE_VERSION): 20220202
715	Merge with NetBSD make, pick up
716	o remove redundant declaration of HashIter_Init
717	o make DEBUG0 simpler
718
7192022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
720
721	* cast gn->lineno to avoid %z
722
723	* VERSION (_MAKE_VERSION): 20220130
724	Merge with NetBSD make, pick up
725	o more unit tests
726	o make GNode lineno unsigned to please lint
727	o print location of recursive variable references in commands
728	o print "stack trace" (makefile includes) on fatal errors
729	o make.1: refine documentation for target local assignments
730
7312022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
732
733	* VERSION (_MAKE_VERSION): 20220128
734	Merge with NetBSD make, pick up
735	o inline functions called only once
736	o for.c: clean up AddEscape for building the body of a .for loop
737	o hash.c: merge duplicate code for finding an entry in a hash table
738	replace HashEntry_KeyEquals with strncmp
739	o make.1: document quirks of target local variable assignments.
740	o parse.c: cleanup white-space
741
7422022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
743
744	* VERSION (_MAKE_VERSION): 20220126
745	Merge with NetBSD make, pick up
746	o allow setting target local variables
747	o more unit tests
748	o add missing newline after "cannot continue" message
749	o meta.c: clean up eat_dots
750	o parse.c: fix filename in warning about duplicate script
751	o var.c: when expanding nested variables, check simple things first
752
7532022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
754
755	* VERSION (_MAKE_VERSION): 20220116
756	Merge with NetBSD make, pick up
757	o fix for unit-tests/varname-makeflags on non-BSD systems
758	o use Var_Exists rather than Var_Value where appropriate
759	o remove unnecessary functions for expanding variable names
760	o cond.c: inline EvalBare
761	o main.c: lint cleanup
762	o parse.c: condense code in Parse_IsVar
763	use islower for parsing directives (none have upper case)
764
7652022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
766
767	* VERSION (_MAKE_VERSION): 20220112
768	Merge with NetBSD make, pick up
769	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
770	comparion, rarely needed but useful when it is.
771
7722022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
773
774	* VERSION (_MAKE_VERSION): 20220110
775	Merge with NetBSD make, pick up
776	o inline Buf_Clear
777	o remove redundant braces
778	o rename and inline Targ_Precious
779	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
780	o for.c: clean up handling of .for loops
781	fix reported line numbers of continuation lines
782	add details about .for loop variables to stack traces
783	o job.c: reduce code for initializing error handling in shell
784	o main.c: in Cmd_Exec, return error message instead of format string
785	have as few statements as possible between va_start and va_end
786	add debug logging for capturing the output of external commands
787	o make.c: use consistent variable names for varargs
788	o make_malloc.c: remove duplicate code from bmake_strdup
789	o parse.c: add missing printflike annotations
790	remove redundant lines from stack traces
791	fix stack traces in -dp mode
792	reduce confusing code in ParseForLoop
793	fix line number in debug log after returning from a file
794	rename IFile and its fields to match their actual content
795	clean up ParseDependencySources
796	o var.c: shorten ApplyModifier_Assign
797	rename is_shell_metachar, fix character conversion warning
798	merge calls to ApplyModifier_Time
799	merge duplicate code for modifiers 'gmtime' and 'localtime'
800
8012022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
802
803	* parse.c: loadfile restore extra byte in buffer.
804
8052022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
806
807	* VERSION (_MAKE_VERSION): 20220101
808	Merge with NetBSD make, pick up
809	o more unit-tests
810	o remove unnecessary words from command line options in CmdOpts
811	o rename eunlink to unlink_file
812	o cond.c: make ParseWord in condition parser simpler
813	internally return false for irrelevant leaves in conditions
814	replace table for function lookup in conditions with simple code
815	merge duplicate types CondEvalResult and CondResult
816	o for.c: clean up handling of .for loops and .include directives
817	o main.c: constify cached_realpath
818	clean up Cmd_Exec
819	o parse.c: sync API documentation
820	fix error message when reading more than 1 GB from stdin
821	clean up parsing of makefiles
822	fix line number in error message about open conditionals
823	unexport types VarAssignOp and VarAssign
824	clean up function names
825	remove redundant parameters in dependency parsing functions
826	reduce scope of the list of wildcard target names
827	extract OP_NOTARGET into separate function
828	clean up variable names for parsing dependency lines
829	make debug logging a bit more human-friendly
830	o var.c: condense code in ApplyModifier_Assign
831
8322021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
833
834	* VERSION (_MAKE_VERSION): 20211221
835	Merge with NetBSD make, pick up
836	o more unit-tests
837	o style cleanup
838	o in CLEANUP mode, free interned strings at the very end
839	o fix memory leak for filenames in .for loops
840	o buf.c: avoid memory leak
841	o cond.c: condense CondParser_ComparisonOp
842	o hash.c: change return type of HashTable_Set to void
843	o job.c: change return type of Compat_RunCommand from int to bool
844	o main.c: remove bmake_free
845	o parse.c: condense repetetive code in ParseDirective
846	remove dead code for handling traditional include directives
847	clean up parsing of variable assignments
848	remove unreachable code for parsing the dependency operator
849	clean up loading of files
850	fix memory leak in IncludeFile
851	o var.c: fix memory leak when parsing a variable name
852	fix memory leak from ${.SUFFIXES}
853	reduce memory allocation in modifier ':?' and ':C'
854	condense RegexReplace for the modifier ':C' and avoid strlen
855	merge duplicate code for memory handling in Var_Parse
856	distinguish between short-lived and environment variables
857	rename VarFreeEnv to VarFreeShortLived
858
8592021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
860
861	* cond.c: fix mem leak in CondParser_Leaf
862
8632021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
864
865	* VERSION (_MAKE_VERSION): 20211212
866	Merge with NetBSD make, pick up
867	o rename Parse_SetInput to Parse_PushInput
868	o remove remove period from end of error messages and warnings
869	to be more consistent
870	o arch.c: use simpler memory management for parsing archive members
871	o cond.c: rework and reduce recursion
872	o for.c: rename some functions to better reflect purpose
873	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
874	o var.c: in parse errors, mark whitespace more clearly
875	inline ParseEmptyArg into CondParser_FuncCallEmpty
876	minimize calls to LazyBuf_Get in ParseVarnameLong
877	treat .SUFFIXES as a read-only variable
878
8792021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
880
881	* VERSION (_MAKE_VERSION): 20211207
882	Merge with NetBSD make, pick up
883	o inline HashIter_Init
884	o parse.c: inline common subexpression in ParseRawLine
885	o var.c: merge branches for modifiers ':D' and ':U'
886	extract common code into Expr_Words
887	extract common code into Expr_Str
888	move low-level implementation details out of Var_Parse
889
8902021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
891
892	* VERSION (_MAKE_VERSION): 20211206
893	Merge with NetBSD make, pick up
894	o add unit-tests/varmod-loop-delete
895	o for.c: inline Str_Words - reduce memory allocation
896	o parse.c: do not try to expand fixed variable names
897	only allocate the name of an included file if necessary
898	clean up ParseInclude
899	o var.c: fix use-after-free in modifier ':@'
900	save a memory allocation in each modifier ':O' and ':u'
901	save a memory allocation in the modifier ':[...]'
902	in UnexportVars, replace Str_Words with Substring_Words to
903	reduce allocations and copying.
904
9052021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
906
907	* VERSION (_MAKE_VERSION): 20211204
908	Merge with NetBSD make, pick up
909	o flesh out a number of tests
910	o replace enums with bitfields, this simplifies a lot of code.
911	o var.c: refactor ParseModifierPartSubst
912
9132021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
914
915	* VERSION (_MAKE_VERSION): 20211024
916	Merge with NetBSD make, pick up
917	o Punt on write errors - ENOSPC etc.
918
9192021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
920
921	* configure.in: use_defshell, set both DEFSHELL_INDEX
922	and defshell_path if appropriate.
923	This makes it easier to use say the KSH specification with
924	and alternate path for the shell.
925
926	* configure.in compat.c: for SCO we need to force UseShell
927
928	* configure.in: SCO /bin/sh is not usable, provide a list of
929	alternatives for use as .SHELL.
930	We still have to mark some tests as broken, plus more if we end up
931	with ksh as .SHELL.
932	Issue a warning about skipped tests.
933
934	* boot-strap: leave TOOL_DIFF to configure
935
936	* configure.in: on SCO native cc is not usable,
937	gcc is to be found in /usr/gnu/bin
938	and while ancient is at least able to compile bmake.
939	Thus we add /usr/gnu/bin to PATH if it exists, and later
940	check if $CC would have been found via $PATH.
941	If not we set CC to the full path of $CC.
942	Also gnu diff is known to support -u, so if it exists use it.
943
944	* configure.in: move getopt to AC_REPLACE_FUNCS
945	also add AC_C_INLINE - in an attempt to compile using
946	native cc on SCO.
947
948	* configure.in: check for stresep as well as strsep, since we
949	define the later to the former if necessary, and if we have to
950	provide stresep we also need to provide a prototype.
951
952	* configure.in: we no longer need to worry about
953	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
954
955	* make.h: make sure we have __RCSID
956
957	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
958	can control it.
959
9602021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
961
962	* VERSION: 20211020
963	Merge with NetBSD make, pick up
964	o confirm sync of unit-tests
965
9662021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
967
968	* configure.in: check if timezone Europe/Berlin is supported
969	if not try UTC-1
970	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
971	symlink unit-tests -> ../unit-tests/obj so that
972	unit-tests/Makefile.config is put in the right place.
973	* refine filtering of .OBJDIR in unit-tests
974
9752021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
976
977	* Fix unit-tests on Minix 3.2.0
978	o job.c: do not punt if read of token pipe fails for EAGAIN.
979	On Minix at least, we are not ready to read the childExitJob pipe
980	when poll says we are.
981	There should actually be no reason for this pipe to be
982	non-blocking, but while that works fine on {Net,Free}BSD it
983	breaks another test case on Minix.
984	o unit-tests/Makefile: deal with variants of error messages
985	  and use of obj as .OBJDIR
986
9872021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
988
989	* configure.in: add sigaction to AC_REPLACE_FUNCS
990	we also need to check for sigaddset etc just for the benefit of
991	sigact.c
992
993	* Add sigact.c as sigaction.c so this "just works".
994	This should have been done back when bmake_signal started using
995	sigaction (I only just noticed that sigact.c wasn't here ;-)
996	Note: I no longer have access to any system where this would matter.
997
9982021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
999
1000	* VERSION (_MAKE_VERSION): 20211011
1001
1002	* Makefile: cleanup a little
1003
1004	* configure.in: check for sigsetmask
1005
10062021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1007
1008	* VERSION (_MAKE_VERSION): 20211001
1009	Merge with NetBSD make, pick up
1010	o reduce locations reducing text size
1011	o remove unnecessary const
1012	o cond.c: fix lint warning on i386
1013	do not allow unquoted 'left == right' after modifier ':?'
1014	o hash.c: fix build for DEBUG_HASH_LOOKUP
1015	o var.c: fix memory leak in error case of the ':?' modifier
1016
10172021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1018
1019	* VERSION (_MAKE_VERSION): 20210911
1020	Merge with NetBSD make, pick up
1021	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
1022
10232021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
1024
1025	* VERSION (_MAKE_VERSION): 20210906
1026	Merge with NetBSD make, pick up
1027	o more unit tests
1028	o lint cleanup
1029	o rename some functions to better fit purpose
1030	o for.c: cleanup - remove unnecessary optimization
1031	  fix embedded newlines
1032	o parse.c: correct case for CVS/RCS
1033
10342021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
1035
1036	* VERSION (_MAKE_VERSION): 20210808
1037	Merge with NetBSD make, pick up
1038	o var.c: remove redundant initialization in ApplyModifier_Order
1039
1040	* mk/options.mk: issue warning for incorrect usage
1041
10422021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1043
1044	* var.c: use long for :On if we don't have a 64bit int type
1045
1046	* VERSION (_MAKE_VERSION): 20210803
1047	Merge with NetBSD make, pick up
1048	o rework varmod-order tests to avoid qsort instability
1049	o make.1: clarify :On entry
1050
10512021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1052
1053	* VERSION (_MAKE_VERSION): 20210731
1054	Merge with NetBSD make, pick up
1055	o fix some lint issues
1056	o more unit tests
1057	o var.c: rework of ApplyModifier_Order
1058
10592021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1060
1061	* util.c: add strto*l if HAVE_STRTO*L not defined
1062
1063	* VERSION (_MAKE_VERSION): 20210730
1064	Merge with NetBSD make, pick up
1065	o var.c: add :On and :Orn for numeric sort
1066	  disabled if no 64bit type available.
1067	o _strtol.h: to implement strto*l functions
1068
10692021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1070
1071	* VERSION (_MAKE_VERSION): 20210704
1072	Merge with NetBSD make, pick up
1073	o unit-tests: fix some tests to be more portable
1074	- job-output-null not all shells do the same number of write calls
1075	- objdir-writable if TMPDIR is set; /tmp may not be usable
1076
10772021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1078
1079	* VERSION (_MAKE_VERSION): 20210701
1080	Merge with NetBSD make, pick up
1081	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
1082	some tests just cannot work in some environments.
1083	o buf.c: simpler upper bound for length in Buf_AddInt
1084	o cond.c: fix grammar in error message for malformed conditional
1085	o for.c: prevent newline injection (from ${.newline}) in .for loops
1086	o var.c: use more practical data type in RegexReplace
1087	(avoid need for %zu)
1088	extract RegexReplace from ModifyWord_SubstRegex
1089
10902021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
1091
1092	* VERSION (_MAKE_VERSION): 20210621
1093	Merge with NetBSD make, pick up
1094	o var.c: only report error for unmatched regex subexpression
1095	when linting (-dL) since we cannot tell when an unmatched
1096	subexpression is an expected result.
1097	o move unmatched regex subexpression tests to
1098	varmod-subst-regex.mk and enable strict (lint) mode
1099
11002021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
1101
1102	* VERSION (_MAKE_VERSION): 20210616
1103	Merge with NetBSD make, pick up
1104	o more unit tests
1105	o cond.c: rename If_Eval to EvalBare
1106	improve function names for parsing conditions
1107	o job.c: fix error handling of targets that cannot be made
1108	o var.c: uncompress code in ApplyModifier_Unique
1109
11102021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
1111
1112	* VERSION (_MAKE_VERSION): 20210518
1113	Merge with NetBSD make, pick up
1114	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
1115	o job.c: Print -de error information when running multiple jobs
1116
11172021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1118
1119	* VERSION (_MAKE_VERSION): 20210420
1120	Merge with NetBSD make, pick up
1121	o use C99 bool type
1122	o convert VarEvalFlags back into an enum
1123	o cond.c: do not complain when skipping the condition 'no >= 10'
1124	o hash.c: avoid allocating memory for simple variable names
1125	o job.c: use distinct wording for writing to the shell commands file
1126	remove type name for the abort status in job handling
1127	rename PrintOutput to PrintFilteredOutput to avoid confusion
1128	o main.c: avoid double slash in name of temporary directory
1129	o var.c: use straight quotes for error 'Bad conditional expression'
1130	reduce memory allocations in the modifiers ':D' and ':U'
1131	rename members of ModifyWord_LoopArgs
1132	clean up pattern flags for the modifiers ':S' and ':C'
1133	reduce memory allocation and strlen calls in modifier ':from=to'
1134	in the ':Q' modifier, only allocate memory if necessary
1135	improve performance for LazyBuf
1136	remove redundant parameter from ParseVarnameLong
1137	migrate ParseModifierPart to use Substring
1138	avoid unnecessary calls to strlen when evaluating modifiers
1139	migrate ModifyWord functions to use Substring
1140	migrate handling of the modifier ':S,from,to,' to Substring
1141	reduce debug logging and memory allocation for ${:U...}
1142	reduce verbosity of the -dv debug logging for standard cases
1143	clean up debug logging for ':M' and ':N'
1144	disallow '$' in the variable name of the modifier ':@'
1145	simplify access to the name of an expression during evaluation
1146
11472021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1148
1149	* VERSION (_MAKE_VERSION): 20210330
1150	Merge with NetBSD make, pick up
1151	o replace enum bit-field with struct bit-field for VarEvalFlags
1152	o rename VARE_NONE to VARE_PARSE_ONLY
1153	o var.c: rename ApplyModifiersState to ModChain
1154	fix double varname expansion in the variable modifier '::='
1155	change debug log for variable evaluation flags to lowercase
1156
11572021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
1158
1159	* VERSION (_MAKE_VERSION): 20210314
1160	Merge with NetBSD make, pick up
1161	o var.c: avoid evaluating many modifiers in parse only mode
1162	in strict mode (-dL) many variable references are parsed twice,
1163	the first time just to report parse errors early, so we want to
1164	avoid side effects and wasted effort to the extent possible.
1165
11662021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
1167
1168	* VERSION (_MAKE_VERSION): 20210226
1169	Merge with NetBSD make, pick up
1170	o remove freestanding freeIt variables
1171	link via FStr
1172	o var.c: restructure code in ParseVarname to target human readers
1173	improve error message for;
1174	  bad modifier in variable expression
1175	  unclosed modifier
1176	  unknown modifier
1177	remove redundant parameter of ApplySingleModifier
1178	explain non-obvious code around indirect variable modifiers
1179	quote ':S' in error message about missing delimiter
1180	extract ParseModifier_Match into separate function
1181	add context information to error message about ':range' modifier
1182	add quotes around variable name in an error message
1183	reorder code in ModifyWords
1184	use more common parameter order for VarSelectWords
1185	make ModifyWord_Subst a little easier to understand
1186	do not expand variable name from the command line twice
1187	extract ExistsInCmdline from Var_SetWithFlags
1188	save a hash map lookup when defining a cmdline variable
1189	clean up VarAdd, Var_Delete, Var_ReexportVars
1190	use bit-shift expressions for VarFlags constants
1191	rename constants for VarFlags
1192	rename ExprDefined constants for debug logging
1193	rename ExprStatus to ExprDefined
1194	split parameters for evaluating variable expressions
1195	reduce redundant code around ModifyWords
1196	print error about failed shell command before overwriting variable
1197	clean up ValidShortVarname, ParseVarnameShort
1198	rename VarExprStatus to ExprStatus
1199	add functions for assigning the value of an expression
1200	rename ApplyModifiersState_Define to Expr_Define
1201	condense the code for parsing :S and :C modifiers
1202
12032021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
1204
1205	* VERSION (_MAKE_VERSION): 20210206
1206	Merge with NetBSD make, pick up
1207	o unit-tests: use private TMPDIR to avoid errors from other users
1208
12092021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1210
1211	* VERSION (_MAKE_VERSION): 20210205
1212	Merge with NetBSD make, pick up
1213	o avoid strdup in mkTempFile
1214	o always use vfork
1215	o rename context and ctxt to scope
1216	o rename some VAR constants to SCOPE
1217	o Var_ functions, move the scope to the front
1218	o use shortcut functions Global_Set and Global_Append
1219	o add shortcut Global_Delete for deleting a global variable
1220	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
1221	o compat.c: when exiting due to an error, print graph information
1222	o enum.c: remove overengineered Enum_ValueToString
1223	o make.c: remove unused INTERNAL flag
1224	remove unused return type of MakeBuildParent
1225	o parse.c: replace parse error "Need an operator" with better message
1226	o var.c: improve documentation about variable scopes
1227	rename Var_ValueDirect to GNode_ValueDirect
1228	rename old Var_SetWithFlags to Var_SetExpandWithFlags
1229	merge SetVar into Var_SetWithFlags
1230	split Var_Exists into plain Var_Exists and Var_ExistsExpand
1231	split Var_Append into Var_Append and Var_AppendExpand
1232	replace enum bit-set with bit-field
1233	o unit-tests/var-op-shell: use kill rather than kill -14
1234	which broke on darwin with recent update.
1235
12362021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
1237
1238	* configure.in: check for sig_atomic_t and define it as 'int'
1239	if missing.
1240
1241	* VERSION (_MAKE_VERSION): 20210201
1242	Merge with NetBSD make, pick up
1243	o use sig_atomic_t for caught_sigchld
1244
12452021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1246
1247	* VERSION (_MAKE_VERSION): 20210130
1248	Merge with NetBSD make, pick up
1249	o more unit tests
1250	o convert SearchPath to struct
1251	o split Buf_Destroy into Buf_Done and Buf_DoneData
1252	o for.c: split For_Eval into separate functions
1253	rename struct For to struct ForLoop
1254	o job.c: do not create empty shell files in jobs mode
1255	rename JobOpenTmpFile to JobWriteShellCommands
1256	reduce unnecessary calls to waitpid
1257	o parse.c: in -dp mode, print stack trace with each diagnostic
1258
12592021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1260
1261	* VERSION (_MAKE_VERSION): 20210123
1262	Merge with NetBSD make, pick up
1263	o rename Dir_Expand to SearchPath_Expand
1264	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
1265	o cond.c: fix debug output for comparison operators in conditionals
1266	o dir.c: split Dir_FindFile into separate functions
1267
12682021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1269
1270	* VERSION (_MAKE_VERSION): 20210120
1271	Merge with NetBSD make, pick up
1272	o fix some more lint nits
1273	o refine some unit tests for portability
1274	o cond.c: rework parsing
1275
12762021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1277
1278	* VERSION (_MAKE_VERSION): 20210110
1279	Merge with NetBSD make, pick up
1280	o fix lint warnings
1281	o consistently use boolean expressions in conditions
1282
12832021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
1284
1285	* VERSION (_MAKE_VERSION): 20210108
1286	Merge with NetBSD make, pick up
1287	o job.c: back to polling token pipe if we want a token
1288	o main.c: always print 'stopped in' on first call
1289	The execption is if we bail because of an abort token
1290	in which case just exit 6.
1291
12922021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1293
1294	* VERSION (_MAKE_VERSION): 20210101
1295	Merge with NetBSD make, pick up
1296	o Happy New Year!
1297	o rename CmdOpts.lint to strict
1298	o exit 2 on technical errors
1299	o replace pointers in controlling conditions with booleans
1300	o replace global preserveUndefined with VARE_KEEP_UNDEF
1301	o compat.c: re-export variables from the actual make process
1302	if using vfork this is the effect anyway
1303	o cond.c: clean up VarParseResult constants
1304	o for.c: fix undefined behavior in SubstVarLong
1305	make control flow in SubstVarLong of .for loops more obvious
1306	clean up SubstVarShort in .for loops
1307	extract ForSubstBody from ForReadMore
1308	clean up ForReadMore
1309	simplify termination condition for .for loop
1310	add error handling for .for loop items
1311	job.c: re-export variables from the actual make process
1312	parse.c: remove mmap for loading files, only allow files < 1 GiB
1313	fix edge case in := with undefined in variable name
1314	skip variable expansion in ParseDependencyTargetWord
1315	var.c: split ExportVar into separate functions
1316	clean up code in extracted ExportVar functions
1317	remove dead code from ApplyModifiersIndirect
1318	split Var_Subst into easily understandable functions
1319	clean up VarParseResult constants
1320
13212020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
1322
1323	* main.c: use .MAKE.DEPENDFILE as set by makefiles
1324
13252020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1326
1327	* VERSION (_MAKE_VERSION): 20201222
1328	Merge with NetBSD make, pick up
1329	o make DEBUG macro return boolean
1330	o parse.c: fix assertion failure for files without trailing newline
1331	o var.c: allow .undef to undefine multiple variables at once
1332	remove excess newline from parse errors
1333
13342020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1335
1336	* VERSION (_MAKE_VERSION): 20201221
1337	Merge with NetBSD make, pick up
1338	o some unit-test updates
1339
13402020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1341
1342	* VERSION (_MAKE_VERSION): 20201220
1343	Merge with NetBSD make, pick up
1344	o more unit tests
1345	o return FStr from Var_Parse and Var_Value
1346	o spell nonexistent consistently
1347	o add str_basename to reduce duplicate code
1348	o compat.c: fix .ERROR_TARGET in compat -k mode
1349	extract InitSignals from Compat_Run
1350	extract UseShell from Compat_RunCommand
1351	o cond.c: error out if an '.endif' or '.else' contain extraneous text
1352	o for.c: rename ForIterate to ForReadMore
1353	o hash.c: clean up hash function for HashTable
1354	o lst.c: rename Vector.priv_cap to cap
1355	o main.c: remove constant parameter from MakeMode
1356	o make.c: use symbolic time for 0 in Make_Recheck
1357	extract MakeChildren from MakeStartJobs
1358	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
1359	fix error message for .info/.warning/.error without argument
1360	extract Var_Undef from ParseDirective
1361	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
1362	rename mode constants for ParseGetLine to be more expressive
1363	reduce debugging details in Parse_SetInput
1364	fix line numbers in .for loops
1365	split ParseGetLine into separate functions
1366	fix garbled output for failed shell command
1367	var.c: remove redundant assignment in ApplyModifier_SysV
1368	error out on unknown variable modifiers at parse time
1369	remove wrong error message for indirect modifier in lint mode
1370	extract ApplySingleModifier from ApplyModifiers
1371	use FStr for memory management in Var_SetWithFlags
1372	extract SetVar from Var_SetWithFlags
1373	use FStr in VarNew
1374	extract string functions from ApplyModifier_To
1375	error out if .undef has not exactly 1 argument
1376	extract Var_DeleteVar from Var_Delete
1377	extract Var_Undef from ParseDirective
1378	clean up memory management for expanding variable expressions
1379
13802020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1381
1382	* avoid %zu
1383
1384	* lst.c: avoid anonymous union
1385
1386	* VERSION (_MAKE_VERSION): 20201212
1387	Merge with NetBSD make, pick up
1388	o more unit tests
1389	o inline Targ_Ignore and Targ_Silent
1390	o split JobFlags into separate fields
1391	o remove const from function parameters (left overs from refactoring)
1392	o eliminate boolean argument of Var_Export
1393	o make API of Buf_Init simpler
1394	o rename ParseRunOptions to ParseCommandFlags
1395	o replace *line with line[0]
1396	o compat.c: fix wrong exit status for multiple failed main targets
1397	refactor Compat_Run to show the error condition more clearly
1398	don't make .END if the main targets already failed (-k mode)
1399	fix exit status in -k mode if a dependency fails
1400	o for.c: clean up Buf_AddEscaped in .for loops
1401	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
1402	make Job_Touch simpler
1403	refactor JobFinish
1404	rename Shell.exitFlag to errFlag
1405	move Job.xtraced to ShellWriter
1406	make printing of shell commands independent from the job
1407	rename shell flags in struct Shell
1408	extract JobOpenTmpFile from JobStart
1409	rename RunFlags to CommandFlags
1410	split various Job.* into separate fields
1411	rename commandShell to shell
1412	extract InitShellNameAndPath from Shell_Init
1413	replace signal handling macros with local functions
1414	replace macro MESSAGE with local function
1415	parse.c: error out on null bytes in makefiles
1416	error out on misspelled directives
1417	rename IFile.nextbuf to readMore
1418	fix undefined behavior in ParseEOF
1419	str.c: remove redundant call to strlen in Str_Words
1420	var.c: error out on misspelled .unexport-env
1421	error out on misspelled .export directives
1422	extract ExportVars from Var_Export
1423	extract ExportVarsExpand from Var_Export
1424	eliminate boolean argument of Var_Export
1425	fix undefined behavior when exporting ${:U }
1426	rename Var_ExportVars to Var_ReexportVars
1427	rename Var_Export1 to ExportVar
1428
14292020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1430
1431	* VERSION (_MAKE_VERSION): 20201206
1432	Merge with NetBSD make, pick up
1433	o more unit tests
1434	o inline macros for debug logging
1435	o use consistent variable names for list nodes
1436	o define constants for enum zero-values
1437	o dir.c: use fixed format for debug output of the directory cache
1438	remove Dir_InitDir
1439	o lst.c: inline Lst_Enqueue, Vector_Done
1440	o meta.c: remove unused parameter from meta_needed
1441	o parse.c: rename parse functions
1442	o suff.c: extract ExpandChildrenRegular from ExpandChildren
1443	o targ.c: don't concatenate identifiers in Targ_PrintType
1444	o var.c: remove comment decoration
1445	extract UnexportVars from Var_UnExport
1446	extract GetVarnamesToUnexport from Var_UnExport
1447	extract UnexportEnv from Var_UnExport
1448	extract UnexportVar from Var_UnExport
1449	move CleanEnv to UnexportVars
1450	replace pointer comparisons with enum
1451	add FStr to var.c to make memory handling simpler
1452	use FStr in Var_UnExport
1453	move type definitions in var.c to the top
1454	extract FreeEnvVar from Var_Parse
1455	extract ShuffleStrings from ApplyModifier_Order
1456
14572020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
1458
1459	* VERSION (_MAKE_VERSION): 20201130
1460	Merge with NetBSD make, pick up
1461	o add unit tests for META MODE
1462	o reduce memory allocation for dirSearchPath, GNode.parents,
1463	GNode.children, OpenDirs
1464	o reduce pointer indirection for GNode.cohorts and
1465	GNode.implicitParents
1466	o remove pointer indirection from GNode.commands
1467	o inline Lst_ForEachUntil in meta mode
1468	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
1469	clean up memory management for CachedDirs
1470	fix the reference count of dotLast going negative
1471	add debug logging for OpenDirs_Done
1472	extract CacheNewDir from Dir_AddDir
1473	add debug logging for reference counting of CachedDir
1474	rename some Dir functions to SearchPath
1475	o job.c: rename some global variables
1476	o main.c: reduce memory allocation in ReadBuiltinRules
1477	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
1478	CmdOpts.makefiles
1479	Add .MAKE.UID and .MAKE.GID
1480	o make.c: reduce memory allocation for/in toBeMade,
1481	Make_ProcessWait, Make_ExpandUse
1482	o meta.c: reduce memory allocation in meta_oodate
1483	o parse.c: reduce memory allocations for parsing dependencies and
1484	targets
1485	o suff.c: reduce memory allocation in suffix handling
1486
14872020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
1488
1489	* VERSION (_MAKE_VERSION): 20201124
1490	Merge with NetBSD make, pick up
1491	o .MAKE.{UID,GID} represent uid and gid running make.
1492	o fix error handling for .BEGIN and .END dependency in -k mode
1493	o fix missing "Stop." after failed .END node in -k mode
1494	o use properly typed comparisons in boolean contexts
1495	o replace a few HashTable_CreateEntry with HashTable_Set
1496	o add HashSet type
1497	o compat.c: split Compat_Make into smaller functions
1498	extract DebugFailedTarget from Compat_RunCommand
1499	o dir.c: refactor Dir_UpdateMTime
1500	migrate CachedDir.files from HashTable to HashSet
1501	o make.c: add high-level API for GNode.made
1502
15032020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
1504
1505	* VERSION (_MAKE_VERSION): 20201122
1506	Merge with NetBSD make, pick up
1507	o rename GNode.context to vars
1508	o suff.c: cleanup and refactor
1509	rename some functions and vars to better reflect usage
1510	add high-level API for CandidateSearcher
1511	o targ.c: add more debug logging for suffix handling
1512	o more unit tests
1513	o add debug logging for setting and resetting the main target
1514
15152020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
1516
1517	* VERSION (_MAKE_VERSION): 20201117
1518	Merge with NetBSD make, pick up
1519	o fix some unit-tests when .SHELL is dash
1520	o rename Targ_NewGN to GNode_New
1521	o make some GNode functions const
1522	o main.c: call Targ_Init before Var_Init
1523	cleanup PrintOnError, getTmpdir and ParseBoolean
1524	o var.c: fix error message of failed :!cmd! modifier
1525
15262020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
1527
1528	* VERSION (_MAKE_VERSION): 20201114
1529	Merge with NetBSD make, pick up
1530	o replace a few HashTable_CreateEntry with HashTable_Set
1531	o clean up cached_stats
1532	o rename DEFAULT to defaultNode
1533	o remove redundant struct make_stat
1534	o cond.c: in lint mode, check for ".else <cond>"
1535	use bitset for IfState
1536	replace large switch with if-else in Cond_EvalLine
1537	o job.c: clean up JobExec, JobStart, JobDoOutput
1538	use stderr for error message about failed touch
1539	clean up Job_Touch
1540	replace macro DBPRINTF with JobPrintln
1541	rename JobState to JobStatus
1542	main.c: switch cache for realpath from GNode to HashTable
1543	clean up Fatal
1544	clean up InitDefSysIncPath
1545	use progname instead of hard-coded 'make' in warning
1546	rename Main_SetVarObjdir to SetVarObjdir
1547	make.1: document the -S option
1548	make.c: fix debug output for GNode details
1549	use symbolic names in debug output of GNodes
1550
15512020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
1552
1553	* configure.in: fix --with-force-machine-arch
1554
1555	* VERSION (_MAKE_VERSION): 20201112
1556	Merge with NetBSD make, pick up
1557	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
1558	checks in InitObjdir.  Explicit .OBJDIR target always allows
1559	read-only directory.
1560	o cond.c: clean up Cond_EvalLine
1561
15622020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1563
1564	* VERSION (_MAKE_VERSION): 20201111
1565	Merge with NetBSD make, pick up
1566	o more unit-tests
1567	o style cleanup
1568	remove redundant parentheses from sizeof operator
1569	replace character literal 0 with '\0'.
1570	replace pointer literal 0 with NULL.
1571	remove redundant parentheses.
1572	replace (expr & mask) == 0 with !(expr & mask).
1573	use strict typing in conditions of the form !var
1574	o rename Make_OODate to GNode_IsOODate
1575	o rename Make_TimeStamp to GNode_UpdateYoungestChild
1576	o rename Var_Set_with_flags to Var_SetWithFlags
1577	o rename dieQuietly to shouldDieQuietly
1578	o buf.c: make API of Buf_Init simpler
1579	o compat.c: clean up Compat_Make, Compat_RunCommand,
1580	CompatDeleteTarget and CompatInterrupt
1581	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
1582	clean up CondParser_Comparison
1583	o main.c: rename getBoolean and s2Boolean
1584	rename MAKEFILE_PREFERENCE for consistency
1585	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
1586	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
1587	replace emptyString with allocated empty string
1588	error out on unclosed expressions after the colon
1589
15902020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1591
1592	* VERSION (_MAKE_VERSION): 20201101
1593	Merge with NetBSD make, pick up
1594	o negate NoExecute to GNode_ShouldExecute
1595	o job.c: rename JobMatchShell to FindShellByName
1596	extract EscapeShellDblQuot from JobPrintCommand
1597	extract ParseRunOptions from JobPrintCommand
1598	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
1599	treat malformed :range, :ts and :[...] as errors
1600	add tests for the variable modifiers :[words] and :range
1601
16022020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
1603
1604	* VERSION (_MAKE_VERSION): 20201031
1605	Merge with NetBSD make, pick up
1606	o format #include directives consistently
1607	o do not look up local variables like .TARGET anywhere else
1608	o main.c: Main_SetObjdir is first called for curdir which may be
1609	readonly
1610	reduce the scope where recursive expressions are detected
1611	remove redundant :tl from getBoolean
1612	clean up mkTempFile
1613	o meta.c: simplify memory allocation in meta_create and meta_oodate
1614	o parse.c: extract loadedfile_mmap from loadfile
1615	o trace.c: document possible undefined behavior with .CURDIR
1616	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
1617	rename ismeta to is_shell_metachar
1618	remove debug logging for the :Q variable modifier
1619	rename VarIsDynamic to VarnameIsDynamic
1620	use consistent parameter order in varname parsing functions
1621	extract ParseVarnameLong from Var_Parse
1622	extract ParseVarnameShort from Var_Parse
1623	fix type of ParseModifierPart parameter delim
1624	extract IsEscapedModifierPart from ParseModifierPart
1625	clean up ModifyWords
1626	add test for combining the :@ and :? variable modifiers
1627
16282020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
1629
1630	* VERSION (_MAKE_VERSION): 20201030
1631	Merge with NetBSD make, pick up
1632	o change char * to void * in Var_Value
1633	o make iterating over HashTable simpler
1634	o rename VAR_CMD to VAR_CMDLINE
1635	o cond.c: clean up is_separator
1636	fix parse error in string literal in conditional
1637	o main.c: do not use objdir that is not writable
1638	in lint mode, exit with error status on errors
1639	o  parse.c: clean up StrContainsWord
1640	fix out-of-bounds pointer in ParseTrackInput
1641	o var.c: rename Str_SYSVMatch and its parameters
1642	remove unsatisfiable conditions in Var_Set_with_flags
1643	document where the variable name is expanded
1644	fix documentation for VARP_SUB_ONE
1645	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
1646	document VAR_READONLY
1647	prevent appending to read-only variables
1648	extract MayExport from Var_Export1
1649	remove redundant evaluations in VarFind
1650	replace VarFindFlags with a simple Boolean
1651	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
1652
16532020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1654
1655	* VERSION (_MAKE_VERSION): 20201028
1656	Merge with NetBSD make, pick up
1657	o rename defIncPath to defSysIncPath
1658	o initialize all CmdOpts fields
1659	o lst.c: inline Vector_Get
1660	o main.c: refactor main extract
1661	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
1662	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
1663	InitDefIncPath,CmdOpts_Init,UnlimitFiles
1664	o parse.c: merge curFile into includes
1665	rename predecessor to order_pred
1666	sort ParseSpecial alphabetically
1667	remove unused, undocumented .NOEXPORT
1668	rename ParseSpecial enum values consistently
1669	rename some fields of struct IFile
1670
16712020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
1672
1673	* VERSION (_MAKE_VERSION): 20201026
1674	Merge with NetBSD make, pick up
1675	o group the command line options and arguments into a struct
1676	o rename GNode.cmgn to youngestChild
1677	o rename hash functions to identify the type name
1678	o negate OP_NOP and rename it to GNode_IsTarget
1679	o add GNode_Path to access the path of a GNode
1680	o remove macros MIN and MAX
1681	o remove unused Lst_Find and Lst_FindFrom
1682	o arch.c: and make Arch_FindLib simpler
1683	clean up code layout
1684	make Arch_ParseArchive simpler
1685	o cond.c: inline CondFindStrMatch into FuncMake
1686	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
1687	omit trailing space in debug output for expanding file patterns
1688	refactor DirMatchFiles
1689	document that the SearchPath of Dir_FindFile may be NULL
1690	remove UNCONST from Dir_Expand
1691	inline DirFindName
1692	o for.c: clean up code for handling .for loops
1693	o hash.c: print hash in debug log with fixed width
1694	clean up hash table functions
1695	reduce amount of string hashing
1696	o job.c: refactor JobDeleteTarget
1697	use proper enum constants for aborting
1698	convert result of JobStart from macros to enum
1699	convert abort reason macros to enum
1700	rework Job_CheckCommands to reduce indentation
1701	rename Shell fields
1702	add field names in declaration of DEFSHELL_CUSTOM
1703	convert JobState and JobFlags to enum types
1704	move handling of the "..." command to JobPrintCommands
1705	o lst.c: clean up
1706	refactor LstNodeNew
1707	remove Lst_Open, Lst_Next, Lst_Close
1708	remove code for circular lists from Lst_Next
1709	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
1710	/dev/null or anything starting with "no"
1711	convert macros for debug flags into enum
1712	o make.c: inline Lst_Copy in Make_ExpandUse
1713	o meta.c: inline Lst_Find in meta_oodate
1714	make Lst_RemoveIf simpler in meta_oodate
1715	o parse.c: convert error level for Parse_Error to an enum
1716	o suff.c: properly terminate debug output with newline
1717	add more details to DEBUG_SRC log
1718	replace Dir_CopyDir with Dir_CopyDirSearchPath
1719	don't modify GNode name while rebuilding the suffix graph
1720	o var.c: reduce duplicate code in VarFind
1721
17222020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1723
1724	* VERSION (_MAKE_VERSION): 20201022
1725	Merge with NetBSD make, pick up
1726	o more refactoring and simplification to reduce code size
1727	o var.c: extract CanonicalVarname from VarFind
1728	o make.c: extract UpdateImplicitParentsVars from Make_Update
1729	o main.c: extract PrintVar from doPrintVars
1730	extract HandlePWD from main
1731	o lst.c: inline simple Lst getters
1732	remove unused Lst_ForEach
1733	o job.c: move struct Shell from job.h to job.c
1734	o more unit tests
1735
17362020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
1737
1738	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1739
17402020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1741
1742	* VERSION (_MAKE_VERSION): 20201018
1743	Merge with NetBSD make, pick up
1744	o remove USE_IOVEC
1745	o rename some Hash_* apis to Hash*
1746	o replace execError with execDie
1747	o rename Lst_Init to Lst_New
1748	o add tags to enum types
1749	o rename Stack to Vector
1750	o parse.c: more refactoring
1751	o unit-tests: make some tests use line buffered stdout
1752	o unit-tests/Makefile: in meta mode do not make all tests depend on
1753	Makefile, it isn't necessary.
1754
17552020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
1756
1757	* main.c: check for CTL_HW being defined.
1758	* unit-tests/Makefile: ensure export tests output are POSIX compliant
1759	disable opt-debug-jobs test until it works on ubuntu
1760
1761	* VERSION (_MAKE_VERSION): 20201010
1762	Merge with NetBSD make, pick up
1763	o dir.c: remove pathname limit for Dir_FindHereOrAbove
1764	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
1765	o main.c: extract init_machine and init_machine_arch from main
1766	allow to disable debug logging options
1767	o parse.c: enable format string truncation warnings
1768	extract parsing of sources from ParseDoDependency
1769	split ParseDoSrc into smaller functions
1770	hide implementation details from Parse_DoVar
1771	clean up parsing of variable assignments
1772	split Parse_DoVar into manageable pieces
1773	don't modify the given line during Parse_DoVar
1774	fix out-of-bounds memory access in Parse_DoVar
1775	fix parsing of the :sh assignment modifier
1776	o var.c: rework memory allocation for the name of variables
1777	extract ApplyModifier_Literal into separate function
1778	in lint mode, reject modifiers without delimiter
1779	do not export variable names starting with '-'
1780	o fix double-free bug in -DCLEANUP mode
1781	o more cleanup to enable higher warnings level
1782	o more unit tests
1783
17842020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1785
1786	* VERSION (_MAKE_VERSION): 20201002
1787	Merge with NetBSD make, pick up
1788	o dir.c: use hash table for looking up open directories by name
1789	o main.c: clean up option handling
1790	o parse.c: add missing const for Parse_AddIncludeDir
1791	o var.c: ApplyModifier_To, update pp in each branch
1792	o remove redundant function prototypes
1793	o more unit tests
1794
17952020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1796
1797	* VERSION (_MAKE_VERSION): 20201001
1798	Merge with NetBSD make, pick up
1799	o compat.c: comment about "..."
1800
18012020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
1802
1803	* VERSION (_MAKE_VERSION): 20200930
1804	Merge with NetBSD make, pick up
1805	o job.c: split Job.jobPipe into 2 separate fields
1806	replace Lst_Open with direct iteration
1807	o lst.c: remove redundant assertions
1808	o targ.c: replace Lst_Open with direct iteration
1809	o var.c: fix bug in evaluation of indirect variable modifiers
1810	extract ApplyModifier_Quote into separate function
1811	o make debug logging simpler
1812
18132020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1814
1815	* VERSION (_MAKE_VERSION): 20200927
1816	Merge with NetBSD make, pick up
1817	o parse.c: ensure parse errors result in 'stopped in' message.
1818	o compat.c: make parameter of Compat_RunCommand const
1819	o main.c: extract InitVarTarget from main
1820	o parse.c: rename ParseFinishLine to FinishDependencyGroup
1821	refactor ParseDoDependency
1822	o var.c: Var_Subst no longer returns string result
1823	rename Var_ParsePP back to Var_Parse
1824	in lint mode, improve error handling for undefined variables
1825	extract ParseVarname from Var_Parse
1826	o rename Lst_ForEach to Lst_ForEachUntil
1827	o inline Lst_ForEachUntil in several cases
1828	o clean up API for finding and creating GNodes
1829	o fix assertion failure in -j mode with .END node
1830	o inline and remove LstNode_Prev and LstNode_Next
1831	o use fine-grained type names for lists and their nodes
1832	o more unit tests
1833
18342020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1835
1836	* VERSION (_MAKE_VERSION): 20200911
1837	Merge with NetBSD make, pick up
1838	o cond.c: split EvalComparison into smaller functions
1839	reorder parameters of condition parsing functions
1840	reduce code size in CondParser_Eval
1841	rename CondGetString to CondParser_String
1842	add CondLexer_SkipWhitespace
1843	group the condition parsing state into a struct
1844	in CondGetString, replace repeated Buf_Add with Buf_AddStr
1845	o migrate Var_Parse to Var_ParsePP
1846	o add wrappers around ctype.h functions
1847	o lst.c: use a stack instead of a list for the nested include path
1848	o more unit tests
1849
18502020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
1851
1852	* make-bootstrap.sh.in: adjust object list
1853
18542020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
1855
1856	* VERSION (_MAKE_VERSION): 20200902
1857	Merge with NetBSD make, pick up
1858	o use make_stat to ensure no confusion over valid fields
1859	returned by cached_stat
1860	o var.c: make VarQuote const-correct
1861	o add unit tests for .for
1862
18632020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1864
1865	* VERSION (_MAKE_VERSION): 20200901
1866	Merge with NetBSD make, pick up
1867	o rename Hash_Table fields
1868	o make data types in Dir_HasWildcards more precise
1869
18702020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
1871
1872	* VERSION (_MAKE_VERSION): 20200831
1873	Merge with NetBSD make, pick up
1874	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
1875	o lst.c: Lst_Open renable assert that list isn't open
1876	o unit test for .TARGET dependent flags
1877	o var.c: fix aliasing bug in VarUniq
1878	o more unit tests for :u
1879
18802020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
1881
1882	* VERSION (_MAKE_VERSION): 20200830
1883	Merge with NetBSD make, pick up
1884	o allow for strict type checking for Boolean
1885	o Var_Parse never returns NULL
1886	o Var_Subst never returns NULL
1887	o Lst_Find now takes boolean match function
1888	o rename Lst_Memeber to Lst_FindDatum
1889	o rename LstNode functions to match their type
1890	o rename GNode.iParents to implicitParents
1891	o fix assertion failure for .SUFFIXES in archives
1892	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
1893	remove unreachable code from CompatRunCommand
1894	o main.c: simplify getBoolean
1895	o stc.c: replace brk_string with simpler Str_Words
1896	o suff.c: add debug macros
1897
18982020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
1899
1900	* VERSION (_MAKE_VERSION): 20200828
1901	Merge with NetBSD make, pick up
1902	o lst.c: inline LstIsValid and LstNodeIsValid
1903	o remove trailing S from Lst function names after migration complete
1904	o more comment cleanup/clarification
1905	o suff.c: clean up suffix handling
1906	o more unit tests
1907
19082020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1909
1910	* VERSION (_MAKE_VERSION): 20200826
1911	Merge with NetBSD make, pick up
1912	o enum.c: distinguish between bitsets containing flags and
1913	ordinary enums
1914	o var.c: fix error message for ::!= modifier with shell error
1915	o fix bugs in -DCLEANUP mode
1916
19172020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1918
1919	* VERSION (_MAKE_VERSION): 20200824
1920	Merge with NetBSD make, pick up
1921	o in debug mode, print GNode details in symbols
1922
19232020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
1924
1925	* VERSION (_MAKE_VERSION): 20200823
1926	Merge with NetBSD make, pick up
1927	o lst.c: more asserts,
1928	make args to Lst_Find match others.
1929	o var.c: pass flags to VarAdd
1930	o arch.c: use Buffer
1931	o str.c: brk_string return size_t for nwords
1932	o more unit tests
1933
19342020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
1935
1936	* VERSION (_MAKE_VERSION):
1937	Merge with NetBSD make, pick up
1938	o var.c: support for read-only variables eg .SHELL
1939	being the shell used to run scripts.
1940	o lst.c: more simplification
1941	o more documentation and style cleanup
1942	o more unit tests
1943	o ensure unit-test/Makefile is run by TEST_MAKE
1944	o reduce duplication of header inclusion
1945
19462020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
1947
1948	* VERSION (_MAKE_VERSION): 20200821
1949	Merge with NetBSD make, pick up
1950	o lst.c: revert invalid assertion - but document it
1951	o dir.c: split Dir_Init into two functions
1952
19532020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
1954
1955	* lst.c: needs inttypes.h on Linux
1956
1957	* VERSION (_MAKE_VERSION): 20200820
1958	Merge with NetBSD make, pick up
1959	o make.1: clarify some passages
1960	o var.c: more cleanup, clarify comments
1961	o make_malloc.c: remove unreachable code
1962	o cond.c: make CondGetString easier to debug
1963	o simplify list usage
1964	o unit-tests: more
1965
19662020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1967
1968	* VERSION (_MAKE_VERSION): 20200816
1969	Merge with NetBSD make, pick up
1970	o refactor unit-tests to be more fine grained
1971	  not all tests moved yet
1972
19732020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
1974
1975	* VERSION (_MAKE_VERSION): 20200814
1976	Merge with NetBSD make, pick up
1977	o more str_concat variants
1978	o more enums for flags
1979	o var.c: cleanup for higher warnings level
1980
19812020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1982
1983	* VERSION (_MAKE_VERSION): 20200810
1984	Merge with NetBSD make, pick up
1985	o more unit tests
1986	o general comment and style cleanup
1987
19882020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
1989
1990	* VERSION (_MAKE_VERSION): 20200808
1991	Merge with NetBSD make, pick up
1992	o enum.[ch]: streamline, enums for use in flags and debug output
1993	o cond.c: cleanup
1994	o var.c: reduce duplicate code for modifiers
1995	debug logging for Var_Parse
1996	more detailed debug output
1997	o more unit tests
1998
19992020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
2000
2001	* unit-tests/Makefile: -r for recursive and include Makefile.inc
2002	so I can run tests in meta mode
2003	supress extra noise if in meta mode
2004
2005	* VERSION (_MAKE_VERSION): 20200806
2006	Merge with NetBSD make, pick up
2007	o parse.c: remove VARE_WANTRES for LINT
2008	we just want to check parsing (for now).
2009
20102020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
2011
2012	* VERSION (_MAKE_VERSION): 20200805
2013	Merge with NetBSD make, pick up
2014	o make.1: Rework the description of dependence operators
2015
20162020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
2017
2018	* VERSION (_MAKE_VERSION): 20200803
2019	Merge with NetBSD make, pick up
2020	o revert some C99 usage, for max portability
2021	o unit-tests/lint
2022
20232020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
2024
2025	* VERSION (_MAKE_VERSION): 20200802
2026	Merge with NetBSD make, pick up
2027	o more unit tests
2028
20292020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
2030
2031	* Remove NetBSD specific plumbing from unit-tests/Makefile
2032
2033	* VERSION (_MAKE_VERSION): 20200801
2034	Merge with NetBSD make, pick up
2035	o make Var_Value return const
2036	o size_t for buf sizes
2037	o optimize some buffer operations - avoid strlen
2038
20392020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
2040
2041	* VERSION (_MAKE_VERSION): 20200731
2042	Merge with NetBSD make, pick up
2043	o var.c: fix undefinded behavior for incomplete :t modifier
2044	  fixes unit-test/moderrs on Ubuntu
2045	o parse.c: When parsing variable assignments other than :=
2046	  if DEBUG(LINT) test substition of value, so we get a file and
2047	  line number in the resulting error.
2048	o dir.c: fix parsing of nested braces in dependency lines
2049	  add unit-tests
2050
20512020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
2052
2053	* VERSION (_MAKE_VERSION): 20200730
2054	Merge with NetBSD make, pick up
2055	o var.c: minor cleanup
2056	o unit-tests: more tests to improve code coverage
2057
20582020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
2059
2060	* VERSION (_MAKE_VERSION): 20200728
2061	Merge with NetBSD make, pick up
2062	o var.c: more optimizations
2063
20642020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
2065
2066	* VERSION (_MAKE_VERSION): 20200726
2067	Merge with NetBSD make, pick up
2068	o collapse lsd.lib into lst.c - reduce code size and allow inlining
2069	o lots of function comment updates
2070	o var.c: more optimizations
2071	o make return of Var_Parse const
2072
20732020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
2074
2075	* VERSION (_MAKE_VERSION): 20200720
2076	Merge with NetBSD make, pick up
2077	o DEBUG_HASH report stats at end and tone down the noise
2078	o var.c: each flag type gets its own prefix.
2079	move SysV string matching to var.c
2080	make ampersand in ${VAR:from=to&} an ordinary character
2081	cleanup and simplify implementation of modifiers
2082	o make.1: move documentation for assignment modifiers
2083
20842020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
2085
2086	* VERSION (_MAKE_VERSION): 20200718
2087	Merge with NetBSD make, pick up
2088	o DEBUG_HASH to see how well the hash tables are working
2089
20902020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
2091
2092	* bsd.after-import.mk: make sure we update unit-tests/Makefile
2093
20942020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
2095
2096	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
2097
2098	* VERSION (_MAKE_VERSION): 20200710
2099	Merge with NetBSD make, pick up
2100	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
2101	o meta.c: target flagged .META is out-of-date if meta file missing
2102
21032020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
2104
2105	* VERSION (_MAKE_VERSION): 20200709
2106	Merge with NetBSD make, pick up
2107	o cond.c: fix for compare_expression when doEval=0
2108	o unit-tests/Makefile: rework
2109	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
2110
21112020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
2112
2113	* VERSION (_MAKE_VERSION): 20200704
2114	Merge with NetBSD make, pick up
2115	(most of this by rillig@)
2116	o lots of style and white-space cleanup
2117	o lots more unit tests for variable modifiers
2118	o simplified description of some functions
2119	o str.c: refactor Str_Match
2120	o var.c: debugging output for :@
2121	  constify VarModify parameter
2122	  fix :hash modifier on 16-bit platforms
2123	  remove unnecessary forward declarations
2124	  refactor ApplyModifier_SysV to have less indentation
2125	  simplify code for :E and :R
2126	  clean up code for :H and :T
2127	  refactor ApplyModifiers
2128
2129	* var.c: we need stdint.h on some platforms to get uint32_t
2130	* unit-test/Makefile: we need to supress the specific error
2131	for RE substitution error in modmisc, since it varies accross
2132	different OS.
2133
21342020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
2135
2136	* VERSION (_MAKE_VERSION): 20200702
2137	Merge with NetBSD make, pick up
2138	o var.c: more improvements to avoiding unnecessary evaluation
2139	use enums for flags
2140	o remove flags arg to Var_Set which outside of var.c is always 0
2141
21422020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
2143
2144	* VERSION (_MAKE_VERSION): 20200701
2145	Merge with NetBSD make, pick up
2146	o var.c: with change to cond.c; ensure that nested variables
2147	within a variable name are expanded.
2148	o unit-tests/varmisc.mk: test for nested varname
2149
21502020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
2151
2152	* VERSION (_MAKE_VERSION): 20200629
2153	Merge with NetBSD make, pick up
2154	o cond.c: do not eval unnecessary terms of conditionals.
2155
21562020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
2157
2158	* VERSION (_MAKE_VERSION): 20200625
2159	Merge with NetBSD make, pick up
2160	o meta.c: report error if lseek in filemon_read fails
2161
21622020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
2163
2164	* VERSION (_MAKE_VERSION): 20200622
2165	Merge with NetBSD make, pick up
2166	o dieQuietly: ignore OP_SUBMAKE as too aggressive
2167
21682020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
2169
2170	* VERSION (_MAKE_VERSION): 20200619
2171	Merge with NetBSD make, pick up
2172	o str.c: performance improvement for Str_Match for multiple '*'
2173	o dieQuietly: supress the failure output from make
2174	when failing node is a sub-make or a sibling failed.
2175	This cuts down greatly on unhelpful noise at the end of
2176	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
2177
21782020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
2179
2180	* FILES: add LICENSE to appease some packagers.
2181	This is an attempt to fairly represent the license on almost
2182	200 files, which are almost all BSD-3-Clause
2183	The few exceptions being more liberal.
2184
2185	* VERSION (_MAKE_VERSION): 20200610
2186	Merge with NetBSD make, pick up
2187	o unit test for :Or
2188
21892020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
2190
2191	* VERSION (_MAKE_VERSION): 20200606
2192	Merge with NetBSD make, pick up
2193	o make.1: cleanup
2194
2195	* Makefile: fix depends for main.o which broke MAKE_VERSION
2196
21972020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
2198
2199	* VERSION (_MAKE_VERSION): 20200605
2200	Merge with NetBSD make, pick up
2201	o dir.c: cached_stats - don't confuse stat and lstat results.
2202	o var.c: add :Or for reverse sort.
2203
22042020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
2205
2206	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
2207	also if --with-filemon= specifies path to filemon.h
2208	set use_filemon=dev
2209	* dirname.c: remove include of namespace.h
2210
22112020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
2212
2213	* VERSION (_MAKE_VERSION): 20200517
2214	Merge with NetBSD make, pick up
2215	o modified dollar tests to avoid shell dependencies
2216	o new tests for .INCLUDEFROM
2217
22182020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
2219
2220	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
2221	to not depend so much on shell behavior
2222
22232020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
2224
2225	* VERSION (_MAKE_VERSION): 20200510
2226	Merge with NetBSD make, pick up
2227	o unit test for dollar handling
2228
22292020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
2230
2231	* VERSION (_MAKE_VERSION): 20200506
2232	Merge with NetBSD make, pick up
2233	o str.c: empty string does not match % pattern
2234	  plus unit-test changes
2235
22362020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
2237
2238	* VERSION (_MAKE_VERSION): 20200504
2239	May the 4th be with you
2240	Merge with NetBSD make, pick up
2241	o var.c: import handling of old sysV style modifier using '%'
2242	o str.c: refactor brk_string
2243	o unit-tests: add test case for lazy conditions
2244
22452020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
2246
2247	* VERSION (_MAKE_VERSION): 20200418
2248
2249	* configure.in: use_makefile=no for Cygwin et al.
2250	case insensitive filesystems just don't work if both
2251	makefile and Makefile exist.
2252	NOTE: bmake does not support Cygwin and likely never will,
2253	but if brave souls want to try it - help them out.
2254
22552020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
2256
2257	* VERSION (_MAKE_VERSION): 20200402
2258	Merge with NetBSD make, pick up
2259	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
2260	  a blank command is perfectly valid.
2261
22622020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
2263
2264	* VERSION (_MAKE_VERSION): 20200330
2265	Merge with NetBSD make, pick up
2266	o make.h: extern debug_file
2267
22682020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
2269
2270	* VERSION (_MAKE_VERSION): 20200318
2271	Merge with NetBSD make, pick up
2272	o meta.c: meta_oodate, check for corrupted meta file
2273	  earlier and more often.
2274
22752020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
2276
2277	* VERSION (_MAKE_VERSION): 20200220
2278
22792020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
2280
2281	* boot-strap: unset MAKEFLAGS
2282
22832020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
2284
2285	* VERSION (_MAKE_VERSION): 20200212
2286	* meta.c: meta_compat_parent check for USE_FILEMON
2287	  patch from Soeren Tempel
2288
22892020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
2290
2291	* VERSION: 20200205
2292	Merge with NetBSD make, pick up
2293	o meta.c: fix compat mode, need to call meta_job_output()
2294	o job.c: extra fds for meta mode not needed if using filemon_dev
2295
22962020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
2297
2298	* VERSION: 20200122
2299	Merge with NetBSD make, pick up
2300	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
2301	  returns FALSE.
2302
23032020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
2304
2305	* VERSION: 20200121
2306	Merge with NetBSD make, pick up
2307	o filemon/filemon_{dev,ktrace}.c: allow selection of
2308	  filemon implementation.  filemon_dev.c uses the kernel module
2309	  while filemon_ktrace.c leverages the fktrace api available in
2310	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
2311	  adding support for other tracing mechanisms such as strace on
2312	  Linux.
2313	o meta.c: when target is out-of-date per normal make rules
2314	  record value of .OODATE in meta file.
2315
23162019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
2317
2318	* VERSION: 20190926
2319	  Merge with NetBSD make, pick up
2320	  o parse.c: don't pass NULL to realpath(3)
2321	    some versions cannot handle it.
2322
23232019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
2324
2325	* VERSION: 20190409
2326	  Merge with NetBSD make, pick up
2327	  o parse.c: ParseDoDependency: free paths rather than assert
2328
23292018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
2330
2331	* VERSION: 20181222
2332
2333	* configure.in: add --without-makefile to avoid generating
2334	  makefile and make-bootstrap.sh
2335
2336	* include Makefile.inc if it exists
2337
2338	* Use Makefile and Makefile.config.in in unit-tests
2339	  so we can use just: make obj && make && make test
2340	  when bmake is already available.
2341	  We add --without-makefile to CONFIGURE_ARGS in this case.
2342
2343	* tweak bsd.after-import.mk (captures Makefile.config etc
2344	  after import to FreeBSD for example) to cope with all the above.
2345
23462018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
2347
2348	* VERSION: 20181221
2349	  Merge with NetBSD make, pick up
2350	  o parse.c: ParseVErrorInternal use .PARSEDIR
2351	    and apply if relative, and then use .PARSEFILE
2352	    for consistent result.
2353
23542018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
2355
2356	* VERSION: 20181220
2357	  Merge with NetBSD make, pick up
2358	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
2359	    is relative
2360	  o var.c: avoid SEGFAULT in .unexport-env
2361	    when MAKELEVEL is not set
2362
23632018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
2364
2365	* VERSION: 20181216
2366	  Merge with NetBSD make, pick up
2367	  o fix for unit-tests/varquote.mk on Debian
2368
23692018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2370
2371	* VERSION: 20180919
2372	  Merge with NetBSD make, pick up
2373	  o var.c: add :q
2374	  o dir.c: cleanup caching of stats
2375
23762018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
2377
2378	* Makefile.config.in: use += where it makes sense.
2379
23802018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2381
2382	* VERSION: 20180512
2383	  Merge with NetBSD make, pick up
2384	  o job.c: skip polling job token pipe
2385
23862018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2387
2388	* VERSION: 20180405
2389	  Merge with NetBSD make, pick up
2390	  o parse.c: be more cautious about detecting depenency line
2391	    rather than sysV style include.
2392
23932018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2394
2395	* VERSION: 20180222
2396	  Merge with NetBSD make, pick up
2397	  o parse.c: avoid calling sysconf for every call to loadfile
2398
23992018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2400
2401	* VERSION: 20180218
2402	  Merge with NetBSD make, pick up
2403	  o var.c: Var_Set handle NULL value anytime.
2404
24052018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2406
2407	* VERSION: 20180212
2408	  Merge with NetBSD make, pick up
2409	  o parse.c: do not treat .info as warning with -W
2410
24112017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2412
2413	* VERSION: 20171207
2414	  Merge with NetBSD make, pick up
2415	  o var.c: Var_Append use Var_Set if var not previously set
2416	    so that VAR_CMD is handled correctly.
2417	    Add a suitable unit-test.
2418
24192017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2420
2421	* VERSION (_MAKE_VERSION): 20171126
2422
2423	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
2424	  since AC_TRY_COMPILE puts input inside main()
2425	  which upsets modern compilers.
2426
24272017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2428
2429	* VERSION: 20171118
2430	  Merge with NetBSD make, pick up
2431	  o var.c: do not append to variable set on command line
2432	    add unit-test to catch this.
2433
24342017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2435
2436	* VERSION: 20171028
2437	  Merge with NetBSD make, pick up
2438	  o main.c: ignore empty MAKEOBJDIR
2439
2440	* Makefile.config.in:
2441	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
2442
24432017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2444
2445	* VERSION: 20171005
2446
2447	* unit-tests/dotwait.mk: redirect stderr through pipe for more
2448	  consistent result on some platforms.
2449
24502017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2451
2452	* machine.sh: entry for AIX
2453
24542017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2455
2456	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
2457	  to a file that can be included by configure as well as make.
2458	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
2459
24602017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2461
2462	* Makefile (_MAKE_VERSION): 20170810
2463	  Merge with NetBSD make, pick up
2464	  o meta.c: if target is in subdir we only need subdir name in
2465	    meta_name.
2466
24672017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2468
2469	* Makefile (_MAKE_VERSION): 20170720
2470	  Merge with NetBSD make, pick up
2471	  o compat.c: pass SIGINT etc onto child and wait for it to exit
2472	    before we self-terminate.
2473
24742017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2475
2476	* Makefile (_MAKE_VERSION): 20170711
2477	  forgot to update after merge on 20170708 ;-)
2478	  o main.c: refactor to reduce size of main function.
2479	    add -v option to always fully expand values.
2480	  o meta.c: ensure command output in meta file has ending newline
2481	    even when filemon not being used.
2482	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
2483	    pathname via ':L' since any ':' in pathname breaks that.
2484	    Instead set a '${.p.}' to pathname in the target context and
2485	    use that.
2486
24872017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2488
2489	* Makefile (_MAKE_VERSION): 20170510
2490	  Merge with NetBSD make, pick up
2491	  o main.c: Main_SetObjdir: ensure buf2 is in scope
2492
24932017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2494
2495	* Makefile (_MAKE_VERSION): 20170505
2496	  see mk/ChangeLog
2497
24982017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2499
2500	* parse.c: not everyone has stdint.h
2501
25022017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2503
2504	* Makefile (_MAKE_VERSION): 20170501
2505	  see mk/ChangeLog
2506
25072017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2508
2509	* Makefile (_MAKE_VERSION): 20170421
2510	  Merge with NetBSD make, pick up
2511	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
2512
25132017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2514
2515	* Makefile (_MAKE_VERSION): 20170420
2516	  Merge with NetBSD make, pick up
2517	  o main.c: only use -C arg "as is" if it contains no
2518	    relative component.
2519
25202017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2521
2522	* Makefile (_MAKE_VERSION): 20170418
2523	  Merge with NetBSD make, pick up
2524	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2525
25262017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2527
2528	* Makefile (_MAKE_VERSION): 20170417
2529	  Merge with NetBSD make, pick up
2530	  o fixes a number of coverity complaints
2531	    - check return value of fseek, fcntl
2532	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
2533	      JobPrintCommand, ParseTraditionalInclude
2534	    - use bmake_malloc() where NULL is not tollerated
2535	    - use MAKE_ATTR_UNUSED rather that kludges like
2536	      return(unused ? 0 : 0)
2537	    - use purge_cached_realpaths() rather than abuse cached_realpath()
2538
25392017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2540
2541	* Makefile (_MAKE_VERSION): 20170413
2542	  Merge with NetBSD make, pick up
2543	  o main.c: when setting .OBJDIR ignore '$' in paths.
2544
2545	* job.c: use MALLOC_OPTIONS to set malloc_options.
2546
25472017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2548
2549	* Makefile (_MAKE_VERSION): 20170411
2550	  Merge with NetBSD make, pick up
2551	  o str.c: Str_Match: allow [^a-z] to behave as expected.
2552
25532017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2554
2555	* Makefile (_MAKE_VERSION): 20170326
2556	  Merge with NetBSD make, pick up
2557	  o main.c: purge relative paths from realpath cache when .OBJDIR
2558	    is changed.
2559
25602017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2561
2562	* Makefile (_MAKE_VERSION): 20170311
2563	  Merge with NetBSD make, pick up
2564          o main.c: only use -C arg "as is" if it starts with '/'.
2565
25662017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2567
2568	* Makefile (_MAKE_VERSION): 20170301
2569	  Merge with NetBSD make, pick up
2570	  o main.c: use -C arg "as is" rather than getcwd()
2571	    if they identify the same directory.
2572	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
2573
25742017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2575
2576	* Makefile (_MAKE_VERSION): 20170201
2577	  Merge with NetBSD make, pick up
2578	  o var.c: allow :_=var and avoid use of special context.
2579
25802017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2581
2582	* Makefile (_MAKE_VERSION): 20170130
2583	  Merge with NetBSD make, pick up
2584	  o var.c: add :range and :_
2585	  o main.c: partially initialize Dir_* before MainParseArgs()
2586	    can be called.
2587	    If -V, skip Main_ExportMAKEFLAGS()
2588
25892017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2590
2591	* Makefile (_MAKE_VERSION): 20170114
2592	  Merge with NetBSD make, pick up
2593	  o var.c: allow specifying the utc value used by :{gm,local}time
2594
25952016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2596
2597	* Makefile (_MAKE_VERSION): 20161212
2598	  Merge with NetBSD make, pick up
2599          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2600
26012016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2602
2603	* Makefile (_MAKE_VERSION): 20161209
2604	  Merge with NetBSD make, pick up
2605	  o main.c: cleanup setting of .OBJDIR
2606	  o parse.c: avoid coredump from (var)=val
2607
26082016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2609
2610	* Makefile (_MAKE_VERSION): 20161126
2611	  Merge with NetBSD make, pick up
2612	  o make.c: Make_OODate: report src node name if path not set
2613
26142016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2615
2616	* Makefile (_MAKE_VERSION): 20160926
2617	  Merge with NetBSD make, pick up
2618	  o support for .DELETE_ON_ERROR: (remove targets that fail)
2619
26202016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2621
2622	* Makefile MAN: tweak .Dt to match ${PROG}
2623
26242016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2625
2626	* Makefile (_MAKE_VERSION): 20160818
2627	  its a neater number; pick up whitespace fixes to man page.
2628
26292016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2630
2631	* Makefile (_MAKE_VERSION): 20160817
2632	  Merge with NetBSD make, pick up
2633	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
2634	    so we can call it before adding entries to missingFiles.
2635	    Thus we do not track files we have been told to ignore.
2636
26372016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2638
2639	* Makefile (_MAKE_VERSION): 20160815
2640	  Merge with NetBSD make, pick up
2641	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
2642	    pathnames, and skip if the expansion is empty.
2643	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
2644
26452016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2646
2647	* Makefile (_MAKE_VERSION): 20160812
2648	  Merge with NetBSD make, pick up
2649	  o meta.c: remove all missingFiles entries that match a deleted
2650	    dir.
2651	  o main.c: set .ERROR_CMD if possible.
2652
26532016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2654
2655	* Makefile (_MAKE_VERSION): 20160606
2656	  Merge with NetBSD make, pick up
2657	  o dir.c: extend mtimes cache to others via cached_stat()
2658
26592016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2660
2661	* Makefile (_MAKE_VERSION): 20160604
2662	  Merge with NetBSD make, pick up
2663	  o meta.c: missing filemon data is only relevant if we read a
2664	    meta file.
2665	    Also do not return oodate for a missing metafile if gn->path
2666	    points to .CURDIR
2667
26682016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2669
2670	* Makefile (_MAKE_VERSION): 20160602
2671	  Merge with NetBSD make, pick up
2672	  o cached_realpath(): avoid hitting filesystem more than necessary.
2673	  o meta.c: refactor need_meta decision, add knobs for
2674	    missing meta file and filemon data wrt out-of-datedness.
2675
26762016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2677
2678	* Makefile (_MAKE_VERSION): 20160528
2679
2680	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2681
26822016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2683
2684	* Makefile (_MAKE_VERSION): 20160512
2685	  Merge with NetBSD make, pick up
2686	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
2687	    this is useful for gcov builds.
2688	  o propagate errors from filemon(4).
2689
26902016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2691
2692	* Makefile (_MAKE_VERSION): 20160509
2693	  Merge with NetBSD make, pick up
2694	  o remove use of non-standard types u_int etc.
2695	  o meta.c: apply realpath() before matching against metaIgnorePaths
2696
26972016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2698
2699	* Makefile (_MAKE_VERSION): 20160404
2700	  Merge with NetBSD make, pick up
2701	  o allow makefile to set .MAKE.JOBS
2702
2703	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
2704
27052016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2706
2707	* Makefile (_MAKE_VERSION): 20160315
2708	  Merge with NetBSD make, pick up
2709	  o fix handling of archive members
2710
27112016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2712
2713	* Makefile (_MAKE_VERSION): rename variable to avoid interference
2714	  with checks for ${MAKE_VERSION}
2715
27162016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2717
2718	* Makefile (MAKE_VERSION): 20160310
2719	  Merge with NetBSD make, pick up
2720	  o meta.c: treat missing Read file same as Write, incase we Delete it.
2721
27222016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2723
2724	* Makefile (MAKE_VERSION): 20160307
2725	  Merge with NetBSD make, pick up
2726	  o var.c: fix :ts\nnn to be octal by default.
2727	  o meta.c: meta_finish() to cleanup memory.
2728
27292016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2730
2731	* Makefile (MAKE_VERSION): 20160226
2732	  Merge with NetBSD make, pick up
2733	  o meta.c: allow meta file for makeDepend if makefiles want it.
2734
27352016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2736
2737	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
2738	  for backwards compatability.
2739
2740	* Makefile (MAKE_VERSION): 20160220
2741	  Merge with NetBSD make, pick up
2742	  o var.c: add knob to control handling of '$$' in :=
2743
27442016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2745
2746	* Makefile (MAKE_VERSION): 20160218
2747	  Merge with NetBSD make, pick up
2748	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
2749	    post the changes to Var_Subst.
2750	    Var_Subst now takes flags, and does not consume '$$' in :=
2751
27522016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2753
2754	* Makefile (MAKE_VERSION): 20160217
2755	  Merge with NetBSD make, pick up
2756	  o var.c: preserve '$$' in :=
2757	  o parse.c: add .dinclude for handling included
2758	    makefile like .depend
2759
27602015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2761
2762	* Makefile (MAKE_VERSION): 20151220
2763	  Merge with NetBSD make, pick up
2764	  o suff.c: re-initialize suffNull when clearing suffixes.
2765
27662015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2767
2768	* Makefile (MAKE_VERSION): 20151201
2769	  Merge with NetBSD make, pick up
2770	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
2771	  o meta.c: meta_oodate: use lstat(2) for checking link target
2772	    in case it is a symlink.
2773	  o var.c: avoid calling brk_string and Var_Export1 with empty
2774	    strings.
2775
27762015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2777
2778	* Makefile (MAKE_VERSION): 20151126
2779	  Merge with NetBSD make, pick up
2780	  o parse.c: ParseTrackInput don't access beyond
2781	    end of old value.
2782
27832015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2784
2785	* Makefile (MAKE_VERSION): 20151022
2786
2787	* Add support for BSD/OS which lacks inttypes.h
2788	  and really needs sys/param.h for sys/sysctl.h
2789	  also 'type' is not a shell builtin.
2790
2791	* var.c: eliminate uint32_t and need for inttypes.h
2792
2793	* main.c: PrintOnError flush stdout before run .ERROR
2794
2795	* parse.c: cope with _SC_PAGESIZE not being defined.
2796
2797
27982015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2799
2800	* Makefile (MAKE_VERSION): 20151020
2801	  Merge with NetBSD make, pick up
2802	  o var.c: fix uninitialized var
2803
28042015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2805
2806	* var.c: the conditional expressions used with ':?' can be
2807	expensive, if already discarding do not evaluate or expand
2808	anything.
2809
28102015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2811
2812	* Makefile (MAKE_VERSION): 20151010
2813	  Merge with NetBSD make, pick up
2814	  o Add Boolean wantit flag to Var_Subst and Var_Parse
2815	    when FALSE we know we are discarding the result and can
2816	    skip operations like Cmd_Exec.
2817
28182015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2819
2820	* Makefile (MAKE_VERSION): 20151009
2821	  Merge with NetBSD make, pick up
2822	  o var.c: don't check for NULL before free()
2823	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
2824
28252015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2826
2827	* Makefile (MAKE_VERSION): 20150910
2828	  Merge with NetBSD make, pick up
2829	  o main.c: with -w print Enter/Leaving messages for objdir too
2830	    if necessary.
2831	  o centralize shell metachar handling
2832
2833	* FILES: add metachar.[ch]
2834
28352015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2836
2837	* Makefile (MAKE_VERSION): 20150606
2838	  Merge with NetBSD make, pick up
2839	  o make.1: document .OBJDIR target
2840
28412015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2842
2843	* Makefile (MAKE_VERSION): 20150505
2844	  Merge with NetBSD make, pick up
2845	  o cond.c: be strict about lhs of comparison when evaluating .if
2846	    but less so when called from variable expansion.
2847	  o unit-tests/cond2.mk: test various error conditions
2848
28492015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2850
2851	* machine.sh (MACHINE): Add Bitrig
2852	  patch from joerg@netbsd.org
2853
28542015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2855
2856	* Makefile (MAKE_VERSION): 20150418
2857	  Merge with NetBSD make, pick up
2858	  o job.c: use memmove() rather than memcpy()
2859
2860	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2861	  case, so skip it.
2862
28632015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2864
2865	* Makefile (MAKE_VERSION): 20150411
2866	  bump version - only mk/ changes.
2867
28682015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2869
2870	* Makefile (MAKE_VERSION): 20150410
2871	  Merge with NetBSD make, pick up
2872	  o document different handling of '-' in jobs mode vs compat
2873	  o fix jobs mode so that '-' only applies to whole job
2874	    when shell lacks hasErrCtl
2875	  o meta.c: use separate vars to track lcwd and latestdir (read)
2876	    per process
2877
28782015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2879
2880	* Makefile (MAKE_VERSION): 20150401
2881	  Merge with NetBSD make, pick up
2882	  o meta.c: close meta file in child
2883
2884	* Makefile: use BINDIR.bmake if set.
2885	  Same for MANDIR and SHAREDIR
2886	  Handy for testing release candidates
2887	  in various environments.
2888
28892015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2890
2891	* move initialization of savederr to block where it is used
2892	  to avoid spurious warning from gcc5
2893
28942014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2895
2896	* Makefile (MAKE_VERSION): 20141111
2897	  just a cooler number
2898
28992014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2900
2901	* Makefile (MAKE_VERSION): 20141105
2902	  Merge with NetBSD make, pick up
2903	  o revert major overhaul of suffix handling
2904	    and POSIX compliance - too much breakage
2905	    and impossible to make backwards compatible.
2906	  o we still have the new unit test structure which is ok.
2907	  o meta.c ensure "-- filemon" is at start of line.
2908
29092014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2910
2911	* configure.in: test that result of getconf PATH_MAX is numeric
2912	  and discard if not.  Apparently needed for Hurd.
2913
29142014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2915
2916	* Makefile (MAKE_VERSION): 20140830
2917	  Merge with NetBSD make, pick up
2918	  o major overhaul of suffix handling
2919	  o improved POSIX compliance
2920	  o overhauled unit-tests
2921
29222014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2923
2924	* Makefile (MAKE_VERSION): 20140620
2925	  Merge with NetBSD make, pick up
2926	  o var.c return varNoError rather than var_Error for ::= modifiers.
2927
29282014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2929
2930	* Makefile (MAKE_VERSION): 20140522
2931	  Merge with NetBSD make, pick up
2932	  o var.c detect some parse errors.
2933
29342014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2935
2936	* Fix spelling errors - patch from Pedro Giffuni
2937
29382014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2939
2940	* Makefile (MAKE_VERSION): 20140214
2941	  Merge with NetBSD make, pick up
2942	  o .INCLUDEFROM*
2943	  o use Var_Value to get MAKEOBJDIR[PREFIX]
2944	  o reduced realloc'ign in brk_string.
2945	* configure.in: add a check for compiler supporting __func__
2946
29472014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2948
2949	* boot-strap: ignore mksrc=none
2950
29512014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2952
2953	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
2954
29552014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2956
2957	* Makefile (MAKE_VERSION): 20140101
2958	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
2959	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
2960	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
2961	  Hurd)
2962	* configure.in: Add AC_PREREQ and check for
2963	  sysctl; patch from Andrew Shadura andrewsh at debian.org
2964
29652013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2966
2967	* Makefile (MAKE_VERSION): 20131010
2968	* lose the const from arg to systcl to avoid problems on older BSDs.
2969
29702013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2971
2972	* Makefile (MAKE_VERSION): 20131001
2973	  Merge with NetBSD make, pick up
2974	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
2975	    hw.machine_arch if necessary.
2976	  o meta.c: meta_oodate - need to look at src of Link and target
2977	    of Move as well.
2978	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
2979	  provide __arraycount() if needed.
2980
29812013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2982
2983	* Makefile (MAKE_VERSION): 20130904
2984	  Merge with NetBSD make, pick up
2985	  o Add VAR_INTERNAL context, so that internal setting of
2986	    MAKEFILE does not override value set by makefiles.
2987
29882013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2989
2990	* Makefile (MAKE_VERSION): 20130902
2991	  Merge with NetBSD make, pick up
2992	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
2993
29942013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2995
2996	* Makefile (MAKE_VERSION): 20130828
2997	  Merge with NetBSD make, pick up
2998	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
2999	  o Call Job_SetPrefix() from Job_Init() so makefiles have
3000	    opportunity to set .MAKE.JOB.PREFIX
3001
30022013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3003
3004	* Makefile (MAKE_VERSION): 20130730
3005	  Merge with NetBSD make, pick up
3006	  o Allow suppression of --- job -- tokens by setting
3007	    .MAKE.JOB.PREFIX empty.
3008
30092013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3010
3011	* Makefile (MAKE_VERSION): 20130716
3012	  Merge with NetBSD make, pick up
3013	  o number of gmake compatibility tweaks
3014	    -w for gmake style entering/leaving messages
3015	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
3016	    handle MAKEFLAGS containing only letters.
3017	  o when overriding a GLOBAL variable on the command line,
3018	    delete it from GLOBAL context so -V doesn't show the wrong
3019	    value.
3020
30212013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3022
3023	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
3024
3025	* Makefile (MAKE_VERSION): 20130706
3026	  Merge with NetBSD make, pick up
3027	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
3028	    true so that CompatRunCommand() can use it, to ensure
3029	    consistent behavior with jobs mode.
3030	  o use MAKE_LEVEL_ENV to define the variable to propagate
3031	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
3032	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
3033	    paths to ignore.
3034
30352013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3036
3037	* Makefile (MAKE_VERSION): 20130604
3038	  Merge with NetBSD make, pick up
3039	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
3040	    to avoid leaking descriptors.
3041
30422013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3043
3044	* Makefile (MAKE_VERSION): 20130528
3045	  Merge with NetBSD make, pick up
3046	  o var.c: cleanup some left-overs in VarHash()
3047
30482013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3049
3050	* Makefile (MAKE_VERSION): 20130520
3051	  generate manifest from component FILES rather than have to
3052	  update FILES when mk/FILES changes.
3053
30542013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3055
3056	* Makefile (MAKE_VERSION): 20130518
3057	  Merge with NetBSD make, pick up
3058	  o suff.c: don't skip all processsing for .PHONY targets
3059	    else wildcard srcs do not get expanded.
3060	  o var.c: expand name of variable to delete if necessary.
3061
30622013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3063
3064	* Makefile (MAKE_VERSION): 20130330
3065	  Merge with NetBSD make, pick up
3066	  o meta.c: refine the handling of .OODATE in commands.
3067	    Rather than suppress command comparison for the entire script
3068	    as though .NOMETA_CMP had been used, only suppress it for the
3069	    one command line.
3070	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
3071	    suppress comparison of a command without otherwise affecting it.
3072	  o make.1: document that
3073
30742013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3075
3076	* Makefile (MAKE_VERSION): 20130321
3077	  yes, not quite right but its a cooler number.
3078	  Merge with NetBSD make, pick up
3079	  o parse.c: fix ParseGmakeExport to be portable
3080	    and add a unit-test.
3081	* meta.c: call meta_init() before makefiles are read and if built
3082	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
3083	  this let's makefiles test for support.
3084	  Call meta_mode_init() to process .MAKE.MODE.
3085
30862013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3087
3088	* Makefile (MAKE_VERSION): 20130305
3089	  Merge with NetBSD make, pick up
3090	  o run .STALE: target when a dependency from .depend is missing.
3091	  o job.c: add Job_RunTarget() for the above and .BEGIN
3092
30932013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3094
3095	* Makefile (MAKE_VERSION): 20130303
3096	  Merge with NetBSD make, pick up
3097	  o main.c: set .MAKE.OS to utsname.sysname
3098	  o job.c: more checks for read and poll errors
3099	  o var.c: lose VarChangeCase() saves 4% time
3100
31012013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3102
3103	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
3104	  want to use MAKEOBJDIR
3105
31062013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3107
3108	* Merge with NetBSD make, pick up
3109	  o make.1: more info on how shell commands are handled.
3110	  o job.c,main.c: detect write errors to job pipes.
3111
31122013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3113
3114	* Makefile (MAKE_VERSION): 20130123
3115	  Merge with NetBSD make, pick up
3116	  o meta.c: if script uses .OODATE and meta_oodate() decides
3117	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
3118	  o var.c: in debug output indicate which variabale modifiers
3119	    apply to.
3120	  o remove Check_Cwd logic the makefiles have been fixed.
3121
31222012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3123
3124	* makefile.in: add a simple makefile for folk who insist on
3125	  ./configure; make; make install
3126	  it just runs boot-strap
3127	* include mk/* to accommodate the above
3128	* boot-strap:  re-work to accommodate the above
3129	  mksrc defaults to $Mydir/mk
3130	  allow op={configure,build,install,clean,all}
3131	  add options to facilitate install
3132	* Makefile.config.in: just the bits set by configure
3133	* Makefile: bump version to 20121212
3134	  abandon Makefile.in (NetBSD Makefile)
3135	  leverage mk/* instead
3136	* configure.in: ensure srcdir is absolute
3137
31382012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3139
3140	* Makefile.in (MAKE_VERSION): 20121111
3141	  fix generation of bmake.cat1
3142
31432012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3144
3145	* Makefile.in (MAKE_VERSION): 20121109
3146	  Merge with NetBSD make, pick up
3147	  o make.c: MakeBuildChild: return 0 so search continues if a
3148	    .ORDER dependency is detected.
3149	  o unit-tests/order: test the above
3150
31512012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3152
3153	* Makefile.in (MAKE_VERSION): 20121102
3154	  Merge with NetBSD make, pick up
3155	  o cond.c: allow cond_state[] to grow.
3156	    In meta mode with a very large tree, we can hit the limit
3157	    while processing dirdeps.
3158
31592012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3160
3161	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
3162
31632012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3164
3165	* Makefile.in (MAKE_VERSION): 20121010
3166	  o protect syntax that only bmake parses correctly.
3167	  o remove auto setting of FORCE_MACHINE, use configure's
3168	    --with-force-machine=whatever if that is desired.
3169
31702012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3171
3172	* Makefile.in: do not lose history from make.1 when generating bmake.1
3173
31742012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3175
3176	* Makefile.in (MAKE_VERSION): 20121007
3177	  Merge with NetBSD make, pick up
3178	  o compat.c: ignore empty commands - same as jobs mode.
3179	  o make.1: document meta chars that cause use of shell
3180
31812012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3182
3183	* Makefile.in (MAKE_VERSION): bump version to 20120911
3184	* bsd.after-import.mk: include Makefile.inc early and allow it to
3185	  override PROG
3186
31872012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
3188
3189	* Makefile.in (MAKE_VERSION): bump version to 20120831
3190	  Merge with NetBSD make, pick up
3191	  o cast sizeof() to int for comparison
3192	  o minor make.1 tweak
3193
31942012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3195
3196	* Makefile.in (MAKE_VERSION): bump version to 20120830
3197	  Merge with NetBSD make, pick up
3198	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
3199	  o debug flag -dV causes -V to show raw value regardless.
3200
32012012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3202
3203	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
3204	  gets SRCTOP set.
3205
32062012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3207
3208	* Makefile.in (MAKE_VERSION): bump version to 20120704
3209	  Merge with NetBSD make, pick up
3210	  o Job_ParseShell should call Shell_Init if it has been
3211	    previously called.
3212	* Makefile.in: set USE_META based on configure result.
3213	  also .PARSEDIR is safer indicator of bmake.
3214
32152012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3216
3217	* Makefile.in: bump version to 20120626
3218	  ensure CPPFLAGS is in CFLAGS
3219	* meta.c: avoid nested externs
3220	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
3221
32222012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3223
3224	* Makefile.in (MAKE_VERSION): bump version to 20120620
3225	  Merge with NetBSD make, pick up
3226	  o make_malloc.c: avoid including make_malloc.h again
3227
3228	* Makefile.in: avoid bmake only syntax or protect with
3229	  .if defined(.MAKE.LEVEL)
3230	* bsd.after-import.mk: replace .-include with .sinclude
3231	  ensure? SRCTOP gets a value
3232	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
3233
32342012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3235
3236	* Makefile.in (MAKE_VERSION): bump version to 20120612
3237	  Merge with NetBSD make, pick up
3238	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
3239	    for greater portability.
3240	  o unit-tests/forloop: check that .for works as expected wrt
3241	    number of times and with "quoted strings".
3242
32432012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3244
3245	* Makefile.in (MAKE_VERSION): bump version to 20120606
3246	  Merge with NetBSD make, pick up
3247	  o compat.c: use kill(2) rather than raise(3).
3248	* configure.in: look for sys/dev/filemon
3249	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
3250	  and pass BOOTSTRAP_XTRAS to boot-strap.
3251
32522012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3253
3254	* Makefile.in (MAKE_VERSION): bump version to 20120604
3255	  Merge with NetBSD make, pick up
3256	  o util.c and var.c share same var for tracking if environ
3257	    has been reallocated.
3258	  o util.c provide getenv with setenv.
3259	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
3260	  when the shell actively strips .MAKE.* from the environment.
3261	  We still refer to the variable always as .MAKE.LEVEL
3262	* util.c fix bug in findenv() was finding prefix of name.
3263	* compat.c: re-raising SIGINT etc after running .INTERRUPT
3264	  results in more reliable termination of all activity on many
3265	  platforms.
3266
32672012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3268
3269	* Makefile.in (MAKE_VERSION): bump version to 20120602
3270	  Merge with NetBSD make, pick up
3271	  o for.c: handle quoted items in .for list
3272
32732012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3274
3275	* Makefile.in (MAKE_VERSION): bump version to 20120530
3276	  Merge with NetBSD make, pick up
3277	  o compat.c: ignore empty command.
3278
32792012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3280
3281	* Makefile.in (MAKE_VERSION): bump version to 20120524
3282	* FILES: add bsd.after-import.mk:
3283	  A simple means of integrating bmake into a BSD build system.
3284
32852012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3286
3287	* Makefile.in (MAKE_VERSION): bump version to 20120520
3288	  Merge with NetBSD make, pick up
3289	  o increased limit for nested conditionals.
3290
32912012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3292
3293	* Makefile.in (MAKE_VERSION): bump version to 20120518
3294	  Merge with NetBSD make, pick up
3295	  o use _exit(2) in signal hanlder
3296	  o Don't use the [dir] cache when building nodes that might have
3297	    changed since the last exec.
3298	  o Avoid nested extern declaration warnings.
3299
33002012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3301
3302	* meta.c (fgetLine): avoid %z - not portable.
3303	* parse.c: Since we moved include of sys/mman.h
3304	  and def's of MAP_COPY etc. we got dups from a merge.
3305
33062012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3307
3308	* Makefile.in (MAKE_VERSION): bump version to 20120420
3309	  Merge with NetBSD make, pick up
3310	  o restore duplicate supression in .MAKE.MAKEFILES
3311	    runtime saving can be significant.
3312	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
3313	    consumption up to 20%.
3314
33152012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3316
3317	* Makefile.in (MAKE_VERSION): bump version to 20120420
3318          Merge with NetBSD make, pick up
3319	  o remove duplicate supression in .MAKE.MAKEFILES
3320	  o improved dir cache behavior
3321	  o gmake'ish export command
3322
33232012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3324
3325	* Makefile.in (MAKE_VERSION): bump version to 20120325
3326	  Merge with NetBSD make, pick up
3327	  o fix parsing of :[#] in conditionals.
3328
33292012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3330
3331	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
3332	  since some systems cannot cope with .Nx <version>
3333
33342011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3335
3336	* Makefile.in (MAKE_VERSION): bump version to 20111111
3337	  Merge with NetBSD make, pick up
3338	  o debug output for .PARSEDIR and .PARSEFILE
3339
33402011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3341
3342	* Makefile.in (MAKE_VERSION):  bump version to 20111010
3343
33442011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3345
3346	* boot-strap: check for an expected file in the dirs we look for.
3347	* make-bootstrap.sh: pass on LDSTATIC
3348
33492011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3350
3351	* Makefile.in (MAKE_VERSION): bump version to 20111001
3352	  Merge with NetBSD make, pick up
3353	  o ensure .PREFIX is set for .PHONY
3354	    and .TARGET set for .PHONY run via .END
3355	  o __dead used consistently
3356
33572011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3358
3359	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
3360
33612011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3362
3363	* Makefile.in (MAKE_VERSION): bump version to 20110905
3364	  Merge with NetBSD make, pick up
3365	  o meta_oodate: ignore makeDependfile
3366
33672011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3368
3369	* Makefile.in (MAKE_VERSION): bump version to 20110828
3370	  Merge with NetBSD make, pick up
3371	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
3372	    as SILENT if a .meta file is created
3373
33742011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3375
3376	* Makefile.in (MAKE_VERSION): bump version to 20110818
3377	  Merge with NetBSD make, pick up
3378	  o in meta mode, if target flagged .META a missing .meta file
3379	    means target is out-of-date
3380	  o fixes for gcc 4.5 warnings
3381	  o simplify job printing code
3382
33832011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3384
3385	* Makefile.in (MAKE_VERSION): bump version to 20110808
3386	  Merge with NetBSD make, pick up
3387	  o do not touch OP_SPECIAL targets when doing make -t
3388
33892011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3390
3391	* Makefile.in (MAKE_VERSION): bump version to 20110622
3392	  Merge with NetBSD make, pick up
3393	  o meta_oodate detect corrupted .meta file and declare oodate.
3394	* configure.in: add check for setsid
3395
33962011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3397
3398	* Merge with NetBSD make, pick up
3399	  o unit-tests/modts now works on MirBSD
3400
34012011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3402
3403	* Makefile.in (MAKE_VERSION): bump version to 20110606
3404	  Merge with NetBSD make, pick up
3405	  o ApplyModifiers: when we parse a variable which is not
3406	    the entire modifier string, or not followed by ':', do not
3407	    consider it as containing modifiers.
3408	  o loadfile: ensure newline at end of mapped file.
3409
34102011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3411
3412	* Makefile.in (MAKE_VERSION): bump version to 20110505
3413	  Merge with NetBSD make, pick up
3414	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
3415	    of make's control.  In meta mode, any generated file within
3416	    said bailiwick, which  is found to be missing, causes current
3417	    target to be out-of-date.
3418
34192011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3420
3421	* Makefile.in (MAKE_VERSION): bump version to 20110411
3422	  Merge with NetBSD make, pick up
3423	  o when long modifiers fail to match, check sysV style.
3424	    - add a test case
3425
34262011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3427
3428	* Makefile.in (MAKE_VERSION): bump version to 20110410
3429	  Merge with NetBSD make, pick up
3430	  o :hash - cheap 32bit hash of value
3431	  o :localtime, :gmtime - use value as format string for strftime.
3432
34332011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3434
3435	* Makefile.in (MAKE_VERSION): bump version to 20110330
3436	  mostly because its a cooler version.
3437	  Merge with NetBSD make, pick up
3438	  o NetBSD tags for meta.[ch]
3439	  o job.c call meta_job_finish() after meta_job_error().
3440	  o meta_job_error() should call meta_job_finish() to ensure
3441	    .meta file is closed, and safe to copy - if .ERROR target wants.
3442	   meta_job_finish() is safe to call repeatedly.
3443
34442011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
3445
3446	* unit-tests/modts: use printf if it is a builtin,
3447	  to save us from MirBSD
3448
3449	* Makefile.in (MAKE_VERSION): bump version to 20110329
3450	  Merge with NetBSD make, pick up
3451	  o fix for use after free() in CondDoExists().
3452	  o meta_oodate() report extra commands and return earlier.
3453
34542011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3455
3456	* Makefile.in (MAKE_VERSION): bump version to 20110327
3457	  Merge with NetBSD make, pick up
3458	  o meta.c, if .MAKE.MODE contains curdirOk=yes
3459	    allow creating .meta files in .CURDIR
3460	* boot-strap (TOOL_DIFF): aparently at least on linux distro
3461	  formats the output of 'type' differently - so eat any "()"
3462
34632011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3464
3465	* Makefile.in (MAKE_VERSION): bump version to 20110306
3466	  Merge with NetBSD make, pick up
3467	  o meta.c, only do getcwd() once
3468
34692011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3470
3471	* Makefile.in (MAKE_VERSION): bump version to 20110305
3472	  Merge with NetBSD make, pick up
3473	  o correct sysV substitution handling of empty lhs and variable
3474	  o correct exists() check for dir with trailing /
3475	  o correct handling of modifiers for non-existant variables
3476	    during evaluation of conditionals.
3477	  o ensure MAP_FILE is defined.
3478	  o meta.c use curdir[] now exported by main.c
3479
34802011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3481
3482	* Makefile.in (MAKE_VERSION): bump version to 20110225
3483	  Merge with NetBSD make, pick up
3484	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
3485	    makefiles have been read.
3486	  o fix example of :? modifier in man page.
3487
34882011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3489
3490	* Makefile.in (MAKE_VERSION): bump version to 20110214
3491	  Merge with NetBSD make, pick up
3492	  o meta.c handle realpath() failing when generating meta file
3493	    name.
3494
3495	* sigcompat.c: convert to ansi so we can use higher warning levels.
3496
3497
34982011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3499
3500	* Makefile.in (MAKE_VERSION): bump version to 20110207
3501	  Merge with NetBSD make, pick up
3502	  o fix for bug in meta mode.
3503
35042011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3505
3506	* parse.c: SunOS 5.8 at least does not have MAP_FILE
3507
35082011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3509
3510	* Makefile.in (MAKE_VERSION): bump version to 20110101
3511	  Merge with NetBSD make, pick up
3512	  o use mmap(2) if available, for reading makefiles
3513
35142010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3515
3516	* Makefile.in (MAKE_VERSION): bump version to 20101215
3517	  Merge with NetBSD make, pick up
3518	  o ensure meta_job_error() does not report a previous .meta file
3519	    as being culprit.
3520
35212010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3522
3523	* Makefile.in (MAKE_VERSION): bump version to 20101210
3524	  Merge with NetBSD make, pick up
3525	  o meta_oodate: track cwd per process, and only consider target
3526	    out-of-date if missing file is outside make's CWD.
3527	    Ignore files in /tmp/ etc.
3528	  o to ensure unit-tests results match, need to control LC_ALL
3529	    as well as LANG.
3530	  o fix for parsing bug in var.c
3531
35322010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3533
3534	* Makefile.in (MAKE_VERSION): bump version to 20101126
3535	  Merge with NetBSD make, pick up
3536	  o if stale dependency is an IMPSRC, search via .PATH
3537	  o meta_oodate: if a referenced file is missing, target is
3538	    out-of-date.
3539	  o meta_oodate: if a target uses .OODATE in its commands,
3540	    it (.OODATE) needs to be recomputed.
3541	  o keep a pointer to youngest child node, rather than just its
3542	    mtime.
3543
35442010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3545
3546	* Makefile.in (MAKE_VERSION): bump version to 20101101
3547
35482010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3549
3550	* machine.sh: like os.sh,
3551	allow for uname -p producing useless drivel
3552
35532010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3554
3555	* boot-strap: document configure knobs for meta and filemon.
3556
3557	* Makefile.in (MAKE_VERSION): bump version to 20100911
3558	  Merge with NetBSD make, pick up
3559	  o meta.c - meta mode
3560
3561	* make-bootstrap.sh.in: handle meta.c
3562	* configure.in: add knobs for use_meta and filemon_h
3563	  also, look for dirname, str[e]sep and strlcpy
3564	* util.c: add simple err[x] and warn[x]
3565
35662010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3567
3568	* boot-strap (TOOL_DIFF): set this to ensure tests use
3569	  the same version of diff that configure tested
3570
3571	* Makefile.in (MAKE_VERSION): bump version to 20100808
3572	  Merge with NetBSD make, pick up
3573	  o in jobs mode, when we discover we cannot make something,
3574	    call PrintOnError before exit.
3575
35762010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3577
3578	* Makefile.in (MAKE_VERSION): bump version to 20100806
3579	  Merge with NetBSD make, pick up
3580	  o formatting fixes for ignored errors
3581	  o ensure jobs are cleaned up regardless of where wait() was called.
3582
35832010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3584
3585	* Makefile.in (MAKE_VERSION): bump version to 20100618
3586	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3587
35882010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3589
3590	* Makefile.in (MAKE_VERSION): bump version to 20100616
3591	  Merge with NetBSD make, pick up
3592	  o man page update
3593	  o call PrintOnError from JobFinish when we detect an error we
3594	    are not ignoring.
3595
35962010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3597
3598	* Makefile.in (MAKE_VERSION): bump version to 20100606
3599	  Merge with NetBSD make, pick up
3600	  o man page update
3601
36022010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3603
3604	* Makefile.in (MAKE_VERSION): bump version to 20100605
3605	  Merge with NetBSD make, pick up
3606	  o use bmake_signal() which is a wrapper around sigaction()
3607	    in place of signal()
3608	  o add .export-env to allow exporting variables to environment
3609	    without tracking (so no re-export when the internal value is
3610	    changed).
3611
36122010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3613
3614	* Makefile.in (MAKE_VERSION): bump version to 20100524
3615	  Merge with NetBSD make, pick up
3616	  o fix for .info et al being greedy.
3617
36182010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3619
3620	* Makefile.in (MAKE_VERSION): bump version to 20100520
3621	  Merge with NetBSD make, pick up
3622	  o back to using realpath on argv[0]
3623	    but only if contains '/' and does not start with '/'.
3624
36252010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3626
3627	* boot-strap: use absolute path for bmake when running tests.
3628
3629	* Makefile.in (MAKE_VERSION):  bump version to 20100510
3630	  Merge with NetBSD make, pick up
3631	  o revert use of realpath on argv[0]
3632	    too many corner cases.
3633	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
3634
36352010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3636
3637	* Makefile.in (MAKE_VERSION): bump version to 20100505
3638	  Merge with NetBSD make, pick up
3639	  o fix for missed SIGCHLD when compiled with SunPRO
3640	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
3641	    done the job.
3642
36432010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3644
3645	* Makefile.in (MAKE_VERSION): bump version to 20100430
3646	  Merge with NetBSD make, pick up
3647	  o fflush stdout before writing to stdout
3648
36492010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3650
3651	* Makefile.in (MAKE_VERSION): bump version to 20100423
3652	  Merge with NetBSD make, pick up
3653	  o updated unit tests for Haiku (this time for sure).
3654	* boot-strap: based on patch from joerg
3655	  honor --with-default-sys-path better.
3656	* boot-strap: remove mention of --with-prefix-sys-path
3657
36582010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3659
3660	* Makefile.in (MAKE_VERSION): bump version to 20100422
3661	* Merge with NetBSD make, pick up
3662	  o fix for vfork() on Darwin.
3663	  o fix for bogus $TMPDIR.
3664	  o set .MAKE.MODE=compat for -B
3665	  o set .MAKE.JOBS=max_jobs for -j max_jobs
3666	  o allow unit-tests to run without any *.mk
3667	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
3668	* boot-strap: ignore /usr/share/mk except on NetBSD.
3669	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
3670	  ensure sort(1) behaves as expected.
3671
36722010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3673
3674	* boot-strap: add FindHereOrAbove so we can use -m .../mk
3675
36762010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3677
3678	* Makefile.in (MAKE_VERSION): bump version to 20100420
3679	* Merge with NetBSD make, pick up
3680	  o fix for variable realpath() behavior.
3681	    we have to stat(2) the result to be sure.
3682	  o fix for .export (all) when nested vars use :sh
3683
36842010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3685
3686	* Makefile.in (MAKE_VERSION): bump version to 20100414
3687	* Merge with NetBSD make, pick up
3688	  o use realpath to resolve argv[0] (for .MAKE) if needed.
3689	  o add realpath from libc.
3690	  o add :tA to resolve variable via realpath(3) if possible.
3691
36922010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3693
3694	* Makefile.in (MAKE_VERSION): bump version to 20100408
3695	* Merge with NetBSD make, pick up
3696	  o unit tests for .ERROR, .error
3697	  o fix for .ERROR to ensure it cannot be default target.
3698
36992010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3700
3701	* Makefile.in (MAKE_VERSION): bump version to 20100406
3702	* Merge with NetBSD make, pick up
3703	  o fix for compat mode "Error code" going to debug_file.
3704	  o fix for .ALLSRC being populated twice.
3705	  o support for .info, .warning and .error directives
3706	  o .MAKE.MODE to control make's operational mode
3707	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
3708	    name(s).
3709	  o .MAKE.DEPENDFILE to control the name of the depend file
3710	  o .ERROR target - run on failure.
3711
37122010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3713
3714	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3715
3716	* os.sh,arch.c: patch for Haiku from joerg at netbsd
3717
37182010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3719
3720	* Makefile.in (MAKE_VERSION): bump version to 20100222
3721	* Merge with NetBSD make, pick up
3722	  o better error msg for .for with mutiple inter vars
3723
3724	* boot-strap:
3725	  o use make-bootstrap.sh from joerg at netbsd
3726	    to avoid the need for a native make when bootstrapping.
3727	  o add "" everywhere ;-)
3728	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
3729	    otherwise the pre-formated version.
3730
37312010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3732
3733	* Makefile.in (MAKE_VERSION): bump version to 20100102
3734	* Merge with NetBSD make, pick up:
3735	  o fix for -m .../
3736
37372009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
3738
3739	* Makefile.in (MAKE_VERSION): bump version to 20091118
3740	* Merge with NetBSD make, pick up:
3741	  o .unexport
3742	  o report lines that start with '.' and should have ':'
3743	    (catch typo's of .el*if).
3744
37452009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3746
3747	* configure.in: Ensure that srcdir and mksrc are absolute paths.
3748
37492009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3750
3751	* Makefile.in (MAKE_VERSION): fix version to 20091007
3752
37532009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
3754
3755	* Makefile.in (MAKE_VERSION): bump version to 200910007
3756	* Merge with NetBSD make, pick up:
3757	  o fix for parsing of :S;...;...; applied to .for loop iterator
3758	    appearing in a dependency line.
3759
37602009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3761
3762	* Makefile.in (MAKE_VERSION): bump version to 20090909
3763	* Merge with NetBSD make, pick up:
3764	  o fix for -C, .CURDIR and .OBJDIR
3765	* boot-strap:
3766	  o allow share_dir to be set independent of prefix.
3767	  o select default share_dir better when prefix ends in $HOST_TARGET
3768	  o if FORCE_BSD_MK etc were set, include them in the suggested
3769	    install-mk command.
3770
37712009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
3772
3773	* Makefile.in (MAKE_VERSION): bump version to 20090908
3774	* Merge with NetBSD make, pick up:
3775	  o .MAKE.LEVEL for recursion tracking
3776	  o fix for :M scanning \:
3777
37782009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3779
3780	* configure.in: Don't -D__EXTENSIONS__ if
3781	AC_USE_SYSTEM_EXTENSIONS says "no".
3782
37832009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
3784
3785	* Makefile.in (MAKE_VERSION): bump version to 20090826
3786	Simplify MAKE_VERSION to just the bare date.
3787	* Merge with NetBSD make, pick up:
3788	  o -C directory support.
3789	  o support for SIGINFO
3790	  o use $TMPDIR for temp files.
3791	  o child of vfork should be careful about modifying parent's state.
3792
3793
37942009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
3795
3796	* Appy some patches for MiNT from David Brownlee
3797
37982009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
3799
3800	* Makefile.in (BMAKE_VERSION): bump version to 20090222
3801	* Merge with NetBSD make, pick up:
3802	  o Possible null pointer de-ref in Var_Set.
3803
38042009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
3805
3806	* Makefile.in (BMAKE_VERSION): bump version to 20090204
3807	* Merge with NetBSD make, pick up:
3808	  o bmake_malloc et al moved to their own .c
3809	  o Count both () and {} when looking for the end of a :M pattern
3810	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
3811	  o strlist.c - functions for processing extendable arrays of pointers to strings.
3812	  o ClientData replaced with void *, so const void * can be used.
3813	  o New debug flag C for DEBUG_CWD
3814
38152008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
3816
3817	* Makefile.in (BMAKE_VERSION): bump version to 20081111
3818	  Apply patch from Joerg Sonnenberge to
3819	  configure.in:
3820	  o remove some redundant checks
3821	  o check for emlloc etc only in libutil and require the whole family.
3822	  util.c:
3823	  o remove [v]asprintf which is no longer used.
3824
38252008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3826
3827	* Makefile.in (BMAKE_VERSION): bump version to 20081101
3828	* Merge with NetBSD make, pick up:
3829	  o util.c: avoid use of putenv() - christos
3830
38312008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3832
3833	* Makefile.in (BMAKE_VERSION): bump version to 20081030
3834	  pick up man page tweaks.
3835
38362008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
3837
3838	* Makefile.in: move processing of LIBOBJS to after is definition!
3839	  thus we'll have getenv.c in SRCS only if needed.
3840
3841	* make.1: add examples of how to use :?
3842
3843	* Makefile.in (BMAKE_VERSION): bump version to 20081029
3844	* Merge with NetBSD make, pick up:
3845	  o fix for .END processing with -j
3846	  o segfault from Parse_Error when no makefile is open
3847	  o handle numeric expressions in any variable expansion
3848	  o debug output now defaults to stderr, -dF to change it - apb
3849	  o make now uses bmake_malloc etc so that it can build natively
3850	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
3851
38522008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
3853
3854	* Makefile.in (BMAKE_VERSION): bump version to 20080808
3855	* Merge with NetBSD make, pick up:
3856	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
3857	    long lines in Makefiles
3858	  o optimizations for VarQuote by joerg
3859	  o fix for PR/38756: dominik: make dumps core on invalid makefile
3860
38612008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
3862
3863	* Makefile.in (BMAKE_VERSION): bump version to 20080515
3864	* Merge with NetBSD make, pick up:
3865	  o fix skip setting vars in VAR_GLOBAL context, to handle
3866	    cases where VAR_CMD is used for other than command line vars.
3867
38682008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
3869
3870	* boot-strap (make_version): we may need to look in
3871	$prefix/share/mk for sys.mk
3872
3873	* Makefile.in (BMAKE_VERSION): bump version to 20080514
3874	* Merge with NetBSD make, pick up:
3875	  o skip setting vars in VAR_GLOBAL context, when already set in
3876	  VAR_CMD which takes precedence.
3877
38782008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
3879
3880	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
3881	* Merge with NetBSD make, pick up:
3882	  o fix for ?= when LHS contains variable reference.
3883
38842008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3885
3886	* merge some patches from NetBSD pkgsrc.
3887
3888	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3889	the MAKSYSPATH used during bootstrap.
3890
3891	* Makefile.in (BMAKE_VERSION): bump version to 20080215
3892	* Merge with NetBSD make, pick up:
3893	  o warn if non-space chars follow 'empty' in a conditional.
3894
38952008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3896
3897	* Makefile.in (BMAKE_VERSION): bump version to 20080118
3898	* Merge with NetBSD make, pick up:
3899	  o consider dependencies read from .depend as optional - dsl
3900	  o remember when buffer for reading makefile grows - dsl
3901	  o add -dl (aka LOUD) - David O'Brien
3902
39032007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
3904
3905	* Makefile.in (BMAKE_VERSION): bump version to 20071022
3906	* Merge with NetBSD make, pick up:
3907	  o Allow .PATH<suffix> to be used for .include ""
3908
3909	* boot-strap: source default settings from .bmake-boot-strap.rc
3910
39112007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
3912
3913	* Makefile.in: fix maninstall on various systems
3914	  provided that our man.mk is used.
3915	  For non-BSD systems we install the preformatted page
3916	  into $MANDIR/cat1
3917
39182007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
3919
3920	* boot-strap: make bmake.1 too, so maninstall works.
3921
39222007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
3923
3924	* Makefile.in (BMAKE_VERSION): bump version to 20071014
3925	* Merge with NetBSD make, pick up:
3926	  o revamped handling of defshell - configure no longer needs to
3927	    know the content of the shells array - apb
3928	  o stop Var_Subst modifying its input - apb
3929	  o avoid calling ParseTrackInput too often - dsl
3930
39312007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
3932
3933	* Makefile.in (BMAKE_VERSION): bump version to 20071011
3934	* Merge with NetBSD make, pick up:
3935	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
3936
3937	* sigcompat.c: some tweaks for HP-UX 11.x based on
3938	  patch from Tobias Nygren
3939
3940	* configure.in: update handling of --with-defshell to match
3941	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
3942	  will now do what one might hope - provided the chosen shell
3943	  behaves enough like sh.
3944
39452007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
3946
3947	* Makefile.in (BMAKE_VERSION): bump to 20071008
3948	* Merge with NetBSD make, pick up:
3949	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
3950	  o .export/.MAKE.EXPORTED - export of variables - sjg
3951	  o .MAKE.MAKEFILES - track all makefiles read - sjg
3952	  o performance improvements - dsl
3953	  o revamp parallel job scheduling - dsl
3954
39552006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3956
3957	* Makefile.in (BMAKE_VERSION): bump to 20060728
3958	* Merge with NetBSD make, pick up:
3959	  o extra debug info during variable and cond processing - sjg
3960	  o shell definition now covers newline - rillig
3961	  o minor mem leak in PrintOnError - sjg
3962
39632006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3964
3965	* Makefile.in (BMAKE_VERSION):  bump to 20060511
3966	* Merge with NetBSD make, pick up:
3967	  o more memory leaks - coverity
3968	  o possible overflow in ArchFindMember - coverity
3969	  o extract variable modifier code out of Var_Parse()
3970	    so it can be called recursively - sjg
3971	  o unit-tests/moderrs - sjg
3972
39732006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
3974
3975	* Makefile.in (BMAKE_VERSION): bump to 20060412
3976	* Merge with NetBSD make, pick up:
3977	  o fixes for some memory leaks - coverity
3978	  o only read first sys.mk etc when searching sysIncPath - sjg
3979
3980	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
3981	setting ${MAKEFILE} - OBATA Akio
3982
39832006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
3984
3985	* Makefile.in (BMAKE_VERSION): bump to 20060318
3986	* Merge with NetBSD make, pick up:
3987	  o cleanup of job.c to remove remote handling, distcc is more
3988	    useful and this code was likely bit-rotting - dsl
3989	  o fix for :P modifier - sjg
3990	* boot-strap: set default prefix to something reasonable
3991	  (for me anyway).
3992
39932006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
3994
3995	* Makefile.in (BMAKE_VERSION): bump to 20060301
3996	* Merge with NetBSD make, pick up:
3997	  o make .WAIT apply recursively, document and test case - apb
3998	  o allow variable modifiers in a variable appear anywhere in
3999	    modifier list, document and test case - sjg
4000
40012006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
4002
4003	* Makefile.in (BMAKE_VERSION): bump to 20060222
4004	* Merge with NetBSD make, pick up:
4005	  o improved job token handling - dsl
4006	  o SIG_DFL the correct signal before exec - dsl
4007	  o more debug info during parsing - dsl
4008	  o allow variable modifiers to be specified via variable - sjg
4009	* boot-strap: explain why we died if no mksrc
4010
40112005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
4012
4013	* Makefile.in (BMAKE_VERSION): bump to 20051105
4014	* configure.in: always set default_sys_path
4015	  default is ${prefix}/share/mk
4016	  - remove prefix_sys_path, anyone wanting more than above
4017	    needs to set it manually.
4018
40192005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
4020
4021	* boot-strap: make this a bit easier for pkgsrc folk.
4022	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
4023	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
4024
40252005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
4026
4027	* Makefile.in (BMAKE_VERSION): bump to 20051102
4028	* job.c (JobFinish): fix likely ancient merge lossage
4029	fix from Todd Vierling.
4030	* boot-strap (srcdir): allow setting mksrc=none
4031
40322005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
4033
4034	* Makefile.in (BMAKE_VERSION): bump to 20051031
4035	* ranlib.h: skip on OSF too.
4036	  (NetBSD PR 31864)
4037
40382005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
4039
4040	* Makefile.in (BMAKE_VERSION): bump to 20051002
4041	  fix a silly typo
4042
40432005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
4044
4045	* Makefile.in (BMAKE_VERSION): bump to 20051001
4046	  support for UnixWare and some other systems,
4047	  based on patches from pkgsrc/bootstrap
4048
40492005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
4050
4051	* Makefile.in (BMAKE_VERSION): bump to 20050901
4052	* Merge with NetBSD make, pick up:
4053	  o possible parse error causing us to wander off.
4054
40552005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
4056
4057	* Makefile.in (BMAKE_VERSION): bump to 20050606
4058	* Merge with NetBSD make, pick up:
4059	  o :0x modifier for randomizing a list
4060	  o fixes for a number of -Wuninitialized issues.
4061
40622005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
4063
4064	* Makefile.in (BMAKE_VERSION): bump to 20050530
4065	* Merge with NetBSD make, pick up:
4066	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
4067
4068	* README: was seriously out of date.
4069
40702005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
4071
4072	* Important to use .MAKE rather than MAKE.
4073
40742005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
4075
4076	* Makefile.in (BMAKE_VERSION): bump to 20050315
4077	* Merge with NetBSD make, pick up:
4078	  o don't mistake .elsefoo for .else
4079	  o use suffix-specific search path correctly
4080	  o bunch of style nits
4081
40822004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4083
4084	* boot-strap:
4085	o ensure that args to --src and --with-mksrc
4086	  are resolved before giving them to configure.
4087	o add -o "objdir" so that builder can control it,
4088	  default is $OS as determined by os.sh
4089	o add -q to suppress all the install instructions.
4090
40912004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
4092
4093	* Remove __IDSTRING()
4094
4095	* Makefile.in (BMAKE_VERSION): bump to 20040508
4096	* Merge with NetBSD make, pick up:
4097	  o posix fixes
4098	    - remove '-e' from compat mode
4099	    - add support for '+' command-line prefix.
4100	  o fix for handling '--' on command-line.
4101	  o fix include in lst.lib/lstInt.h to simplify '-I's
4102	  o we also picked up replacement of MAKE_BOOTSTRAP
4103	    with !MAKE_NATIVE which is a noop, but possibly confusing.
4104
41052004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
4106
4107	* Makefile.in (BMAKE_VERSION): bump to 20040414
4108	* Merge with NetBSD make, pick up:
4109	  o allow quoted strings on lhs of conditionals
4110	  o issue warning when extra .else is seen
4111	  o print line numer when errors encountered during parsing from
4112	  string.
4113
41142004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
4115
4116	* Makefile.in (BMAKE_VERSION):  bump to 20040220
4117	* Merge with NetBSD make, pick up:
4118	  o fix for old :M parsing bug.
4119	  o re-jigged unit-tests
4120
41212004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4122
4123	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
4124	so that './bmake -f Makefile test' works.
4125
41262004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
4127
4128	* Makefile.in: (BMAKE_VERSION): bump to 20040214
4129	* Merge with NetBSD make, pick up:
4130	  o search upwards for *.mk
4131	  o fix for double free of var substitution buffers
4132	  o use of getopt replaced with custom code, since the usage
4133	  (re-scanning) isn't posix compatible.
4134
41352004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
4136
4137	* arch.c: don't include ranlib.h on ELF systems
4138	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
4139
41402004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4141
4142	* Makefile.in (BMAKE_VERSION): bump to 20040118
4143
4144	* boot-strap (while): export vars we assign to on cmdline
4145	* unit-test/Makefile.in: ternary is .PHONY
4146
41472004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
4148
4149	* Makefile.in (BMAKE_VERSION): bump version to 20040108
4150	* Merge with NetBSD make, pick up:
4151	  o fix for ternary modifier
4152
41532004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
4154
4155	* Makefile.in (BMAKE_VERSION): bump version to 20040105
4156	* Merge with NetBSD make, pick up:
4157	  o fix for cond.c to handle compound expressions better
4158	  o variable expansion within sysV style replacements
4159
41602003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
4161
4162	* Make portable snprintf safer - output to /dev/null first to
4163	check space needed.
4164
4165	* Makefile.in (BMAKE_VERSION): bump version to 20031222
4166	* Merge with NetBSD make, pick up:
4167	  o -dg3 to show input graph when things go wrong.
4168	  o explicitly look for makefiles in objdir if not found in curdir so
4169	    that errors in .depend etc will be reported accurarely.
4170	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
4171	    instead as it more accurately reflects the expected behavior and
4172	    is more consistently implemented.
4173	  o avoid use of asprintf.
4174
41752003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
4176
4177	* util.c: Add asprintf and vasprintf.
4178
4179	* Makefile.in (BMAKE_VERSION): bump version to 20030928
4180	* Merge with NetBSD make, pick up:
4181	:[] modifier - allows picking words from a variable.
4182	:tW modifier - allows treating value as one big word.
4183	W flag for :C and :S - allows treating value as one big word.
4184
41852003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
4186
4187	* Merge with NetBSD make
4188	pick up -de flag to enable printing failed command.
4189	don't skip 1st two dir entries (normally . and ..) since
4190	coda does not have them.
4191
41922003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
4193
4194	* Makefile.in (BMAKE_VERSION): bump version to 20030909
4195	* Merge with NetBSD make, pick up:
4196	- changes for -V '${VAR}' to print fully expanded value
4197	  cf. -V VAR
4198	- CompatRunCommand now prints the command that failed.
4199	- several files got updated 3 clause Berkeley license.
4200
42012003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
4202
4203	* boot-strap: Allow setting configure args on command line.
4204
42052003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
4206
4207	* configure.in: add --with-defshell to allow sh or ksh
4208	to be selected as default shell.
4209
4210	* Makefile.in: bump version to 20030731
4211
4212	* Merge with NetBSD make
4213	Pick up .SHELL spec for ksh and associate man page changes.
4214	Also compat mode now uses the same shell specs.
4215
42162003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
4217
4218	* var.c (Var_Parse): ensure delim is initialized.
4219
4220	* unit-tests/Makefile.in: use single quotes to avoid problems from
4221	some shells.
4222
4223	* makefile.boot.in:
4224	Run the unit-tests as part of the bootstrap procedure.
4225
42262003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4227
4228	* unit-tests/Makefile.in: always force complaints from
4229	${TEST_MAKE} to be from 'make'.
4230
4231	* configure.in: add check for 'diff -u'
4232	also fix some old autoconf'isms
4233
4234	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
4235	if using GCC add -Wno-cast-qual to CFLAGS for var.o
4236
4237	* Merge with NetBSD make
4238	Pick up fix for :ts parsing error in some cases.
4239	Pick unit-tests.
4240
42412003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
4242
4243	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
4244
4245	* var.c (Var_Parse): fix bug in :ts modifier, after const
4246	correctness fixes, must pass nstr to VarModify.
4247
42482003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
4249
4250	* Makefile.in: BMAKE_VERSION switch to a date based version.
4251	We'll generally use the date of last import from NetBSD.
4252
4253	* Merge with NetBSD make
4254	Pick up fixes for const-correctness, now passes WARNS=3 on
4255	NetBSD.
4256	Pick up :ts modifier, allows controlling the separator used
4257	between words in variable expansion.
4258
42592003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
4260
4261	* FILES: include boot-strap and os.sh
4262
4263	* Makefile.in: only set WARNS if we are NetBSD, the effect on
4264	FreeBSD is known to be bad.
4265
4266	* makefile.boot.in (bootstrap): make this the default target.
4267
4268	* Makefile.in: bump version to 3.1.19
4269
4270	* machine.sh: avoid A-Z with tr as it is bound to lose.
4271
42722003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
4273
4274	* Merge with NetBSD make
4275	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
4276	Plus some doc fixes.
4277
42782003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
4279
4280	* Merge with NetBSD make
4281	Pick up fix for PR/1523 - don't count a library as built, if there
4282	is no way to build it
4283
4284	* Bump version to 3.1.18
4285
42862003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
4287
4288	* Merge with NetBSD make
4289	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
4290	appears in src list.
4291
42922003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
4293
4294	* Merge with NetBSD make (mmm 10th anniversary!)
4295	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
4296	pick up -X which tells us to not export VAR=val via setenv if
4297	we are already doing so via MAKEFLAGS.  This saves valuable env
4298	space on systems like Darwin.
4299	set MAKE_VERSION to 3.1.17
4300
4301	* parse.c: pix up fix for suffix rules
4302
43032003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
4304
4305	* Merge with NetBSD make.
4306	pick up fix for propagating -B via MAKEFLAGS.
4307	set MAKE_VERSION to 3.1.16
4308
4309	* Apply some patches from pkgsrc-bootstrap/bmake
4310	Originally by Grant Beattie <grant@netbsd.org>
4311	I may have missed some - since they are based on bmake-3.1.12
4312
43132002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
4314
4315	* makefile.boot.in (bmake): update install targets for those that
4316	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
4317	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
4318
4319	* bmake.cat1: update the pre-formatted man page!
4320
43212002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
4322
4323	* Merge with NetBSD make.
4324	pick up fix for premature free of pointer used in call
4325	to Dir_InitCur().
4326	set MAKE_VERSION to 3.1.15
4327
43282002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
4329
4330	* configure.in: determine suitable value for MKSRC.
4331	override using --with-mksrc=PATH.
4332
4333	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
4334	configs(8) will use 'sun4' as an alias for 'sparc'.
4335
43362002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
4337
4338	* Merge with NetBSD make.
4339	pick up ${.PATH}
4340	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
4341	set MAKE_VERSION to 3.1.14
4342	add configure checks for killpg and sys/socket.h
4343
43442002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
4345
4346	* tag bmake-3-1-13
4347
4348	* makefile.boot.in (bmake): use install-mk
4349	Also setup ./mk before trying to invoke bmake.boot incase we
4350	needed install-mk to create a sys.mk for us.
4351
4352	* configure.in: If we need to add -I${srcdir}/missing, make it an
4353	absolute path so that it works for lst.lib too.
4354
4355	* make.h: always include sys/cdefs.h since we provide one if the
4356	host does not.
4357
4358	* Makefile.in (install-mk):
4359	use MKSRC/install-mk which will do the right thing.
4360	use uname -p for ARCH if possible.
4361	since install-mk will setup links bsd.prog.mk -> prog.mk if
4362	needed, just .include bsd.prog.mk
4363
4364	* Merge with NetBSD make (NetBSD-1.6)
4365	Code is ansi-C only now.
4366	Bug in handling of dotLast is fixed.
4367	Can now assign .OBJDIR and make will reset its notions of life.
4368	New modifiers :tu :tl for toUpper and toLower.
4369
4370Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4371
4372	* Merge with NetBSD make
4373	pick up fix for .END failure in compat mode.
4374	pick up fix for extra va_end() in ParseVErrorInternal.
4375
4376Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4377
4378	* configure.in: for systems that have sys/cdefs.h check if it is
4379	compatible.  If not, include the one under missing, but tell it to
4380	include the native one too - necessary on Linux.
4381
4382	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4383	include_next (for gcc) to get the native sys/cdefs.h
4384
4385Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4386
4387	* job.c (JobFinish): Fix an earlier merge bug that resulted in
4388	leaking descriptors when using -jN.
4389
4390	* job.c (JobPrintCommand): See if "curdir" exists before
4391	attempting to chdir().  Doing the chdir directly in make (when in
4392	compat mode) fails silently, so let the -jN version do the same.
4393	This can happen when building kernels in an object tree and
4394	playing clever games to reset .CURDIR.
4395
4396	* Merged with NetBSD make
4397	pick up .USEBEFORE
4398
4399Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4400
4401	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4402
4403Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4404
4405	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
4406	us not to export the iterator variable when using VAR_CMD context.
4407
4408Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4409
4410	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4411	its the wrong "fix".
4412
4413Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4414
4415	* Redesigned export of VAR_CMD's via MAKEFLAGS.
4416	We now simply append the variable names to .MAKEOVERRIDES, and
4417	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
4418	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
4419	Apart from fixing quoting bugs in previous version, this allows us
4420	to export vars to the environment by simply doing:
4421	.MAKEOVERRIDES+= PATH
4422	Merged again with NetBSD make, but the above is the only change.
4423
4424	* configure.in: added
4425	--disable-pwd-override		disable $PWD overriding getcwd()
4426	--disable-check-make-chdir	disable make trying to guess
4427		when it should automatically cd ${.CURDIR}
4428
4429	* Merge with NetBSD make, changes include:
4430	parse.c (ParseDoDependency): Spot that the syntax error is
4431	caused by an unresolved cvs/rcs conflict and say so.
4432	var.c: most of Var* functions now take a ctxt as 1st arg.
4433	now does variable substituion on rhs of sysv style modifiers.
4434
4435	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
4436	is now done here.  We append the name='value' to .MAKEOVERRIDES
4437	rather than directly into MAKEFLAGS as this allows a Makefile to
4438	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
4439	very similar mechanism.  Note that in adding name='value' to
4440	.MAKEOVERRIDES we do the moral equivalent of:
4441	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
4442
4443Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4444
4445	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
4446
4447	* Merged with NetBSD make
4448	make -dx can now be used to run commands via sh -x
4449	better error messages on exec failures.
4450
4451Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4452
4453	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
4454	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
4455	MACHINE etc otherwise they propagate from the previous bmake.
4456
4457	* configure.in (machine): allow --with-machine=generic to make
4458	configure use machine.sh to set MACHINE.
4459
4460	* job.c (JobInterrupt): convert to using WAIT_T and friends.
4461
4462	* Makefile.in: mention in bmake.1 that we use autoconf.
4463
4464	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4465
4466Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4467
4468	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4469	as that rather defeats the usefulness of ${MAKEFILE}.
4470
4471	* main.c (MainParseArgs): append command line variable assignments
4472	to MAKEFLAGS so that they get propagated to child make's.
4473	Apparently this is required POSIX behaviour?  Its useful anyway.
4474
4475Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4476
4477	* compat.c (CompatRunCommand): don't use perror() since stdio may
4478	cause problems in child of vfork().
4479
4480	* compat.c, main.c: Call PrintOnError() when we are going to bail.
4481	This routine prints out the .curdir where we stopped and will also
4482	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
4483
4484	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
4485	:@ expansion.
4486
4487	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
4488
4489	* Added RCSid's for the files we've touched.
4490
4491Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4492
4493	* configure.in:	Thanks to some clues from mdb@juniper.net,
4494	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
4495	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
4496
4497  --with-machine=MACHINE  explicitly set MACHINE
4498  --with-force-machine=MACHINE  set FORCE_MACHINE
4499  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
4500  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
4501  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
4502  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
4503
4504	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4505
4506	* makefile: added a pathetically simple makefile to drive
4507	bootstrapping.  Running configure by hand is more useful.
4508
4509	* Makefile.in: added MAKE_VERSION, and reworked things to be less
4510	dependent on NetBSD bsd.*.mk
4511
4512	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
4513	_PATH_OBJDIRPREFIX for those that don't want a default.
4514	construct _PATH_DEFSYSPATH from the info we get from configure.
4515
4516	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4517	if MAKE_VERSION is defined.
4518
4519	* compat.c: when we bail, print out the .CURDIR we were in.
4520
4521Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4522
4523	* Merged with NetBSD make
4524
4525	* var.c: fixed a bug in the handling of the modifier :P
4526	if the node as found but the path was null, we segfault trying to
4527	duplicate it.
4528
4529Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4530
4531	* Merged with NetBSD make
4532
4533	* make.c: Make_OODate's test for a library out of date was using
4534	cmtime where it should have used mtime (my bug).
4535
4536	* compat.c: Use perror() to tell us what really went wrong when we
4537	cannot exec a command.
4538
4539Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4540
4541	* Merged with NetBSD make
4542
4543Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4544
4545	* Merged with NetBSD make
4546
4547Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4548
4549	* Merged with NetBSD make
4550
4551Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4552
4553	* Merged with NetBSD make
4554
4555Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4556
4557	* util.c: don't provide signal() since we use sigcompat.c
4558
4559	* Makefile.in: added a build target.
4560
4561	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4562	These allow some quite clever magic.
4563
4564	* main.c (main): added support for getenv(MAKESYSPATH).
4565
4566Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4567
4568	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
4569	This avoids objdir having a different value depending on how a
4570	directory was reached (via command line, or subdir.mk).
4571
4572	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4573
4574Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4575
4576	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
4577	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
4578	I've been testing this in NetBSD's make for some weeks.
4579
4580	* Turn Makefile into Makefile.in and make it useful.
4581
4582Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
4583
4584	* Imported NetBSD's -current make(1) and resolve conflicts.
4585
4586	* Applied autoconf patches from bmake v2
4587
4588	* Imported clean code base from NetBSD-1.0
4589