xref: /freebsd/contrib/bmake/ChangeLog (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
12024-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* cleanup redundant differences from NetBSD make
4	o parse.c: no longer uses mmap
5	o var.c: check __STDC_VERSION__ not __STDC__
6
72024-07-12  Simon J Gerraty  <sjg@beast.crufty.net>
8
9	* Apply some patches from NetBSD pkgsrc to reduce divergence
10	o meta.c: requires sys/select.h if available
11	o var.c: ensure SIZE_MAX has a value
12	o util.c: ensure SA_RESTART is defined
13
14	* configure.in: use *ksh* rather than just *ksh to match
15	ksh shell specification.
16
17	* unit-tests/Makefile: expand BROKEN_TESTS for ksh and
18	mksh in particular
19
202024-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
21
22	* VERSION (_MAKE_VERSION): 20240711
23	Merge with NetBSD make, pick up
24	o compat.c: allow Compat_RunCommand to also handle very long
25	commands by writing to a temp file when needed.
26	o main.c: extract the temp file logic recently added to Cmd_Exec
27	to Cmd_Argv so it can be leveraged by Compat_RunCommand.
28
292024-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
30
31	* VERSION (_MAKE_VERSION): 20240709
32	Merge with NetBSD make, pick up
33	o error out on parse/evaluation errors in shell commands
34	o var.c: error out on syntax errors in ':M' and ':N' modifiers
35
362024-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
37
38	* VERSION (_MAKE_VERSION): 20240707
39	Merge with NetBSD make, pick up
40	o only generate code for cleanup functions in CLEANUP mode
41	o hash.c: don't track hash table chain lengths during lookup
42	unless debugging
43	o main.c: move initialization of variable scopes to targ.c
44	o var.c: remove Var_End as it is now unnecessary
45
462024-07-06  Simon J Gerraty  <sjg@beast.crufty.net>
47
48	* VERSION (_MAKE_VERSION): 20240706
49	Merge with NetBSD make, pick up
50	o reduce lint comments about ARGSUSED
51	o cond.c: error out on conditions containing the operators '&' and '|'
52	o str.c: error out on a matching malformed matching pattern '[['
53	o var.c: in error messages, distinguish parsing from evaluating
54	in error messages for anonymous variables, log the value
55	error out on unclosed expressions during parse time
56
572024-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
58
59	* VERSION (_MAKE_VERSION): 20240704
60	Merge with NetBSD make, pick up
61	o add more context information to error messages
62	o main.c: on error, print the targets to be made
63	add detailed exit status to message for failed sub-commands
64	o var.c: error out on the "Bad modifier" error message
65
662024-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
67
68	* VERSION (_MAKE_VERSION): 20240701
69	Merge with NetBSD make, pick up
70	o var.c: add :tt for Title case
71
722024-06-30  Simon J Gerraty  <sjg@beast.crufty.net>
73
74	* configure.in: 20240630 further refine check for whether
75	TZ=Europe/Berlin works
76
77	* VERSION (_MAKE_VERSION): 20240630
78	Merge with NetBSD make, pick up
79	o job.c: reduce use of UNCONST
80	o main.c: add detailed exit status to message for failed sub-commands
81	o var.c: error out on some more syntax errors
82	add more context to "returned non-zero status" message
83
842024-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
85
86	* VERSION (_MAKE_VERSION): 20240625
87	Merge with NetBSD make, pick up
88	o job.c: ensure shellPath is always duped, avoid upsetting free()
89
902024-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
91
92	* VERSION (_MAKE_VERSION): 20240616
93	Merge with NetBSD make, pick up
94	o clean up collection of context information for error messages
95	o in warnings, move the word "warning" to the front
96	o var.c: throw an error on attempt to override an internal
97	read-only variable
98
992024-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
100
101	* VERSION (_MAKE_VERSION): 20240610
102	Merge with NetBSD make, pick up
103	o for.c: remove redundant shortcut for building the .for loop body
104
1052024-06-02  Simon J Gerraty  <sjg@beast.crufty.net>
106
107	* VERSION (_MAKE_VERSION): 20240602
108	Merge with NetBSD make, pick up
109	o rename some VarEvalMode constants to better match debug names.
110	o var.c: avoid out-of-bounds read when parsing indirect modifiers.
111
1122024-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
113
114	* VERSION (_MAKE_VERSION): 20240601
115	Merge with NetBSD make, pick up
116	o add .export-all rather than allow .export with no argument
117	which can happen accidentally.
118	o if lua is available, run check-expect.lua after unit-tests
119	o main.c: use snprintf rather than strncpy
120	fix memory leak when purging realpath cache.
121
1222024-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
123
124	* VERSION (_MAKE_VERSION): 20240528
125	Merge with NetBSD make, pick up
126	o fix a number of memory leaks
127	o replace magic numbers with POSIX FILENO constants
128	o hash.c: remove dead code from HashTable_DeleteEntry
129	o main.c: when complaining about unusable .OBJDIR
130	call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true.
131	o parse.c: use fewer technical terms in debug message for dependency
132
1332024-05-20  Simon J Gerraty  <sjg@beast.crufty.net>
134
135	* VERSION (_MAKE_VERSION):
136	Merge with NetBSD make, pick up
137	o dir.c: in FindFile restore last search of .CURDIR even for
138	includes, as a number of existing makefiles are broken otherwise.
139
1402024-05-19  Simon J Gerraty  <sjg@beast.crufty.net>
141
142	* VERSION (_MAKE_VERSION): 20240519
143	Merge with NetBSD make, pick up
144	o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR.
145	Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty.
146	o main.c: no need to set .DOTLAST in sysIncPath
147
1482024-05-07  Simon J Gerraty  <sjg@beast.crufty.net>
149
150	* VERSION (_MAKE_VERSION): 20240508
151	Merge with NetBSD make, pick up
152	o make: ensure variables set on command line get added to
153	.MAKEOVERRIDES (even if they start with '.') so they are passed to
154	sub-makes.
155
1562024-04-30  Simon J Gerraty  <sjg@beast.crufty.net>
157
158	* VERSION (_MAKE_VERSION): 20240430
159	Merge with NetBSD make, pick up
160	o main.c: ensure '.include <makefile>' respects MAKESYSPATH.
161	Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen.
162
1632024-04-28  Simon J Gerraty  <sjg@beast.crufty.net>
164
165	* VERSION (_MAKE_VERSION): 20240428
166	Merge with NetBSD make, pick up
167	o simplify freeing of lists
168	o arch.c: trim pointless comments
169	o var.c: delay variable assignments until actually needed
170	don't reallocate memory after evaluating an expression, result is
171	almost always short-lived.
172
1732024-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
174
175	* VERSION (_MAKE_VERSION): 20240426
176	Merge with NetBSD make, pick up
177	o job.c: in debug output, print the directory in which a job
178	failed at same time as failed target so it is more easily found in
179	build log.
180
1812024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
182
183	* VERSION (_MAKE_VERSION): 20240424
184	Merge with NetBSD make, pick up
185	o clean up comments, code and tests
186
1872024-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
188
189	* VERSION (_MAKE_VERSION): 20240422
190	Merge with NetBSD make, pick up
191	o var.c: avoid LazyBuf for :*time modifiers.
192	LazyBuf's are not nul terminated so not suitable for passing to
193	functions that expect that. These modifiers are used sparingly so
194	an extra allocation is not a problem.
195
1962024-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
197
198	* VERSION (_MAKE_VERSION): 20240420
199	Merge with NetBSD make, pick up
200	o provide more context information for parse/evaluate errors
201
2022024-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
203
204	* VERSION (_MAKE_VERSION): 20240414
205	Merge with NetBSD make, pick up
206	o parse.c: print -dp debug info earlier so we see which
207	.if or .for line is being parsed.
208
2092024-04-04  Simon J Gerraty  <sjg@beast.crufty.net>
210
211	* VERSION (_MAKE_VERSION): 20240404
212	Merge with NetBSD make, pick up
213	o fix some unit tests for Cygwin
214	o parse.c: exit immediately after reading a null byte from a makefile
215
216	* fix generation of bmake.cat1
217
2182024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
219
220	* VERSION (_MAKE_VERSION): 20240314
221	Add/Improve support for Cygwin
222	o uname -s output isn't useful so allow configure to
223	set FORCE_MAKE_OS - to force the value of .MAKE.OS
224	and use Cygwin which matches uname -o
225	o fix some unit-tests for Cygwin
226
2272024-03-10  Simon J Gerraty  <sjg@beast.crufty.net>
228
229	* boot-strap: tests can take a long time; use a cookie to
230	skip them if bmake has not been updated since tests last
231	ran successfully.
232
233	* Makefile: Cygwin handles MANTARGET man
234
235	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin
236
2372024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
238
239	* VERSION (_MAKE_VERSION): 20240309
240	Merge with NetBSD make, pick up
241	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
242	this allows a .ERROR target to ignore the case of
243	.ERROR_EXIT==6 which just means that the build actually
244	failed somewhere else.
245
2462024-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
247
248	* VERSION (_MAKE_VERSION): 20240303
249
250	* var.c: on IRIX we need both inttypes.h and stdint.h
251
2522024-03-01  Simon J Gerraty  <sjg@beast.crufty.net>
253
254	* VERSION (_MAKE_VERSION): 20240301
255	Merge with NetBSD make, pick up
256	o export variables with value from target scope
257	when appropriate.
258
2592024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
260
261	* VERSION (_MAKE_VERSION): 20240212
262	Merge with NetBSD make, pick up
263	o remove unneeded conditional-compilation toggles
264	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
265	GMAKEEXPORT NO_REGEX and SUNSHCMD
266
267	* configure.in: add check for regex.h
268
269	* var.c: replace use of NO_REGEX with HAVE_REGEX_H
270
2712024-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
272
273	* VERSION (_MAKE_VERSION): 20240204
274	Merge with NetBSD make, pick up
275	o var.c: fix some lint (-dL) mode parsing issues
276
2772024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
278
279	* VERSION: (_MAKE_VERSION): 20240202
280	Merge with NetBSD make, pick up
281	o make.1: note that arg to :D and :U can be empty
282	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no
283
2842024-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
285
286	* VERSION (_MAKE_VERSION): 20240108
287	Merge with NetBSD make, pick up
288	o miscellaneous cleanups
289
2902024-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
291
292	* VERSION (_MAKE_VERSION): 20240106
293	Merge with NetBSD make, pick up
294	o fix duplicate progname when reporting an unknown target
295	o unit tests for Cmd_Exec using temp file
296
2972024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
298
299	* VERSION (_MAKE_VERSION): 20240105
300	Merge with NetBSD make, pick up
301	o main.c: Cmd_Exec write cmd to a file if too big
302	avoid blowing commandline/env limits
303
3042024-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
305
306	* VERSION (_MAKE_VERSION): 20240101
307	o util.c: flesh out more of strftime
308	* configure.in: add --with-bmake-strftime
309	it is not a full implementation but enough to pass all
310	the unit-tests.
311	* parse.c: LoadFile do not append \n to empty buffer.
312
3132023-12-30  Simon J Gerraty  <sjg@beast.crufty.net>
314
315	* VERSION (_MAKE_VERSION): 20231230
316	Merge with NetBSD make, pick up
317	o simplify memory allocation for string buffers
318	o fix declared types of list nodes
319	o suff.c: clean up freeing of suffixes
320	o var.c: simplify debug message for the ':@var@...@' modifier
321	clean up variable handling
322
3232023-12-26  Simon J Gerraty  <sjg@beast.crufty.net>
324
325	* VERSION (_MAKE_VERSION): 20231226
326	Merge with NetBSD make, pick up
327	o compat.c: ensure make's output is correctly ordered with that of
328	the target when not going to a tty
329	o main.c: check for shellPath whether to call Shell_Init()
330
3312023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
332
333	* VERSION (_MAKE_VERSION): 20231224
334	Merge with NetBSD make, pick up
335	o compat.c: check for shellPath whether to call Shell_Init()
336	tweak the unit test to detect the bug thus fixed.
337	o make.1: do not claim .SHELL is only used by jobs mode.
338
3392023-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
340
341	* VERSION (_MAKE_VERSION): 20231220
342	Merge with NetBSD make, pick up
343	o str.c: speed up pattern matching in the ':M' modifier
344	o var.c: fix confusing debug logging when deleting a variable
345	use consistent debug messages style when ignoring variables
346
3472023-12-10  Simon J Gerraty  <sjg@beast.crufty.net>
348
349	* VERSION (_MAKE_VERSION): 20231210
350	Merge with NetBSD make, pick up
351	o var.c: avoid segfault on empty :C match expression
352	explain in debug log why variable assignment is ignored.
353
3542023-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
355
356	* VERSION (_MAKE_VERSION): 20231208
357	Merge with NetBSD make, pick up
358	o var.c: ensure fromCmd is set correctly for variables set on
359	command line.
360
3612023-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
362
363	* configure.in: disable generation of 'makefile' for
364	Darwin by default.
365
366	* boot-strap: docuement --without-makefile
367
3682023-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
369
370	* VERSION (_MAKE_VERSION): 20231124
371	Merge with NetBSD make, pick up
372	o main.c: cleanup processing of -j
373	fix lint warning about strchr
374	o var.c: more accurate error message for invalid ':mtime' argument
375	cleanup :[...] modifier
376	avoid reading beyond substring when comparing
377	o unit-tests cover all cases of :mtime, test and explain exporting
378	of variables
379	o cleanup comments
380
3812023-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
382
383	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
384	$FreeBSD$ tag, so avoid adding it.
385
3862023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
387
388	* VERSION (_MAKE_VERSION): 20230909
389	Merge with NetBSD make, pick up
390	o main.c: allow -j to compute a multiple of ncpu
391	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
392	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
393	_SC_NPROCESSORS_ONLN
394	.MAKE.JOBS.C will be "yes" if -jC is supported
395
3962023-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
397
398	* VERSION (_MAKE_VERSION): 20230820
399	Merge with NetBSD make, pick up
400	o make.1: note that :localtime is better for %s
401	o parse.c: improve error messages for invalid input.
402	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
403	correct result, it is still better to use %s:L:localtime.
404
4052023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
406
407	* VERSION (_MAKE_VERSION): 20230818
408	Merge with NetBSD make, pick up
409	o meta.c: meta_ignore - check raw path against metaIgnorePaths
410	to potentially skip call to realpath.
411	o var.c: be strict when parsing the argument of the ':mtime' modifier
412	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
413	should be used to get an equivalent value to time(3).
414
4152023-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
416
417	* VERSION (_MAKE_VERSION): 20230816
418	Merge with NetBSD make, pick up
419	o cond.c: clean up multiple-inclusion guards
420
4212023-07-25  Simon J Gerraty  <sjg@beast.crufty.net>
422
423	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
424	if configure cannot work out how to control TZ.
425	Remove varmod-localtime from BROKEN_TESTS for IRIX*
426
4272023-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
428
429	* VERSION (_MAKE_VERSION): 20230723
430
431	* configure.in: fix the test for wether TZ=Europe/Berlin works.
432	Depending on the time of year, if run between 22:00 and 00:00 UTC
433	the check in configure would fail incorrectly.
434	Take the day into account as well.
435
4362023-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
437
438	* VERSION (_MAKE_VERSION): 20230711
439	Merge with NetBSD make, pick up
440	o make.1: clean up wording, clarify scope of '!' in conditions
441
4422023-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
443
444	* make-bootstrap.sh.in: set prefix
445	If configure is run using ksh we get unexpanded ${prefix} in
446	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
447	correct result.
448
4492023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
450
451	* VERSION (_MAKE_VERSION): 20230711
452	bump version for IRIX tweaks
453
454	* make.h: undef OP_NONE if defined
455
456	* unit-tests/Makefile: set BROKEN_TESTS for IRIX
457
458	* configure.in: override INSTALL on IRIX
459
4602023-06-27  Simon J Gerraty  <sjg@beast.crufty.net>
461
462	* boot-strap op_test: ensure we set TEST_MAKE as we want it.
463
4642023-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
465
466	* VERSION (_MAKE_VERSION): 20230622
467	Merge with NetBSD make, pick up
468	o optimize string matching for ':M' and ':N'
469	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
470
4712023-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
472
473	* VERSION (_MAKE_VERSION): 20230621
474	Merge with NetBSD make, pick up
475	o more extensive tests for include guards
476	o parse.c: if a guard is already defined a file that uses the same
477	guard is still guarded by it.
478
4792023-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
480
481	* VERSION (_MAKE_VERSION): 20230620
482	Merge with NetBSD make, pick up
483	o allow guards to be targets as well as variables
484	The guard targets may include variable references like
485	__${.PARSEDIR:tA}/${.PARSEFILE}__
486
4872023-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
488
489	* VERSION (_MAKE_VERSION): 20230619
490	Merge with NetBSD make, pick up
491	o unit test for .undef of readOnly vars
492	o optimization for makefiles protected from multiple-inclusion
493	skip even opening the file after first include.
494	Initially this only handles makefiles guarded by a variable
495	target guards are next.
496
4972023-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
498
499	* VERSION (_MAKE_VERSION): 20230616
500	Merge with NetBSD make, pick up
501	o var.c: do not allow delete of readOnly variable
502
5032023-06-03  Simon J Gerraty  <sjg@beast.crufty.net>
504
505	* VERSION (_MAKE_VERSION): 20230601
506	Merge with NetBSD make, pick up
507	o parse.c: .break takes no args
508	o lots of unit test updates
509
5102023-05-29  Simon J Gerraty  <sjg@beast.crufty.net>
511
512	* unit-tests/Makefile: skip tests that require /dev/filemon
513	if it does not exists - issue a warning.
514
5152023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
516
517	* VERSION (_MAKE_VERSION): 20230522
518	Fix building on darwin ppc
519
520	* os.sh (MACHINE): Darwin powerpc cannot use `uname -m`
521	also recent NetBSD uses x86_64 for MACHINE_ARCH so conform.
522
5232023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
524
525	* VERSION (_MAKE_VERSION): 20230515
526
527	* Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to
528	compile filemon_ktrace.c
529
5302023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
531
532	* VERSION (_MAKE_VERSION): 20230512
533	o sys.dirdeps.mk - broke after-import target
534
5352023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
536
537	* VERSION (_MAKE_VERSION): 20230510
538	Merge with NetBSD make, pick up
539	o parse.c: don't print null filename in stack traces
540	o var.c: :mtime operate on each word in variable value
541
5422023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
543
544	* VERSION (_MAKE_VERSION): 20230509
545	Merge with NetBSD make, pick up
546	o for.c: skip syntactically wrong .for loops
547	o var.c: allow for :gmtime=${mtime}
548	add :mtime[=timestamp] where timestamp is used if stat(2)
549	fails, if :mtime=error stat(2) failure causes error.
550
5512023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
552
553	* VERSION (_MAKE_VERSION): 20230504
554	Merge with NetBSD make, pick up
555	o compat.c: fix compile on NetBSD 7.2
556	o make.1: fix documentation of .PREFIX to match reality and POSIX
557	o unit-tests: improved var-scope-local
558
5592023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
560
561	* VERSION (_MAKE_VERSION): 20230414
562	Merge with NetBSD make, pick up
563	o minor cleanup
564
5652023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
566
567	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
568	unlimited results in an insane number (0x7fffffffffffffff).
569	If BMAKE_NOFILE_MAX is defined, use that instead.
570
5712023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
572
573	* VERSION (_MAKE_VERSION): 20230321
574	Merge with NetBSD make, pick up
575	* make.1: document seemingly unexplained Error code 6.
576
5772023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
578
579	* VERSION (_MAKE_VERSION): 20230317
580	Merge with NetBSD make, pick up
581	o compat.c: CompatDeleteTarget skip .PHONY targets to be
582	consistent with JobDeleteTarget.
583	o job.c: fix memory leak in handling sysv :from=to modifiers
584
5852023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
586
587	* VERSION (_MAKE_VERSION): 20230303
588	Merge with NetBSD make, pick up
589	o several updated unit-tests
590
5912023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
592
593	* VERSION (_MAKE_VERSION): 20230222
594	Merge with NetBSD make, pick up
595	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
596
5972023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
598
599	* VERSION (_MAKE_VERSION): 20230218
600	Merge with NetBSD make, pick up
601	o var.c: fix parsing of unevaluated subexpressions with
602	unbalanced '{}'
603
6042023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
605
606	* VERSION (_MAKE_VERSION): 20230215
607	Merge with NetBSD make, pick up
608	o inline macros for some variable names
609	o cond.c: reduce complexity of evaluating expressions
610
6112023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
612
613	* VERSION (_MAKE_VERSION): 20230208
614	Merge with NetBSD make, pick up
615	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
616	when it has been used within conditional expressions
617
6182023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
619
620	* VERSION (_MAKE_VERSION): 20230127
621
622	* install-sh: if making directories ensure umask is set
623	to match mode.
624
625	* Makefile: use DIRMODE for directories and
626	NONBINMODE for man pages and mk files
627
6282023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
629
630	* VERSION (_MAKE_VERSION): 20230126
631	Merge with NetBSD make, pick up
632	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
633	should be read-only.
634
6352023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
636
637	* VERSION (_MAKE_VERSION): 20230123
638	Merge with NetBSD make, pick up
639	o .[NO]READONLY: for control of read-only variables
640	o .SYSPATH: for controlling the path searched for makefiles
641
6422023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
643
644	* VERSION (_MAKE_VERSION): 20230120
645	Merge with NetBSD make, pick up
646	o allow for white-space between command specifiers @+-
647	o add more details to warning 'Extra targets ignored'
648
6492023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
650
651	* machine.sh: leverage os.sh rather than duplicate
652	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
653	for that purpose for the past decade or so.
654	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
655
6562023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
657
658	* VERSION (_MAKE_VERSION): 20230101
659	Merge with NetBSD make, pick up
660	o cleanup comments, inline some LazyBuf_ methods
661	o unit-tests/ add/improve comments in tests
662	o make.1: sync list of built-in variables with reality
663	sort list of built-in variables
664	reduce indentation of the long list of variable names
665	use consistent markup for boolean flags
666	move description of .MAKE.MODE below the .MAKE.META block
667	clarify in which case an expression may omit braces
668
6692022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
670
671	* VERSION (_MAKE_VERSION): 20221024
672	Merge with NetBSD make, pick up
673	o change return type of unlink_file back to int
674
6752022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
676
677	* Makefile: Darwin and Linux can handle MANTARGET=man
678
6792022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
680
681	* VERSION (_MAKE_VERSION): 20220928
682	Merge with NetBSD make, pick up
683	o fix more ignored returns from snprintf
684	o compile with higher warnings
685
6862022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
687
688	* main.c meta.c: do not ignore return from snprintf
689
690	* meta.c strlcpy.c: we need prototype for strlcpy
691
692	* sigcompat.c: fix unused function warnings
693
6942022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
695
696	* VERSION (_MAKE_VERSION): 20220924
697	Merge with NetBSD make, pick up
698	o fix bug in .break reset of conditional depth
699	o overhaul and simplify tracking of conditional depth
700
7012022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
702
703	* VERSION (_MAKE_VERSION): 20220912
704	Merge with NetBSD make, pick up
705	o man page updates
706
7072022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
708
709	* VERSION (_MAKE_VERSION): 20220909
710	Merge with NetBSD make, pick up
711	o update unit-tests to handle deprecation of egrep
712	o cond.c: add more details to error message for numeric comparison
713
714	* configure.in: allow for deprecation of egrep
715
716	* Makefile: Linux can handle MANTARGET=man
717
7182022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
719
720	* VERSION (_MAKE_VERSION): 20220903
721	Merge with NetBSD make, pick up
722	o job.c: fix handling of null bytes in output
723
7242022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
725
726	* VERSION (_MAKE_VERSION): 20220902
727	Merge with NetBSD make, pick up
728	o Allow .break to terminate a .for loop early
729
7302022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
731
732	* VERSION (_MAKE_VERSION): 20220901
733	Merge with NetBSD make, pick up
734	o var.c: fix out-of-bounds errors when parsing
735
7362022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
737
738	* VERSION (_MAKE_VERSION): 20220824
739	Merge with NetBSD make, pick up
740	o var.c: revert change to modifier parsing that breaks
741	shell variable references within ':@var@body@'
742	o adjust unit-tests
743
7442022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
745
746	* VERSION (_MAKE_VERSION): 20220818
747	Merge with NetBSD make, pick up
748	o fix exit status for '-q' (since 1994)
749
7502022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
751
752	* VERSION (_MAKE_VERSION): 20220808
753	Merge with NetBSD make, pick up
754	o var.c: fix parsing of modifiers containing unbalanced subexpressions
755	extract parsing of ':D' and ':U' modifiers into separate function
756
7572022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
758
759	* VERSION (_MAKE_VERSION): 20220726
760
761	* Auto-create objdir for bmake/unit-tests if appropriate
762
7632022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
764
765	* VERSION (_MAKE_VERSION): 20220724
766	Merge with NetBSD make, pick up
767	o make.1: describe variable assignment and evaluation more precisely
768	o parse.c: fix out-of-bounds read when parsing an invalid line
769	o var.c: simplify return type of IsShortVarnameValid
770
7712022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
772
773	* VERSION (_MAKE_VERSION): 20220612
774	Merge with NetBSD make, pick up
775	o allow to randomize build order of targets
776	.MAKE.MODE += randomize-targets can help uncover dependency bugs
777	within a makefile.
778	o compat.c: rename Compat_Run to Compat_MakeAll
779	o make.c: inline MakeBuildParent
780	inline make_abort, improve error details
781	o parse.c: reorganize Parse_Error
782	fix memory leak in wildcard targets and sources
783	separate cases in HandleDependencyTargetMundane
784	extract HandleSingleDependencyTargetMundane
785	rename loadfile to LoadFile
786	split IncludeFile into separate functions
787	condense code for searching a file in the paths
788	fix off-by-one error in buffer for .WAIT nodes
789	o str.c: condense Str_Match
790	make code for string matching syntactically more consistent
791
7922022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
793
794	* VERSION (_MAKE_VERSION): 20220418
795	Merge with NetBSD make, pick up
796	o ignore '.POSIX:' if not in first non-comment line
797	of Makefile as specified by POSIX.
798	add unit-tests for above.
799	o meta.c: make it easier to find usage of identifiers
800	o targ.c: add .USEBEFORE to Targ_PrintType
801
8022022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
803
804	* VERSION (_MAKE_VERSION): 20220414
805
806	* unit-tests/Makefile: simplify checks for shells with
807	BROKEN_TESTS, this helps with other Linux distros that
808	use dash.
809
8102022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
811
812	* VERSION (_MAKE_VERSION): 20220330
813	Merge with NetBSD make, pick up
814	o var.c: fix spacing, and a typo in a test
815
8162022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
817
818	* VERSION (_MAKE_VERSION): 20220326
819	Merge with NetBSD make, pick up
820	o parse.c: try to include 'posix.mk' the first time
821	.POSIX: is encountered, to allow for beter POSIX compliance.
822	o var.c: make debug logs more readable
823	prefer 'long long' over 'long' on 32-bit C99 platforms
824	fix crash on .undef of an environment variable
825
8262022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
827
828	* VERSION (_MAKE_VERSION): 20220303
829	Merge with NetBSD make, pick up
830	o tell meta mode unit tests not to expect filemon
831	o cond.c: make debug logging for comparisons less technical
832	o lst.c: fix mem leak in Lst_Remove
833	o str.c: make code for string matching syntactically more consistent
834	o var.c: simplify ParseModifier_Match
835
8362022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
837
838	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
839
840	* VERSION (_MAKE_VERSION): 20220214
841	Merge with NetBSD make, pick up
842	o cond.c: simplify control flow in CondParser_Comparison
843	o job.c: fix echoing of command with '-' in silent target in jobs mode
844	o main.c: prefix the warning about read-only .OBJDIR with a colon
845	o parse.c: remove redundant conditions
846	o var.c: simplify control flow in ModifyWord_SysVSubst
847
8482022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
849
850	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
851	is any chance we have dash as .SHELL
852
853	* VERSION (_MAKE_VERSION): 20220208
854	Merge with NetBSD make, pick up
855	o more unit tests
856	o meta.c: use a variable to hold command line to be filtered
857	to avoid any side effects from content of command line.
858
8592022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
860
861	* VERSION (_MAKE_VERSION): 20220204
862	Merge with NetBSD make, pick up
863	o use unsigned consistently for line numbers, avoid the need for %z
864	o parse.c: do not step off end of input in Parse_IsVar
865	when checking for target local variable assignments
866
8672022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
868
869	* VERSION (_MAKE_VERSION): 20220202
870	Merge with NetBSD make, pick up
871	o remove redundant declaration of HashIter_Init
872	o make DEBUG0 simpler
873
8742022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
875
876	* cast gn->lineno to avoid %z
877
878	* VERSION (_MAKE_VERSION): 20220130
879	Merge with NetBSD make, pick up
880	o more unit tests
881	o make GNode lineno unsigned to please lint
882	o print location of recursive variable references in commands
883	o print "stack trace" (makefile includes) on fatal errors
884	o make.1: refine documentation for target local assignments
885
8862022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
887
888	* VERSION (_MAKE_VERSION): 20220128
889	Merge with NetBSD make, pick up
890	o inline functions called only once
891	o for.c: clean up AddEscape for building the body of a .for loop
892	o hash.c: merge duplicate code for finding an entry in a hash table
893	replace HashEntry_KeyEquals with strncmp
894	o make.1: document quirks of target local variable assignments.
895	o parse.c: cleanup white-space
896
8972022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
898
899	* VERSION (_MAKE_VERSION): 20220126
900	Merge with NetBSD make, pick up
901	o allow setting target local variables
902	o more unit tests
903	o add missing newline after "cannot continue" message
904	o meta.c: clean up eat_dots
905	o parse.c: fix filename in warning about duplicate script
906	o var.c: when expanding nested variables, check simple things first
907
9082022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
909
910	* VERSION (_MAKE_VERSION): 20220116
911	Merge with NetBSD make, pick up
912	o fix for unit-tests/varname-makeflags on non-BSD systems
913	o use Var_Exists rather than Var_Value where appropriate
914	o remove unnecessary functions for expanding variable names
915	o cond.c: inline EvalBare
916	o main.c: lint cleanup
917	o parse.c: condense code in Parse_IsVar
918	use islower for parsing directives (none have upper case)
919
9202022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
921
922	* VERSION (_MAKE_VERSION): 20220112
923	Merge with NetBSD make, pick up
924	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
925	comparion, rarely needed but useful when it is.
926
9272022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
928
929	* VERSION (_MAKE_VERSION): 20220110
930	Merge with NetBSD make, pick up
931	o inline Buf_Clear
932	o remove redundant braces
933	o rename and inline Targ_Precious
934	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
935	o for.c: clean up handling of .for loops
936	fix reported line numbers of continuation lines
937	add details about .for loop variables to stack traces
938	o job.c: reduce code for initializing error handling in shell
939	o main.c: in Cmd_Exec, return error message instead of format string
940	have as few statements as possible between va_start and va_end
941	add debug logging for capturing the output of external commands
942	o make.c: use consistent variable names for varargs
943	o make_malloc.c: remove duplicate code from bmake_strdup
944	o parse.c: add missing printflike annotations
945	remove redundant lines from stack traces
946	fix stack traces in -dp mode
947	reduce confusing code in ParseForLoop
948	fix line number in debug log after returning from a file
949	rename IFile and its fields to match their actual content
950	clean up ParseDependencySources
951	o var.c: shorten ApplyModifier_Assign
952	rename is_shell_metachar, fix character conversion warning
953	merge calls to ApplyModifier_Time
954	merge duplicate code for modifiers 'gmtime' and 'localtime'
955
9562022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
957
958	* parse.c: loadfile restore extra byte in buffer.
959
9602022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
961
962	* VERSION (_MAKE_VERSION): 20220101
963	Merge with NetBSD make, pick up
964	o more unit-tests
965	o remove unnecessary words from command line options in CmdOpts
966	o rename eunlink to unlink_file
967	o cond.c: make ParseWord in condition parser simpler
968	internally return false for irrelevant leaves in conditions
969	replace table for function lookup in conditions with simple code
970	merge duplicate types CondEvalResult and CondResult
971	o for.c: clean up handling of .for loops and .include directives
972	o main.c: constify cached_realpath
973	clean up Cmd_Exec
974	o parse.c: sync API documentation
975	fix error message when reading more than 1 GB from stdin
976	clean up parsing of makefiles
977	fix line number in error message about open conditionals
978	unexport types VarAssignOp and VarAssign
979	clean up function names
980	remove redundant parameters in dependency parsing functions
981	reduce scope of the list of wildcard target names
982	extract OP_NOTARGET into separate function
983	clean up variable names for parsing dependency lines
984	make debug logging a bit more human-friendly
985	o var.c: condense code in ApplyModifier_Assign
986
9872021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
988
989	* VERSION (_MAKE_VERSION): 20211221
990	Merge with NetBSD make, pick up
991	o more unit-tests
992	o style cleanup
993	o in CLEANUP mode, free interned strings at the very end
994	o fix memory leak for filenames in .for loops
995	o buf.c: avoid memory leak
996	o cond.c: condense CondParser_ComparisonOp
997	o hash.c: change return type of HashTable_Set to void
998	o job.c: change return type of Compat_RunCommand from int to bool
999	o main.c: remove bmake_free
1000	o parse.c: condense repetetive code in ParseDirective
1001	remove dead code for handling traditional include directives
1002	clean up parsing of variable assignments
1003	remove unreachable code for parsing the dependency operator
1004	clean up loading of files
1005	fix memory leak in IncludeFile
1006	o var.c: fix memory leak when parsing a variable name
1007	fix memory leak from ${.SUFFIXES}
1008	reduce memory allocation in modifier ':?' and ':C'
1009	condense RegexReplace for the modifier ':C' and avoid strlen
1010	merge duplicate code for memory handling in Var_Parse
1011	distinguish between short-lived and environment variables
1012	rename VarFreeEnv to VarFreeShortLived
1013
10142021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
1015
1016	* cond.c: fix mem leak in CondParser_Leaf
1017
10182021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1019
1020	* VERSION (_MAKE_VERSION): 20211212
1021	Merge with NetBSD make, pick up
1022	o rename Parse_SetInput to Parse_PushInput
1023	o remove remove period from end of error messages and warnings
1024	to be more consistent
1025	o arch.c: use simpler memory management for parsing archive members
1026	o cond.c: rework and reduce recursion
1027	o for.c: rename some functions to better reflect purpose
1028	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
1029	o var.c: in parse errors, mark whitespace more clearly
1030	inline ParseEmptyArg into CondParser_FuncCallEmpty
1031	minimize calls to LazyBuf_Get in ParseVarnameLong
1032	treat .SUFFIXES as a read-only variable
1033
10342021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
1035
1036	* VERSION (_MAKE_VERSION): 20211207
1037	Merge with NetBSD make, pick up
1038	o inline HashIter_Init
1039	o parse.c: inline common subexpression in ParseRawLine
1040	o var.c: merge branches for modifiers ':D' and ':U'
1041	extract common code into Expr_Words
1042	extract common code into Expr_Str
1043	move low-level implementation details out of Var_Parse
1044
10452021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1046
1047	* VERSION (_MAKE_VERSION): 20211206
1048	Merge with NetBSD make, pick up
1049	o add unit-tests/varmod-loop-delete
1050	o for.c: inline Str_Words - reduce memory allocation
1051	o parse.c: do not try to expand fixed variable names
1052	only allocate the name of an included file if necessary
1053	clean up ParseInclude
1054	o var.c: fix use-after-free in modifier ':@'
1055	save a memory allocation in each modifier ':O' and ':u'
1056	save a memory allocation in the modifier ':[...]'
1057	in UnexportVars, replace Str_Words with Substring_Words to
1058	reduce allocations and copying.
1059
10602021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
1061
1062	* VERSION (_MAKE_VERSION): 20211204
1063	Merge with NetBSD make, pick up
1064	o flesh out a number of tests
1065	o replace enums with bitfields, this simplifies a lot of code.
1066	o var.c: refactor ParseModifierPartSubst
1067
10682021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
1069
1070	* VERSION (_MAKE_VERSION): 20211024
1071	Merge with NetBSD make, pick up
1072	o Punt on write errors - ENOSPC etc.
1073
10742021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1075
1076	* configure.in: use_defshell, set both DEFSHELL_INDEX
1077	and defshell_path if appropriate.
1078	This makes it easier to use say the KSH specification with
1079	and alternate path for the shell.
1080
1081	* configure.in compat.c: for SCO we need to force UseShell
1082
1083	* configure.in: SCO /bin/sh is not usable, provide a list of
1084	alternatives for use as .SHELL.
1085	We still have to mark some tests as broken, plus more if we end up
1086	with ksh as .SHELL.
1087	Issue a warning about skipped tests.
1088
1089	* boot-strap: leave TOOL_DIFF to configure
1090
1091	* configure.in: on SCO native cc is not usable,
1092	gcc is to be found in /usr/gnu/bin
1093	and while ancient is at least able to compile bmake.
1094	Thus we add /usr/gnu/bin to PATH if it exists, and later
1095	check if $CC would have been found via $PATH.
1096	If not we set CC to the full path of $CC.
1097	Also gnu diff is known to support -u, so if it exists use it.
1098
1099	* configure.in: move getopt to AC_REPLACE_FUNCS
1100	also add AC_C_INLINE - in an attempt to compile using
1101	native cc on SCO.
1102
1103	* configure.in: check for stresep as well as strsep, since we
1104	define the later to the former if necessary, and if we have to
1105	provide stresep we also need to provide a prototype.
1106
1107	* configure.in: we no longer need to worry about
1108	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
1109
1110	* make.h: make sure we have __RCSID
1111
1112	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
1113	can control it.
1114
11152021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
1116
1117	* VERSION: 20211020
1118	Merge with NetBSD make, pick up
1119	o confirm sync of unit-tests
1120
11212021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1122
1123	* configure.in: check if timezone Europe/Berlin is supported
1124	if not try UTC-1
1125	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
1126	symlink unit-tests -> ../unit-tests/obj so that
1127	unit-tests/Makefile.config is put in the right place.
1128	* refine filtering of .OBJDIR in unit-tests
1129
11302021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
1131
1132	* Fix unit-tests on Minix 3.2.0
1133	o job.c: do not punt if read of token pipe fails for EAGAIN.
1134	On Minix at least, we are not ready to read the childExitJob pipe
1135	when poll says we are.
1136	There should actually be no reason for this pipe to be
1137	non-blocking, but while that works fine on {Net,Free}BSD it
1138	breaks another test case on Minix.
1139	o unit-tests/Makefile: deal with variants of error messages
1140	  and use of obj as .OBJDIR
1141
11422021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
1143
1144	* configure.in: add sigaction to AC_REPLACE_FUNCS
1145	we also need to check for sigaddset etc just for the benefit of
1146	sigact.c
1147
1148	* Add sigact.c as sigaction.c so this "just works".
1149	This should have been done back when bmake_signal started using
1150	sigaction (I only just noticed that sigact.c wasn't here ;-)
1151	Note: I no longer have access to any system where this would matter.
1152
11532021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
1154
1155	* VERSION (_MAKE_VERSION): 20211011
1156
1157	* Makefile: cleanup a little
1158
1159	* configure.in: check for sigsetmask
1160
11612021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1162
1163	* VERSION (_MAKE_VERSION): 20211001
1164	Merge with NetBSD make, pick up
1165	o reduce locations reducing text size
1166	o remove unnecessary const
1167	o cond.c: fix lint warning on i386
1168	do not allow unquoted 'left == right' after modifier ':?'
1169	o hash.c: fix build for DEBUG_HASH_LOOKUP
1170	o var.c: fix memory leak in error case of the ':?' modifier
1171
11722021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1173
1174	* VERSION (_MAKE_VERSION): 20210911
1175	Merge with NetBSD make, pick up
1176	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
1177
11782021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
1179
1180	* VERSION (_MAKE_VERSION): 20210906
1181	Merge with NetBSD make, pick up
1182	o more unit tests
1183	o lint cleanup
1184	o rename some functions to better fit purpose
1185	o for.c: cleanup - remove unnecessary optimization
1186	  fix embedded newlines
1187	o parse.c: correct case for CVS/RCS
1188
11892021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
1190
1191	* VERSION (_MAKE_VERSION): 20210808
1192	Merge with NetBSD make, pick up
1193	o var.c: remove redundant initialization in ApplyModifier_Order
1194
1195	* mk/options.mk: issue warning for incorrect usage
1196
11972021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1198
1199	* var.c: use long for :On if we don't have a 64bit int type
1200
1201	* VERSION (_MAKE_VERSION): 20210803
1202	Merge with NetBSD make, pick up
1203	o rework varmod-order tests to avoid qsort instability
1204	o make.1: clarify :On entry
1205
12062021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1207
1208	* VERSION (_MAKE_VERSION): 20210731
1209	Merge with NetBSD make, pick up
1210	o fix some lint issues
1211	o more unit tests
1212	o var.c: rework of ApplyModifier_Order
1213
12142021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1215
1216	* util.c: add strto*l if HAVE_STRTO*L not defined
1217
1218	* VERSION (_MAKE_VERSION): 20210730
1219	Merge with NetBSD make, pick up
1220	o var.c: add :On and :Orn for numeric sort
1221	  disabled if no 64bit type available.
1222	o _strtol.h: to implement strto*l functions
1223
12242021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1225
1226	* VERSION (_MAKE_VERSION): 20210704
1227	Merge with NetBSD make, pick up
1228	o unit-tests: fix some tests to be more portable
1229	- job-output-null not all shells do the same number of write calls
1230	- objdir-writable if TMPDIR is set; /tmp may not be usable
1231
12322021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1233
1234	* VERSION (_MAKE_VERSION): 20210701
1235	Merge with NetBSD make, pick up
1236	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
1237	some tests just cannot work in some environments.
1238	o buf.c: simpler upper bound for length in Buf_AddInt
1239	o cond.c: fix grammar in error message for malformed conditional
1240	o for.c: prevent newline injection (from ${.newline}) in .for loops
1241	o var.c: use more practical data type in RegexReplace
1242	(avoid need for %zu)
1243	extract RegexReplace from ModifyWord_SubstRegex
1244
12452021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
1246
1247	* VERSION (_MAKE_VERSION): 20210621
1248	Merge with NetBSD make, pick up
1249	o var.c: only report error for unmatched regex subexpression
1250	when linting (-dL) since we cannot tell when an unmatched
1251	subexpression is an expected result.
1252	o move unmatched regex subexpression tests to
1253	varmod-subst-regex.mk and enable strict (lint) mode
1254
12552021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
1256
1257	* VERSION (_MAKE_VERSION): 20210616
1258	Merge with NetBSD make, pick up
1259	o more unit tests
1260	o cond.c: rename If_Eval to EvalBare
1261	improve function names for parsing conditions
1262	o job.c: fix error handling of targets that cannot be made
1263	o var.c: uncompress code in ApplyModifier_Unique
1264
12652021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
1266
1267	* VERSION (_MAKE_VERSION): 20210518
1268	Merge with NetBSD make, pick up
1269	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
1270	o job.c: Print -de error information when running multiple jobs
1271
12722021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1273
1274	* VERSION (_MAKE_VERSION): 20210420
1275	Merge with NetBSD make, pick up
1276	o use C99 bool type
1277	o convert VarEvalFlags back into an enum
1278	o cond.c: do not complain when skipping the condition 'no >= 10'
1279	o hash.c: avoid allocating memory for simple variable names
1280	o job.c: use distinct wording for writing to the shell commands file
1281	remove type name for the abort status in job handling
1282	rename PrintOutput to PrintFilteredOutput to avoid confusion
1283	o main.c: avoid double slash in name of temporary directory
1284	o var.c: use straight quotes for error 'Bad conditional expression'
1285	reduce memory allocations in the modifiers ':D' and ':U'
1286	rename members of ModifyWord_LoopArgs
1287	clean up pattern flags for the modifiers ':S' and ':C'
1288	reduce memory allocation and strlen calls in modifier ':from=to'
1289	in the ':Q' modifier, only allocate memory if necessary
1290	improve performance for LazyBuf
1291	remove redundant parameter from ParseVarnameLong
1292	migrate ParseModifierPart to use Substring
1293	avoid unnecessary calls to strlen when evaluating modifiers
1294	migrate ModifyWord functions to use Substring
1295	migrate handling of the modifier ':S,from,to,' to Substring
1296	reduce debug logging and memory allocation for ${:U...}
1297	reduce verbosity of the -dv debug logging for standard cases
1298	clean up debug logging for ':M' and ':N'
1299	disallow '$' in the variable name of the modifier ':@'
1300	simplify access to the name of an expression during evaluation
1301
13022021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1303
1304	* VERSION (_MAKE_VERSION): 20210330
1305	Merge with NetBSD make, pick up
1306	o replace enum bit-field with struct bit-field for VarEvalFlags
1307	o rename VARE_NONE to VARE_PARSE_ONLY
1308	o var.c: rename ApplyModifiersState to ModChain
1309	fix double varname expansion in the variable modifier '::='
1310	change debug log for variable evaluation flags to lowercase
1311
13122021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
1313
1314	* VERSION (_MAKE_VERSION): 20210314
1315	Merge with NetBSD make, pick up
1316	o var.c: avoid evaluating many modifiers in parse only mode
1317	in strict mode (-dL) many variable references are parsed twice,
1318	the first time just to report parse errors early, so we want to
1319	avoid side effects and wasted effort to the extent possible.
1320
13212021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
1322
1323	* VERSION (_MAKE_VERSION): 20210226
1324	Merge with NetBSD make, pick up
1325	o remove freestanding freeIt variables
1326	link via FStr
1327	o var.c: restructure code in ParseVarname to target human readers
1328	improve error message for;
1329	  bad modifier in variable expression
1330	  unclosed modifier
1331	  unknown modifier
1332	remove redundant parameter of ApplySingleModifier
1333	explain non-obvious code around indirect variable modifiers
1334	quote ':S' in error message about missing delimiter
1335	extract ParseModifier_Match into separate function
1336	add context information to error message about ':range' modifier
1337	add quotes around variable name in an error message
1338	reorder code in ModifyWords
1339	use more common parameter order for VarSelectWords
1340	make ModifyWord_Subst a little easier to understand
1341	do not expand variable name from the command line twice
1342	extract ExistsInCmdline from Var_SetWithFlags
1343	save a hash map lookup when defining a cmdline variable
1344	clean up VarAdd, Var_Delete, Var_ReexportVars
1345	use bit-shift expressions for VarFlags constants
1346	rename constants for VarFlags
1347	rename ExprDefined constants for debug logging
1348	rename ExprStatus to ExprDefined
1349	split parameters for evaluating variable expressions
1350	reduce redundant code around ModifyWords
1351	print error about failed shell command before overwriting variable
1352	clean up ValidShortVarname, ParseVarnameShort
1353	rename VarExprStatus to ExprStatus
1354	add functions for assigning the value of an expression
1355	rename ApplyModifiersState_Define to Expr_Define
1356	condense the code for parsing :S and :C modifiers
1357
13582021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
1359
1360	* VERSION (_MAKE_VERSION): 20210206
1361	Merge with NetBSD make, pick up
1362	o unit-tests: use private TMPDIR to avoid errors from other users
1363
13642021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1365
1366	* VERSION (_MAKE_VERSION): 20210205
1367	Merge with NetBSD make, pick up
1368	o avoid strdup in mkTempFile
1369	o always use vfork
1370	o rename context and ctxt to scope
1371	o rename some VAR constants to SCOPE
1372	o Var_ functions, move the scope to the front
1373	o use shortcut functions Global_Set and Global_Append
1374	o add shortcut Global_Delete for deleting a global variable
1375	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
1376	o compat.c: when exiting due to an error, print graph information
1377	o enum.c: remove overengineered Enum_ValueToString
1378	o make.c: remove unused INTERNAL flag
1379	remove unused return type of MakeBuildParent
1380	o parse.c: replace parse error "Need an operator" with better message
1381	o var.c: improve documentation about variable scopes
1382	rename Var_ValueDirect to GNode_ValueDirect
1383	rename old Var_SetWithFlags to Var_SetExpandWithFlags
1384	merge SetVar into Var_SetWithFlags
1385	split Var_Exists into plain Var_Exists and Var_ExistsExpand
1386	split Var_Append into Var_Append and Var_AppendExpand
1387	replace enum bit-set with bit-field
1388	o unit-tests/var-op-shell: use kill rather than kill -14
1389	which broke on darwin with recent update.
1390
13912021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
1392
1393	* configure.in: check for sig_atomic_t and define it as 'int'
1394	if missing.
1395
1396	* VERSION (_MAKE_VERSION): 20210201
1397	Merge with NetBSD make, pick up
1398	o use sig_atomic_t for caught_sigchld
1399
14002021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1401
1402	* VERSION (_MAKE_VERSION): 20210130
1403	Merge with NetBSD make, pick up
1404	o more unit tests
1405	o convert SearchPath to struct
1406	o split Buf_Destroy into Buf_Done and Buf_DoneData
1407	o for.c: split For_Eval into separate functions
1408	rename struct For to struct ForLoop
1409	o job.c: do not create empty shell files in jobs mode
1410	rename JobOpenTmpFile to JobWriteShellCommands
1411	reduce unnecessary calls to waitpid
1412	o parse.c: in -dp mode, print stack trace with each diagnostic
1413
14142021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1415
1416	* VERSION (_MAKE_VERSION): 20210123
1417	Merge with NetBSD make, pick up
1418	o rename Dir_Expand to SearchPath_Expand
1419	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
1420	o cond.c: fix debug output for comparison operators in conditionals
1421	o dir.c: split Dir_FindFile into separate functions
1422
14232021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1424
1425	* VERSION (_MAKE_VERSION): 20210120
1426	Merge with NetBSD make, pick up
1427	o fix some more lint nits
1428	o refine some unit tests for portability
1429	o cond.c: rework parsing
1430
14312021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1432
1433	* VERSION (_MAKE_VERSION): 20210110
1434	Merge with NetBSD make, pick up
1435	o fix lint warnings
1436	o consistently use boolean expressions in conditions
1437
14382021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
1439
1440	* VERSION (_MAKE_VERSION): 20210108
1441	Merge with NetBSD make, pick up
1442	o job.c: back to polling token pipe if we want a token
1443	o main.c: always print 'stopped in' on first call
1444	The execption is if we bail because of an abort token
1445	in which case just exit 6.
1446
14472021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1448
1449	* VERSION (_MAKE_VERSION): 20210101
1450	Merge with NetBSD make, pick up
1451	o Happy New Year!
1452	o rename CmdOpts.lint to strict
1453	o exit 2 on technical errors
1454	o replace pointers in controlling conditions with booleans
1455	o replace global preserveUndefined with VARE_KEEP_UNDEF
1456	o compat.c: re-export variables from the actual make process
1457	if using vfork this is the effect anyway
1458	o cond.c: clean up VarParseResult constants
1459	o for.c: fix undefined behavior in SubstVarLong
1460	make control flow in SubstVarLong of .for loops more obvious
1461	clean up SubstVarShort in .for loops
1462	extract ForSubstBody from ForReadMore
1463	clean up ForReadMore
1464	simplify termination condition for .for loop
1465	add error handling for .for loop items
1466	job.c: re-export variables from the actual make process
1467	parse.c: remove mmap for loading files, only allow files < 1 GiB
1468	fix edge case in := with undefined in variable name
1469	skip variable expansion in ParseDependencyTargetWord
1470	var.c: split ExportVar into separate functions
1471	clean up code in extracted ExportVar functions
1472	remove dead code from ApplyModifiersIndirect
1473	split Var_Subst into easily understandable functions
1474	clean up VarParseResult constants
1475
14762020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
1477
1478	* main.c: use .MAKE.DEPENDFILE as set by makefiles
1479
14802020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1481
1482	* VERSION (_MAKE_VERSION): 20201222
1483	Merge with NetBSD make, pick up
1484	o make DEBUG macro return boolean
1485	o parse.c: fix assertion failure for files without trailing newline
1486	o var.c: allow .undef to undefine multiple variables at once
1487	remove excess newline from parse errors
1488
14892020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1490
1491	* VERSION (_MAKE_VERSION): 20201221
1492	Merge with NetBSD make, pick up
1493	o some unit-test updates
1494
14952020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1496
1497	* VERSION (_MAKE_VERSION): 20201220
1498	Merge with NetBSD make, pick up
1499	o more unit tests
1500	o return FStr from Var_Parse and Var_Value
1501	o spell nonexistent consistently
1502	o add str_basename to reduce duplicate code
1503	o compat.c: fix .ERROR_TARGET in compat -k mode
1504	extract InitSignals from Compat_Run
1505	extract UseShell from Compat_RunCommand
1506	o cond.c: error out if an '.endif' or '.else' contain extraneous text
1507	o for.c: rename ForIterate to ForReadMore
1508	o hash.c: clean up hash function for HashTable
1509	o lst.c: rename Vector.priv_cap to cap
1510	o main.c: remove constant parameter from MakeMode
1511	o make.c: use symbolic time for 0 in Make_Recheck
1512	extract MakeChildren from MakeStartJobs
1513	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
1514	fix error message for .info/.warning/.error without argument
1515	extract Var_Undef from ParseDirective
1516	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
1517	rename mode constants for ParseGetLine to be more expressive
1518	reduce debugging details in Parse_SetInput
1519	fix line numbers in .for loops
1520	split ParseGetLine into separate functions
1521	fix garbled output for failed shell command
1522	var.c: remove redundant assignment in ApplyModifier_SysV
1523	error out on unknown variable modifiers at parse time
1524	remove wrong error message for indirect modifier in lint mode
1525	extract ApplySingleModifier from ApplyModifiers
1526	use FStr for memory management in Var_SetWithFlags
1527	extract SetVar from Var_SetWithFlags
1528	use FStr in VarNew
1529	extract string functions from ApplyModifier_To
1530	error out if .undef has not exactly 1 argument
1531	extract Var_DeleteVar from Var_Delete
1532	extract Var_Undef from ParseDirective
1533	clean up memory management for expanding variable expressions
1534
15352020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1536
1537	* avoid %zu
1538
1539	* lst.c: avoid anonymous union
1540
1541	* VERSION (_MAKE_VERSION): 20201212
1542	Merge with NetBSD make, pick up
1543	o more unit tests
1544	o inline Targ_Ignore and Targ_Silent
1545	o split JobFlags into separate fields
1546	o remove const from function parameters (left overs from refactoring)
1547	o eliminate boolean argument of Var_Export
1548	o make API of Buf_Init simpler
1549	o rename ParseRunOptions to ParseCommandFlags
1550	o replace *line with line[0]
1551	o compat.c: fix wrong exit status for multiple failed main targets
1552	refactor Compat_Run to show the error condition more clearly
1553	don't make .END if the main targets already failed (-k mode)
1554	fix exit status in -k mode if a dependency fails
1555	o for.c: clean up Buf_AddEscaped in .for loops
1556	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
1557	make Job_Touch simpler
1558	refactor JobFinish
1559	rename Shell.exitFlag to errFlag
1560	move Job.xtraced to ShellWriter
1561	make printing of shell commands independent from the job
1562	rename shell flags in struct Shell
1563	extract JobOpenTmpFile from JobStart
1564	rename RunFlags to CommandFlags
1565	split various Job.* into separate fields
1566	rename commandShell to shell
1567	extract InitShellNameAndPath from Shell_Init
1568	replace signal handling macros with local functions
1569	replace macro MESSAGE with local function
1570	parse.c: error out on null bytes in makefiles
1571	error out on misspelled directives
1572	rename IFile.nextbuf to readMore
1573	fix undefined behavior in ParseEOF
1574	str.c: remove redundant call to strlen in Str_Words
1575	var.c: error out on misspelled .unexport-env
1576	error out on misspelled .export directives
1577	extract ExportVars from Var_Export
1578	extract ExportVarsExpand from Var_Export
1579	eliminate boolean argument of Var_Export
1580	fix undefined behavior when exporting ${:U }
1581	rename Var_ExportVars to Var_ReexportVars
1582	rename Var_Export1 to ExportVar
1583
15842020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1585
1586	* VERSION (_MAKE_VERSION): 20201206
1587	Merge with NetBSD make, pick up
1588	o more unit tests
1589	o inline macros for debug logging
1590	o use consistent variable names for list nodes
1591	o define constants for enum zero-values
1592	o dir.c: use fixed format for debug output of the directory cache
1593	remove Dir_InitDir
1594	o lst.c: inline Lst_Enqueue, Vector_Done
1595	o meta.c: remove unused parameter from meta_needed
1596	o parse.c: rename parse functions
1597	o suff.c: extract ExpandChildrenRegular from ExpandChildren
1598	o targ.c: don't concatenate identifiers in Targ_PrintType
1599	o var.c: remove comment decoration
1600	extract UnexportVars from Var_UnExport
1601	extract GetVarnamesToUnexport from Var_UnExport
1602	extract UnexportEnv from Var_UnExport
1603	extract UnexportVar from Var_UnExport
1604	move CleanEnv to UnexportVars
1605	replace pointer comparisons with enum
1606	add FStr to var.c to make memory handling simpler
1607	use FStr in Var_UnExport
1608	move type definitions in var.c to the top
1609	extract FreeEnvVar from Var_Parse
1610	extract ShuffleStrings from ApplyModifier_Order
1611
16122020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
1613
1614	* VERSION (_MAKE_VERSION): 20201130
1615	Merge with NetBSD make, pick up
1616	o add unit tests for META MODE
1617	o reduce memory allocation for dirSearchPath, GNode.parents,
1618	GNode.children, OpenDirs
1619	o reduce pointer indirection for GNode.cohorts and
1620	GNode.implicitParents
1621	o remove pointer indirection from GNode.commands
1622	o inline Lst_ForEachUntil in meta mode
1623	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
1624	clean up memory management for CachedDirs
1625	fix the reference count of dotLast going negative
1626	add debug logging for OpenDirs_Done
1627	extract CacheNewDir from Dir_AddDir
1628	add debug logging for reference counting of CachedDir
1629	rename some Dir functions to SearchPath
1630	o job.c: rename some global variables
1631	o main.c: reduce memory allocation in ReadBuiltinRules
1632	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
1633	CmdOpts.makefiles
1634	Add .MAKE.UID and .MAKE.GID
1635	o make.c: reduce memory allocation for/in toBeMade,
1636	Make_ProcessWait, Make_ExpandUse
1637	o meta.c: reduce memory allocation in meta_oodate
1638	o parse.c: reduce memory allocations for parsing dependencies and
1639	targets
1640	o suff.c: reduce memory allocation in suffix handling
1641
16422020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
1643
1644	* VERSION (_MAKE_VERSION): 20201124
1645	Merge with NetBSD make, pick up
1646	o .MAKE.{UID,GID} represent uid and gid running make.
1647	o fix error handling for .BEGIN and .END dependency in -k mode
1648	o fix missing "Stop." after failed .END node in -k mode
1649	o use properly typed comparisons in boolean contexts
1650	o replace a few HashTable_CreateEntry with HashTable_Set
1651	o add HashSet type
1652	o compat.c: split Compat_Make into smaller functions
1653	extract DebugFailedTarget from Compat_RunCommand
1654	o dir.c: refactor Dir_UpdateMTime
1655	migrate CachedDir.files from HashTable to HashSet
1656	o make.c: add high-level API for GNode.made
1657
16582020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
1659
1660	* VERSION (_MAKE_VERSION): 20201122
1661	Merge with NetBSD make, pick up
1662	o rename GNode.context to vars
1663	o suff.c: cleanup and refactor
1664	rename some functions and vars to better reflect usage
1665	add high-level API for CandidateSearcher
1666	o targ.c: add more debug logging for suffix handling
1667	o more unit tests
1668	o add debug logging for setting and resetting the main target
1669
16702020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
1671
1672	* VERSION (_MAKE_VERSION): 20201117
1673	Merge with NetBSD make, pick up
1674	o fix some unit-tests when .SHELL is dash
1675	o rename Targ_NewGN to GNode_New
1676	o make some GNode functions const
1677	o main.c: call Targ_Init before Var_Init
1678	cleanup PrintOnError, getTmpdir and ParseBoolean
1679	o var.c: fix error message of failed :!cmd! modifier
1680
16812020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
1682
1683	* VERSION (_MAKE_VERSION): 20201114
1684	Merge with NetBSD make, pick up
1685	o replace a few HashTable_CreateEntry with HashTable_Set
1686	o clean up cached_stats
1687	o rename DEFAULT to defaultNode
1688	o remove redundant struct make_stat
1689	o cond.c: in lint mode, check for ".else <cond>"
1690	use bitset for IfState
1691	replace large switch with if-else in Cond_EvalLine
1692	o job.c: clean up JobExec, JobStart, JobDoOutput
1693	use stderr for error message about failed touch
1694	clean up Job_Touch
1695	replace macro DBPRINTF with JobPrintln
1696	rename JobState to JobStatus
1697	main.c: switch cache for realpath from GNode to HashTable
1698	clean up Fatal
1699	clean up InitDefSysIncPath
1700	use progname instead of hard-coded 'make' in warning
1701	rename Main_SetVarObjdir to SetVarObjdir
1702	make.1: document the -S option
1703	make.c: fix debug output for GNode details
1704	use symbolic names in debug output of GNodes
1705
17062020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
1707
1708	* configure.in: fix --with-force-machine-arch
1709
1710	* VERSION (_MAKE_VERSION): 20201112
1711	Merge with NetBSD make, pick up
1712	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
1713	checks in InitObjdir.  Explicit .OBJDIR target always allows
1714	read-only directory.
1715	o cond.c: clean up Cond_EvalLine
1716
17172020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
1718
1719	* VERSION (_MAKE_VERSION): 20201111
1720	Merge with NetBSD make, pick up
1721	o more unit-tests
1722	o style cleanup
1723	remove redundant parentheses from sizeof operator
1724	replace character literal 0 with '\0'.
1725	replace pointer literal 0 with NULL.
1726	remove redundant parentheses.
1727	replace (expr & mask) == 0 with !(expr & mask).
1728	use strict typing in conditions of the form !var
1729	o rename Make_OODate to GNode_IsOODate
1730	o rename Make_TimeStamp to GNode_UpdateYoungestChild
1731	o rename Var_Set_with_flags to Var_SetWithFlags
1732	o rename dieQuietly to shouldDieQuietly
1733	o buf.c: make API of Buf_Init simpler
1734	o compat.c: clean up Compat_Make, Compat_RunCommand,
1735	CompatDeleteTarget and CompatInterrupt
1736	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
1737	clean up CondParser_Comparison
1738	o main.c: rename getBoolean and s2Boolean
1739	rename MAKEFILE_PREFERENCE for consistency
1740	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
1741	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
1742	replace emptyString with allocated empty string
1743	error out on unclosed expressions after the colon
1744
17452020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
1746
1747	* VERSION (_MAKE_VERSION): 20201101
1748	Merge with NetBSD make, pick up
1749	o negate NoExecute to GNode_ShouldExecute
1750	o job.c: rename JobMatchShell to FindShellByName
1751	extract EscapeShellDblQuot from JobPrintCommand
1752	extract ParseRunOptions from JobPrintCommand
1753	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
1754	treat malformed :range, :ts and :[...] as errors
1755	add tests for the variable modifiers :[words] and :range
1756
17572020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
1758
1759	* VERSION (_MAKE_VERSION): 20201031
1760	Merge with NetBSD make, pick up
1761	o format #include directives consistently
1762	o do not look up local variables like .TARGET anywhere else
1763	o main.c: Main_SetObjdir is first called for curdir which may be
1764	readonly
1765	reduce the scope where recursive expressions are detected
1766	remove redundant :tl from getBoolean
1767	clean up mkTempFile
1768	o meta.c: simplify memory allocation in meta_create and meta_oodate
1769	o parse.c: extract loadedfile_mmap from loadfile
1770	o trace.c: document possible undefined behavior with .CURDIR
1771	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
1772	rename ismeta to is_shell_metachar
1773	remove debug logging for the :Q variable modifier
1774	rename VarIsDynamic to VarnameIsDynamic
1775	use consistent parameter order in varname parsing functions
1776	extract ParseVarnameLong from Var_Parse
1777	extract ParseVarnameShort from Var_Parse
1778	fix type of ParseModifierPart parameter delim
1779	extract IsEscapedModifierPart from ParseModifierPart
1780	clean up ModifyWords
1781	add test for combining the :@ and :? variable modifiers
1782
17832020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
1784
1785	* VERSION (_MAKE_VERSION): 20201030
1786	Merge with NetBSD make, pick up
1787	o change char * to void * in Var_Value
1788	o make iterating over HashTable simpler
1789	o rename VAR_CMD to VAR_CMDLINE
1790	o cond.c: clean up is_separator
1791	fix parse error in string literal in conditional
1792	o main.c: do not use objdir that is not writable
1793	in lint mode, exit with error status on errors
1794	o  parse.c: clean up StrContainsWord
1795	fix out-of-bounds pointer in ParseTrackInput
1796	o var.c: rename Str_SYSVMatch and its parameters
1797	remove unsatisfiable conditions in Var_Set_with_flags
1798	document where the variable name is expanded
1799	fix documentation for VARP_SUB_ONE
1800	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
1801	document VAR_READONLY
1802	prevent appending to read-only variables
1803	extract MayExport from Var_Export1
1804	remove redundant evaluations in VarFind
1805	replace VarFindFlags with a simple Boolean
1806	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
1807
18082020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
1809
1810	* VERSION (_MAKE_VERSION): 20201028
1811	Merge with NetBSD make, pick up
1812	o rename defIncPath to defSysIncPath
1813	o initialize all CmdOpts fields
1814	o lst.c: inline Vector_Get
1815	o main.c: refactor main extract
1816	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
1817	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
1818	InitDefIncPath,CmdOpts_Init,UnlimitFiles
1819	o parse.c: merge curFile into includes
1820	rename predecessor to order_pred
1821	sort ParseSpecial alphabetically
1822	remove unused, undocumented .NOEXPORT
1823	rename ParseSpecial enum values consistently
1824	rename some fields of struct IFile
1825
18262020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
1827
1828	* VERSION (_MAKE_VERSION): 20201026
1829	Merge with NetBSD make, pick up
1830	o group the command line options and arguments into a struct
1831	o rename GNode.cmgn to youngestChild
1832	o rename hash functions to identify the type name
1833	o negate OP_NOP and rename it to GNode_IsTarget
1834	o add GNode_Path to access the path of a GNode
1835	o remove macros MIN and MAX
1836	o remove unused Lst_Find and Lst_FindFrom
1837	o arch.c: and make Arch_FindLib simpler
1838	clean up code layout
1839	make Arch_ParseArchive simpler
1840	o cond.c: inline CondFindStrMatch into FuncMake
1841	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
1842	omit trailing space in debug output for expanding file patterns
1843	refactor DirMatchFiles
1844	document that the SearchPath of Dir_FindFile may be NULL
1845	remove UNCONST from Dir_Expand
1846	inline DirFindName
1847	o for.c: clean up code for handling .for loops
1848	o hash.c: print hash in debug log with fixed width
1849	clean up hash table functions
1850	reduce amount of string hashing
1851	o job.c: refactor JobDeleteTarget
1852	use proper enum constants for aborting
1853	convert result of JobStart from macros to enum
1854	convert abort reason macros to enum
1855	rework Job_CheckCommands to reduce indentation
1856	rename Shell fields
1857	add field names in declaration of DEFSHELL_CUSTOM
1858	convert JobState and JobFlags to enum types
1859	move handling of the "..." command to JobPrintCommands
1860	o lst.c: clean up
1861	refactor LstNodeNew
1862	remove Lst_Open, Lst_Next, Lst_Close
1863	remove code for circular lists from Lst_Next
1864	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
1865	/dev/null or anything starting with "no"
1866	convert macros for debug flags into enum
1867	o make.c: inline Lst_Copy in Make_ExpandUse
1868	o meta.c: inline Lst_Find in meta_oodate
1869	make Lst_RemoveIf simpler in meta_oodate
1870	o parse.c: convert error level for Parse_Error to an enum
1871	o suff.c: properly terminate debug output with newline
1872	add more details to DEBUG_SRC log
1873	replace Dir_CopyDir with Dir_CopyDirSearchPath
1874	don't modify GNode name while rebuilding the suffix graph
1875	o var.c: reduce duplicate code in VarFind
1876
18772020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1878
1879	* VERSION (_MAKE_VERSION): 20201022
1880	Merge with NetBSD make, pick up
1881	o more refactoring and simplification to reduce code size
1882	o var.c: extract CanonicalVarname from VarFind
1883	o make.c: extract UpdateImplicitParentsVars from Make_Update
1884	o main.c: extract PrintVar from doPrintVars
1885	extract HandlePWD from main
1886	o lst.c: inline simple Lst getters
1887	remove unused Lst_ForEach
1888	o job.c: move struct Shell from job.h to job.c
1889	o more unit tests
1890
18912020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
1892
1893	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1894
18952020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1896
1897	* VERSION (_MAKE_VERSION): 20201018
1898	Merge with NetBSD make, pick up
1899	o remove USE_IOVEC
1900	o rename some Hash_* apis to Hash*
1901	o replace execError with execDie
1902	o rename Lst_Init to Lst_New
1903	o add tags to enum types
1904	o rename Stack to Vector
1905	o parse.c: more refactoring
1906	o unit-tests: make some tests use line buffered stdout
1907	o unit-tests/Makefile: in meta mode do not make all tests depend on
1908	Makefile, it isn't necessary.
1909
19102020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
1911
1912	* main.c: check for CTL_HW being defined.
1913	* unit-tests/Makefile: ensure export tests output are POSIX compliant
1914	disable opt-debug-jobs test until it works on ubuntu
1915
1916	* VERSION (_MAKE_VERSION): 20201010
1917	Merge with NetBSD make, pick up
1918	o dir.c: remove pathname limit for Dir_FindHereOrAbove
1919	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
1920	o main.c: extract init_machine and init_machine_arch from main
1921	allow to disable debug logging options
1922	o parse.c: enable format string truncation warnings
1923	extract parsing of sources from ParseDoDependency
1924	split ParseDoSrc into smaller functions
1925	hide implementation details from Parse_DoVar
1926	clean up parsing of variable assignments
1927	split Parse_DoVar into manageable pieces
1928	don't modify the given line during Parse_DoVar
1929	fix out-of-bounds memory access in Parse_DoVar
1930	fix parsing of the :sh assignment modifier
1931	o var.c: rework memory allocation for the name of variables
1932	extract ApplyModifier_Literal into separate function
1933	in lint mode, reject modifiers without delimiter
1934	do not export variable names starting with '-'
1935	o fix double-free bug in -DCLEANUP mode
1936	o more cleanup to enable higher warnings level
1937	o more unit tests
1938
19392020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
1940
1941	* VERSION (_MAKE_VERSION): 20201002
1942	Merge with NetBSD make, pick up
1943	o dir.c: use hash table for looking up open directories by name
1944	o main.c: clean up option handling
1945	o parse.c: add missing const for Parse_AddIncludeDir
1946	o var.c: ApplyModifier_To, update pp in each branch
1947	o remove redundant function prototypes
1948	o more unit tests
1949
19502020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1951
1952	* VERSION (_MAKE_VERSION): 20201001
1953	Merge with NetBSD make, pick up
1954	o compat.c: comment about "..."
1955
19562020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
1957
1958	* VERSION (_MAKE_VERSION): 20200930
1959	Merge with NetBSD make, pick up
1960	o job.c: split Job.jobPipe into 2 separate fields
1961	replace Lst_Open with direct iteration
1962	o lst.c: remove redundant assertions
1963	o targ.c: replace Lst_Open with direct iteration
1964	o var.c: fix bug in evaluation of indirect variable modifiers
1965	extract ApplyModifier_Quote into separate function
1966	o make debug logging simpler
1967
19682020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
1969
1970	* VERSION (_MAKE_VERSION): 20200927
1971	Merge with NetBSD make, pick up
1972	o parse.c: ensure parse errors result in 'stopped in' message.
1973	o compat.c: make parameter of Compat_RunCommand const
1974	o main.c: extract InitVarTarget from main
1975	o parse.c: rename ParseFinishLine to FinishDependencyGroup
1976	refactor ParseDoDependency
1977	o var.c: Var_Subst no longer returns string result
1978	rename Var_ParsePP back to Var_Parse
1979	in lint mode, improve error handling for undefined variables
1980	extract ParseVarname from Var_Parse
1981	o rename Lst_ForEach to Lst_ForEachUntil
1982	o inline Lst_ForEachUntil in several cases
1983	o clean up API for finding and creating GNodes
1984	o fix assertion failure in -j mode with .END node
1985	o inline and remove LstNode_Prev and LstNode_Next
1986	o use fine-grained type names for lists and their nodes
1987	o more unit tests
1988
19892020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1990
1991	* VERSION (_MAKE_VERSION): 20200911
1992	Merge with NetBSD make, pick up
1993	o cond.c: split EvalComparison into smaller functions
1994	reorder parameters of condition parsing functions
1995	reduce code size in CondParser_Eval
1996	rename CondGetString to CondParser_String
1997	add CondLexer_SkipWhitespace
1998	group the condition parsing state into a struct
1999	in CondGetString, replace repeated Buf_Add with Buf_AddStr
2000	o migrate Var_Parse to Var_ParsePP
2001	o add wrappers around ctype.h functions
2002	o lst.c: use a stack instead of a list for the nested include path
2003	o more unit tests
2004
20052020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
2006
2007	* make-bootstrap.sh.in: adjust object list
2008
20092020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
2010
2011	* VERSION (_MAKE_VERSION): 20200902
2012	Merge with NetBSD make, pick up
2013	o use make_stat to ensure no confusion over valid fields
2014	returned by cached_stat
2015	o var.c: make VarQuote const-correct
2016	o add unit tests for .for
2017
20182020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
2019
2020	* VERSION (_MAKE_VERSION): 20200901
2021	Merge with NetBSD make, pick up
2022	o rename Hash_Table fields
2023	o make data types in Dir_HasWildcards more precise
2024
20252020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
2026
2027	* VERSION (_MAKE_VERSION): 20200831
2028	Merge with NetBSD make, pick up
2029	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
2030	o lst.c: Lst_Open renable assert that list isn't open
2031	o unit test for .TARGET dependent flags
2032	o var.c: fix aliasing bug in VarUniq
2033	o more unit tests for :u
2034
20352020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
2036
2037	* VERSION (_MAKE_VERSION): 20200830
2038	Merge with NetBSD make, pick up
2039	o allow for strict type checking for Boolean
2040	o Var_Parse never returns NULL
2041	o Var_Subst never returns NULL
2042	o Lst_Find now takes boolean match function
2043	o rename Lst_Memeber to Lst_FindDatum
2044	o rename LstNode functions to match their type
2045	o rename GNode.iParents to implicitParents
2046	o fix assertion failure for .SUFFIXES in archives
2047	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
2048	remove unreachable code from CompatRunCommand
2049	o main.c: simplify getBoolean
2050	o stc.c: replace brk_string with simpler Str_Words
2051	o suff.c: add debug macros
2052
20532020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
2054
2055	* VERSION (_MAKE_VERSION): 20200828
2056	Merge with NetBSD make, pick up
2057	o lst.c: inline LstIsValid and LstNodeIsValid
2058	o remove trailing S from Lst function names after migration complete
2059	o more comment cleanup/clarification
2060	o suff.c: clean up suffix handling
2061	o more unit tests
2062
20632020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
2064
2065	* VERSION (_MAKE_VERSION): 20200826
2066	Merge with NetBSD make, pick up
2067	o enum.c: distinguish between bitsets containing flags and
2068	ordinary enums
2069	o var.c: fix error message for ::!= modifier with shell error
2070	o fix bugs in -DCLEANUP mode
2071
20722020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
2073
2074	* VERSION (_MAKE_VERSION): 20200824
2075	Merge with NetBSD make, pick up
2076	o in debug mode, print GNode details in symbols
2077
20782020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
2079
2080	* VERSION (_MAKE_VERSION): 20200823
2081	Merge with NetBSD make, pick up
2082	o lst.c: more asserts,
2083	make args to Lst_Find match others.
2084	o var.c: pass flags to VarAdd
2085	o arch.c: use Buffer
2086	o str.c: brk_string return size_t for nwords
2087	o more unit tests
2088
20892020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
2090
2091	* VERSION (_MAKE_VERSION):
2092	Merge with NetBSD make, pick up
2093	o var.c: support for read-only variables eg .SHELL
2094	being the shell used to run scripts.
2095	o lst.c: more simplification
2096	o more documentation and style cleanup
2097	o more unit tests
2098	o ensure unit-test/Makefile is run by TEST_MAKE
2099	o reduce duplication of header inclusion
2100
21012020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
2102
2103	* VERSION (_MAKE_VERSION): 20200821
2104	Merge with NetBSD make, pick up
2105	o lst.c: revert invalid assertion - but document it
2106	o dir.c: split Dir_Init into two functions
2107
21082020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
2109
2110	* lst.c: needs inttypes.h on Linux
2111
2112	* VERSION (_MAKE_VERSION): 20200820
2113	Merge with NetBSD make, pick up
2114	o make.1: clarify some passages
2115	o var.c: more cleanup, clarify comments
2116	o make_malloc.c: remove unreachable code
2117	o cond.c: make CondGetString easier to debug
2118	o simplify list usage
2119	o unit-tests: more
2120
21212020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
2122
2123	* VERSION (_MAKE_VERSION): 20200816
2124	Merge with NetBSD make, pick up
2125	o refactor unit-tests to be more fine grained
2126	  not all tests moved yet
2127
21282020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
2129
2130	* VERSION (_MAKE_VERSION): 20200814
2131	Merge with NetBSD make, pick up
2132	o more str_concat variants
2133	o more enums for flags
2134	o var.c: cleanup for higher warnings level
2135
21362020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
2137
2138	* VERSION (_MAKE_VERSION): 20200810
2139	Merge with NetBSD make, pick up
2140	o more unit tests
2141	o general comment and style cleanup
2142
21432020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
2144
2145	* VERSION (_MAKE_VERSION): 20200808
2146	Merge with NetBSD make, pick up
2147	o enum.[ch]: streamline, enums for use in flags and debug output
2148	o cond.c: cleanup
2149	o var.c: reduce duplicate code for modifiers
2150	debug logging for Var_Parse
2151	more detailed debug output
2152	o more unit tests
2153
21542020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
2155
2156	* unit-tests/Makefile: -r for recursive and include Makefile.inc
2157	so I can run tests in meta mode
2158	supress extra noise if in meta mode
2159
2160	* VERSION (_MAKE_VERSION): 20200806
2161	Merge with NetBSD make, pick up
2162	o parse.c: remove VARE_WANTRES for LINT
2163	we just want to check parsing (for now).
2164
21652020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
2166
2167	* VERSION (_MAKE_VERSION): 20200805
2168	Merge with NetBSD make, pick up
2169	o make.1: Rework the description of dependence operators
2170
21712020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
2172
2173	* VERSION (_MAKE_VERSION): 20200803
2174	Merge with NetBSD make, pick up
2175	o revert some C99 usage, for max portability
2176	o unit-tests/lint
2177
21782020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
2179
2180	* VERSION (_MAKE_VERSION): 20200802
2181	Merge with NetBSD make, pick up
2182	o more unit tests
2183
21842020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
2185
2186	* Remove NetBSD specific plumbing from unit-tests/Makefile
2187
2188	* VERSION (_MAKE_VERSION): 20200801
2189	Merge with NetBSD make, pick up
2190	o make Var_Value return const
2191	o size_t for buf sizes
2192	o optimize some buffer operations - avoid strlen
2193
21942020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
2195
2196	* VERSION (_MAKE_VERSION): 20200731
2197	Merge with NetBSD make, pick up
2198	o var.c: fix undefinded behavior for incomplete :t modifier
2199	  fixes unit-test/moderrs on Ubuntu
2200	o parse.c: When parsing variable assignments other than :=
2201	  if DEBUG(LINT) test substition of value, so we get a file and
2202	  line number in the resulting error.
2203	o dir.c: fix parsing of nested braces in dependency lines
2204	  add unit-tests
2205
22062020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
2207
2208	* VERSION (_MAKE_VERSION): 20200730
2209	Merge with NetBSD make, pick up
2210	o var.c: minor cleanup
2211	o unit-tests: more tests to improve code coverage
2212
22132020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
2214
2215	* VERSION (_MAKE_VERSION): 20200728
2216	Merge with NetBSD make, pick up
2217	o var.c: more optimizations
2218
22192020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
2220
2221	* VERSION (_MAKE_VERSION): 20200726
2222	Merge with NetBSD make, pick up
2223	o collapse lsd.lib into lst.c - reduce code size and allow inlining
2224	o lots of function comment updates
2225	o var.c: more optimizations
2226	o make return of Var_Parse const
2227
22282020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
2229
2230	* VERSION (_MAKE_VERSION): 20200720
2231	Merge with NetBSD make, pick up
2232	o DEBUG_HASH report stats at end and tone down the noise
2233	o var.c: each flag type gets its own prefix.
2234	move SysV string matching to var.c
2235	make ampersand in ${VAR:from=to&} an ordinary character
2236	cleanup and simplify implementation of modifiers
2237	o make.1: move documentation for assignment modifiers
2238
22392020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
2240
2241	* VERSION (_MAKE_VERSION): 20200718
2242	Merge with NetBSD make, pick up
2243	o DEBUG_HASH to see how well the hash tables are working
2244
22452020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
2246
2247	* bsd.after-import.mk: make sure we update unit-tests/Makefile
2248
22492020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
2250
2251	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
2252
2253	* VERSION (_MAKE_VERSION): 20200710
2254	Merge with NetBSD make, pick up
2255	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
2256	o meta.c: target flagged .META is out-of-date if meta file missing
2257
22582020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
2259
2260	* VERSION (_MAKE_VERSION): 20200709
2261	Merge with NetBSD make, pick up
2262	o cond.c: fix for compare_expression when doEval=0
2263	o unit-tests/Makefile: rework
2264	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
2265
22662020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
2267
2268	* VERSION (_MAKE_VERSION): 20200704
2269	Merge with NetBSD make, pick up
2270	(most of this by rillig@)
2271	o lots of style and white-space cleanup
2272	o lots more unit tests for variable modifiers
2273	o simplified description of some functions
2274	o str.c: refactor Str_Match
2275	o var.c: debugging output for :@
2276	  constify VarModify parameter
2277	  fix :hash modifier on 16-bit platforms
2278	  remove unnecessary forward declarations
2279	  refactor ApplyModifier_SysV to have less indentation
2280	  simplify code for :E and :R
2281	  clean up code for :H and :T
2282	  refactor ApplyModifiers
2283
2284	* var.c: we need stdint.h on some platforms to get uint32_t
2285	* unit-test/Makefile: we need to supress the specific error
2286	for RE substitution error in modmisc, since it varies accross
2287	different OS.
2288
22892020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
2290
2291	* VERSION (_MAKE_VERSION): 20200702
2292	Merge with NetBSD make, pick up
2293	o var.c: more improvements to avoiding unnecessary evaluation
2294	use enums for flags
2295	o remove flags arg to Var_Set which outside of var.c is always 0
2296
22972020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
2298
2299	* VERSION (_MAKE_VERSION): 20200701
2300	Merge with NetBSD make, pick up
2301	o var.c: with change to cond.c; ensure that nested variables
2302	within a variable name are expanded.
2303	o unit-tests/varmisc.mk: test for nested varname
2304
23052020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
2306
2307	* VERSION (_MAKE_VERSION): 20200629
2308	Merge with NetBSD make, pick up
2309	o cond.c: do not eval unnecessary terms of conditionals.
2310
23112020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
2312
2313	* VERSION (_MAKE_VERSION): 20200625
2314	Merge with NetBSD make, pick up
2315	o meta.c: report error if lseek in filemon_read fails
2316
23172020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
2318
2319	* VERSION (_MAKE_VERSION): 20200622
2320	Merge with NetBSD make, pick up
2321	o dieQuietly: ignore OP_SUBMAKE as too aggressive
2322
23232020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
2324
2325	* VERSION (_MAKE_VERSION): 20200619
2326	Merge with NetBSD make, pick up
2327	o str.c: performance improvement for Str_Match for multiple '*'
2328	o dieQuietly: supress the failure output from make
2329	when failing node is a sub-make or a sibling failed.
2330	This cuts down greatly on unhelpful noise at the end of
2331	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
2332
23332020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
2334
2335	* FILES: add LICENSE to appease some packagers.
2336	This is an attempt to fairly represent the license on almost
2337	200 files, which are almost all BSD-3-Clause
2338	The few exceptions being more liberal.
2339
2340	* VERSION (_MAKE_VERSION): 20200610
2341	Merge with NetBSD make, pick up
2342	o unit test for :Or
2343
23442020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
2345
2346	* VERSION (_MAKE_VERSION): 20200606
2347	Merge with NetBSD make, pick up
2348	o make.1: cleanup
2349
2350	* Makefile: fix depends for main.o which broke MAKE_VERSION
2351
23522020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
2353
2354	* VERSION (_MAKE_VERSION): 20200605
2355	Merge with NetBSD make, pick up
2356	o dir.c: cached_stats - don't confuse stat and lstat results.
2357	o var.c: add :Or for reverse sort.
2358
23592020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
2360
2361	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
2362	also if --with-filemon= specifies path to filemon.h
2363	set use_filemon=dev
2364	* dirname.c: remove include of namespace.h
2365
23662020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
2367
2368	* VERSION (_MAKE_VERSION): 20200517
2369	Merge with NetBSD make, pick up
2370	o modified dollar tests to avoid shell dependencies
2371	o new tests for .INCLUDEFROM
2372
23732020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
2374
2375	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
2376	to not depend so much on shell behavior
2377
23782020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
2379
2380	* VERSION (_MAKE_VERSION): 20200510
2381	Merge with NetBSD make, pick up
2382	o unit test for dollar handling
2383
23842020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
2385
2386	* VERSION (_MAKE_VERSION): 20200506
2387	Merge with NetBSD make, pick up
2388	o str.c: empty string does not match % pattern
2389	  plus unit-test changes
2390
23912020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
2392
2393	* VERSION (_MAKE_VERSION): 20200504
2394	May the 4th be with you
2395	Merge with NetBSD make, pick up
2396	o var.c: import handling of old sysV style modifier using '%'
2397	o str.c: refactor brk_string
2398	o unit-tests: add test case for lazy conditions
2399
24002020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
2401
2402	* VERSION (_MAKE_VERSION): 20200418
2403
2404	* configure.in: use_makefile=no for Cygwin et al.
2405	case insensitive filesystems just don't work if both
2406	makefile and Makefile exist.
2407	NOTE: bmake does not support Cygwin and likely never will,
2408	but if brave souls want to try it - help them out.
2409
24102020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
2411
2412	* VERSION (_MAKE_VERSION): 20200402
2413	Merge with NetBSD make, pick up
2414	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
2415	  a blank command is perfectly valid.
2416
24172020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
2418
2419	* VERSION (_MAKE_VERSION): 20200330
2420	Merge with NetBSD make, pick up
2421	o make.h: extern debug_file
2422
24232020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
2424
2425	* VERSION (_MAKE_VERSION): 20200318
2426	Merge with NetBSD make, pick up
2427	o meta.c: meta_oodate, check for corrupted meta file
2428	  earlier and more often.
2429
24302020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
2431
2432	* VERSION (_MAKE_VERSION): 20200220
2433
24342020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
2435
2436	* boot-strap: unset MAKEFLAGS
2437
24382020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
2439
2440	* VERSION (_MAKE_VERSION): 20200212
2441	* meta.c: meta_compat_parent check for USE_FILEMON
2442	  patch from Soeren Tempel
2443
24442020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
2445
2446	* VERSION: 20200205
2447	Merge with NetBSD make, pick up
2448	o meta.c: fix compat mode, need to call meta_job_output()
2449	o job.c: extra fds for meta mode not needed if using filemon_dev
2450
24512020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
2452
2453	* VERSION: 20200122
2454	Merge with NetBSD make, pick up
2455	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
2456	  returns FALSE.
2457
24582020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
2459
2460	* VERSION: 20200121
2461	Merge with NetBSD make, pick up
2462	o filemon/filemon_{dev,ktrace}.c: allow selection of
2463	  filemon implementation.  filemon_dev.c uses the kernel module
2464	  while filemon_ktrace.c leverages the fktrace api available in
2465	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
2466	  adding support for other tracing mechanisms such as strace on
2467	  Linux.
2468	o meta.c: when target is out-of-date per normal make rules
2469	  record value of .OODATE in meta file.
2470
24712019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
2472
2473	* VERSION: 20190926
2474	  Merge with NetBSD make, pick up
2475	  o parse.c: don't pass NULL to realpath(3)
2476	    some versions cannot handle it.
2477
24782019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
2479
2480	* VERSION: 20190409
2481	  Merge with NetBSD make, pick up
2482	  o parse.c: ParseDoDependency: free paths rather than assert
2483
24842018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
2485
2486	* VERSION: 20181222
2487
2488	* configure.in: add --without-makefile to avoid generating
2489	  makefile and make-bootstrap.sh
2490
2491	* include Makefile.inc if it exists
2492
2493	* Use Makefile and Makefile.config.in in unit-tests
2494	  so we can use just: make obj && make && make test
2495	  when bmake is already available.
2496	  We add --without-makefile to CONFIGURE_ARGS in this case.
2497
2498	* tweak bsd.after-import.mk (captures Makefile.config etc
2499	  after import to FreeBSD for example) to cope with all the above.
2500
25012018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
2502
2503	* VERSION: 20181221
2504	  Merge with NetBSD make, pick up
2505	  o parse.c: ParseVErrorInternal use .PARSEDIR
2506	    and apply if relative, and then use .PARSEFILE
2507	    for consistent result.
2508
25092018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
2510
2511	* VERSION: 20181220
2512	  Merge with NetBSD make, pick up
2513	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
2514	    is relative
2515	  o var.c: avoid SEGFAULT in .unexport-env
2516	    when MAKELEVEL is not set
2517
25182018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
2519
2520	* VERSION: 20181216
2521	  Merge with NetBSD make, pick up
2522	  o fix for unit-tests/varquote.mk on Debian
2523
25242018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2525
2526	* VERSION: 20180919
2527	  Merge with NetBSD make, pick up
2528	  o var.c: add :q
2529	  o dir.c: cleanup caching of stats
2530
25312018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
2532
2533	* Makefile.config.in: use += where it makes sense.
2534
25352018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2536
2537	* VERSION: 20180512
2538	  Merge with NetBSD make, pick up
2539	  o job.c: skip polling job token pipe
2540
25412018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2542
2543	* VERSION: 20180405
2544	  Merge with NetBSD make, pick up
2545	  o parse.c: be more cautious about detecting depenency line
2546	    rather than sysV style include.
2547
25482018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2549
2550	* VERSION: 20180222
2551	  Merge with NetBSD make, pick up
2552	  o parse.c: avoid calling sysconf for every call to loadfile
2553
25542018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2555
2556	* VERSION: 20180218
2557	  Merge with NetBSD make, pick up
2558	  o var.c: Var_Set handle NULL value anytime.
2559
25602018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2561
2562	* VERSION: 20180212
2563	  Merge with NetBSD make, pick up
2564	  o parse.c: do not treat .info as warning with -W
2565
25662017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2567
2568	* VERSION: 20171207
2569	  Merge with NetBSD make, pick up
2570	  o var.c: Var_Append use Var_Set if var not previously set
2571	    so that VAR_CMD is handled correctly.
2572	    Add a suitable unit-test.
2573
25742017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2575
2576	* VERSION (_MAKE_VERSION): 20171126
2577
2578	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
2579	  since AC_TRY_COMPILE puts input inside main()
2580	  which upsets modern compilers.
2581
25822017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2583
2584	* VERSION: 20171118
2585	  Merge with NetBSD make, pick up
2586	  o var.c: do not append to variable set on command line
2587	    add unit-test to catch this.
2588
25892017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2590
2591	* VERSION: 20171028
2592	  Merge with NetBSD make, pick up
2593	  o main.c: ignore empty MAKEOBJDIR
2594
2595	* Makefile.config.in:
2596	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
2597
25982017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2599
2600	* VERSION: 20171005
2601
2602	* unit-tests/dotwait.mk: redirect stderr through pipe for more
2603	  consistent result on some platforms.
2604
26052017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2606
2607	* machine.sh: entry for AIX
2608
26092017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2610
2611	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
2612	  to a file that can be included by configure as well as make.
2613	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
2614
26152017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2616
2617	* Makefile (_MAKE_VERSION): 20170810
2618	  Merge with NetBSD make, pick up
2619	  o meta.c: if target is in subdir we only need subdir name in
2620	    meta_name.
2621
26222017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2623
2624	* Makefile (_MAKE_VERSION): 20170720
2625	  Merge with NetBSD make, pick up
2626	  o compat.c: pass SIGINT etc onto child and wait for it to exit
2627	    before we self-terminate.
2628
26292017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2630
2631	* Makefile (_MAKE_VERSION): 20170711
2632	  forgot to update after merge on 20170708 ;-)
2633	  o main.c: refactor to reduce size of main function.
2634	    add -v option to always fully expand values.
2635	  o meta.c: ensure command output in meta file has ending newline
2636	    even when filemon not being used.
2637	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
2638	    pathname via ':L' since any ':' in pathname breaks that.
2639	    Instead set a '${.p.}' to pathname in the target context and
2640	    use that.
2641
26422017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2643
2644	* Makefile (_MAKE_VERSION): 20170510
2645	  Merge with NetBSD make, pick up
2646	  o main.c: Main_SetObjdir: ensure buf2 is in scope
2647
26482017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2649
2650	* Makefile (_MAKE_VERSION): 20170505
2651	  see mk/ChangeLog
2652
26532017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2654
2655	* parse.c: not everyone has stdint.h
2656
26572017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2658
2659	* Makefile (_MAKE_VERSION): 20170501
2660	  see mk/ChangeLog
2661
26622017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2663
2664	* Makefile (_MAKE_VERSION): 20170421
2665	  Merge with NetBSD make, pick up
2666	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
2667
26682017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2669
2670	* Makefile (_MAKE_VERSION): 20170420
2671	  Merge with NetBSD make, pick up
2672	  o main.c: only use -C arg "as is" if it contains no
2673	    relative component.
2674
26752017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2676
2677	* Makefile (_MAKE_VERSION): 20170418
2678	  Merge with NetBSD make, pick up
2679	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2680
26812017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2682
2683	* Makefile (_MAKE_VERSION): 20170417
2684	  Merge with NetBSD make, pick up
2685	  o fixes a number of coverity complaints
2686	    - check return value of fseek, fcntl
2687	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
2688	      JobPrintCommand, ParseTraditionalInclude
2689	    - use bmake_malloc() where NULL is not tollerated
2690	    - use MAKE_ATTR_UNUSED rather that kludges like
2691	      return(unused ? 0 : 0)
2692	    - use purge_cached_realpaths() rather than abuse cached_realpath()
2693
26942017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2695
2696	* Makefile (_MAKE_VERSION): 20170413
2697	  Merge with NetBSD make, pick up
2698	  o main.c: when setting .OBJDIR ignore '$' in paths.
2699
2700	* job.c: use MALLOC_OPTIONS to set malloc_options.
2701
27022017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2703
2704	* Makefile (_MAKE_VERSION): 20170411
2705	  Merge with NetBSD make, pick up
2706	  o str.c: Str_Match: allow [^a-z] to behave as expected.
2707
27082017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2709
2710	* Makefile (_MAKE_VERSION): 20170326
2711	  Merge with NetBSD make, pick up
2712	  o main.c: purge relative paths from realpath cache when .OBJDIR
2713	    is changed.
2714
27152017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2716
2717	* Makefile (_MAKE_VERSION): 20170311
2718	  Merge with NetBSD make, pick up
2719          o main.c: only use -C arg "as is" if it starts with '/'.
2720
27212017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2722
2723	* Makefile (_MAKE_VERSION): 20170301
2724	  Merge with NetBSD make, pick up
2725	  o main.c: use -C arg "as is" rather than getcwd()
2726	    if they identify the same directory.
2727	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
2728
27292017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2730
2731	* Makefile (_MAKE_VERSION): 20170201
2732	  Merge with NetBSD make, pick up
2733	  o var.c: allow :_=var and avoid use of special context.
2734
27352017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2736
2737	* Makefile (_MAKE_VERSION): 20170130
2738	  Merge with NetBSD make, pick up
2739	  o var.c: add :range and :_
2740	  o main.c: partially initialize Dir_* before MainParseArgs()
2741	    can be called.
2742	    If -V, skip Main_ExportMAKEFLAGS()
2743
27442017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2745
2746	* Makefile (_MAKE_VERSION): 20170114
2747	  Merge with NetBSD make, pick up
2748	  o var.c: allow specifying the utc value used by :{gm,local}time
2749
27502016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2751
2752	* Makefile (_MAKE_VERSION): 20161212
2753	  Merge with NetBSD make, pick up
2754          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2755
27562016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2757
2758	* Makefile (_MAKE_VERSION): 20161209
2759	  Merge with NetBSD make, pick up
2760	  o main.c: cleanup setting of .OBJDIR
2761	  o parse.c: avoid coredump from (var)=val
2762
27632016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2764
2765	* Makefile (_MAKE_VERSION): 20161126
2766	  Merge with NetBSD make, pick up
2767	  o make.c: Make_OODate: report src node name if path not set
2768
27692016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2770
2771	* Makefile (_MAKE_VERSION): 20160926
2772	  Merge with NetBSD make, pick up
2773	  o support for .DELETE_ON_ERROR: (remove targets that fail)
2774
27752016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2776
2777	* Makefile MAN: tweak .Dt to match ${PROG}
2778
27792016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2780
2781	* Makefile (_MAKE_VERSION): 20160818
2782	  its a neater number; pick up whitespace fixes to man page.
2783
27842016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2785
2786	* Makefile (_MAKE_VERSION): 20160817
2787	  Merge with NetBSD make, pick up
2788	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
2789	    so we can call it before adding entries to missingFiles.
2790	    Thus we do not track files we have been told to ignore.
2791
27922016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2793
2794	* Makefile (_MAKE_VERSION): 20160815
2795	  Merge with NetBSD make, pick up
2796	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
2797	    pathnames, and skip if the expansion is empty.
2798	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
2799
28002016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2801
2802	* Makefile (_MAKE_VERSION): 20160812
2803	  Merge with NetBSD make, pick up
2804	  o meta.c: remove all missingFiles entries that match a deleted
2805	    dir.
2806	  o main.c: set .ERROR_CMD if possible.
2807
28082016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2809
2810	* Makefile (_MAKE_VERSION): 20160606
2811	  Merge with NetBSD make, pick up
2812	  o dir.c: extend mtimes cache to others via cached_stat()
2813
28142016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2815
2816	* Makefile (_MAKE_VERSION): 20160604
2817	  Merge with NetBSD make, pick up
2818	  o meta.c: missing filemon data is only relevant if we read a
2819	    meta file.
2820	    Also do not return oodate for a missing metafile if gn->path
2821	    points to .CURDIR
2822
28232016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2824
2825	* Makefile (_MAKE_VERSION): 20160602
2826	  Merge with NetBSD make, pick up
2827	  o cached_realpath(): avoid hitting filesystem more than necessary.
2828	  o meta.c: refactor need_meta decision, add knobs for
2829	    missing meta file and filemon data wrt out-of-datedness.
2830
28312016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2832
2833	* Makefile (_MAKE_VERSION): 20160528
2834
2835	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2836
28372016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2838
2839	* Makefile (_MAKE_VERSION): 20160512
2840	  Merge with NetBSD make, pick up
2841	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
2842	    this is useful for gcov builds.
2843	  o propagate errors from filemon(4).
2844
28452016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2846
2847	* Makefile (_MAKE_VERSION): 20160509
2848	  Merge with NetBSD make, pick up
2849	  o remove use of non-standard types u_int etc.
2850	  o meta.c: apply realpath() before matching against metaIgnorePaths
2851
28522016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2853
2854	* Makefile (_MAKE_VERSION): 20160404
2855	  Merge with NetBSD make, pick up
2856	  o allow makefile to set .MAKE.JOBS
2857
2858	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
2859
28602016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2861
2862	* Makefile (_MAKE_VERSION): 20160315
2863	  Merge with NetBSD make, pick up
2864	  o fix handling of archive members
2865
28662016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2867
2868	* Makefile (_MAKE_VERSION): rename variable to avoid interference
2869	  with checks for ${MAKE_VERSION}
2870
28712016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2872
2873	* Makefile (MAKE_VERSION): 20160310
2874	  Merge with NetBSD make, pick up
2875	  o meta.c: treat missing Read file same as Write, incase we Delete it.
2876
28772016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2878
2879	* Makefile (MAKE_VERSION): 20160307
2880	  Merge with NetBSD make, pick up
2881	  o var.c: fix :ts\nnn to be octal by default.
2882	  o meta.c: meta_finish() to cleanup memory.
2883
28842016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2885
2886	* Makefile (MAKE_VERSION): 20160226
2887	  Merge with NetBSD make, pick up
2888	  o meta.c: allow meta file for makeDepend if makefiles want it.
2889
28902016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2891
2892	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
2893	  for backwards compatability.
2894
2895	* Makefile (MAKE_VERSION): 20160220
2896	  Merge with NetBSD make, pick up
2897	  o var.c: add knob to control handling of '$$' in :=
2898
28992016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2900
2901	* Makefile (MAKE_VERSION): 20160218
2902	  Merge with NetBSD make, pick up
2903	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
2904	    post the changes to Var_Subst.
2905	    Var_Subst now takes flags, and does not consume '$$' in :=
2906
29072016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2908
2909	* Makefile (MAKE_VERSION): 20160217
2910	  Merge with NetBSD make, pick up
2911	  o var.c: preserve '$$' in :=
2912	  o parse.c: add .dinclude for handling included
2913	    makefile like .depend
2914
29152015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2916
2917	* Makefile (MAKE_VERSION): 20151220
2918	  Merge with NetBSD make, pick up
2919	  o suff.c: re-initialize suffNull when clearing suffixes.
2920
29212015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2922
2923	* Makefile (MAKE_VERSION): 20151201
2924	  Merge with NetBSD make, pick up
2925	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
2926	  o meta.c: meta_oodate: use lstat(2) for checking link target
2927	    in case it is a symlink.
2928	  o var.c: avoid calling brk_string and Var_Export1 with empty
2929	    strings.
2930
29312015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2932
2933	* Makefile (MAKE_VERSION): 20151126
2934	  Merge with NetBSD make, pick up
2935	  o parse.c: ParseTrackInput don't access beyond
2936	    end of old value.
2937
29382015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2939
2940	* Makefile (MAKE_VERSION): 20151022
2941
2942	* Add support for BSD/OS which lacks inttypes.h
2943	  and really needs sys/param.h for sys/sysctl.h
2944	  also 'type' is not a shell builtin.
2945
2946	* var.c: eliminate uint32_t and need for inttypes.h
2947
2948	* main.c: PrintOnError flush stdout before run .ERROR
2949
2950	* parse.c: cope with _SC_PAGESIZE not being defined.
2951
2952
29532015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2954
2955	* Makefile (MAKE_VERSION): 20151020
2956	  Merge with NetBSD make, pick up
2957	  o var.c: fix uninitialized var
2958
29592015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2960
2961	* var.c: the conditional expressions used with ':?' can be
2962	expensive, if already discarding do not evaluate or expand
2963	anything.
2964
29652015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2966
2967	* Makefile (MAKE_VERSION): 20151010
2968	  Merge with NetBSD make, pick up
2969	  o Add Boolean wantit flag to Var_Subst and Var_Parse
2970	    when FALSE we know we are discarding the result and can
2971	    skip operations like Cmd_Exec.
2972
29732015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2974
2975	* Makefile (MAKE_VERSION): 20151009
2976	  Merge with NetBSD make, pick up
2977	  o var.c: don't check for NULL before free()
2978	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
2979
29802015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2981
2982	* Makefile (MAKE_VERSION): 20150910
2983	  Merge with NetBSD make, pick up
2984	  o main.c: with -w print Enter/Leaving messages for objdir too
2985	    if necessary.
2986	  o centralize shell metachar handling
2987
2988	* FILES: add metachar.[ch]
2989
29902015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2991
2992	* Makefile (MAKE_VERSION): 20150606
2993	  Merge with NetBSD make, pick up
2994	  o make.1: document .OBJDIR target
2995
29962015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2997
2998	* Makefile (MAKE_VERSION): 20150505
2999	  Merge with NetBSD make, pick up
3000	  o cond.c: be strict about lhs of comparison when evaluating .if
3001	    but less so when called from variable expansion.
3002	  o unit-tests/cond2.mk: test various error conditions
3003
30042015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3005
3006	* machine.sh (MACHINE): Add Bitrig
3007	  patch from joerg@netbsd.org
3008
30092015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3010
3011	* Makefile (MAKE_VERSION): 20150418
3012	  Merge with NetBSD make, pick up
3013	  o job.c: use memmove() rather than memcpy()
3014
3015	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
3016	  case, so skip it.
3017
30182015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3019
3020	* Makefile (MAKE_VERSION): 20150411
3021	  bump version - only mk/ changes.
3022
30232015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3024
3025	* Makefile (MAKE_VERSION): 20150410
3026	  Merge with NetBSD make, pick up
3027	  o document different handling of '-' in jobs mode vs compat
3028	  o fix jobs mode so that '-' only applies to whole job
3029	    when shell lacks hasErrCtl
3030	  o meta.c: use separate vars to track lcwd and latestdir (read)
3031	    per process
3032
30332015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3034
3035	* Makefile (MAKE_VERSION): 20150401
3036	  Merge with NetBSD make, pick up
3037	  o meta.c: close meta file in child
3038
3039	* Makefile: use BINDIR.bmake if set.
3040	  Same for MANDIR and SHAREDIR
3041	  Handy for testing release candidates
3042	  in various environments.
3043
30442015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3045
3046	* move initialization of savederr to block where it is used
3047	  to avoid spurious warning from gcc5
3048
30492014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3050
3051	* Makefile (MAKE_VERSION): 20141111
3052	  just a cooler number
3053
30542014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3055
3056	* Makefile (MAKE_VERSION): 20141105
3057	  Merge with NetBSD make, pick up
3058	  o revert major overhaul of suffix handling
3059	    and POSIX compliance - too much breakage
3060	    and impossible to make backwards compatible.
3061	  o we still have the new unit test structure which is ok.
3062	  o meta.c ensure "-- filemon" is at start of line.
3063
30642014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3065
3066	* configure.in: test that result of getconf PATH_MAX is numeric
3067	  and discard if not.  Apparently needed for Hurd.
3068
30692014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3070
3071	* Makefile (MAKE_VERSION): 20140830
3072	  Merge with NetBSD make, pick up
3073	  o major overhaul of suffix handling
3074	  o improved POSIX compliance
3075	  o overhauled unit-tests
3076
30772014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3078
3079	* Makefile (MAKE_VERSION): 20140620
3080	  Merge with NetBSD make, pick up
3081	  o var.c return varNoError rather than var_Error for ::= modifiers.
3082
30832014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3084
3085	* Makefile (MAKE_VERSION): 20140522
3086	  Merge with NetBSD make, pick up
3087	  o var.c detect some parse errors.
3088
30892014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3090
3091	* Fix spelling errors - patch from Pedro Giffuni
3092
30932014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3094
3095	* Makefile (MAKE_VERSION): 20140214
3096	  Merge with NetBSD make, pick up
3097	  o .INCLUDEFROM*
3098	  o use Var_Value to get MAKEOBJDIR[PREFIX]
3099	  o reduced realloc'ign in brk_string.
3100	* configure.in: add a check for compiler supporting __func__
3101
31022014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3103
3104	* boot-strap: ignore mksrc=none
3105
31062014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3107
3108	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
3109
31102014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3111
3112	* Makefile (MAKE_VERSION): 20140101
3113	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
3114	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
3115	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
3116	  Hurd)
3117	* configure.in: Add AC_PREREQ and check for
3118	  sysctl; patch from Andrew Shadura andrewsh at debian.org
3119
31202013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3121
3122	* Makefile (MAKE_VERSION): 20131010
3123	* lose the const from arg to systcl to avoid problems on older BSDs.
3124
31252013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3126
3127	* Makefile (MAKE_VERSION): 20131001
3128	  Merge with NetBSD make, pick up
3129	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
3130	    hw.machine_arch if necessary.
3131	  o meta.c: meta_oodate - need to look at src of Link and target
3132	    of Move as well.
3133	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
3134	  provide __arraycount() if needed.
3135
31362013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3137
3138	* Makefile (MAKE_VERSION): 20130904
3139	  Merge with NetBSD make, pick up
3140	  o Add VAR_INTERNAL context, so that internal setting of
3141	    MAKEFILE does not override value set by makefiles.
3142
31432013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3144
3145	* Makefile (MAKE_VERSION): 20130902
3146	  Merge with NetBSD make, pick up
3147	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
3148
31492013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3150
3151	* Makefile (MAKE_VERSION): 20130828
3152	  Merge with NetBSD make, pick up
3153	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
3154	  o Call Job_SetPrefix() from Job_Init() so makefiles have
3155	    opportunity to set .MAKE.JOB.PREFIX
3156
31572013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3158
3159	* Makefile (MAKE_VERSION): 20130730
3160	  Merge with NetBSD make, pick up
3161	  o Allow suppression of --- job -- tokens by setting
3162	    .MAKE.JOB.PREFIX empty.
3163
31642013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3165
3166	* Makefile (MAKE_VERSION): 20130716
3167	  Merge with NetBSD make, pick up
3168	  o number of gmake compatibility tweaks
3169	    -w for gmake style entering/leaving messages
3170	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
3171	    handle MAKEFLAGS containing only letters.
3172	  o when overriding a GLOBAL variable on the command line,
3173	    delete it from GLOBAL context so -V doesn't show the wrong
3174	    value.
3175
31762013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3177
3178	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
3179
3180	* Makefile (MAKE_VERSION): 20130706
3181	  Merge with NetBSD make, pick up
3182	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
3183	    true so that CompatRunCommand() can use it, to ensure
3184	    consistent behavior with jobs mode.
3185	  o use MAKE_LEVEL_ENV to define the variable to propagate
3186	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
3187	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
3188	    paths to ignore.
3189
31902013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3191
3192	* Makefile (MAKE_VERSION): 20130604
3193	  Merge with NetBSD make, pick up
3194	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
3195	    to avoid leaking descriptors.
3196
31972013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3198
3199	* Makefile (MAKE_VERSION): 20130528
3200	  Merge with NetBSD make, pick up
3201	  o var.c: cleanup some left-overs in VarHash()
3202
32032013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3204
3205	* Makefile (MAKE_VERSION): 20130520
3206	  generate manifest from component FILES rather than have to
3207	  update FILES when mk/FILES changes.
3208
32092013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3210
3211	* Makefile (MAKE_VERSION): 20130518
3212	  Merge with NetBSD make, pick up
3213	  o suff.c: don't skip all processsing for .PHONY targets
3214	    else wildcard srcs do not get expanded.
3215	  o var.c: expand name of variable to delete if necessary.
3216
32172013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3218
3219	* Makefile (MAKE_VERSION): 20130330
3220	  Merge with NetBSD make, pick up
3221	  o meta.c: refine the handling of .OODATE in commands.
3222	    Rather than suppress command comparison for the entire script
3223	    as though .NOMETA_CMP had been used, only suppress it for the
3224	    one command line.
3225	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
3226	    suppress comparison of a command without otherwise affecting it.
3227	  o make.1: document that
3228
32292013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3230
3231	* Makefile (MAKE_VERSION): 20130321
3232	  yes, not quite right but its a cooler number.
3233	  Merge with NetBSD make, pick up
3234	  o parse.c: fix ParseGmakeExport to be portable
3235	    and add a unit-test.
3236	* meta.c: call meta_init() before makefiles are read and if built
3237	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
3238	  this let's makefiles test for support.
3239	  Call meta_mode_init() to process .MAKE.MODE.
3240
32412013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3242
3243	* Makefile (MAKE_VERSION): 20130305
3244	  Merge with NetBSD make, pick up
3245	  o run .STALE: target when a dependency from .depend is missing.
3246	  o job.c: add Job_RunTarget() for the above and .BEGIN
3247
32482013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3249
3250	* Makefile (MAKE_VERSION): 20130303
3251	  Merge with NetBSD make, pick up
3252	  o main.c: set .MAKE.OS to utsname.sysname
3253	  o job.c: more checks for read and poll errors
3254	  o var.c: lose VarChangeCase() saves 4% time
3255
32562013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3257
3258	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
3259	  want to use MAKEOBJDIR
3260
32612013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3262
3263	* Merge with NetBSD make, pick up
3264	  o make.1: more info on how shell commands are handled.
3265	  o job.c,main.c: detect write errors to job pipes.
3266
32672013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3268
3269	* Makefile (MAKE_VERSION): 20130123
3270	  Merge with NetBSD make, pick up
3271	  o meta.c: if script uses .OODATE and meta_oodate() decides
3272	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
3273	  o var.c: in debug output indicate which variabale modifiers
3274	    apply to.
3275	  o remove Check_Cwd logic the makefiles have been fixed.
3276
32772012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3278
3279	* makefile.in: add a simple makefile for folk who insist on
3280	  ./configure; make; make install
3281	  it just runs boot-strap
3282	* include mk/* to accommodate the above
3283	* boot-strap:  re-work to accommodate the above
3284	  mksrc defaults to $Mydir/mk
3285	  allow op={configure,build,install,clean,all}
3286	  add options to facilitate install
3287	* Makefile.config.in: just the bits set by configure
3288	* Makefile: bump version to 20121212
3289	  abandon Makefile.in (NetBSD Makefile)
3290	  leverage mk/* instead
3291	* configure.in: ensure srcdir is absolute
3292
32932012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3294
3295	* Makefile.in (MAKE_VERSION): 20121111
3296	  fix generation of bmake.cat1
3297
32982012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3299
3300	* Makefile.in (MAKE_VERSION): 20121109
3301	  Merge with NetBSD make, pick up
3302	  o make.c: MakeBuildChild: return 0 so search continues if a
3303	    .ORDER dependency is detected.
3304	  o unit-tests/order: test the above
3305
33062012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3307
3308	* Makefile.in (MAKE_VERSION): 20121102
3309	  Merge with NetBSD make, pick up
3310	  o cond.c: allow cond_state[] to grow.
3311	    In meta mode with a very large tree, we can hit the limit
3312	    while processing dirdeps.
3313
33142012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3315
3316	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
3317
33182012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3319
3320	* Makefile.in (MAKE_VERSION): 20121010
3321	  o protect syntax that only bmake parses correctly.
3322	  o remove auto setting of FORCE_MACHINE, use configure's
3323	    --with-force-machine=whatever if that is desired.
3324
33252012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3326
3327	* Makefile.in: do not lose history from make.1 when generating bmake.1
3328
33292012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3330
3331	* Makefile.in (MAKE_VERSION): 20121007
3332	  Merge with NetBSD make, pick up
3333	  o compat.c: ignore empty commands - same as jobs mode.
3334	  o make.1: document meta chars that cause use of shell
3335
33362012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3337
3338	* Makefile.in (MAKE_VERSION): bump version to 20120911
3339	* bsd.after-import.mk: include Makefile.inc early and allow it to
3340	  override PROG
3341
33422012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
3343
3344	* Makefile.in (MAKE_VERSION): bump version to 20120831
3345	  Merge with NetBSD make, pick up
3346	  o cast sizeof() to int for comparison
3347	  o minor make.1 tweak
3348
33492012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3350
3351	* Makefile.in (MAKE_VERSION): bump version to 20120830
3352	  Merge with NetBSD make, pick up
3353	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
3354	  o debug flag -dV causes -V to show raw value regardless.
3355
33562012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3357
3358	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
3359	  gets SRCTOP set.
3360
33612012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3362
3363	* Makefile.in (MAKE_VERSION): bump version to 20120704
3364	  Merge with NetBSD make, pick up
3365	  o Job_ParseShell should call Shell_Init if it has been
3366	    previously called.
3367	* Makefile.in: set USE_META based on configure result.
3368	  also .PARSEDIR is safer indicator of bmake.
3369
33702012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3371
3372	* Makefile.in: bump version to 20120626
3373	  ensure CPPFLAGS is in CFLAGS
3374	* meta.c: avoid nested externs
3375	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
3376
33772012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3378
3379	* Makefile.in (MAKE_VERSION): bump version to 20120620
3380	  Merge with NetBSD make, pick up
3381	  o make_malloc.c: avoid including make_malloc.h again
3382
3383	* Makefile.in: avoid bmake only syntax or protect with
3384	  .if defined(.MAKE.LEVEL)
3385	* bsd.after-import.mk: replace .-include with .sinclude
3386	  ensure? SRCTOP gets a value
3387	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
3388
33892012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3390
3391	* Makefile.in (MAKE_VERSION): bump version to 20120612
3392	  Merge with NetBSD make, pick up
3393	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
3394	    for greater portability.
3395	  o unit-tests/forloop: check that .for works as expected wrt
3396	    number of times and with "quoted strings".
3397
33982012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3399
3400	* Makefile.in (MAKE_VERSION): bump version to 20120606
3401	  Merge with NetBSD make, pick up
3402	  o compat.c: use kill(2) rather than raise(3).
3403	* configure.in: look for sys/dev/filemon
3404	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
3405	  and pass BOOTSTRAP_XTRAS to boot-strap.
3406
34072012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3408
3409	* Makefile.in (MAKE_VERSION): bump version to 20120604
3410	  Merge with NetBSD make, pick up
3411	  o util.c and var.c share same var for tracking if environ
3412	    has been reallocated.
3413	  o util.c provide getenv with setenv.
3414	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
3415	  when the shell actively strips .MAKE.* from the environment.
3416	  We still refer to the variable always as .MAKE.LEVEL
3417	* util.c fix bug in findenv() was finding prefix of name.
3418	* compat.c: re-raising SIGINT etc after running .INTERRUPT
3419	  results in more reliable termination of all activity on many
3420	  platforms.
3421
34222012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3423
3424	* Makefile.in (MAKE_VERSION): bump version to 20120602
3425	  Merge with NetBSD make, pick up
3426	  o for.c: handle quoted items in .for list
3427
34282012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3429
3430	* Makefile.in (MAKE_VERSION): bump version to 20120530
3431	  Merge with NetBSD make, pick up
3432	  o compat.c: ignore empty command.
3433
34342012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3435
3436	* Makefile.in (MAKE_VERSION): bump version to 20120524
3437	* FILES: add bsd.after-import.mk:
3438	  A simple means of integrating bmake into a BSD build system.
3439
34402012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3441
3442	* Makefile.in (MAKE_VERSION): bump version to 20120520
3443	  Merge with NetBSD make, pick up
3444	  o increased limit for nested conditionals.
3445
34462012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3447
3448	* Makefile.in (MAKE_VERSION): bump version to 20120518
3449	  Merge with NetBSD make, pick up
3450	  o use _exit(2) in signal hanlder
3451	  o Don't use the [dir] cache when building nodes that might have
3452	    changed since the last exec.
3453	  o Avoid nested extern declaration warnings.
3454
34552012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3456
3457	* meta.c (fgetLine): avoid %z - not portable.
3458	* parse.c: Since we moved include of sys/mman.h
3459	  and def's of MAP_COPY etc. we got dups from a merge.
3460
34612012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3462
3463	* Makefile.in (MAKE_VERSION): bump version to 20120420
3464	  Merge with NetBSD make, pick up
3465	  o restore duplicate supression in .MAKE.MAKEFILES
3466	    runtime saving can be significant.
3467	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
3468	    consumption up to 20%.
3469
34702012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3471
3472	* Makefile.in (MAKE_VERSION): bump version to 20120420
3473          Merge with NetBSD make, pick up
3474	  o remove duplicate supression in .MAKE.MAKEFILES
3475	  o improved dir cache behavior
3476	  o gmake'ish export command
3477
34782012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3479
3480	* Makefile.in (MAKE_VERSION): bump version to 20120325
3481	  Merge with NetBSD make, pick up
3482	  o fix parsing of :[#] in conditionals.
3483
34842012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3485
3486	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
3487	  since some systems cannot cope with .Nx <version>
3488
34892011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3490
3491	* Makefile.in (MAKE_VERSION): bump version to 20111111
3492	  Merge with NetBSD make, pick up
3493	  o debug output for .PARSEDIR and .PARSEFILE
3494
34952011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3496
3497	* Makefile.in (MAKE_VERSION):  bump version to 20111010
3498
34992011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3500
3501	* boot-strap: check for an expected file in the dirs we look for.
3502	* make-bootstrap.sh: pass on LDSTATIC
3503
35042011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3505
3506	* Makefile.in (MAKE_VERSION): bump version to 20111001
3507	  Merge with NetBSD make, pick up
3508	  o ensure .PREFIX is set for .PHONY
3509	    and .TARGET set for .PHONY run via .END
3510	  o __dead used consistently
3511
35122011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3513
3514	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
3515
35162011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3517
3518	* Makefile.in (MAKE_VERSION): bump version to 20110905
3519	  Merge with NetBSD make, pick up
3520	  o meta_oodate: ignore makeDependfile
3521
35222011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3523
3524	* Makefile.in (MAKE_VERSION): bump version to 20110828
3525	  Merge with NetBSD make, pick up
3526	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
3527	    as SILENT if a .meta file is created
3528
35292011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3530
3531	* Makefile.in (MAKE_VERSION): bump version to 20110818
3532	  Merge with NetBSD make, pick up
3533	  o in meta mode, if target flagged .META a missing .meta file
3534	    means target is out-of-date
3535	  o fixes for gcc 4.5 warnings
3536	  o simplify job printing code
3537
35382011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3539
3540	* Makefile.in (MAKE_VERSION): bump version to 20110808
3541	  Merge with NetBSD make, pick up
3542	  o do not touch OP_SPECIAL targets when doing make -t
3543
35442011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3545
3546	* Makefile.in (MAKE_VERSION): bump version to 20110622
3547	  Merge with NetBSD make, pick up
3548	  o meta_oodate detect corrupted .meta file and declare oodate.
3549	* configure.in: add check for setsid
3550
35512011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3552
3553	* Merge with NetBSD make, pick up
3554	  o unit-tests/modts now works on MirBSD
3555
35562011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3557
3558	* Makefile.in (MAKE_VERSION): bump version to 20110606
3559	  Merge with NetBSD make, pick up
3560	  o ApplyModifiers: when we parse a variable which is not
3561	    the entire modifier string, or not followed by ':', do not
3562	    consider it as containing modifiers.
3563	  o loadfile: ensure newline at end of mapped file.
3564
35652011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3566
3567	* Makefile.in (MAKE_VERSION): bump version to 20110505
3568	  Merge with NetBSD make, pick up
3569	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
3570	    of make's control.  In meta mode, any generated file within
3571	    said bailiwick, which  is found to be missing, causes current
3572	    target to be out-of-date.
3573
35742011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3575
3576	* Makefile.in (MAKE_VERSION): bump version to 20110411
3577	  Merge with NetBSD make, pick up
3578	  o when long modifiers fail to match, check sysV style.
3579	    - add a test case
3580
35812011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3582
3583	* Makefile.in (MAKE_VERSION): bump version to 20110410
3584	  Merge with NetBSD make, pick up
3585	  o :hash - cheap 32bit hash of value
3586	  o :localtime, :gmtime - use value as format string for strftime.
3587
35882011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3589
3590	* Makefile.in (MAKE_VERSION): bump version to 20110330
3591	  mostly because its a cooler version.
3592	  Merge with NetBSD make, pick up
3593	  o NetBSD tags for meta.[ch]
3594	  o job.c call meta_job_finish() after meta_job_error().
3595	  o meta_job_error() should call meta_job_finish() to ensure
3596	    .meta file is closed, and safe to copy - if .ERROR target wants.
3597	   meta_job_finish() is safe to call repeatedly.
3598
35992011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
3600
3601	* unit-tests/modts: use printf if it is a builtin,
3602	  to save us from MirBSD
3603
3604	* Makefile.in (MAKE_VERSION): bump version to 20110329
3605	  Merge with NetBSD make, pick up
3606	  o fix for use after free() in CondDoExists().
3607	  o meta_oodate() report extra commands and return earlier.
3608
36092011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3610
3611	* Makefile.in (MAKE_VERSION): bump version to 20110327
3612	  Merge with NetBSD make, pick up
3613	  o meta.c, if .MAKE.MODE contains curdirOk=yes
3614	    allow creating .meta files in .CURDIR
3615	* boot-strap (TOOL_DIFF): aparently at least on linux distro
3616	  formats the output of 'type' differently - so eat any "()"
3617
36182011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3619
3620	* Makefile.in (MAKE_VERSION): bump version to 20110306
3621	  Merge with NetBSD make, pick up
3622	  o meta.c, only do getcwd() once
3623
36242011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3625
3626	* Makefile.in (MAKE_VERSION): bump version to 20110305
3627	  Merge with NetBSD make, pick up
3628	  o correct sysV substitution handling of empty lhs and variable
3629	  o correct exists() check for dir with trailing /
3630	  o correct handling of modifiers for non-existant variables
3631	    during evaluation of conditionals.
3632	  o ensure MAP_FILE is defined.
3633	  o meta.c use curdir[] now exported by main.c
3634
36352011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3636
3637	* Makefile.in (MAKE_VERSION): bump version to 20110225
3638	  Merge with NetBSD make, pick up
3639	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
3640	    makefiles have been read.
3641	  o fix example of :? modifier in man page.
3642
36432011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3644
3645	* Makefile.in (MAKE_VERSION): bump version to 20110214
3646	  Merge with NetBSD make, pick up
3647	  o meta.c handle realpath() failing when generating meta file
3648	    name.
3649
3650	* sigcompat.c: convert to ansi so we can use higher warning levels.
3651
3652
36532011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3654
3655	* Makefile.in (MAKE_VERSION): bump version to 20110207
3656	  Merge with NetBSD make, pick up
3657	  o fix for bug in meta mode.
3658
36592011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3660
3661	* parse.c: SunOS 5.8 at least does not have MAP_FILE
3662
36632011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3664
3665	* Makefile.in (MAKE_VERSION): bump version to 20110101
3666	  Merge with NetBSD make, pick up
3667	  o use mmap(2) if available, for reading makefiles
3668
36692010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3670
3671	* Makefile.in (MAKE_VERSION): bump version to 20101215
3672	  Merge with NetBSD make, pick up
3673	  o ensure meta_job_error() does not report a previous .meta file
3674	    as being culprit.
3675
36762010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3677
3678	* Makefile.in (MAKE_VERSION): bump version to 20101210
3679	  Merge with NetBSD make, pick up
3680	  o meta_oodate: track cwd per process, and only consider target
3681	    out-of-date if missing file is outside make's CWD.
3682	    Ignore files in /tmp/ etc.
3683	  o to ensure unit-tests results match, need to control LC_ALL
3684	    as well as LANG.
3685	  o fix for parsing bug in var.c
3686
36872010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3688
3689	* Makefile.in (MAKE_VERSION): bump version to 20101126
3690	  Merge with NetBSD make, pick up
3691	  o if stale dependency is an IMPSRC, search via .PATH
3692	  o meta_oodate: if a referenced file is missing, target is
3693	    out-of-date.
3694	  o meta_oodate: if a target uses .OODATE in its commands,
3695	    it (.OODATE) needs to be recomputed.
3696	  o keep a pointer to youngest child node, rather than just its
3697	    mtime.
3698
36992010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3700
3701	* Makefile.in (MAKE_VERSION): bump version to 20101101
3702
37032010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3704
3705	* machine.sh: like os.sh,
3706	allow for uname -p producing useless drivel
3707
37082010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3709
3710	* boot-strap: document configure knobs for meta and filemon.
3711
3712	* Makefile.in (MAKE_VERSION): bump version to 20100911
3713	  Merge with NetBSD make, pick up
3714	  o meta.c - meta mode
3715
3716	* make-bootstrap.sh.in: handle meta.c
3717	* configure.in: add knobs for use_meta and filemon_h
3718	  also, look for dirname, str[e]sep and strlcpy
3719	* util.c: add simple err[x] and warn[x]
3720
37212010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3722
3723	* boot-strap (TOOL_DIFF): set this to ensure tests use
3724	  the same version of diff that configure tested
3725
3726	* Makefile.in (MAKE_VERSION): bump version to 20100808
3727	  Merge with NetBSD make, pick up
3728	  o in jobs mode, when we discover we cannot make something,
3729	    call PrintOnError before exit.
3730
37312010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3732
3733	* Makefile.in (MAKE_VERSION): bump version to 20100806
3734	  Merge with NetBSD make, pick up
3735	  o formatting fixes for ignored errors
3736	  o ensure jobs are cleaned up regardless of where wait() was called.
3737
37382010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3739
3740	* Makefile.in (MAKE_VERSION): bump version to 20100618
3741	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3742
37432010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3744
3745	* Makefile.in (MAKE_VERSION): bump version to 20100616
3746	  Merge with NetBSD make, pick up
3747	  o man page update
3748	  o call PrintOnError from JobFinish when we detect an error we
3749	    are not ignoring.
3750
37512010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3752
3753	* Makefile.in (MAKE_VERSION): bump version to 20100606
3754	  Merge with NetBSD make, pick up
3755	  o man page update
3756
37572010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3758
3759	* Makefile.in (MAKE_VERSION): bump version to 20100605
3760	  Merge with NetBSD make, pick up
3761	  o use bmake_signal() which is a wrapper around sigaction()
3762	    in place of signal()
3763	  o add .export-env to allow exporting variables to environment
3764	    without tracking (so no re-export when the internal value is
3765	    changed).
3766
37672010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3768
3769	* Makefile.in (MAKE_VERSION): bump version to 20100524
3770	  Merge with NetBSD make, pick up
3771	  o fix for .info et al being greedy.
3772
37732010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3774
3775	* Makefile.in (MAKE_VERSION): bump version to 20100520
3776	  Merge with NetBSD make, pick up
3777	  o back to using realpath on argv[0]
3778	    but only if contains '/' and does not start with '/'.
3779
37802010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3781
3782	* boot-strap: use absolute path for bmake when running tests.
3783
3784	* Makefile.in (MAKE_VERSION):  bump version to 20100510
3785	  Merge with NetBSD make, pick up
3786	  o revert use of realpath on argv[0]
3787	    too many corner cases.
3788	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
3789
37902010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3791
3792	* Makefile.in (MAKE_VERSION): bump version to 20100505
3793	  Merge with NetBSD make, pick up
3794	  o fix for missed SIGCHLD when compiled with SunPRO
3795	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
3796	    done the job.
3797
37982010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3799
3800	* Makefile.in (MAKE_VERSION): bump version to 20100430
3801	  Merge with NetBSD make, pick up
3802	  o fflush stdout before writing to stdout
3803
38042010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
3805
3806	* Makefile.in (MAKE_VERSION): bump version to 20100423
3807	  Merge with NetBSD make, pick up
3808	  o updated unit tests for Haiku (this time for sure).
3809	* boot-strap: based on patch from joerg
3810	  honor --with-default-sys-path better.
3811	* boot-strap: remove mention of --with-prefix-sys-path
3812
38132010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3814
3815	* Makefile.in (MAKE_VERSION): bump version to 20100422
3816	* Merge with NetBSD make, pick up
3817	  o fix for vfork() on Darwin.
3818	  o fix for bogus $TMPDIR.
3819	  o set .MAKE.MODE=compat for -B
3820	  o set .MAKE.JOBS=max_jobs for -j max_jobs
3821	  o allow unit-tests to run without any *.mk
3822	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
3823	* boot-strap: ignore /usr/share/mk except on NetBSD.
3824	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
3825	  ensure sort(1) behaves as expected.
3826
38272010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3828
3829	* boot-strap: add FindHereOrAbove so we can use -m .../mk
3830
38312010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3832
3833	* Makefile.in (MAKE_VERSION): bump version to 20100420
3834	* Merge with NetBSD make, pick up
3835	  o fix for variable realpath() behavior.
3836	    we have to stat(2) the result to be sure.
3837	  o fix for .export (all) when nested vars use :sh
3838
38392010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3840
3841	* Makefile.in (MAKE_VERSION): bump version to 20100414
3842	* Merge with NetBSD make, pick up
3843	  o use realpath to resolve argv[0] (for .MAKE) if needed.
3844	  o add realpath from libc.
3845	  o add :tA to resolve variable via realpath(3) if possible.
3846
38472010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3848
3849	* Makefile.in (MAKE_VERSION): bump version to 20100408
3850	* Merge with NetBSD make, pick up
3851	  o unit tests for .ERROR, .error
3852	  o fix for .ERROR to ensure it cannot be default target.
3853
38542010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3855
3856	* Makefile.in (MAKE_VERSION): bump version to 20100406
3857	* Merge with NetBSD make, pick up
3858	  o fix for compat mode "Error code" going to debug_file.
3859	  o fix for .ALLSRC being populated twice.
3860	  o support for .info, .warning and .error directives
3861	  o .MAKE.MODE to control make's operational mode
3862	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
3863	    name(s).
3864	  o .MAKE.DEPENDFILE to control the name of the depend file
3865	  o .ERROR target - run on failure.
3866
38672010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3868
3869	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3870
3871	* os.sh,arch.c: patch for Haiku from joerg at netbsd
3872
38732010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3874
3875	* Makefile.in (MAKE_VERSION): bump version to 20100222
3876	* Merge with NetBSD make, pick up
3877	  o better error msg for .for with mutiple inter vars
3878
3879	* boot-strap:
3880	  o use make-bootstrap.sh from joerg at netbsd
3881	    to avoid the need for a native make when bootstrapping.
3882	  o add "" everywhere ;-)
3883	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
3884	    otherwise the pre-formated version.
3885
38862010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3887
3888	* Makefile.in (MAKE_VERSION): bump version to 20100102
3889	* Merge with NetBSD make, pick up:
3890	  o fix for -m .../
3891
38922009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
3893
3894	* Makefile.in (MAKE_VERSION): bump version to 20091118
3895	* Merge with NetBSD make, pick up:
3896	  o .unexport
3897	  o report lines that start with '.' and should have ':'
3898	    (catch typo's of .el*if).
3899
39002009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3901
3902	* configure.in: Ensure that srcdir and mksrc are absolute paths.
3903
39042009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3905
3906	* Makefile.in (MAKE_VERSION): fix version to 20091007
3907
39082009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
3909
3910	* Makefile.in (MAKE_VERSION): bump version to 200910007
3911	* Merge with NetBSD make, pick up:
3912	  o fix for parsing of :S;...;...; applied to .for loop iterator
3913	    appearing in a dependency line.
3914
39152009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3916
3917	* Makefile.in (MAKE_VERSION): bump version to 20090909
3918	* Merge with NetBSD make, pick up:
3919	  o fix for -C, .CURDIR and .OBJDIR
3920	* boot-strap:
3921	  o allow share_dir to be set independent of prefix.
3922	  o select default share_dir better when prefix ends in $HOST_TARGET
3923	  o if FORCE_BSD_MK etc were set, include them in the suggested
3924	    install-mk command.
3925
39262009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
3927
3928	* Makefile.in (MAKE_VERSION): bump version to 20090908
3929	* Merge with NetBSD make, pick up:
3930	  o .MAKE.LEVEL for recursion tracking
3931	  o fix for :M scanning \:
3932
39332009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3934
3935	* configure.in: Don't -D__EXTENSIONS__ if
3936	AC_USE_SYSTEM_EXTENSIONS says "no".
3937
39382009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
3939
3940	* Makefile.in (MAKE_VERSION): bump version to 20090826
3941	Simplify MAKE_VERSION to just the bare date.
3942	* Merge with NetBSD make, pick up:
3943	  o -C directory support.
3944	  o support for SIGINFO
3945	  o use $TMPDIR for temp files.
3946	  o child of vfork should be careful about modifying parent's state.
3947
3948
39492009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
3950
3951	* Appy some patches for MiNT from David Brownlee
3952
39532009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
3954
3955	* Makefile.in (BMAKE_VERSION): bump version to 20090222
3956	* Merge with NetBSD make, pick up:
3957	  o Possible null pointer de-ref in Var_Set.
3958
39592009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
3960
3961	* Makefile.in (BMAKE_VERSION): bump version to 20090204
3962	* Merge with NetBSD make, pick up:
3963	  o bmake_malloc et al moved to their own .c
3964	  o Count both () and {} when looking for the end of a :M pattern
3965	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
3966	  o strlist.c - functions for processing extendable arrays of pointers to strings.
3967	  o ClientData replaced with void *, so const void * can be used.
3968	  o New debug flag C for DEBUG_CWD
3969
39702008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
3971
3972	* Makefile.in (BMAKE_VERSION): bump version to 20081111
3973	  Apply patch from Joerg Sonnenberge to
3974	  configure.in:
3975	  o remove some redundant checks
3976	  o check for emlloc etc only in libutil and require the whole family.
3977	  util.c:
3978	  o remove [v]asprintf which is no longer used.
3979
39802008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3981
3982	* Makefile.in (BMAKE_VERSION): bump version to 20081101
3983	* Merge with NetBSD make, pick up:
3984	  o util.c: avoid use of putenv() - christos
3985
39862008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
3987
3988	* Makefile.in (BMAKE_VERSION): bump version to 20081030
3989	  pick up man page tweaks.
3990
39912008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
3992
3993	* Makefile.in: move processing of LIBOBJS to after is definition!
3994	  thus we'll have getenv.c in SRCS only if needed.
3995
3996	* make.1: add examples of how to use :?
3997
3998	* Makefile.in (BMAKE_VERSION): bump version to 20081029
3999	* Merge with NetBSD make, pick up:
4000	  o fix for .END processing with -j
4001	  o segfault from Parse_Error when no makefile is open
4002	  o handle numeric expressions in any variable expansion
4003	  o debug output now defaults to stderr, -dF to change it - apb
4004	  o make now uses bmake_malloc etc so that it can build natively
4005	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
4006
40072008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
4008
4009	* Makefile.in (BMAKE_VERSION): bump version to 20080808
4010	* Merge with NetBSD make, pick up:
4011	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
4012	    long lines in Makefiles
4013	  o optimizations for VarQuote by joerg
4014	  o fix for PR/38756: dominik: make dumps core on invalid makefile
4015
40162008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
4017
4018	* Makefile.in (BMAKE_VERSION): bump version to 20080515
4019	* Merge with NetBSD make, pick up:
4020	  o fix skip setting vars in VAR_GLOBAL context, to handle
4021	    cases where VAR_CMD is used for other than command line vars.
4022
40232008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
4024
4025	* boot-strap (make_version): we may need to look in
4026	$prefix/share/mk for sys.mk
4027
4028	* Makefile.in (BMAKE_VERSION): bump version to 20080514
4029	* Merge with NetBSD make, pick up:
4030	  o skip setting vars in VAR_GLOBAL context, when already set in
4031	  VAR_CMD which takes precedence.
4032
40332008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
4034
4035	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
4036	* Merge with NetBSD make, pick up:
4037	  o fix for ?= when LHS contains variable reference.
4038
40392008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4040
4041	* merge some patches from NetBSD pkgsrc.
4042
4043	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
4044	the MAKSYSPATH used during bootstrap.
4045
4046	* Makefile.in (BMAKE_VERSION): bump version to 20080215
4047	* Merge with NetBSD make, pick up:
4048	  o warn if non-space chars follow 'empty' in a conditional.
4049
40502008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4051
4052	* Makefile.in (BMAKE_VERSION): bump version to 20080118
4053	* Merge with NetBSD make, pick up:
4054	  o consider dependencies read from .depend as optional - dsl
4055	  o remember when buffer for reading makefile grows - dsl
4056	  o add -dl (aka LOUD) - David O'Brien
4057
40582007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
4059
4060	* Makefile.in (BMAKE_VERSION): bump version to 20071022
4061	* Merge with NetBSD make, pick up:
4062	  o Allow .PATH<suffix> to be used for .include ""
4063
4064	* boot-strap: source default settings from .bmake-boot-strap.rc
4065
40662007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
4067
4068	* Makefile.in: fix maninstall on various systems
4069	  provided that our man.mk is used.
4070	  For non-BSD systems we install the preformatted page
4071	  into $MANDIR/cat1
4072
40732007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
4074
4075	* boot-strap: make bmake.1 too, so maninstall works.
4076
40772007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
4078
4079	* Makefile.in (BMAKE_VERSION): bump version to 20071014
4080	* Merge with NetBSD make, pick up:
4081	  o revamped handling of defshell - configure no longer needs to
4082	    know the content of the shells array - apb
4083	  o stop Var_Subst modifying its input - apb
4084	  o avoid calling ParseTrackInput too often - dsl
4085
40862007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
4087
4088	* Makefile.in (BMAKE_VERSION): bump version to 20071011
4089	* Merge with NetBSD make, pick up:
4090	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
4091
4092	* sigcompat.c: some tweaks for HP-UX 11.x based on
4093	  patch from Tobias Nygren
4094
4095	* configure.in: update handling of --with-defshell to match
4096	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
4097	  will now do what one might hope - provided the chosen shell
4098	  behaves enough like sh.
4099
41002007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
4101
4102	* Makefile.in (BMAKE_VERSION): bump to 20071008
4103	* Merge with NetBSD make, pick up:
4104	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
4105	  o .export/.MAKE.EXPORTED - export of variables - sjg
4106	  o .MAKE.MAKEFILES - track all makefiles read - sjg
4107	  o performance improvements - dsl
4108	  o revamp parallel job scheduling - dsl
4109
41102006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4111
4112	* Makefile.in (BMAKE_VERSION): bump to 20060728
4113	* Merge with NetBSD make, pick up:
4114	  o extra debug info during variable and cond processing - sjg
4115	  o shell definition now covers newline - rillig
4116	  o minor mem leak in PrintOnError - sjg
4117
41182006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4119
4120	* Makefile.in (BMAKE_VERSION):  bump to 20060511
4121	* Merge with NetBSD make, pick up:
4122	  o more memory leaks - coverity
4123	  o possible overflow in ArchFindMember - coverity
4124	  o extract variable modifier code out of Var_Parse()
4125	    so it can be called recursively - sjg
4126	  o unit-tests/moderrs - sjg
4127
41282006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
4129
4130	* Makefile.in (BMAKE_VERSION): bump to 20060412
4131	* Merge with NetBSD make, pick up:
4132	  o fixes for some memory leaks - coverity
4133	  o only read first sys.mk etc when searching sysIncPath - sjg
4134
4135	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
4136	setting ${MAKEFILE} - OBATA Akio
4137
41382006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
4139
4140	* Makefile.in (BMAKE_VERSION): bump to 20060318
4141	* Merge with NetBSD make, pick up:
4142	  o cleanup of job.c to remove remote handling, distcc is more
4143	    useful and this code was likely bit-rotting - dsl
4144	  o fix for :P modifier - sjg
4145	* boot-strap: set default prefix to something reasonable
4146	  (for me anyway).
4147
41482006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
4149
4150	* Makefile.in (BMAKE_VERSION): bump to 20060301
4151	* Merge with NetBSD make, pick up:
4152	  o make .WAIT apply recursively, document and test case - apb
4153	  o allow variable modifiers in a variable appear anywhere in
4154	    modifier list, document and test case - sjg
4155
41562006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
4157
4158	* Makefile.in (BMAKE_VERSION): bump to 20060222
4159	* Merge with NetBSD make, pick up:
4160	  o improved job token handling - dsl
4161	  o SIG_DFL the correct signal before exec - dsl
4162	  o more debug info during parsing - dsl
4163	  o allow variable modifiers to be specified via variable - sjg
4164	* boot-strap: explain why we died if no mksrc
4165
41662005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
4167
4168	* Makefile.in (BMAKE_VERSION): bump to 20051105
4169	* configure.in: always set default_sys_path
4170	  default is ${prefix}/share/mk
4171	  - remove prefix_sys_path, anyone wanting more than above
4172	    needs to set it manually.
4173
41742005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
4175
4176	* boot-strap: make this a bit easier for pkgsrc folk.
4177	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
4178	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
4179
41802005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
4181
4182	* Makefile.in (BMAKE_VERSION): bump to 20051102
4183	* job.c (JobFinish): fix likely ancient merge lossage
4184	fix from Todd Vierling.
4185	* boot-strap (srcdir): allow setting mksrc=none
4186
41872005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
4188
4189	* Makefile.in (BMAKE_VERSION): bump to 20051031
4190	* ranlib.h: skip on OSF too.
4191	  (NetBSD PR 31864)
4192
41932005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
4194
4195	* Makefile.in (BMAKE_VERSION): bump to 20051002
4196	  fix a silly typo
4197
41982005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
4199
4200	* Makefile.in (BMAKE_VERSION): bump to 20051001
4201	  support for UnixWare and some other systems,
4202	  based on patches from pkgsrc/bootstrap
4203
42042005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
4205
4206	* Makefile.in (BMAKE_VERSION): bump to 20050901
4207	* Merge with NetBSD make, pick up:
4208	  o possible parse error causing us to wander off.
4209
42102005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
4211
4212	* Makefile.in (BMAKE_VERSION): bump to 20050606
4213	* Merge with NetBSD make, pick up:
4214	  o :0x modifier for randomizing a list
4215	  o fixes for a number of -Wuninitialized issues.
4216
42172005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
4218
4219	* Makefile.in (BMAKE_VERSION): bump to 20050530
4220	* Merge with NetBSD make, pick up:
4221	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
4222
4223	* README: was seriously out of date.
4224
42252005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
4226
4227	* Important to use .MAKE rather than MAKE.
4228
42292005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
4230
4231	* Makefile.in (BMAKE_VERSION): bump to 20050315
4232	* Merge with NetBSD make, pick up:
4233	  o don't mistake .elsefoo for .else
4234	  o use suffix-specific search path correctly
4235	  o bunch of style nits
4236
42372004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4238
4239	* boot-strap:
4240	o ensure that args to --src and --with-mksrc
4241	  are resolved before giving them to configure.
4242	o add -o "objdir" so that builder can control it,
4243	  default is $OS as determined by os.sh
4244	o add -q to suppress all the install instructions.
4245
42462004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
4247
4248	* Remove __IDSTRING()
4249
4250	* Makefile.in (BMAKE_VERSION): bump to 20040508
4251	* Merge with NetBSD make, pick up:
4252	  o posix fixes
4253	    - remove '-e' from compat mode
4254	    - add support for '+' command-line prefix.
4255	  o fix for handling '--' on command-line.
4256	  o fix include in lst.lib/lstInt.h to simplify '-I's
4257	  o we also picked up replacement of MAKE_BOOTSTRAP
4258	    with !MAKE_NATIVE which is a noop, but possibly confusing.
4259
42602004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
4261
4262	* Makefile.in (BMAKE_VERSION): bump to 20040414
4263	* Merge with NetBSD make, pick up:
4264	  o allow quoted strings on lhs of conditionals
4265	  o issue warning when extra .else is seen
4266	  o print line numer when errors encountered during parsing from
4267	  string.
4268
42692004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
4270
4271	* Makefile.in (BMAKE_VERSION):  bump to 20040220
4272	* Merge with NetBSD make, pick up:
4273	  o fix for old :M parsing bug.
4274	  o re-jigged unit-tests
4275
42762004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4277
4278	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
4279	so that './bmake -f Makefile test' works.
4280
42812004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
4282
4283	* Makefile.in: (BMAKE_VERSION): bump to 20040214
4284	* Merge with NetBSD make, pick up:
4285	  o search upwards for *.mk
4286	  o fix for double free of var substitution buffers
4287	  o use of getopt replaced with custom code, since the usage
4288	  (re-scanning) isn't posix compatible.
4289
42902004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
4291
4292	* arch.c: don't include ranlib.h on ELF systems
4293	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
4294
42952004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4296
4297	* Makefile.in (BMAKE_VERSION): bump to 20040118
4298
4299	* boot-strap (while): export vars we assign to on cmdline
4300	* unit-test/Makefile.in: ternary is .PHONY
4301
43022004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
4303
4304	* Makefile.in (BMAKE_VERSION): bump version to 20040108
4305	* Merge with NetBSD make, pick up:
4306	  o fix for ternary modifier
4307
43082004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
4309
4310	* Makefile.in (BMAKE_VERSION): bump version to 20040105
4311	* Merge with NetBSD make, pick up:
4312	  o fix for cond.c to handle compound expressions better
4313	  o variable expansion within sysV style replacements
4314
43152003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
4316
4317	* Make portable snprintf safer - output to /dev/null first to
4318	check space needed.
4319
4320	* Makefile.in (BMAKE_VERSION): bump version to 20031222
4321	* Merge with NetBSD make, pick up:
4322	  o -dg3 to show input graph when things go wrong.
4323	  o explicitly look for makefiles in objdir if not found in curdir so
4324	    that errors in .depend etc will be reported accurarely.
4325	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
4326	    instead as it more accurately reflects the expected behavior and
4327	    is more consistently implemented.
4328	  o avoid use of asprintf.
4329
43302003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
4331
4332	* util.c: Add asprintf and vasprintf.
4333
4334	* Makefile.in (BMAKE_VERSION): bump version to 20030928
4335	* Merge with NetBSD make, pick up:
4336	:[] modifier - allows picking words from a variable.
4337	:tW modifier - allows treating value as one big word.
4338	W flag for :C and :S - allows treating value as one big word.
4339
43402003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
4341
4342	* Merge with NetBSD make
4343	pick up -de flag to enable printing failed command.
4344	don't skip 1st two dir entries (normally . and ..) since
4345	coda does not have them.
4346
43472003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
4348
4349	* Makefile.in (BMAKE_VERSION): bump version to 20030909
4350	* Merge with NetBSD make, pick up:
4351	- changes for -V '${VAR}' to print fully expanded value
4352	  cf. -V VAR
4353	- CompatRunCommand now prints the command that failed.
4354	- several files got updated 3 clause Berkeley license.
4355
43562003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
4357
4358	* boot-strap: Allow setting configure args on command line.
4359
43602003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
4361
4362	* configure.in: add --with-defshell to allow sh or ksh
4363	to be selected as default shell.
4364
4365	* Makefile.in: bump version to 20030731
4366
4367	* Merge with NetBSD make
4368	Pick up .SHELL spec for ksh and associate man page changes.
4369	Also compat mode now uses the same shell specs.
4370
43712003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
4372
4373	* var.c (Var_Parse): ensure delim is initialized.
4374
4375	* unit-tests/Makefile.in: use single quotes to avoid problems from
4376	some shells.
4377
4378	* makefile.boot.in:
4379	Run the unit-tests as part of the bootstrap procedure.
4380
43812003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4382
4383	* unit-tests/Makefile.in: always force complaints from
4384	${TEST_MAKE} to be from 'make'.
4385
4386	* configure.in: add check for 'diff -u'
4387	also fix some old autoconf'isms
4388
4389	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
4390	if using GCC add -Wno-cast-qual to CFLAGS for var.o
4391
4392	* Merge with NetBSD make
4393	Pick up fix for :ts parsing error in some cases.
4394	Pick unit-tests.
4395
43962003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
4397
4398	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
4399
4400	* var.c (Var_Parse): fix bug in :ts modifier, after const
4401	correctness fixes, must pass nstr to VarModify.
4402
44032003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
4404
4405	* Makefile.in: BMAKE_VERSION switch to a date based version.
4406	We'll generally use the date of last import from NetBSD.
4407
4408	* Merge with NetBSD make
4409	Pick up fixes for const-correctness, now passes WARNS=3 on
4410	NetBSD.
4411	Pick up :ts modifier, allows controlling the separator used
4412	between words in variable expansion.
4413
44142003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
4415
4416	* FILES: include boot-strap and os.sh
4417
4418	* Makefile.in: only set WARNS if we are NetBSD, the effect on
4419	FreeBSD is known to be bad.
4420
4421	* makefile.boot.in (bootstrap): make this the default target.
4422
4423	* Makefile.in: bump version to 3.1.19
4424
4425	* machine.sh: avoid A-Z with tr as it is bound to lose.
4426
44272003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
4428
4429	* Merge with NetBSD make
4430	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
4431	Plus some doc fixes.
4432
44332003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
4434
4435	* Merge with NetBSD make
4436	Pick up fix for PR/1523 - don't count a library as built, if there
4437	is no way to build it
4438
4439	* Bump version to 3.1.18
4440
44412003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
4442
4443	* Merge with NetBSD make
4444	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
4445	appears in src list.
4446
44472003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
4448
4449	* Merge with NetBSD make (mmm 10th anniversary!)
4450	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
4451	pick up -X which tells us to not export VAR=val via setenv if
4452	we are already doing so via MAKEFLAGS.  This saves valuable env
4453	space on systems like Darwin.
4454	set MAKE_VERSION to 3.1.17
4455
4456	* parse.c: pix up fix for suffix rules
4457
44582003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
4459
4460	* Merge with NetBSD make.
4461	pick up fix for propagating -B via MAKEFLAGS.
4462	set MAKE_VERSION to 3.1.16
4463
4464	* Apply some patches from pkgsrc-bootstrap/bmake
4465	Originally by Grant Beattie <grant@netbsd.org>
4466	I may have missed some - since they are based on bmake-3.1.12
4467
44682002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
4469
4470	* makefile.boot.in (bmake): update install targets for those that
4471	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
4472	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
4473
4474	* bmake.cat1: update the pre-formatted man page!
4475
44762002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
4477
4478	* Merge with NetBSD make.
4479	pick up fix for premature free of pointer used in call
4480	to Dir_InitCur().
4481	set MAKE_VERSION to 3.1.15
4482
44832002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
4484
4485	* configure.in: determine suitable value for MKSRC.
4486	override using --with-mksrc=PATH.
4487
4488	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
4489	configs(8) will use 'sun4' as an alias for 'sparc'.
4490
44912002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
4492
4493	* Merge with NetBSD make.
4494	pick up ${.PATH}
4495	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
4496	set MAKE_VERSION to 3.1.14
4497	add configure checks for killpg and sys/socket.h
4498
44992002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
4500
4501	* tag bmake-3-1-13
4502
4503	* makefile.boot.in (bmake): use install-mk
4504	Also setup ./mk before trying to invoke bmake.boot incase we
4505	needed install-mk to create a sys.mk for us.
4506
4507	* configure.in: If we need to add -I${srcdir}/missing, make it an
4508	absolute path so that it works for lst.lib too.
4509
4510	* make.h: always include sys/cdefs.h since we provide one if the
4511	host does not.
4512
4513	* Makefile.in (install-mk):
4514	use MKSRC/install-mk which will do the right thing.
4515	use uname -p for ARCH if possible.
4516	since install-mk will setup links bsd.prog.mk -> prog.mk if
4517	needed, just .include bsd.prog.mk
4518
4519	* Merge with NetBSD make (NetBSD-1.6)
4520	Code is ansi-C only now.
4521	Bug in handling of dotLast is fixed.
4522	Can now assign .OBJDIR and make will reset its notions of life.
4523	New modifiers :tu :tl for toUpper and toLower.
4524
4525Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4526
4527	* Merge with NetBSD make
4528	pick up fix for .END failure in compat mode.
4529	pick up fix for extra va_end() in ParseVErrorInternal.
4530
4531Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4532
4533	* configure.in: for systems that have sys/cdefs.h check if it is
4534	compatible.  If not, include the one under missing, but tell it to
4535	include the native one too - necessary on Linux.
4536
4537	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4538	include_next (for gcc) to get the native sys/cdefs.h
4539
4540Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4541
4542	* job.c (JobFinish): Fix an earlier merge bug that resulted in
4543	leaking descriptors when using -jN.
4544
4545	* job.c (JobPrintCommand): See if "curdir" exists before
4546	attempting to chdir().  Doing the chdir directly in make (when in
4547	compat mode) fails silently, so let the -jN version do the same.
4548	This can happen when building kernels in an object tree and
4549	playing clever games to reset .CURDIR.
4550
4551	* Merged with NetBSD make
4552	pick up .USEBEFORE
4553
4554Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4555
4556	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4557
4558Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4559
4560	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
4561	us not to export the iterator variable when using VAR_CMD context.
4562
4563Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4564
4565	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4566	its the wrong "fix".
4567
4568Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4569
4570	* Redesigned export of VAR_CMD's via MAKEFLAGS.
4571	We now simply append the variable names to .MAKEOVERRIDES, and
4572	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
4573	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
4574	Apart from fixing quoting bugs in previous version, this allows us
4575	to export vars to the environment by simply doing:
4576	.MAKEOVERRIDES+= PATH
4577	Merged again with NetBSD make, but the above is the only change.
4578
4579	* configure.in: added
4580	--disable-pwd-override		disable $PWD overriding getcwd()
4581	--disable-check-make-chdir	disable make trying to guess
4582		when it should automatically cd ${.CURDIR}
4583
4584	* Merge with NetBSD make, changes include:
4585	parse.c (ParseDoDependency): Spot that the syntax error is
4586	caused by an unresolved cvs/rcs conflict and say so.
4587	var.c: most of Var* functions now take a ctxt as 1st arg.
4588	now does variable substituion on rhs of sysv style modifiers.
4589
4590	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
4591	is now done here.  We append the name='value' to .MAKEOVERRIDES
4592	rather than directly into MAKEFLAGS as this allows a Makefile to
4593	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
4594	very similar mechanism.  Note that in adding name='value' to
4595	.MAKEOVERRIDES we do the moral equivalent of:
4596	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
4597
4598Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4599
4600	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
4601
4602	* Merged with NetBSD make
4603	make -dx can now be used to run commands via sh -x
4604	better error messages on exec failures.
4605
4606Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4607
4608	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
4609	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
4610	MACHINE etc otherwise they propagate from the previous bmake.
4611
4612	* configure.in (machine): allow --with-machine=generic to make
4613	configure use machine.sh to set MACHINE.
4614
4615	* job.c (JobInterrupt): convert to using WAIT_T and friends.
4616
4617	* Makefile.in: mention in bmake.1 that we use autoconf.
4618
4619	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4620
4621Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4622
4623	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4624	as that rather defeats the usefulness of ${MAKEFILE}.
4625
4626	* main.c (MainParseArgs): append command line variable assignments
4627	to MAKEFLAGS so that they get propagated to child make's.
4628	Apparently this is required POSIX behaviour?  Its useful anyway.
4629
4630Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4631
4632	* compat.c (CompatRunCommand): don't use perror() since stdio may
4633	cause problems in child of vfork().
4634
4635	* compat.c, main.c: Call PrintOnError() when we are going to bail.
4636	This routine prints out the .curdir where we stopped and will also
4637	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
4638
4639	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
4640	:@ expansion.
4641
4642	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
4643
4644	* Added RCSid's for the files we've touched.
4645
4646Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4647
4648	* configure.in:	Thanks to some clues from mdb@juniper.net,
4649	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
4650	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
4651
4652  --with-machine=MACHINE  explicitly set MACHINE
4653  --with-force-machine=MACHINE  set FORCE_MACHINE
4654  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
4655  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
4656  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
4657  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
4658
4659	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4660
4661	* makefile: added a pathetically simple makefile to drive
4662	bootstrapping.  Running configure by hand is more useful.
4663
4664	* Makefile.in: added MAKE_VERSION, and reworked things to be less
4665	dependent on NetBSD bsd.*.mk
4666
4667	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
4668	_PATH_OBJDIRPREFIX for those that don't want a default.
4669	construct _PATH_DEFSYSPATH from the info we get from configure.
4670
4671	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4672	if MAKE_VERSION is defined.
4673
4674	* compat.c: when we bail, print out the .CURDIR we were in.
4675
4676Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4677
4678	* Merged with NetBSD make
4679
4680	* var.c: fixed a bug in the handling of the modifier :P
4681	if the node as found but the path was null, we segfault trying to
4682	duplicate it.
4683
4684Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
4685
4686	* Merged with NetBSD make
4687
4688	* make.c: Make_OODate's test for a library out of date was using
4689	cmtime where it should have used mtime (my bug).
4690
4691	* compat.c: Use perror() to tell us what really went wrong when we
4692	cannot exec a command.
4693
4694Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4695
4696	* Merged with NetBSD make
4697
4698Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4699
4700	* Merged with NetBSD make
4701
4702Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4703
4704	* Merged with NetBSD make
4705
4706Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4707
4708	* Merged with NetBSD make
4709
4710Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4711
4712	* util.c: don't provide signal() since we use sigcompat.c
4713
4714	* Makefile.in: added a build target.
4715
4716	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4717	These allow some quite clever magic.
4718
4719	* main.c (main): added support for getenv(MAKESYSPATH).
4720
4721Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4722
4723	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
4724	This avoids objdir having a different value depending on how a
4725	directory was reached (via command line, or subdir.mk).
4726
4727	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4728
4729Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
4730
4731	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
4732	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
4733	I've been testing this in NetBSD's make for some weeks.
4734
4735	* Turn Makefile into Makefile.in and make it useful.
4736
4737Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
4738
4739	* Imported NetBSD's -current make(1) and resolve conflicts.
4740
4741	* Applied autoconf patches from bmake v2
4742
4743	* Imported clean code base from NetBSD-1.0
4744