xref: /freebsd/contrib/bmake/ChangeLog (revision 1729d2f741a12a42c61ed5308ee156a0d1cd1918)
12026-05-08  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20260508
4	Merge with NetBSD make, pick up
5	o make.1: fix description of '-' handling in jobs-mod
6	by intenting it correctly.
7
82026-04-13  Simon J Gerraty  <sjg@beast.crufty.net>
9
10	* VERSION (_MAKE_VERSION): 20260406
11	Merge with NetBSD make, pick up
12	o cleanup unnecessary parens
13
14	* configure.in: add --with-save-dollars to control default for
15	.MAKE.SAVE.DOLLARS - address FreeBSD PR 294436
16
172026-03-12  Simon J Gerraty  <sjg@beast.crufty.net>
18
19	* VERSION (_MAKE_VERSION): 20260313
20	Merge with NetBSD make, pick up
21	o make: ensure .MAKE.SAVE_DOLLARS is initialized so makefiles like
22	sys.vars.mk can test its value to know how to deal with macros
23	that need to save '$' during ':='.
24
25	* Makefile: default MAKE_SAVE_DOLLARS_DEFAULT to "no"
26	for traditional behavior.
27
282026-03-10  Simon J Gerraty  <sjg@beast.crufty.net>
29
30	* VERSION (_MAKE_VERSION): 20260310
31	Merge with NetBSD make, pick up
32	o unit-tests ensure TEST_MAKE is absolute path
33	and tests that make symlink for ${MAKE} can run in parallel.
34
352026-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
36
37	* VERSION (_MAKE_VERSION): 20260303
38	Merge with NetBSD make, pick up
39	o job.c: MaybeSubMake: Look for expansion of ${.MAKE}
40	and if necessary its basename, and only match if at start of line
41	or preceded by space.
42
432026-02-28  Simon J Gerraty  <sjg@beast.crufty.net>
44
45	* Makefile: mark ${PROG} and ${OBJS} as .META
46	MaybeSubMake will otherwise mistake them for sub-makes
47
48	* VERSION (_MAKE_VERSION): 20260301
49	Merge with NetBSD make, pick up
50	o job.c: MaybeSubMake: skip control chars [@+-] at start of line
51	when checking for ${MAKE}
52
532026-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
54
55	* VERSION (_MAKE_VERSION): 20260222
56	o mk file update
57
582026-02-16  Simon J Gerraty  <sjg@beast.crufty.net>
59
60	* VERSION (_MAKE_VERSION): 20260216
61	Merge with NetBSD make, pick up
62	o minor cleanups
63
642026-02-10  Simon J Gerraty  <sjg@beast.crufty.net>
65
66	* VERSION (_MAKE_VERSION): 20260210
67	Merge with NetBSD make, pick up
68	o document that multiple variables can be set on command line.
69	o move MaybeSubMake to job.c so it can be called on expanded
70	commands for more accuracy and less overhead.
71	o main.c: set .MAKE.VERSION as read-only.
72
73	* unit-tests/opt-{chdir,where-am-i}.mk: use MAKEOBJDIRPREFIX=/
74	to avoid tripping over an unreadable /usr/obj
75
762026-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
77
78	* unit-tests/varname-make_stack_trace.mk: for
79	FreeBSD and similar set .MAKE.ALWAYS_PASS_JOB_QUEUE=no
80	to ensure we get the expected errors.
81
82	* VERSION (_MAKE_VERSION): 20260202
83	Merge with NetBSD make, pick up
84	o on error avoid duplicate stack trace to stderr
85
862026-01-11  Simon J Gerraty  <sjg@beast.crufty.net>
87
88	* VERSION (_MAKE_VERSION): 20260111
89	Merge with NetBSD make, pick up
90	o var.c: add explicit check for empty re as not all
91	regex libs throw an error as expected, in this case.
92
932026-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
94
95	* VERSION (_MAKE_VERSION): 20260110
96	Merge with NetBSD make, pick up
97	o minor cleanups
98
992025-11-15  Simon J Gerraty  <sjg@beast.crufty.net>
100
101	* boot-strap: unset more things from env and save a copy
102	to env.out for debugging.
103
1042025-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
105
106	* VERSION (_MAKE_VERSION): 20251111
107	Merge with NetBSD make, pick up
108	o var.c: add :sh1 which only evaluates command on first reference.
109
1102025-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
111
112	* configure.in: Force filemon=no for Cygwin and MINGW64_NT
113
1142025-11-10  Simon J Gerraty  <sjg@beast.crufty.net>
115
116	* unit-tests/Makefile: handle MINGW64_NT
117	mark some tests broken, filter others as per Cygwin.
118
1192025-10-23  Simon J Gerraty  <sjg@beast.crufty.net>
120
121	* make.1: document MAKE_VERSION.
122
1232025-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
124
125	* VERSION (_MAKE_VERSION): 20251022
126
127	* configure.in: Add a check that lua is version 5.2 or later
128	if not we want to skip running check-expect.lua
129
1302025-09-16  Simon J Gerraty  <sjg@beast.crufty.net>
131
132	* VERSION (_MAKE_VERSION): 20250916
133	Merge with NetBSD make, pick up
134	o var.c: avoid compiler warning from hexdigits
135
1362025-08-04  Simon J Gerraty  <sjg@beast.crufty.net>
137
138	* VERSION (_MAKE_VERSION): 20250804
139	Merge with NetBSD make, pick up
140	o meta.c: allow printing only partial string to meta file
141	in jobs mode, otherwise we end up with duplicated output when
142	buffer does not end in newline.
143	Add a suitable unit test.
144
1452025-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
146
147	* VERSION (_MAKE_VERSION): 20250707
148	Merge with NetBSD make, pick up
149	o cond.c: improve debug log message for 'exists' function.
150	complain about unfinished escape sequences or string literals.
151
1522025-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
153
154	* VERSION (_MAKE_VERSION): 20250704
155	Merge with NetBSD make, pick up
156	o make.1: add a DIAGNOSTICS section for make to reference.
157	o main.c: simplify the warning for invalid -J by refering to
158	manual page.
159
1602025-06-30  Simon J Gerraty  <sjg@beast.crufty.net>
161
162	* VERSION (_MAKE_VERSION): 20250630
163	Merge with NetBSD make, pick up
164	o consistently use double quotes in error messages
165	o cond.c: if a condition is erroneous, skip the whole .if/.endif
166	o make_malloc.c: in cleanup mode, initialize freshly allocated memory
167	o str.c: error out on an ":M" modifier whose pattern ends with
168	backslash
169	o var.c: fix parsing of modifier parts for :gmtime and :localtime
170	add POSIX $^ support
171
1722025-06-18  Simon J Gerraty  <sjg@beast.crufty.net>
173
174	* VERSION (_MAKE_VERSION): 20250618
175	Merge with NetBSD make, pick up
176	o parse.c: in a warning without location information,
177	print the stack trace
178
1792025-06-15  Simon J Gerraty  <sjg@beast.crufty.net>
180
181	* VERSION (_MAKE_VERSION): 20250615
182	Merge with NetBSD make, pick up
183	o add on-demand inter-process stack traces
184	o job.c,meta.c: do not discard empty lines in the output of a command
185	o job.c: add job prefix if necessary in non-default filtered mode
186	o parse.c,var.c: skip inter-process stack trace when
187	MAKE_STACK_TRACE=no
188
1892025-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
190
191	* VERSION (_MAKE_VERSION): 20250612
192	Merge with NetBSD make, pick up
193	o use a common style for unexpected error messages
194	o parse.c: add program name to stack traces from sub-makes
195	add quotes to "in directory" line in stack traces
196	o var.c: check variable names for invalid characters when there
197	are no modifiers to apply.  This detects and warns about gmake
198	syntax like: $(addprefix -I, $(LIST))
199
2002025-06-09  Simon J Gerraty  <sjg@beast.crufty.net>
201
202	* VERSION (_MAKE_VERSION): 20250606
203	Merge with NetBSD make, pick up
204	o main.c: fix bug in handling of output of children in jobs mode
205
2062025-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
207
208	* VERSION (_MAKE_VERSION): 20250528
209	Merge with NetBSD make, pick up
210	o show contents of MAKEFLAGS in the stack trace.
211	o main.c: delay warning about bogus -J flag, if we end up in
212	compat mode before the call to InitMaxJobs, the warning isn't
213	necessary.
214
2152025-05-25  Simon J Gerraty  <sjg@beast.crufty.net>
216
217	* VERSION (_MAKE_VERSION): 20250525
218	Merge with NetBSD make, pick up
219	o main.c: set .CURDIR earlier so it can be reported in some errors.
220
2212025-05-20  Simon J Gerraty  <sjg@beast.crufty.net>
222
223	* VERSION (_MAKE_VERSION): 20250520
224	Merge with NetBSD make, pick up
225	o rename variables, remove now-redundant comments
226	o job.c: clean up building the shell commands in parallel mode
227	remove timeout for polling in parallel mode
228	o main.c: clean up error message for malformed internal -J option
229
2302025-05-11  Simon J Gerraty  <sjg@beast.crufty.net>
231
232	* VERSION (_MAKE_VERSION): 20250511
233	Merge with NetBSD make, pick up
234	o job.c: rename token pool variables to be more descriptive
235	move ContinueJobs further up, to eliminate a forward declaration
236	error out if writing to an internal pipe fails
237	clean up constant names and function names
238	use uniform debug log messages for the token pool
239	in the debug log, replace magic numbers with identifiers
240	o main.c: clean up error message for malformed internal -J option
241	o make.c: replace bitset in trace output with descriptive node
242	attributes
243	o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log
244	o var.c: fix order of error messages in the ":?" modifier
245
2462025-04-25  Simon J Gerraty  <sjg@beast.crufty.net>
247
248	* VERSION (_MAKE_VERSION): 20250424
249	Merge with NetBSD make, pick up
250	o cleanup; replace unsigned int with just unsigned
251	Inline the TMPPAT macro, as it is only needed in a single place
252	o move struct Job from job.h to job.c
253	o job.c: group the code for handling the job token pool
254	avoid excessive values of -j
255	o make.c: fix grammar in debug log message
256
2572025-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
258
259	* VERSION (_MAKE_VERSION): 20250414
260	Merge with NetBSD make, pick up
261	o job.c: clean up job and output handling
262	o parse.c: after entering POSIX mode, don't leave it again
263
2642025-04-11  Simon J Gerraty  <sjg@beast.crufty.net>
265
266	* VERSION (_MAKE_VERSION): 20250411
267	Merge with NetBSD make, pick up
268	o convert more messages to file:line: format
269	o for.c: condense code for parsing variable names in .for loops
270
2712025-04-10  Simon J Gerraty  <sjg@beast.crufty.net>
272
273	* VERSION (_MAKE_VERSION): 20250410
274	Merge with NetBSD make, pick up
275	o cond.c: remove redundant error counter when parsing a condition
276
2772025-04-04  Simon J Gerraty  <sjg@beast.crufty.net>
278
279	* VERSION (_MAKE_VERSION): 20250404
280	Merge with NetBSD make, pick up
281	o make.1: better document meta mode.
282	o var.c: fix error message for undefined variable in conditional.
283
2842025-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
285
286	* VERSION (_MAKE_VERSION): 20250330
287	Merge with NetBSD make, pick up
288	o in POSIX compatability mode, give preference to sysV style modifiers.
289	o in stack trace with details and includes, list the current file
290	o parse.c: report file location in more common file:line: format.
291	o var.c: simplify error handling for unknown modifiers
292	let the ":O" and ":t" modifiers fall back to the ":from=to" modifier
293	stop parsing after seeing an unknown modifier in an expression
294	fix error message for unclosed expression and invalid :[...]
295	add details to errors about ::= modifier
296	add details about indirect modifiers to the stack traces
297	in stack traces from target commands, add the command level
298
2992025-03-23  Simon J Gerraty  <sjg@beast.crufty.net>
300
301	* VERSION (_MAKE_VERSION): 20250323
302	Merge with NetBSD make, pick up
303	o var.c: just ignore attempts to override a read-only global with
304	the same value.
305
3062025-03-08  Simon J Gerraty  <sjg@beast.crufty.net>
307
308	* bsd.after-import.mk: by default generate makefiles
309	closer to BSD style.
310
311	* VERSION (_MAKE_VERSION): 20250308
312	Merge with NetBSD make, pick up
313	o clean up comments and code for parallel mode
314	o job.c: avoid SIGPIPE for children, call Job_Wait befor abort.
315
3162025-02-27  Simon J Gerraty  <sjg@beast.crufty.net>
317
318	* VERSION (_MAKE_VERSION): 20250225
319	Merge with NetBSD make, pick up
320	o job.c: reliably remove targets on interrupt,
321	by passing signal to children first.
322
3232025-01-25  Simon J Gerraty  <sjg@beast.crufty.net>
324
325	* VERSION (_MAKE_VERSION): 20250125
326	Merge with NetBSD make, sync up below change.
327
328	* unit-tests/Makefile: remove $TMPDIR via .END
329	to avoid failure in test on NFS - since the temp file for the
330	target script is open and thus gets renamed by the server rather
331	than removed.
332
3332025-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
334
335	* VERSION (_MAKE_VERSION): 20250120
336	Merge with NetBSD make, pick up
337	o use FORK_FUNCTION so it can be forced to fork when doing coverage.
338	o main.c: avoid memory allocation in error path after exec failure.
339
3402025-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
341
342	* VERSION (_MAKE_VERSION): 20250116
343	Merge with NetBSD make, pick up
344	o clarify that undefined expressions are allowed in dependencies
345	o simplify code for evaluating the '!=' variable assignment
346
3472025-01-11  Simon J Gerraty  <sjg@beast.crufty.net>
348
349	* VERSION (_MAKE_VERSION): 20250111
350	Merge with NetBSD make, pick up
351	o replace "Malformed conditional" with "Variable is undefined"
352	when appropriate
353
3542025-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
355
356	* VERSION (_MAKE_VERSION): 20250110
357	Merge with NetBSD make, pick up
358	o job.c: remove some unnecessary layers in job handling
359	o unit-tests: test expressions based on undefined variables
360
3612025-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
362
363	* VERSION (_MAKE_VERSION): 20250101
364	Merge with NetBSD make, pick up
365	o var.c: reduce pointer indirections when unexporting a variable
366
3672024-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
368
369	* VERSION (_MAKE_VERSION): 20241212
370	* mk/ updates
371
3722024-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
373
374	* VERSION (_MAKE_VERSION): 20241124
375	Merge with NetBSD make, pick up
376	o var.c: fix confusing error message when overriding a read-only
377	variable
378
3792024-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
380
381	* VERSION (_MAKE_VERSION): 20241122
382	Merge with NetBSD make, pick up
383	o unit-tests/Makefile: optimize running of tests skip extra cat
384	in 99% of cases.
385
3862024-11-15  Simon J Gerraty  <sjg@beast.crufty.net>
387
388	* VERSION (_MAKE_VERSION): 20241114
389	Merge with NetBSD make, pick up
390	o make.1: note that MAKEOBJPREFIX should be absolute path
391	also that it can be set via makefile if suitable care taken.
392
3932024-11-10  Simon J Gerraty  <sjg@beast.crufty.net>
394
395	* VERSION (_MAKE_VERSION): 20241110
396	Merge with NetBSD make, pick up
397	o make: allow .../ (search here and above) in
398	.MAKE.MAKEFILE_PREFERENCE and -f argument.
399
4002024-11-03  Simon J Gerraty  <sjg@beast.crufty.net>
401
402	* VERSION (_MAKE_VERSION): 20241101
403	Merge with NetBSD make, pick up
404	o parse.c: report filename:linenumber in parse debug output
405
4062024-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
407
408	* VERSION (_MAKE_VERSION): 20240921
409	Merge with NetBSD make, pick up
410	o make.1: Only list the defaults for MAKEFILE_PREFERENCE once.
411
412	* Makefile: use genfiles.mk to generate ${MAN}
413	so that it can be tuned for local site.
414	Ensure MAN  is defined before including Makefile.inc
415
416	* Makefile: use MK_GEN_MAN to make it easier to control whether we
417	generate ${MAN}
418
4192024-09-16  Simon J Gerraty  <sjg@beast.crufty.net>
420
421	* VERSION (_MAKE_VERSION): 20240909
422
423	* arch.c: fix NetBSD PR 58597
424
4252024-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
426
427	* Makefile: use SUBDIR.${MK_TESTS} so that we skip
428	unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS
429
430	* VERSION (_MAKE_VERSION): 20240901
431	Merge with NetBSD make, pick up
432	o reduce line length in error messages
433	o var.c: simplify printing of an evaluation stack element
434
4352024-08-29  Simon J Gerraty  <sjg@beast.crufty.net>
436
437	* VERSION (_MAKE_VERSION): 20240828
438	Merge with NetBSD make, pick up
439	o add more context to error message about recursive variables
440	o treat recursive variables non-fatally - continue parsing to end
441	of makefile
442
4432024-08-12  Simon J Gerraty  <sjg@beast.crufty.net>
444
445	* VERSION (_MAKE_VERSION): 20240808
446	Merge with NetBSD make, pick up
447	o improve some error messages for better clarify and readability
448
4492024-07-22  Simon J Gerraty  <sjg@beast.crufty.net>
450
451	* VERSION (_MAKE_VERSION): 20240722
452	Merge with NetBSD make, pick up
453	o job.c: remove dead code
454
4552024-07-21  Simon J Gerraty  <sjg@beast.crufty.net>
456
457	* VERSION (_MAKE_VERSION): 20240720
458	Merge with NetBSD make, pick up
459	o compat.c: do not run commands that have parse or evaluation errors.
460	o var.c: remove wrong error message about an undefined variable
461
4622024-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
463
464	* cleanup redundant differences from NetBSD make
465	o parse.c: no longer uses mmap
466	o var.c: check __STDC_VERSION__ not __STDC__
467
4682024-07-12  Simon J Gerraty  <sjg@beast.crufty.net>
469
470	* Apply some patches from NetBSD pkgsrc to reduce divergence
471	o meta.c: requires sys/select.h if available
472	o var.c: ensure SIZE_MAX has a value
473	o util.c: ensure SA_RESTART is defined
474
475	* configure.in: use *ksh* rather than just *ksh to match
476	ksh shell specification.
477
478	* unit-tests/Makefile: expand BROKEN_TESTS for ksh and
479	mksh in particular
480
4812024-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
482
483	* VERSION (_MAKE_VERSION): 20240711
484	Merge with NetBSD make, pick up
485	o compat.c: allow Compat_RunCommand to also handle very long
486	commands by writing to a temp file when needed.
487	o main.c: extract the temp file logic recently added to Cmd_Exec
488	to Cmd_Argv so it can be leveraged by Compat_RunCommand.
489
4902024-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
491
492	* VERSION (_MAKE_VERSION): 20240709
493	Merge with NetBSD make, pick up
494	o error out on parse/evaluation errors in shell commands
495	o var.c: error out on syntax errors in ':M' and ':N' modifiers
496
4972024-07-07  Simon J Gerraty  <sjg@beast.crufty.net>
498
499	* VERSION (_MAKE_VERSION): 20240707
500	Merge with NetBSD make, pick up
501	o only generate code for cleanup functions in CLEANUP mode
502	o hash.c: don't track hash table chain lengths during lookup
503	unless debugging
504	o main.c: move initialization of variable scopes to targ.c
505	o var.c: remove Var_End as it is now unnecessary
506
5072024-07-06  Simon J Gerraty  <sjg@beast.crufty.net>
508
509	* VERSION (_MAKE_VERSION): 20240706
510	Merge with NetBSD make, pick up
511	o reduce lint comments about ARGSUSED
512	o cond.c: error out on conditions containing the operators '&' and '|'
513	o str.c: error out on a matching malformed matching pattern '[['
514	o var.c: in error messages, distinguish parsing from evaluating
515	in error messages for anonymous variables, log the value
516	error out on unclosed expressions during parse time
517
5182024-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
519
520	* VERSION (_MAKE_VERSION): 20240704
521	Merge with NetBSD make, pick up
522	o add more context information to error messages
523	o main.c: on error, print the targets to be made
524	add detailed exit status to message for failed sub-commands
525	o var.c: error out on the "Bad modifier" error message
526
5272024-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
528
529	* VERSION (_MAKE_VERSION): 20240701
530	Merge with NetBSD make, pick up
531	o var.c: add :tt for Title case
532
5332024-06-30  Simon J Gerraty  <sjg@beast.crufty.net>
534
535	* configure.in: 20240630 further refine check for whether
536	TZ=Europe/Berlin works
537
538	* VERSION (_MAKE_VERSION): 20240630
539	Merge with NetBSD make, pick up
540	o job.c: reduce use of UNCONST
541	o main.c: add detailed exit status to message for failed sub-commands
542	o var.c: error out on some more syntax errors
543	add more context to "returned non-zero status" message
544
5452024-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
546
547	* VERSION (_MAKE_VERSION): 20240625
548	Merge with NetBSD make, pick up
549	o job.c: ensure shellPath is always duped, avoid upsetting free()
550
5512024-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
552
553	* VERSION (_MAKE_VERSION): 20240616
554	Merge with NetBSD make, pick up
555	o clean up collection of context information for error messages
556	o in warnings, move the word "warning" to the front
557	o var.c: throw an error on attempt to override an internal
558	read-only variable
559
5602024-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
561
562	* VERSION (_MAKE_VERSION): 20240610
563	Merge with NetBSD make, pick up
564	o for.c: remove redundant shortcut for building the .for loop body
565
5662024-06-02  Simon J Gerraty  <sjg@beast.crufty.net>
567
568	* VERSION (_MAKE_VERSION): 20240602
569	Merge with NetBSD make, pick up
570	o rename some VarEvalMode constants to better match debug names.
571	o var.c: avoid out-of-bounds read when parsing indirect modifiers.
572
5732024-06-01  Simon J Gerraty  <sjg@beast.crufty.net>
574
575	* VERSION (_MAKE_VERSION): 20240601
576	Merge with NetBSD make, pick up
577	o add .export-all rather than allow .export with no argument
578	which can happen accidentally.
579	o if lua is available, run check-expect.lua after unit-tests
580	o main.c: use snprintf rather than strncpy
581	fix memory leak when purging realpath cache.
582
5832024-05-28  Simon J Gerraty  <sjg@beast.crufty.net>
584
585	* VERSION (_MAKE_VERSION): 20240528
586	Merge with NetBSD make, pick up
587	o fix a number of memory leaks
588	o replace magic numbers with POSIX FILENO constants
589	o hash.c: remove dead code from HashTable_DeleteEntry
590	o main.c: when complaining about unusable .OBJDIR
591	call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true.
592	o parse.c: use fewer technical terms in debug message for dependency
593
5942024-05-20  Simon J Gerraty  <sjg@beast.crufty.net>
595
596	* VERSION (_MAKE_VERSION):
597	Merge with NetBSD make, pick up
598	o dir.c: in FindFile restore last search of .CURDIR even for
599	includes, as a number of existing makefiles are broken otherwise.
600
6012024-05-19  Simon J Gerraty  <sjg@beast.crufty.net>
602
603	* VERSION (_MAKE_VERSION): 20240519
604	Merge with NetBSD make, pick up
605	o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR.
606	Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty.
607	o main.c: no need to set .DOTLAST in sysIncPath
608
6092024-05-07  Simon J Gerraty  <sjg@beast.crufty.net>
610
611	* VERSION (_MAKE_VERSION): 20240508
612	Merge with NetBSD make, pick up
613	o make: ensure variables set on command line get added to
614	.MAKEOVERRIDES (even if they start with '.') so they are passed to
615	sub-makes.
616
6172024-04-30  Simon J Gerraty  <sjg@beast.crufty.net>
618
619	* VERSION (_MAKE_VERSION): 20240430
620	Merge with NetBSD make, pick up
621	o main.c: ensure '.include <makefile>' respects MAKESYSPATH.
622	Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen.
623
6242024-04-28  Simon J Gerraty  <sjg@beast.crufty.net>
625
626	* VERSION (_MAKE_VERSION): 20240428
627	Merge with NetBSD make, pick up
628	o simplify freeing of lists
629	o arch.c: trim pointless comments
630	o var.c: delay variable assignments until actually needed
631	don't reallocate memory after evaluating an expression, result is
632	almost always short-lived.
633
6342024-04-26  Simon J Gerraty  <sjg@beast.crufty.net>
635
636	* VERSION (_MAKE_VERSION): 20240426
637	Merge with NetBSD make, pick up
638	o job.c: in debug output, print the directory in which a job
639	failed at same time as failed target so it is more easily found in
640	build log.
641
6422024-04-24  Simon J Gerraty  <sjg@beast.crufty.net>
643
644	* VERSION (_MAKE_VERSION): 20240424
645	Merge with NetBSD make, pick up
646	o clean up comments, code and tests
647
6482024-04-23  Simon J Gerraty  <sjg@beast.crufty.net>
649
650	* VERSION (_MAKE_VERSION): 20240422
651	Merge with NetBSD make, pick up
652	o var.c: avoid LazyBuf for :*time modifiers.
653	LazyBuf's are not nul terminated so not suitable for passing to
654	functions that expect that. These modifiers are used sparingly so
655	an extra allocation is not a problem.
656
6572024-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
658
659	* VERSION (_MAKE_VERSION): 20240420
660	Merge with NetBSD make, pick up
661	o provide more context information for parse/evaluate errors
662
6632024-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
664
665	* VERSION (_MAKE_VERSION): 20240414
666	Merge with NetBSD make, pick up
667	o parse.c: print -dp debug info earlier so we see which
668	.if or .for line is being parsed.
669
6702024-04-04  Simon J Gerraty  <sjg@beast.crufty.net>
671
672	* VERSION (_MAKE_VERSION): 20240404
673	Merge with NetBSD make, pick up
674	o fix some unit tests for Cygwin
675	o parse.c: exit immediately after reading a null byte from a makefile
676
677	* fix generation of bmake.cat1
678
6792024-03-19  Simon J Gerraty  <sjg@beast.crufty.net>
680
681	* VERSION (_MAKE_VERSION): 20240314
682	Add/Improve support for Cygwin
683	o uname -s output isn't useful so allow configure to
684	set FORCE_MAKE_OS - to force the value of .MAKE.OS
685	and use Cygwin which matches uname -o
686	o fix some unit-tests for Cygwin
687
6882024-03-10  Simon J Gerraty  <sjg@beast.crufty.net>
689
690	* boot-strap: tests can take a long time; use a cookie to
691	skip them if bmake has not been updated since tests last
692	ran successfully.
693
694	* Makefile: Cygwin handles MANTARGET man
695
696	* unit-tests/Makefile: set BROKEN_TESTS for Cygwin
697
6982024-03-09  Simon J Gerraty  <sjg@beast.crufty.net>
699
700	* VERSION (_MAKE_VERSION): 20240309
701	Merge with NetBSD make, pick up
702	o set .ERROR_EXIT to the exit status of .ERROR_TARGET
703	this allows a .ERROR target to ignore the case of
704	.ERROR_EXIT==6 which just means that the build actually
705	failed somewhere else.
706
7072024-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
708
709	* VERSION (_MAKE_VERSION): 20240303
710
711	* var.c: on IRIX we need both inttypes.h and stdint.h
712
7132024-03-01  Simon J Gerraty  <sjg@beast.crufty.net>
714
715	* VERSION (_MAKE_VERSION): 20240301
716	Merge with NetBSD make, pick up
717	o export variables with value from target scope
718	when appropriate.
719
7202024-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
721
722	* VERSION (_MAKE_VERSION): 20240212
723	Merge with NetBSD make, pick up
724	o remove unneeded conditional-compilation toggles
725	INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
726	GMAKEEXPORT NO_REGEX and SUNSHCMD
727
728	* configure.in: add check for regex.h
729
730	* var.c: replace use of NO_REGEX with HAVE_REGEX_H
731
7322024-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
733
734	* VERSION (_MAKE_VERSION): 20240204
735	Merge with NetBSD make, pick up
736	o var.c: fix some lint (-dL) mode parsing issues
737
7382024-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
739
740	* VERSION: (_MAKE_VERSION): 20240202
741	Merge with NetBSD make, pick up
742	o make.1: note that arg to :D and :U can be empty
743	o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no
744
7452024-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
746
747	* VERSION (_MAKE_VERSION): 20240108
748	Merge with NetBSD make, pick up
749	o miscellaneous cleanups
750
7512024-01-06  Simon J Gerraty  <sjg@beast.crufty.net>
752
753	* VERSION (_MAKE_VERSION): 20240106
754	Merge with NetBSD make, pick up
755	o fix duplicate progname when reporting an unknown target
756	o unit tests for Cmd_Exec using temp file
757
7582024-01-05  Simon J Gerraty  <sjg@beast.crufty.net>
759
760	* VERSION (_MAKE_VERSION): 20240105
761	Merge with NetBSD make, pick up
762	o main.c: Cmd_Exec write cmd to a file if too big
763	avoid blowing commandline/env limits
764
7652024-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
766
767	* VERSION (_MAKE_VERSION): 20240101
768	o util.c: flesh out more of strftime
769	* configure.in: add --with-bmake-strftime
770	it is not a full implementation but enough to pass all
771	the unit-tests.
772	* parse.c: LoadFile do not append \n to empty buffer.
773
7742023-12-30  Simon J Gerraty  <sjg@beast.crufty.net>
775
776	* VERSION (_MAKE_VERSION): 20231230
777	Merge with NetBSD make, pick up
778	o simplify memory allocation for string buffers
779	o fix declared types of list nodes
780	o suff.c: clean up freeing of suffixes
781	o var.c: simplify debug message for the ':@var@...@' modifier
782	clean up variable handling
783
7842023-12-26  Simon J Gerraty  <sjg@beast.crufty.net>
785
786	* VERSION (_MAKE_VERSION): 20231226
787	Merge with NetBSD make, pick up
788	o compat.c: ensure make's output is correctly ordered with that of
789	the target when not going to a tty
790	o main.c: check for shellPath whether to call Shell_Init()
791
7922023-12-24  Simon J Gerraty  <sjg@beast.crufty.net>
793
794	* VERSION (_MAKE_VERSION): 20231224
795	Merge with NetBSD make, pick up
796	o compat.c: check for shellPath whether to call Shell_Init()
797	tweak the unit test to detect the bug thus fixed.
798	o make.1: do not claim .SHELL is only used by jobs mode.
799
8002023-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
801
802	* VERSION (_MAKE_VERSION): 20231220
803	Merge with NetBSD make, pick up
804	o str.c: speed up pattern matching in the ':M' modifier
805	o var.c: fix confusing debug logging when deleting a variable
806	use consistent debug messages style when ignoring variables
807
8082023-12-10  Simon J Gerraty  <sjg@beast.crufty.net>
809
810	* VERSION (_MAKE_VERSION): 20231210
811	Merge with NetBSD make, pick up
812	o var.c: avoid segfault on empty :C match expression
813	explain in debug log why variable assignment is ignored.
814
8152023-12-08  Simon J Gerraty  <sjg@beast.crufty.net>
816
817	* VERSION (_MAKE_VERSION): 20231208
818	Merge with NetBSD make, pick up
819	o var.c: ensure fromCmd is set correctly for variables set on
820	command line.
821
8222023-11-26  Simon J Gerraty  <sjg@beast.crufty.net>
823
824	* configure.in: disable generation of 'makefile' for
825	Darwin by default.
826
827	* boot-strap: docuement --without-makefile
828
8292023-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
830
831	* VERSION (_MAKE_VERSION): 20231124
832	Merge with NetBSD make, pick up
833	o main.c: cleanup processing of -j
834	fix lint warning about strchr
835	o var.c: more accurate error message for invalid ':mtime' argument
836	cleanup :[...] modifier
837	avoid reading beyond substring when comparing
838	o unit-tests cover all cases of :mtime, test and explain exporting
839	of variables
840	o cleanup comments
841
8422023-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
843
844	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
845	$FreeBSD$ tag, so avoid adding it.
846
8472023-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
848
849	* VERSION (_MAKE_VERSION): 20230909
850	Merge with NetBSD make, pick up
851	o main.c: allow -j to compute a multiple of ncpu
852	If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating
853	point number or ends in 'C' compute .MAKE.JOBS as a multiple of
854	_SC_NPROCESSORS_ONLN
855	.MAKE.JOBS.C will be "yes" if -jC is supported
856
8572023-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
858
859	* VERSION (_MAKE_VERSION): 20230820
860	Merge with NetBSD make, pick up
861	o make.1: note that :localtime is better for %s
862	o parse.c: improve error messages for invalid input.
863	o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get
864	correct result, it is still better to use %s:L:localtime.
865
8662023-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
867
868	* VERSION (_MAKE_VERSION): 20230818
869	Merge with NetBSD make, pick up
870	o meta.c: meta_ignore - check raw path against metaIgnorePaths
871	to potentially skip call to realpath.
872	o var.c: be strict when parsing the argument of the ':mtime' modifier
873	o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}'
874	should be used to get an equivalent value to time(3).
875
8762023-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
877
878	* VERSION (_MAKE_VERSION): 20230816
879	Merge with NetBSD make, pick up
880	o cond.c: clean up multiple-inclusion guards
881
8822023-07-25  Simon J Gerraty  <sjg@beast.crufty.net>
883
884	* unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS
885	if configure cannot work out how to control TZ.
886	Remove varmod-localtime from BROKEN_TESTS for IRIX*
887
8882023-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
889
890	* VERSION (_MAKE_VERSION): 20230723
891
892	* configure.in: fix the test for wether TZ=Europe/Berlin works.
893	Depending on the time of year, if run between 22:00 and 00:00 UTC
894	the check in configure would fail incorrectly.
895	Take the day into account as well.
896
8972023-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
898
899	* VERSION (_MAKE_VERSION): 20230711
900	Merge with NetBSD make, pick up
901	o make.1: clean up wording, clarify scope of '!' in conditions
902
9032023-07-15  Simon J Gerraty  <sjg@beast.crufty.net>
904
905	* make-bootstrap.sh.in: set prefix
906	If configure is run using ksh we get unexpanded ${prefix} in
907	DEFAULT_SYS_PATH, by ensuring prefix is set we should still get
908	correct result.
909
9102023-07-13  Simon J Gerraty  <sjg@beast.crufty.net>
911
912	* VERSION (_MAKE_VERSION): 20230711
913	bump version for IRIX tweaks
914
915	* make.h: undef OP_NONE if defined
916
917	* unit-tests/Makefile: set BROKEN_TESTS for IRIX
918
919	* configure.in: override INSTALL on IRIX
920
9212023-06-27  Simon J Gerraty  <sjg@beast.crufty.net>
922
923	* boot-strap op_test: ensure we set TEST_MAKE as we want it.
924
9252023-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
926
927	* VERSION (_MAKE_VERSION): 20230622
928	Merge with NetBSD make, pick up
929	o optimize string matching for ':M' and ':N'
930	o warn about malformed patterns in ':M', ':N' and '.if make(...)'
931
9322023-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
933
934	* VERSION (_MAKE_VERSION): 20230621
935	Merge with NetBSD make, pick up
936	o more extensive tests for include guards
937	o parse.c: if a guard is already defined a file that uses the same
938	guard is still guarded by it.
939
9402023-06-20  Simon J Gerraty  <sjg@beast.crufty.net>
941
942	* VERSION (_MAKE_VERSION): 20230620
943	Merge with NetBSD make, pick up
944	o allow guards to be targets as well as variables
945	The guard targets may include variable references like
946	__${.PARSEDIR:tA}/${.PARSEFILE}__
947
9482023-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
949
950	* VERSION (_MAKE_VERSION): 20230619
951	Merge with NetBSD make, pick up
952	o unit test for .undef of readOnly vars
953	o optimization for makefiles protected from multiple-inclusion
954	skip even opening the file after first include.
955	Initially this only handles makefiles guarded by a variable
956	target guards are next.
957
9582023-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
959
960	* VERSION (_MAKE_VERSION): 20230616
961	Merge with NetBSD make, pick up
962	o var.c: do not allow delete of readOnly variable
963
9642023-06-03  Simon J Gerraty  <sjg@beast.crufty.net>
965
966	* VERSION (_MAKE_VERSION): 20230601
967	Merge with NetBSD make, pick up
968	o parse.c: .break takes no args
969	o lots of unit test updates
970
9712023-05-29  Simon J Gerraty  <sjg@beast.crufty.net>
972
973	* unit-tests/Makefile: skip tests that require /dev/filemon
974	if it does not exists - issue a warning.
975
9762023-05-22  Simon J Gerraty  <sjg@beast.crufty.net>
977
978	* VERSION (_MAKE_VERSION): 20230522
979	Fix building on darwin ppc
980
981	* os.sh (MACHINE): Darwin powerpc cannot use `uname -m`
982	also recent NetBSD uses x86_64 for MACHINE_ARCH so conform.
983
9842023-05-15  Simon J Gerraty  <sjg@beast.crufty.net>
985
986	* VERSION (_MAKE_VERSION): 20230515
987
988	* Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to
989	compile filemon_ktrace.c
990
9912023-05-13  Simon J Gerraty  <sjg@beast.crufty.net>
992
993	* VERSION (_MAKE_VERSION): 20230512
994	o sys.dirdeps.mk - broke after-import target
995
9962023-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
997
998	* VERSION (_MAKE_VERSION): 20230510
999	Merge with NetBSD make, pick up
1000	o parse.c: don't print null filename in stack traces
1001	o var.c: :mtime operate on each word in variable value
1002
10032023-05-09  Simon J Gerraty  <sjg@beast.crufty.net>
1004
1005	* VERSION (_MAKE_VERSION): 20230509
1006	Merge with NetBSD make, pick up
1007	o for.c: skip syntactically wrong .for loops
1008	o var.c: allow for :gmtime=${mtime}
1009	add :mtime[=timestamp] where timestamp is used if stat(2)
1010	fails, if :mtime=error stat(2) failure causes error.
1011
10122023-05-05  Simon J Gerraty  <sjg@beast.crufty.net>
1013
1014	* VERSION (_MAKE_VERSION): 20230504
1015	Merge with NetBSD make, pick up
1016	o compat.c: fix compile on NetBSD 7.2
1017	o make.1: fix documentation of .PREFIX to match reality and POSIX
1018	o unit-tests: improved var-scope-local
1019
10202023-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
1021
1022	* VERSION (_MAKE_VERSION): 20230414
1023	Merge with NetBSD make, pick up
1024	o minor cleanup
1025
10262023-03-25  Simon J Gerraty  <sjg@beast.crufty.net>
1027
1028	* main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to
1029	unlimited results in an insane number (0x7fffffffffffffff).
1030	If BMAKE_NOFILE_MAX is defined, use that instead.
1031
10322023-03-22  Simon J Gerraty  <sjg@beast.crufty.net>
1033
1034	* VERSION (_MAKE_VERSION): 20230321
1035	Merge with NetBSD make, pick up
1036	* make.1: document seemingly unexplained Error code 6.
1037
10382023-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
1039
1040	* VERSION (_MAKE_VERSION): 20230317
1041	Merge with NetBSD make, pick up
1042	o compat.c: CompatDeleteTarget skip .PHONY targets to be
1043	consistent with JobDeleteTarget.
1044	o job.c: fix memory leak in handling sysv :from=to modifiers
1045
10462023-03-04  Simon J Gerraty  <sjg@beast.crufty.net>
1047
1048	* VERSION (_MAKE_VERSION): 20230303
1049	Merge with NetBSD make, pick up
1050	o several updated unit-tests
1051
10522023-02-22  Simon J Gerraty  <sjg@beast.crufty.net>
1053
1054	* VERSION (_MAKE_VERSION): 20230222
1055	Merge with NetBSD make, pick up
1056	o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
1057
10582023-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
1059
1060	* VERSION (_MAKE_VERSION): 20230218
1061	Merge with NetBSD make, pick up
1062	o var.c: fix parsing of unevaluated subexpressions with
1063	unbalanced '{}'
1064
10652023-02-17  Simon J Gerraty  <sjg@beast.crufty.net>
1066
1067	* VERSION (_MAKE_VERSION): 20230215
1068	Merge with NetBSD make, pick up
1069	o inline macros for some variable names
1070	o cond.c: reduce complexity of evaluating expressions
1071
10722023-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
1073
1074	* VERSION (_MAKE_VERSION): 20230208
1075	Merge with NetBSD make, pick up
1076	o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
1077	when it has been used within conditional expressions
1078
10792023-01-27  Simon J Gerraty  <sjg@beast.crufty.net>
1080
1081	* VERSION (_MAKE_VERSION): 20230127
1082
1083	* install-sh: if making directories ensure umask is set
1084	to match mode.
1085
1086	* Makefile: use DIRMODE for directories and
1087	NONBINMODE for man pages and mk files
1088
10892023-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
1090
1091	* VERSION (_MAKE_VERSION): 20230126
1092	Merge with NetBSD make, pick up
1093	o variables like .newline and .MAKE.{GID,PID,PPID,UID}
1094	should be read-only.
1095
10962023-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1097
1098	* VERSION (_MAKE_VERSION): 20230123
1099	Merge with NetBSD make, pick up
1100	o .[NO]READONLY: for control of read-only variables
1101	o .SYSPATH: for controlling the path searched for makefiles
1102
11032023-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1104
1105	* VERSION (_MAKE_VERSION): 20230120
1106	Merge with NetBSD make, pick up
1107	o allow for white-space between command specifiers @+-
1108	o add more details to warning 'Extra targets ignored'
1109
11102023-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
1111
1112	* machine.sh: leverage os.sh rather than duplicate
1113	also dispence with the $OS.$MACHINE values - we have $HOST_TARGET
1114	for that purpose for the past decade or so.
1115	We invariably get MACHINE and MACHINE_ARCH at runtime anyway.
1116
11172023-01-02  Simon J Gerraty  <sjg@beast.crufty.net>
1118
1119	* VERSION (_MAKE_VERSION): 20230101
1120	Merge with NetBSD make, pick up
1121	o cleanup comments, inline some LazyBuf_ methods
1122	o unit-tests/ add/improve comments in tests
1123	o make.1: sync list of built-in variables with reality
1124	sort list of built-in variables
1125	reduce indentation of the long list of variable names
1126	use consistent markup for boolean flags
1127	move description of .MAKE.MODE below the .MAKE.META block
1128	clarify in which case an expression may omit braces
1129
11302022-11-08  Simon J Gerraty  <sjg@beast.crufty.net>
1131
1132	* VERSION (_MAKE_VERSION): 20221024
1133	Merge with NetBSD make, pick up
1134	o change return type of unlink_file back to int
1135
11362022-10-07  Simon J Gerraty  <sjg@beast.crufty.net>
1137
1138	* Makefile: Darwin and Linux can handle MANTARGET=man
1139
11402022-09-28  Simon J Gerraty  <sjg@beast.crufty.net>
1141
1142	* VERSION (_MAKE_VERSION): 20220928
1143	Merge with NetBSD make, pick up
1144	o fix more ignored returns from snprintf
1145	o compile with higher warnings
1146
11472022-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
1148
1149	* main.c meta.c: do not ignore return from snprintf
1150
1151	* meta.c strlcpy.c: we need prototype for strlcpy
1152
1153	* sigcompat.c: fix unused function warnings
1154
11552022-09-24  Simon J Gerraty  <sjg@beast.crufty.net>
1156
1157	* VERSION (_MAKE_VERSION): 20220924
1158	Merge with NetBSD make, pick up
1159	o fix bug in .break reset of conditional depth
1160	o overhaul and simplify tracking of conditional depth
1161
11622022-09-17  Simon J Gerraty  <sjg@beast.crufty.net>
1163
1164	* VERSION (_MAKE_VERSION): 20220912
1165	Merge with NetBSD make, pick up
1166	o man page updates
1167
11682022-09-09  Simon J Gerraty  <sjg@beast.crufty.net>
1169
1170	* VERSION (_MAKE_VERSION): 20220909
1171	Merge with NetBSD make, pick up
1172	o update unit-tests to handle deprecation of egrep
1173	o cond.c: add more details to error message for numeric comparison
1174
1175	* configure.in: allow for deprecation of egrep
1176
1177	* Makefile: Linux can handle MANTARGET=man
1178
11792022-09-03  Simon J Gerraty  <sjg@beast.crufty.net>
1180
1181	* VERSION (_MAKE_VERSION): 20220903
1182	Merge with NetBSD make, pick up
1183	o job.c: fix handling of null bytes in output
1184
11852022-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
1186
1187	* VERSION (_MAKE_VERSION): 20220902
1188	Merge with NetBSD make, pick up
1189	o Allow .break to terminate a .for loop early
1190
11912022-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1192
1193	* VERSION (_MAKE_VERSION): 20220901
1194	Merge with NetBSD make, pick up
1195	o var.c: fix out-of-bounds errors when parsing
1196
11972022-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1198
1199	* VERSION (_MAKE_VERSION): 20220824
1200	Merge with NetBSD make, pick up
1201	o var.c: revert change to modifier parsing that breaks
1202	shell variable references within ':@var@body@'
1203	o adjust unit-tests
1204
12052022-08-18  Simon J Gerraty  <sjg@beast.crufty.net>
1206
1207	* VERSION (_MAKE_VERSION): 20220818
1208	Merge with NetBSD make, pick up
1209	o fix exit status for '-q' (since 1994)
1210
12112022-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
1212
1213	* VERSION (_MAKE_VERSION): 20220808
1214	Merge with NetBSD make, pick up
1215	o var.c: fix parsing of modifiers containing unbalanced subexpressions
1216	extract parsing of ':D' and ':U' modifiers into separate function
1217
12182022-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
1219
1220	* VERSION (_MAKE_VERSION): 20220726
1221
1222	* Auto-create objdir for bmake/unit-tests if appropriate
1223
12242022-07-24  Simon J Gerraty  <sjg@beast.crufty.net>
1225
1226	* VERSION (_MAKE_VERSION): 20220724
1227	Merge with NetBSD make, pick up
1228	o make.1: describe variable assignment and evaluation more precisely
1229	o parse.c: fix out-of-bounds read when parsing an invalid line
1230	o var.c: simplify return type of IsShortVarnameValid
1231
12322022-06-12  Simon J Gerraty  <sjg@beast.crufty.net>
1233
1234	* VERSION (_MAKE_VERSION): 20220612
1235	Merge with NetBSD make, pick up
1236	o allow to randomize build order of targets
1237	.MAKE.MODE += randomize-targets can help uncover dependency bugs
1238	within a makefile.
1239	o compat.c: rename Compat_Run to Compat_MakeAll
1240	o make.c: inline MakeBuildParent
1241	inline make_abort, improve error details
1242	o parse.c: reorganize Parse_Error
1243	fix memory leak in wildcard targets and sources
1244	separate cases in HandleDependencyTargetMundane
1245	extract HandleSingleDependencyTargetMundane
1246	rename loadfile to LoadFile
1247	split IncludeFile into separate functions
1248	condense code for searching a file in the paths
1249	fix off-by-one error in buffer for .WAIT nodes
1250	o str.c: condense Str_Match
1251	make code for string matching syntactically more consistent
1252
12532022-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
1254
1255	* VERSION (_MAKE_VERSION): 20220418
1256	Merge with NetBSD make, pick up
1257	o ignore '.POSIX:' if not in first non-comment line
1258	of Makefile as specified by POSIX.
1259	add unit-tests for above.
1260	o meta.c: make it easier to find usage of identifiers
1261	o targ.c: add .USEBEFORE to Targ_PrintType
1262
12632022-04-14  Simon J Gerraty  <sjg@beast.crufty.net>
1264
1265	* VERSION (_MAKE_VERSION): 20220414
1266
1267	* unit-tests/Makefile: simplify checks for shells with
1268	BROKEN_TESTS, this helps with other Linux distros that
1269	use dash.
1270
12712022-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1272
1273	* VERSION (_MAKE_VERSION): 20220330
1274	Merge with NetBSD make, pick up
1275	o var.c: fix spacing, and a typo in a test
1276
12772022-03-26  Simon J Gerraty  <sjg@beast.crufty.net>
1278
1279	* VERSION (_MAKE_VERSION): 20220326
1280	Merge with NetBSD make, pick up
1281	o parse.c: try to include 'posix.mk' the first time
1282	.POSIX: is encountered, to allow for beter POSIX compliance.
1283	o var.c: make debug logs more readable
1284	prefer 'long long' over 'long' on 32-bit C99 platforms
1285	fix crash on .undef of an environment variable
1286
12872022-03-03  Simon J Gerraty  <sjg@beast.crufty.net>
1288
1289	* VERSION (_MAKE_VERSION): 20220303
1290	Merge with NetBSD make, pick up
1291	o tell meta mode unit tests not to expect filemon
1292	o cond.c: make debug logging for comparisons less technical
1293	o lst.c: fix mem leak in Lst_Remove
1294	o str.c: make code for string matching syntactically more consistent
1295	o var.c: simplify ParseModifier_Match
1296
12972022-02-14  Simon J Gerraty  <sjg@beast.crufty.net>
1298
1299	* unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
1300
1301	* VERSION (_MAKE_VERSION): 20220214
1302	Merge with NetBSD make, pick up
1303	o cond.c: simplify control flow in CondParser_Comparison
1304	o job.c: fix echoing of command with '-' in silent target in jobs mode
1305	o main.c: prefix the warning about read-only .OBJDIR with a colon
1306	o parse.c: remove redundant conditions
1307	o var.c: simplify control flow in ModifyWord_SysVSubst
1308
13092022-02-08  Simon J Gerraty  <sjg@beast.crufty.net>
1310
1311	* unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
1312	is any chance we have dash as .SHELL
1313
1314	* VERSION (_MAKE_VERSION): 20220208
1315	Merge with NetBSD make, pick up
1316	o more unit tests
1317	o meta.c: use a variable to hold command line to be filtered
1318	to avoid any side effects from content of command line.
1319
13202022-02-04  Simon J Gerraty  <sjg@beast.crufty.net>
1321
1322	* VERSION (_MAKE_VERSION): 20220204
1323	Merge with NetBSD make, pick up
1324	o use unsigned consistently for line numbers, avoid the need for %z
1325	o parse.c: do not step off end of input in Parse_IsVar
1326	when checking for target local variable assignments
1327
13282022-02-02  Simon J Gerraty  <sjg@beast.crufty.net>
1329
1330	* VERSION (_MAKE_VERSION): 20220202
1331	Merge with NetBSD make, pick up
1332	o remove redundant declaration of HashIter_Init
1333	o make DEBUG0 simpler
1334
13352022-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1336
1337	* cast gn->lineno to avoid %z
1338
1339	* VERSION (_MAKE_VERSION): 20220130
1340	Merge with NetBSD make, pick up
1341	o more unit tests
1342	o make GNode lineno unsigned to please lint
1343	o print location of recursive variable references in commands
1344	o print "stack trace" (makefile includes) on fatal errors
1345	o make.1: refine documentation for target local assignments
1346
13472022-01-28  Simon J Gerraty  <sjg@beast.crufty.net>
1348
1349	* VERSION (_MAKE_VERSION): 20220128
1350	Merge with NetBSD make, pick up
1351	o inline functions called only once
1352	o for.c: clean up AddEscape for building the body of a .for loop
1353	o hash.c: merge duplicate code for finding an entry in a hash table
1354	replace HashEntry_KeyEquals with strncmp
1355	o make.1: document quirks of target local variable assignments.
1356	o parse.c: cleanup white-space
1357
13582022-01-26  Simon J Gerraty  <sjg@beast.crufty.net>
1359
1360	* VERSION (_MAKE_VERSION): 20220126
1361	Merge with NetBSD make, pick up
1362	o allow setting target local variables
1363	o more unit tests
1364	o add missing newline after "cannot continue" message
1365	o meta.c: clean up eat_dots
1366	o parse.c: fix filename in warning about duplicate script
1367	o var.c: when expanding nested variables, check simple things first
1368
13692022-01-16  Simon J Gerraty  <sjg@beast.crufty.net>
1370
1371	* VERSION (_MAKE_VERSION): 20220116
1372	Merge with NetBSD make, pick up
1373	o fix for unit-tests/varname-makeflags on non-BSD systems
1374	o use Var_Exists rather than Var_Value where appropriate
1375	o remove unnecessary functions for expanding variable names
1376	o cond.c: inline EvalBare
1377	o main.c: lint cleanup
1378	o parse.c: condense code in Parse_IsVar
1379	use islower for parsing directives (none have upper case)
1380
13812022-01-12  Simon J Gerraty  <sjg@beast.crufty.net>
1382
1383	* VERSION (_MAKE_VERSION): 20220112
1384	Merge with NetBSD make, pick up
1385	o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before
1386	comparion, rarely needed but useful when it is.
1387
13882022-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1389
1390	* VERSION (_MAKE_VERSION): 20220110
1391	Merge with NetBSD make, pick up
1392	o inline Buf_Clear
1393	o remove redundant braces
1394	o rename and inline Targ_Precious
1395	o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf
1396	o for.c: clean up handling of .for loops
1397	fix reported line numbers of continuation lines
1398	add details about .for loop variables to stack traces
1399	o job.c: reduce code for initializing error handling in shell
1400	o main.c: in Cmd_Exec, return error message instead of format string
1401	have as few statements as possible between va_start and va_end
1402	add debug logging for capturing the output of external commands
1403	o make.c: use consistent variable names for varargs
1404	o make_malloc.c: remove duplicate code from bmake_strdup
1405	o parse.c: add missing printflike annotations
1406	remove redundant lines from stack traces
1407	fix stack traces in -dp mode
1408	reduce confusing code in ParseForLoop
1409	fix line number in debug log after returning from a file
1410	rename IFile and its fields to match their actual content
1411	clean up ParseDependencySources
1412	o var.c: shorten ApplyModifier_Assign
1413	rename is_shell_metachar, fix character conversion warning
1414	merge calls to ApplyModifier_Time
1415	merge duplicate code for modifiers 'gmtime' and 'localtime'
1416
14172022-01-04  Simon J Gerraty  <sjg@beast.crufty.net>
1418
1419	* parse.c: loadfile restore extra byte in buffer.
1420
14212022-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1422
1423	* VERSION (_MAKE_VERSION): 20220101
1424	Merge with NetBSD make, pick up
1425	o more unit-tests
1426	o remove unnecessary words from command line options in CmdOpts
1427	o rename eunlink to unlink_file
1428	o cond.c: make ParseWord in condition parser simpler
1429	internally return false for irrelevant leaves in conditions
1430	replace table for function lookup in conditions with simple code
1431	merge duplicate types CondEvalResult and CondResult
1432	o for.c: clean up handling of .for loops and .include directives
1433	o main.c: constify cached_realpath
1434	clean up Cmd_Exec
1435	o parse.c: sync API documentation
1436	fix error message when reading more than 1 GB from stdin
1437	clean up parsing of makefiles
1438	fix line number in error message about open conditionals
1439	unexport types VarAssignOp and VarAssign
1440	clean up function names
1441	remove redundant parameters in dependency parsing functions
1442	reduce scope of the list of wildcard target names
1443	extract OP_NOTARGET into separate function
1444	clean up variable names for parsing dependency lines
1445	make debug logging a bit more human-friendly
1446	o var.c: condense code in ApplyModifier_Assign
1447
14482021-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1449
1450	* VERSION (_MAKE_VERSION): 20211221
1451	Merge with NetBSD make, pick up
1452	o more unit-tests
1453	o style cleanup
1454	o in CLEANUP mode, free interned strings at the very end
1455	o fix memory leak for filenames in .for loops
1456	o buf.c: avoid memory leak
1457	o cond.c: condense CondParser_ComparisonOp
1458	o hash.c: change return type of HashTable_Set to void
1459	o job.c: change return type of Compat_RunCommand from int to bool
1460	o main.c: remove bmake_free
1461	o parse.c: condense repetetive code in ParseDirective
1462	remove dead code for handling traditional include directives
1463	clean up parsing of variable assignments
1464	remove unreachable code for parsing the dependency operator
1465	clean up loading of files
1466	fix memory leak in IncludeFile
1467	o var.c: fix memory leak when parsing a variable name
1468	fix memory leak from ${.SUFFIXES}
1469	reduce memory allocation in modifier ':?' and ':C'
1470	condense RegexReplace for the modifier ':C' and avoid strlen
1471	merge duplicate code for memory handling in Var_Parse
1472	distinguish between short-lived and environment variables
1473	rename VarFreeEnv to VarFreeShortLived
1474
14752021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
1476
1477	* cond.c: fix mem leak in CondParser_Leaf
1478
14792021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1480
1481	* VERSION (_MAKE_VERSION): 20211212
1482	Merge with NetBSD make, pick up
1483	o rename Parse_SetInput to Parse_PushInput
1484	o remove remove period from end of error messages and warnings
1485	to be more consistent
1486	o arch.c: use simpler memory management for parsing archive members
1487	o cond.c: rework and reduce recursion
1488	o for.c: rename some functions to better reflect purpose
1489	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
1490	o var.c: in parse errors, mark whitespace more clearly
1491	inline ParseEmptyArg into CondParser_FuncCallEmpty
1492	minimize calls to LazyBuf_Get in ParseVarnameLong
1493	treat .SUFFIXES as a read-only variable
1494
14952021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
1496
1497	* VERSION (_MAKE_VERSION): 20211207
1498	Merge with NetBSD make, pick up
1499	o inline HashIter_Init
1500	o parse.c: inline common subexpression in ParseRawLine
1501	o var.c: merge branches for modifiers ':D' and ':U'
1502	extract common code into Expr_Words
1503	extract common code into Expr_Str
1504	move low-level implementation details out of Var_Parse
1505
15062021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
1507
1508	* VERSION (_MAKE_VERSION): 20211206
1509	Merge with NetBSD make, pick up
1510	o add unit-tests/varmod-loop-delete
1511	o for.c: inline Str_Words - reduce memory allocation
1512	o parse.c: do not try to expand fixed variable names
1513	only allocate the name of an included file if necessary
1514	clean up ParseInclude
1515	o var.c: fix use-after-free in modifier ':@'
1516	save a memory allocation in each modifier ':O' and ':u'
1517	save a memory allocation in the modifier ':[...]'
1518	in UnexportVars, replace Str_Words with Substring_Words to
1519	reduce allocations and copying.
1520
15212021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
1522
1523	* VERSION (_MAKE_VERSION): 20211204
1524	Merge with NetBSD make, pick up
1525	o flesh out a number of tests
1526	o replace enums with bitfields, this simplifies a lot of code.
1527	o var.c: refactor ParseModifierPartSubst
1528
15292021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
1530
1531	* VERSION (_MAKE_VERSION): 20211024
1532	Merge with NetBSD make, pick up
1533	o Punt on write errors - ENOSPC etc.
1534
15352021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
1536
1537	* configure.in: use_defshell, set both DEFSHELL_INDEX
1538	and defshell_path if appropriate.
1539	This makes it easier to use say the KSH specification with
1540	and alternate path for the shell.
1541
1542	* configure.in compat.c: for SCO we need to force UseShell
1543
1544	* configure.in: SCO /bin/sh is not usable, provide a list of
1545	alternatives for use as .SHELL.
1546	We still have to mark some tests as broken, plus more if we end up
1547	with ksh as .SHELL.
1548	Issue a warning about skipped tests.
1549
1550	* boot-strap: leave TOOL_DIFF to configure
1551
1552	* configure.in: on SCO native cc is not usable,
1553	gcc is to be found in /usr/gnu/bin
1554	and while ancient is at least able to compile bmake.
1555	Thus we add /usr/gnu/bin to PATH if it exists, and later
1556	check if $CC would have been found via $PATH.
1557	If not we set CC to the full path of $CC.
1558	Also gnu diff is known to support -u, so if it exists use it.
1559
1560	* configure.in: move getopt to AC_REPLACE_FUNCS
1561	also add AC_C_INLINE - in an attempt to compile using
1562	native cc on SCO.
1563
1564	* configure.in: check for stresep as well as strsep, since we
1565	define the later to the former if necessary, and if we have to
1566	provide stresep we also need to provide a prototype.
1567
1568	* configure.in: we no longer need to worry about
1569	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
1570
1571	* make.h: make sure we have __RCSID
1572
1573	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
1574	can control it.
1575
15762021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
1577
1578	* VERSION: 20211020
1579	Merge with NetBSD make, pick up
1580	o confirm sync of unit-tests
1581
15822021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
1583
1584	* configure.in: check if timezone Europe/Berlin is supported
1585	if not try UTC-1
1586	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
1587	symlink unit-tests -> ../unit-tests/obj so that
1588	unit-tests/Makefile.config is put in the right place.
1589	* refine filtering of .OBJDIR in unit-tests
1590
15912021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
1592
1593	* Fix unit-tests on Minix 3.2.0
1594	o job.c: do not punt if read of token pipe fails for EAGAIN.
1595	On Minix at least, we are not ready to read the childExitJob pipe
1596	when poll says we are.
1597	There should actually be no reason for this pipe to be
1598	non-blocking, but while that works fine on {Net,Free}BSD it
1599	breaks another test case on Minix.
1600	o unit-tests/Makefile: deal with variants of error messages
1601	  and use of obj as .OBJDIR
1602
16032021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
1604
1605	* configure.in: add sigaction to AC_REPLACE_FUNCS
1606	we also need to check for sigaddset etc just for the benefit of
1607	sigact.c
1608
1609	* Add sigact.c as sigaction.c so this "just works".
1610	This should have been done back when bmake_signal started using
1611	sigaction (I only just noticed that sigact.c wasn't here ;-)
1612	Note: I no longer have access to any system where this would matter.
1613
16142021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
1615
1616	* VERSION (_MAKE_VERSION): 20211011
1617
1618	* Makefile: cleanup a little
1619
1620	* configure.in: check for sigsetmask
1621
16222021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
1623
1624	* VERSION (_MAKE_VERSION): 20211001
1625	Merge with NetBSD make, pick up
1626	o reduce locations reducing text size
1627	o remove unnecessary const
1628	o cond.c: fix lint warning on i386
1629	do not allow unquoted 'left == right' after modifier ':?'
1630	o hash.c: fix build for DEBUG_HASH_LOOKUP
1631	o var.c: fix memory leak in error case of the ':?' modifier
1632
16332021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
1634
1635	* VERSION (_MAKE_VERSION): 20210911
1636	Merge with NetBSD make, pick up
1637	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
1638
16392021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
1640
1641	* VERSION (_MAKE_VERSION): 20210906
1642	Merge with NetBSD make, pick up
1643	o more unit tests
1644	o lint cleanup
1645	o rename some functions to better fit purpose
1646	o for.c: cleanup - remove unnecessary optimization
1647	  fix embedded newlines
1648	o parse.c: correct case for CVS/RCS
1649
16502021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
1651
1652	* VERSION (_MAKE_VERSION): 20210808
1653	Merge with NetBSD make, pick up
1654	o var.c: remove redundant initialization in ApplyModifier_Order
1655
1656	* mk/options.mk: issue warning for incorrect usage
1657
16582021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1659
1660	* var.c: use long for :On if we don't have a 64bit int type
1661
1662	* VERSION (_MAKE_VERSION): 20210803
1663	Merge with NetBSD make, pick up
1664	o rework varmod-order tests to avoid qsort instability
1665	o make.1: clarify :On entry
1666
16672021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1668
1669	* VERSION (_MAKE_VERSION): 20210731
1670	Merge with NetBSD make, pick up
1671	o fix some lint issues
1672	o more unit tests
1673	o var.c: rework of ApplyModifier_Order
1674
16752021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1676
1677	* util.c: add strto*l if HAVE_STRTO*L not defined
1678
1679	* VERSION (_MAKE_VERSION): 20210730
1680	Merge with NetBSD make, pick up
1681	o var.c: add :On and :Orn for numeric sort
1682	  disabled if no 64bit type available.
1683	o _strtol.h: to implement strto*l functions
1684
16852021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1686
1687	* VERSION (_MAKE_VERSION): 20210704
1688	Merge with NetBSD make, pick up
1689	o unit-tests: fix some tests to be more portable
1690	- job-output-null not all shells do the same number of write calls
1691	- objdir-writable if TMPDIR is set; /tmp may not be usable
1692
16932021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1694
1695	* VERSION (_MAKE_VERSION): 20210701
1696	Merge with NetBSD make, pick up
1697	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
1698	some tests just cannot work in some environments.
1699	o buf.c: simpler upper bound for length in Buf_AddInt
1700	o cond.c: fix grammar in error message for malformed conditional
1701	o for.c: prevent newline injection (from ${.newline}) in .for loops
1702	o var.c: use more practical data type in RegexReplace
1703	(avoid need for %zu)
1704	extract RegexReplace from ModifyWord_SubstRegex
1705
17062021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
1707
1708	* VERSION (_MAKE_VERSION): 20210621
1709	Merge with NetBSD make, pick up
1710	o var.c: only report error for unmatched regex subexpression
1711	when linting (-dL) since we cannot tell when an unmatched
1712	subexpression is an expected result.
1713	o move unmatched regex subexpression tests to
1714	varmod-subst-regex.mk and enable strict (lint) mode
1715
17162021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
1717
1718	* VERSION (_MAKE_VERSION): 20210616
1719	Merge with NetBSD make, pick up
1720	o more unit tests
1721	o cond.c: rename If_Eval to EvalBare
1722	improve function names for parsing conditions
1723	o job.c: fix error handling of targets that cannot be made
1724	o var.c: uncompress code in ApplyModifier_Unique
1725
17262021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
1727
1728	* VERSION (_MAKE_VERSION): 20210518
1729	Merge with NetBSD make, pick up
1730	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
1731	o job.c: Print -de error information when running multiple jobs
1732
17332021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
1734
1735	* VERSION (_MAKE_VERSION): 20210420
1736	Merge with NetBSD make, pick up
1737	o use C99 bool type
1738	o convert VarEvalFlags back into an enum
1739	o cond.c: do not complain when skipping the condition 'no >= 10'
1740	o hash.c: avoid allocating memory for simple variable names
1741	o job.c: use distinct wording for writing to the shell commands file
1742	remove type name for the abort status in job handling
1743	rename PrintOutput to PrintFilteredOutput to avoid confusion
1744	o main.c: avoid double slash in name of temporary directory
1745	o var.c: use straight quotes for error 'Bad conditional expression'
1746	reduce memory allocations in the modifiers ':D' and ':U'
1747	rename members of ModifyWord_LoopArgs
1748	clean up pattern flags for the modifiers ':S' and ':C'
1749	reduce memory allocation and strlen calls in modifier ':from=to'
1750	in the ':Q' modifier, only allocate memory if necessary
1751	improve performance for LazyBuf
1752	remove redundant parameter from ParseVarnameLong
1753	migrate ParseModifierPart to use Substring
1754	avoid unnecessary calls to strlen when evaluating modifiers
1755	migrate ModifyWord functions to use Substring
1756	migrate handling of the modifier ':S,from,to,' to Substring
1757	reduce debug logging and memory allocation for ${:U...}
1758	reduce verbosity of the -dv debug logging for standard cases
1759	clean up debug logging for ':M' and ':N'
1760	disallow '$' in the variable name of the modifier ':@'
1761	simplify access to the name of an expression during evaluation
1762
17632021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1764
1765	* VERSION (_MAKE_VERSION): 20210330
1766	Merge with NetBSD make, pick up
1767	o replace enum bit-field with struct bit-field for VarEvalFlags
1768	o rename VARE_NONE to VARE_PARSE_ONLY
1769	o var.c: rename ApplyModifiersState to ModChain
1770	fix double varname expansion in the variable modifier '::='
1771	change debug log for variable evaluation flags to lowercase
1772
17732021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
1774
1775	* VERSION (_MAKE_VERSION): 20210314
1776	Merge with NetBSD make, pick up
1777	o var.c: avoid evaluating many modifiers in parse only mode
1778	in strict mode (-dL) many variable references are parsed twice,
1779	the first time just to report parse errors early, so we want to
1780	avoid side effects and wasted effort to the extent possible.
1781
17822021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
1783
1784	* VERSION (_MAKE_VERSION): 20210226
1785	Merge with NetBSD make, pick up
1786	o remove freestanding freeIt variables
1787	link via FStr
1788	o var.c: restructure code in ParseVarname to target human readers
1789	improve error message for;
1790	  bad modifier in variable expression
1791	  unclosed modifier
1792	  unknown modifier
1793	remove redundant parameter of ApplySingleModifier
1794	explain non-obvious code around indirect variable modifiers
1795	quote ':S' in error message about missing delimiter
1796	extract ParseModifier_Match into separate function
1797	add context information to error message about ':range' modifier
1798	add quotes around variable name in an error message
1799	reorder code in ModifyWords
1800	use more common parameter order for VarSelectWords
1801	make ModifyWord_Subst a little easier to understand
1802	do not expand variable name from the command line twice
1803	extract ExistsInCmdline from Var_SetWithFlags
1804	save a hash map lookup when defining a cmdline variable
1805	clean up VarAdd, Var_Delete, Var_ReexportVars
1806	use bit-shift expressions for VarFlags constants
1807	rename constants for VarFlags
1808	rename ExprDefined constants for debug logging
1809	rename ExprStatus to ExprDefined
1810	split parameters for evaluating variable expressions
1811	reduce redundant code around ModifyWords
1812	print error about failed shell command before overwriting variable
1813	clean up ValidShortVarname, ParseVarnameShort
1814	rename VarExprStatus to ExprStatus
1815	add functions for assigning the value of an expression
1816	rename ApplyModifiersState_Define to Expr_Define
1817	condense the code for parsing :S and :C modifiers
1818
18192021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
1820
1821	* VERSION (_MAKE_VERSION): 20210206
1822	Merge with NetBSD make, pick up
1823	o unit-tests: use private TMPDIR to avoid errors from other users
1824
18252021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1826
1827	* VERSION (_MAKE_VERSION): 20210205
1828	Merge with NetBSD make, pick up
1829	o avoid strdup in mkTempFile
1830	o always use vfork
1831	o rename context and ctxt to scope
1832	o rename some VAR constants to SCOPE
1833	o Var_ functions, move the scope to the front
1834	o use shortcut functions Global_Set and Global_Append
1835	o add shortcut Global_Delete for deleting a global variable
1836	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
1837	o compat.c: when exiting due to an error, print graph information
1838	o enum.c: remove overengineered Enum_ValueToString
1839	o make.c: remove unused INTERNAL flag
1840	remove unused return type of MakeBuildParent
1841	o parse.c: replace parse error "Need an operator" with better message
1842	o var.c: improve documentation about variable scopes
1843	rename Var_ValueDirect to GNode_ValueDirect
1844	rename old Var_SetWithFlags to Var_SetExpandWithFlags
1845	merge SetVar into Var_SetWithFlags
1846	split Var_Exists into plain Var_Exists and Var_ExistsExpand
1847	split Var_Append into Var_Append and Var_AppendExpand
1848	replace enum bit-set with bit-field
1849	o unit-tests/var-op-shell: use kill rather than kill -14
1850	which broke on darwin with recent update.
1851
18522021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
1853
1854	* configure.in: check for sig_atomic_t and define it as 'int'
1855	if missing.
1856
1857	* VERSION (_MAKE_VERSION): 20210201
1858	Merge with NetBSD make, pick up
1859	o use sig_atomic_t for caught_sigchld
1860
18612021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
1862
1863	* VERSION (_MAKE_VERSION): 20210130
1864	Merge with NetBSD make, pick up
1865	o more unit tests
1866	o convert SearchPath to struct
1867	o split Buf_Destroy into Buf_Done and Buf_DoneData
1868	o for.c: split For_Eval into separate functions
1869	rename struct For to struct ForLoop
1870	o job.c: do not create empty shell files in jobs mode
1871	rename JobOpenTmpFile to JobWriteShellCommands
1872	reduce unnecessary calls to waitpid
1873	o parse.c: in -dp mode, print stack trace with each diagnostic
1874
18752021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
1876
1877	* VERSION (_MAKE_VERSION): 20210123
1878	Merge with NetBSD make, pick up
1879	o rename Dir_Expand to SearchPath_Expand
1880	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
1881	o cond.c: fix debug output for comparison operators in conditionals
1882	o dir.c: split Dir_FindFile into separate functions
1883
18842021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
1885
1886	* VERSION (_MAKE_VERSION): 20210120
1887	Merge with NetBSD make, pick up
1888	o fix some more lint nits
1889	o refine some unit tests for portability
1890	o cond.c: rework parsing
1891
18922021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
1893
1894	* VERSION (_MAKE_VERSION): 20210110
1895	Merge with NetBSD make, pick up
1896	o fix lint warnings
1897	o consistently use boolean expressions in conditions
1898
18992021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
1900
1901	* VERSION (_MAKE_VERSION): 20210108
1902	Merge with NetBSD make, pick up
1903	o job.c: back to polling token pipe if we want a token
1904	o main.c: always print 'stopped in' on first call
1905	The execption is if we bail because of an abort token
1906	in which case just exit 6.
1907
19082021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
1909
1910	* VERSION (_MAKE_VERSION): 20210101
1911	Merge with NetBSD make, pick up
1912	o Happy New Year!
1913	o rename CmdOpts.lint to strict
1914	o exit 2 on technical errors
1915	o replace pointers in controlling conditions with booleans
1916	o replace global preserveUndefined with VARE_KEEP_UNDEF
1917	o compat.c: re-export variables from the actual make process
1918	if using vfork this is the effect anyway
1919	o cond.c: clean up VarParseResult constants
1920	o for.c: fix undefined behavior in SubstVarLong
1921	make control flow in SubstVarLong of .for loops more obvious
1922	clean up SubstVarShort in .for loops
1923	extract ForSubstBody from ForReadMore
1924	clean up ForReadMore
1925	simplify termination condition for .for loop
1926	add error handling for .for loop items
1927	job.c: re-export variables from the actual make process
1928	parse.c: remove mmap for loading files, only allow files < 1 GiB
1929	fix edge case in := with undefined in variable name
1930	skip variable expansion in ParseDependencyTargetWord
1931	var.c: split ExportVar into separate functions
1932	clean up code in extracted ExportVar functions
1933	remove dead code from ApplyModifiersIndirect
1934	split Var_Subst into easily understandable functions
1935	clean up VarParseResult constants
1936
19372020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
1938
1939	* main.c: use .MAKE.DEPENDFILE as set by makefiles
1940
19412020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1942
1943	* VERSION (_MAKE_VERSION): 20201222
1944	Merge with NetBSD make, pick up
1945	o make DEBUG macro return boolean
1946	o parse.c: fix assertion failure for files without trailing newline
1947	o var.c: allow .undef to undefine multiple variables at once
1948	remove excess newline from parse errors
1949
19502020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1951
1952	* VERSION (_MAKE_VERSION): 20201221
1953	Merge with NetBSD make, pick up
1954	o some unit-test updates
1955
19562020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1957
1958	* VERSION (_MAKE_VERSION): 20201220
1959	Merge with NetBSD make, pick up
1960	o more unit tests
1961	o return FStr from Var_Parse and Var_Value
1962	o spell nonexistent consistently
1963	o add str_basename to reduce duplicate code
1964	o compat.c: fix .ERROR_TARGET in compat -k mode
1965	extract InitSignals from Compat_Run
1966	extract UseShell from Compat_RunCommand
1967	o cond.c: error out if an '.endif' or '.else' contain extraneous text
1968	o for.c: rename ForIterate to ForReadMore
1969	o hash.c: clean up hash function for HashTable
1970	o lst.c: rename Vector.priv_cap to cap
1971	o main.c: remove constant parameter from MakeMode
1972	o make.c: use symbolic time for 0 in Make_Recheck
1973	extract MakeChildren from MakeStartJobs
1974	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
1975	fix error message for .info/.warning/.error without argument
1976	extract Var_Undef from ParseDirective
1977	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
1978	rename mode constants for ParseGetLine to be more expressive
1979	reduce debugging details in Parse_SetInput
1980	fix line numbers in .for loops
1981	split ParseGetLine into separate functions
1982	fix garbled output for failed shell command
1983	var.c: remove redundant assignment in ApplyModifier_SysV
1984	error out on unknown variable modifiers at parse time
1985	remove wrong error message for indirect modifier in lint mode
1986	extract ApplySingleModifier from ApplyModifiers
1987	use FStr for memory management in Var_SetWithFlags
1988	extract SetVar from Var_SetWithFlags
1989	use FStr in VarNew
1990	extract string functions from ApplyModifier_To
1991	error out if .undef has not exactly 1 argument
1992	extract Var_DeleteVar from Var_Delete
1993	extract Var_Undef from ParseDirective
1994	clean up memory management for expanding variable expressions
1995
19962020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
1997
1998	* avoid %zu
1999
2000	* lst.c: avoid anonymous union
2001
2002	* VERSION (_MAKE_VERSION): 20201212
2003	Merge with NetBSD make, pick up
2004	o more unit tests
2005	o inline Targ_Ignore and Targ_Silent
2006	o split JobFlags into separate fields
2007	o remove const from function parameters (left overs from refactoring)
2008	o eliminate boolean argument of Var_Export
2009	o make API of Buf_Init simpler
2010	o rename ParseRunOptions to ParseCommandFlags
2011	o replace *line with line[0]
2012	o compat.c: fix wrong exit status for multiple failed main targets
2013	refactor Compat_Run to show the error condition more clearly
2014	don't make .END if the main targets already failed (-k mode)
2015	fix exit status in -k mode if a dependency fails
2016	o for.c: clean up Buf_AddEscaped in .for loops
2017	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
2018	make Job_Touch simpler
2019	refactor JobFinish
2020	rename Shell.exitFlag to errFlag
2021	move Job.xtraced to ShellWriter
2022	make printing of shell commands independent from the job
2023	rename shell flags in struct Shell
2024	extract JobOpenTmpFile from JobStart
2025	rename RunFlags to CommandFlags
2026	split various Job.* into separate fields
2027	rename commandShell to shell
2028	extract InitShellNameAndPath from Shell_Init
2029	replace signal handling macros with local functions
2030	replace macro MESSAGE with local function
2031	parse.c: error out on null bytes in makefiles
2032	error out on misspelled directives
2033	rename IFile.nextbuf to readMore
2034	fix undefined behavior in ParseEOF
2035	str.c: remove redundant call to strlen in Str_Words
2036	var.c: error out on misspelled .unexport-env
2037	error out on misspelled .export directives
2038	extract ExportVars from Var_Export
2039	extract ExportVarsExpand from Var_Export
2040	eliminate boolean argument of Var_Export
2041	fix undefined behavior when exporting ${:U }
2042	rename Var_ExportVars to Var_ReexportVars
2043	rename Var_Export1 to ExportVar
2044
20452020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
2046
2047	* VERSION (_MAKE_VERSION): 20201206
2048	Merge with NetBSD make, pick up
2049	o more unit tests
2050	o inline macros for debug logging
2051	o use consistent variable names for list nodes
2052	o define constants for enum zero-values
2053	o dir.c: use fixed format for debug output of the directory cache
2054	remove Dir_InitDir
2055	o lst.c: inline Lst_Enqueue, Vector_Done
2056	o meta.c: remove unused parameter from meta_needed
2057	o parse.c: rename parse functions
2058	o suff.c: extract ExpandChildrenRegular from ExpandChildren
2059	o targ.c: don't concatenate identifiers in Targ_PrintType
2060	o var.c: remove comment decoration
2061	extract UnexportVars from Var_UnExport
2062	extract GetVarnamesToUnexport from Var_UnExport
2063	extract UnexportEnv from Var_UnExport
2064	extract UnexportVar from Var_UnExport
2065	move CleanEnv to UnexportVars
2066	replace pointer comparisons with enum
2067	add FStr to var.c to make memory handling simpler
2068	use FStr in Var_UnExport
2069	move type definitions in var.c to the top
2070	extract FreeEnvVar from Var_Parse
2071	extract ShuffleStrings from ApplyModifier_Order
2072
20732020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
2074
2075	* VERSION (_MAKE_VERSION): 20201130
2076	Merge with NetBSD make, pick up
2077	o add unit tests for META MODE
2078	o reduce memory allocation for dirSearchPath, GNode.parents,
2079	GNode.children, OpenDirs
2080	o reduce pointer indirection for GNode.cohorts and
2081	GNode.implicitParents
2082	o remove pointer indirection from GNode.commands
2083	o inline Lst_ForEachUntil in meta mode
2084	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
2085	clean up memory management for CachedDirs
2086	fix the reference count of dotLast going negative
2087	add debug logging for OpenDirs_Done
2088	extract CacheNewDir from Dir_AddDir
2089	add debug logging for reference counting of CachedDir
2090	rename some Dir functions to SearchPath
2091	o job.c: rename some global variables
2092	o main.c: reduce memory allocation in ReadBuiltinRules
2093	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
2094	CmdOpts.makefiles
2095	Add .MAKE.UID and .MAKE.GID
2096	o make.c: reduce memory allocation for/in toBeMade,
2097	Make_ProcessWait, Make_ExpandUse
2098	o meta.c: reduce memory allocation in meta_oodate
2099	o parse.c: reduce memory allocations for parsing dependencies and
2100	targets
2101	o suff.c: reduce memory allocation in suffix handling
2102
21032020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
2104
2105	* VERSION (_MAKE_VERSION): 20201124
2106	Merge with NetBSD make, pick up
2107	o .MAKE.{UID,GID} represent uid and gid running make.
2108	o fix error handling for .BEGIN and .END dependency in -k mode
2109	o fix missing "Stop." after failed .END node in -k mode
2110	o use properly typed comparisons in boolean contexts
2111	o replace a few HashTable_CreateEntry with HashTable_Set
2112	o add HashSet type
2113	o compat.c: split Compat_Make into smaller functions
2114	extract DebugFailedTarget from Compat_RunCommand
2115	o dir.c: refactor Dir_UpdateMTime
2116	migrate CachedDir.files from HashTable to HashSet
2117	o make.c: add high-level API for GNode.made
2118
21192020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
2120
2121	* VERSION (_MAKE_VERSION): 20201122
2122	Merge with NetBSD make, pick up
2123	o rename GNode.context to vars
2124	o suff.c: cleanup and refactor
2125	rename some functions and vars to better reflect usage
2126	add high-level API for CandidateSearcher
2127	o targ.c: add more debug logging for suffix handling
2128	o more unit tests
2129	o add debug logging for setting and resetting the main target
2130
21312020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
2132
2133	* VERSION (_MAKE_VERSION): 20201117
2134	Merge with NetBSD make, pick up
2135	o fix some unit-tests when .SHELL is dash
2136	o rename Targ_NewGN to GNode_New
2137	o make some GNode functions const
2138	o main.c: call Targ_Init before Var_Init
2139	cleanup PrintOnError, getTmpdir and ParseBoolean
2140	o var.c: fix error message of failed :!cmd! modifier
2141
21422020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
2143
2144	* VERSION (_MAKE_VERSION): 20201114
2145	Merge with NetBSD make, pick up
2146	o replace a few HashTable_CreateEntry with HashTable_Set
2147	o clean up cached_stats
2148	o rename DEFAULT to defaultNode
2149	o remove redundant struct make_stat
2150	o cond.c: in lint mode, check for ".else <cond>"
2151	use bitset for IfState
2152	replace large switch with if-else in Cond_EvalLine
2153	o job.c: clean up JobExec, JobStart, JobDoOutput
2154	use stderr for error message about failed touch
2155	clean up Job_Touch
2156	replace macro DBPRINTF with JobPrintln
2157	rename JobState to JobStatus
2158	main.c: switch cache for realpath from GNode to HashTable
2159	clean up Fatal
2160	clean up InitDefSysIncPath
2161	use progname instead of hard-coded 'make' in warning
2162	rename Main_SetVarObjdir to SetVarObjdir
2163	make.1: document the -S option
2164	make.c: fix debug output for GNode details
2165	use symbolic names in debug output of GNodes
2166
21672020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
2168
2169	* configure.in: fix --with-force-machine-arch
2170
2171	* VERSION (_MAKE_VERSION): 20201112
2172	Merge with NetBSD make, pick up
2173	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
2174	checks in InitObjdir.  Explicit .OBJDIR target always allows
2175	read-only directory.
2176	o cond.c: clean up Cond_EvalLine
2177
21782020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
2179
2180	* VERSION (_MAKE_VERSION): 20201111
2181	Merge with NetBSD make, pick up
2182	o more unit-tests
2183	o style cleanup
2184	remove redundant parentheses from sizeof operator
2185	replace character literal 0 with '\0'.
2186	replace pointer literal 0 with NULL.
2187	remove redundant parentheses.
2188	replace (expr & mask) == 0 with !(expr & mask).
2189	use strict typing in conditions of the form !var
2190	o rename Make_OODate to GNode_IsOODate
2191	o rename Make_TimeStamp to GNode_UpdateYoungestChild
2192	o rename Var_Set_with_flags to Var_SetWithFlags
2193	o rename dieQuietly to shouldDieQuietly
2194	o buf.c: make API of Buf_Init simpler
2195	o compat.c: clean up Compat_Make, Compat_RunCommand,
2196	CompatDeleteTarget and CompatInterrupt
2197	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
2198	clean up CondParser_Comparison
2199	o main.c: rename getBoolean and s2Boolean
2200	rename MAKEFILE_PREFERENCE for consistency
2201	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
2202	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
2203	replace emptyString with allocated empty string
2204	error out on unclosed expressions after the colon
2205
22062020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
2207
2208	* VERSION (_MAKE_VERSION): 20201101
2209	Merge with NetBSD make, pick up
2210	o negate NoExecute to GNode_ShouldExecute
2211	o job.c: rename JobMatchShell to FindShellByName
2212	extract EscapeShellDblQuot from JobPrintCommand
2213	extract ParseRunOptions from JobPrintCommand
2214	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
2215	treat malformed :range, :ts and :[...] as errors
2216	add tests for the variable modifiers :[words] and :range
2217
22182020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
2219
2220	* VERSION (_MAKE_VERSION): 20201031
2221	Merge with NetBSD make, pick up
2222	o format #include directives consistently
2223	o do not look up local variables like .TARGET anywhere else
2224	o main.c: Main_SetObjdir is first called for curdir which may be
2225	readonly
2226	reduce the scope where recursive expressions are detected
2227	remove redundant :tl from getBoolean
2228	clean up mkTempFile
2229	o meta.c: simplify memory allocation in meta_create and meta_oodate
2230	o parse.c: extract loadedfile_mmap from loadfile
2231	o trace.c: document possible undefined behavior with .CURDIR
2232	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
2233	rename ismeta to is_shell_metachar
2234	remove debug logging for the :Q variable modifier
2235	rename VarIsDynamic to VarnameIsDynamic
2236	use consistent parameter order in varname parsing functions
2237	extract ParseVarnameLong from Var_Parse
2238	extract ParseVarnameShort from Var_Parse
2239	fix type of ParseModifierPart parameter delim
2240	extract IsEscapedModifierPart from ParseModifierPart
2241	clean up ModifyWords
2242	add test for combining the :@ and :? variable modifiers
2243
22442020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
2245
2246	* VERSION (_MAKE_VERSION): 20201030
2247	Merge with NetBSD make, pick up
2248	o change char * to void * in Var_Value
2249	o make iterating over HashTable simpler
2250	o rename VAR_CMD to VAR_CMDLINE
2251	o cond.c: clean up is_separator
2252	fix parse error in string literal in conditional
2253	o main.c: do not use objdir that is not writable
2254	in lint mode, exit with error status on errors
2255	o  parse.c: clean up StrContainsWord
2256	fix out-of-bounds pointer in ParseTrackInput
2257	o var.c: rename Str_SYSVMatch and its parameters
2258	remove unsatisfiable conditions in Var_Set_with_flags
2259	document where the variable name is expanded
2260	fix documentation for VARP_SUB_ONE
2261	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
2262	document VAR_READONLY
2263	prevent appending to read-only variables
2264	extract MayExport from Var_Export1
2265	remove redundant evaluations in VarFind
2266	replace VarFindFlags with a simple Boolean
2267	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
2268
22692020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
2270
2271	* VERSION (_MAKE_VERSION): 20201028
2272	Merge with NetBSD make, pick up
2273	o rename defIncPath to defSysIncPath
2274	o initialize all CmdOpts fields
2275	o lst.c: inline Vector_Get
2276	o main.c: refactor main extract
2277	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
2278	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
2279	InitDefIncPath,CmdOpts_Init,UnlimitFiles
2280	o parse.c: merge curFile into includes
2281	rename predecessor to order_pred
2282	sort ParseSpecial alphabetically
2283	remove unused, undocumented .NOEXPORT
2284	rename ParseSpecial enum values consistently
2285	rename some fields of struct IFile
2286
22872020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
2288
2289	* VERSION (_MAKE_VERSION): 20201026
2290	Merge with NetBSD make, pick up
2291	o group the command line options and arguments into a struct
2292	o rename GNode.cmgn to youngestChild
2293	o rename hash functions to identify the type name
2294	o negate OP_NOP and rename it to GNode_IsTarget
2295	o add GNode_Path to access the path of a GNode
2296	o remove macros MIN and MAX
2297	o remove unused Lst_Find and Lst_FindFrom
2298	o arch.c: and make Arch_FindLib simpler
2299	clean up code layout
2300	make Arch_ParseArchive simpler
2301	o cond.c: inline CondFindStrMatch into FuncMake
2302	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
2303	omit trailing space in debug output for expanding file patterns
2304	refactor DirMatchFiles
2305	document that the SearchPath of Dir_FindFile may be NULL
2306	remove UNCONST from Dir_Expand
2307	inline DirFindName
2308	o for.c: clean up code for handling .for loops
2309	o hash.c: print hash in debug log with fixed width
2310	clean up hash table functions
2311	reduce amount of string hashing
2312	o job.c: refactor JobDeleteTarget
2313	use proper enum constants for aborting
2314	convert result of JobStart from macros to enum
2315	convert abort reason macros to enum
2316	rework Job_CheckCommands to reduce indentation
2317	rename Shell fields
2318	add field names in declaration of DEFSHELL_CUSTOM
2319	convert JobState and JobFlags to enum types
2320	move handling of the "..." command to JobPrintCommands
2321	o lst.c: clean up
2322	refactor LstNodeNew
2323	remove Lst_Open, Lst_Next, Lst_Close
2324	remove code for circular lists from Lst_Next
2325	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
2326	/dev/null or anything starting with "no"
2327	convert macros for debug flags into enum
2328	o make.c: inline Lst_Copy in Make_ExpandUse
2329	o meta.c: inline Lst_Find in meta_oodate
2330	make Lst_RemoveIf simpler in meta_oodate
2331	o parse.c: convert error level for Parse_Error to an enum
2332	o suff.c: properly terminate debug output with newline
2333	add more details to DEBUG_SRC log
2334	replace Dir_CopyDir with Dir_CopyDirSearchPath
2335	don't modify GNode name while rebuilding the suffix graph
2336	o var.c: reduce duplicate code in VarFind
2337
23382020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
2339
2340	* VERSION (_MAKE_VERSION): 20201022
2341	Merge with NetBSD make, pick up
2342	o more refactoring and simplification to reduce code size
2343	o var.c: extract CanonicalVarname from VarFind
2344	o make.c: extract UpdateImplicitParentsVars from Make_Update
2345	o main.c: extract PrintVar from doPrintVars
2346	extract HandlePWD from main
2347	o lst.c: inline simple Lst getters
2348	remove unused Lst_ForEach
2349	o job.c: move struct Shell from job.h to job.c
2350	o more unit tests
2351
23522020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
2353
2354	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
2355
23562020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
2357
2358	* VERSION (_MAKE_VERSION): 20201018
2359	Merge with NetBSD make, pick up
2360	o remove USE_IOVEC
2361	o rename some Hash_* apis to Hash*
2362	o replace execError with execDie
2363	o rename Lst_Init to Lst_New
2364	o add tags to enum types
2365	o rename Stack to Vector
2366	o parse.c: more refactoring
2367	o unit-tests: make some tests use line buffered stdout
2368	o unit-tests/Makefile: in meta mode do not make all tests depend on
2369	Makefile, it isn't necessary.
2370
23712020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
2372
2373	* main.c: check for CTL_HW being defined.
2374	* unit-tests/Makefile: ensure export tests output are POSIX compliant
2375	disable opt-debug-jobs test until it works on ubuntu
2376
2377	* VERSION (_MAKE_VERSION): 20201010
2378	Merge with NetBSD make, pick up
2379	o dir.c: remove pathname limit for Dir_FindHereOrAbove
2380	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
2381	o main.c: extract init_machine and init_machine_arch from main
2382	allow to disable debug logging options
2383	o parse.c: enable format string truncation warnings
2384	extract parsing of sources from ParseDoDependency
2385	split ParseDoSrc into smaller functions
2386	hide implementation details from Parse_DoVar
2387	clean up parsing of variable assignments
2388	split Parse_DoVar into manageable pieces
2389	don't modify the given line during Parse_DoVar
2390	fix out-of-bounds memory access in Parse_DoVar
2391	fix parsing of the :sh assignment modifier
2392	o var.c: rework memory allocation for the name of variables
2393	extract ApplyModifier_Literal into separate function
2394	in lint mode, reject modifiers without delimiter
2395	do not export variable names starting with '-'
2396	o fix double-free bug in -DCLEANUP mode
2397	o more cleanup to enable higher warnings level
2398	o more unit tests
2399
24002020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
2401
2402	* VERSION (_MAKE_VERSION): 20201002
2403	Merge with NetBSD make, pick up
2404	o dir.c: use hash table for looking up open directories by name
2405	o main.c: clean up option handling
2406	o parse.c: add missing const for Parse_AddIncludeDir
2407	o var.c: ApplyModifier_To, update pp in each branch
2408	o remove redundant function prototypes
2409	o more unit tests
2410
24112020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
2412
2413	* VERSION (_MAKE_VERSION): 20201001
2414	Merge with NetBSD make, pick up
2415	o compat.c: comment about "..."
2416
24172020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
2418
2419	* VERSION (_MAKE_VERSION): 20200930
2420	Merge with NetBSD make, pick up
2421	o job.c: split Job.jobPipe into 2 separate fields
2422	replace Lst_Open with direct iteration
2423	o lst.c: remove redundant assertions
2424	o targ.c: replace Lst_Open with direct iteration
2425	o var.c: fix bug in evaluation of indirect variable modifiers
2426	extract ApplyModifier_Quote into separate function
2427	o make debug logging simpler
2428
24292020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
2430
2431	* VERSION (_MAKE_VERSION): 20200927
2432	Merge with NetBSD make, pick up
2433	o parse.c: ensure parse errors result in 'stopped in' message.
2434	o compat.c: make parameter of Compat_RunCommand const
2435	o main.c: extract InitVarTarget from main
2436	o parse.c: rename ParseFinishLine to FinishDependencyGroup
2437	refactor ParseDoDependency
2438	o var.c: Var_Subst no longer returns string result
2439	rename Var_ParsePP back to Var_Parse
2440	in lint mode, improve error handling for undefined variables
2441	extract ParseVarname from Var_Parse
2442	o rename Lst_ForEach to Lst_ForEachUntil
2443	o inline Lst_ForEachUntil in several cases
2444	o clean up API for finding and creating GNodes
2445	o fix assertion failure in -j mode with .END node
2446	o inline and remove LstNode_Prev and LstNode_Next
2447	o use fine-grained type names for lists and their nodes
2448	o more unit tests
2449
24502020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
2451
2452	* VERSION (_MAKE_VERSION): 20200911
2453	Merge with NetBSD make, pick up
2454	o cond.c: split EvalComparison into smaller functions
2455	reorder parameters of condition parsing functions
2456	reduce code size in CondParser_Eval
2457	rename CondGetString to CondParser_String
2458	add CondLexer_SkipWhitespace
2459	group the condition parsing state into a struct
2460	in CondGetString, replace repeated Buf_Add with Buf_AddStr
2461	o migrate Var_Parse to Var_ParsePP
2462	o add wrappers around ctype.h functions
2463	o lst.c: use a stack instead of a list for the nested include path
2464	o more unit tests
2465
24662020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
2467
2468	* make-bootstrap.sh.in: adjust object list
2469
24702020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
2471
2472	* VERSION (_MAKE_VERSION): 20200902
2473	Merge with NetBSD make, pick up
2474	o use make_stat to ensure no confusion over valid fields
2475	returned by cached_stat
2476	o var.c: make VarQuote const-correct
2477	o add unit tests for .for
2478
24792020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
2480
2481	* VERSION (_MAKE_VERSION): 20200901
2482	Merge with NetBSD make, pick up
2483	o rename Hash_Table fields
2484	o make data types in Dir_HasWildcards more precise
2485
24862020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
2487
2488	* VERSION (_MAKE_VERSION): 20200831
2489	Merge with NetBSD make, pick up
2490	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
2491	o lst.c: Lst_Open renable assert that list isn't open
2492	o unit test for .TARGET dependent flags
2493	o var.c: fix aliasing bug in VarUniq
2494	o more unit tests for :u
2495
24962020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
2497
2498	* VERSION (_MAKE_VERSION): 20200830
2499	Merge with NetBSD make, pick up
2500	o allow for strict type checking for Boolean
2501	o Var_Parse never returns NULL
2502	o Var_Subst never returns NULL
2503	o Lst_Find now takes boolean match function
2504	o rename Lst_Memeber to Lst_FindDatum
2505	o rename LstNode functions to match their type
2506	o rename GNode.iParents to implicitParents
2507	o fix assertion failure for .SUFFIXES in archives
2508	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
2509	remove unreachable code from CompatRunCommand
2510	o main.c: simplify getBoolean
2511	o stc.c: replace brk_string with simpler Str_Words
2512	o suff.c: add debug macros
2513
25142020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
2515
2516	* VERSION (_MAKE_VERSION): 20200828
2517	Merge with NetBSD make, pick up
2518	o lst.c: inline LstIsValid and LstNodeIsValid
2519	o remove trailing S from Lst function names after migration complete
2520	o more comment cleanup/clarification
2521	o suff.c: clean up suffix handling
2522	o more unit tests
2523
25242020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
2525
2526	* VERSION (_MAKE_VERSION): 20200826
2527	Merge with NetBSD make, pick up
2528	o enum.c: distinguish between bitsets containing flags and
2529	ordinary enums
2530	o var.c: fix error message for ::!= modifier with shell error
2531	o fix bugs in -DCLEANUP mode
2532
25332020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
2534
2535	* VERSION (_MAKE_VERSION): 20200824
2536	Merge with NetBSD make, pick up
2537	o in debug mode, print GNode details in symbols
2538
25392020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
2540
2541	* VERSION (_MAKE_VERSION): 20200823
2542	Merge with NetBSD make, pick up
2543	o lst.c: more asserts,
2544	make args to Lst_Find match others.
2545	o var.c: pass flags to VarAdd
2546	o arch.c: use Buffer
2547	o str.c: brk_string return size_t for nwords
2548	o more unit tests
2549
25502020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
2551
2552	* VERSION (_MAKE_VERSION):
2553	Merge with NetBSD make, pick up
2554	o var.c: support for read-only variables eg .SHELL
2555	being the shell used to run scripts.
2556	o lst.c: more simplification
2557	o more documentation and style cleanup
2558	o more unit tests
2559	o ensure unit-test/Makefile is run by TEST_MAKE
2560	o reduce duplication of header inclusion
2561
25622020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
2563
2564	* VERSION (_MAKE_VERSION): 20200821
2565	Merge with NetBSD make, pick up
2566	o lst.c: revert invalid assertion - but document it
2567	o dir.c: split Dir_Init into two functions
2568
25692020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
2570
2571	* lst.c: needs inttypes.h on Linux
2572
2573	* VERSION (_MAKE_VERSION): 20200820
2574	Merge with NetBSD make, pick up
2575	o make.1: clarify some passages
2576	o var.c: more cleanup, clarify comments
2577	o make_malloc.c: remove unreachable code
2578	o cond.c: make CondGetString easier to debug
2579	o simplify list usage
2580	o unit-tests: more
2581
25822020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
2583
2584	* VERSION (_MAKE_VERSION): 20200816
2585	Merge with NetBSD make, pick up
2586	o refactor unit-tests to be more fine grained
2587	  not all tests moved yet
2588
25892020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
2590
2591	* VERSION (_MAKE_VERSION): 20200814
2592	Merge with NetBSD make, pick up
2593	o more str_concat variants
2594	o more enums for flags
2595	o var.c: cleanup for higher warnings level
2596
25972020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
2598
2599	* VERSION (_MAKE_VERSION): 20200810
2600	Merge with NetBSD make, pick up
2601	o more unit tests
2602	o general comment and style cleanup
2603
26042020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
2605
2606	* VERSION (_MAKE_VERSION): 20200808
2607	Merge with NetBSD make, pick up
2608	o enum.[ch]: streamline, enums for use in flags and debug output
2609	o cond.c: cleanup
2610	o var.c: reduce duplicate code for modifiers
2611	debug logging for Var_Parse
2612	more detailed debug output
2613	o more unit tests
2614
26152020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
2616
2617	* unit-tests/Makefile: -r for recursive and include Makefile.inc
2618	so I can run tests in meta mode
2619	supress extra noise if in meta mode
2620
2621	* VERSION (_MAKE_VERSION): 20200806
2622	Merge with NetBSD make, pick up
2623	o parse.c: remove VARE_WANTRES for LINT
2624	we just want to check parsing (for now).
2625
26262020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
2627
2628	* VERSION (_MAKE_VERSION): 20200805
2629	Merge with NetBSD make, pick up
2630	o make.1: Rework the description of dependence operators
2631
26322020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
2633
2634	* VERSION (_MAKE_VERSION): 20200803
2635	Merge with NetBSD make, pick up
2636	o revert some C99 usage, for max portability
2637	o unit-tests/lint
2638
26392020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
2640
2641	* VERSION (_MAKE_VERSION): 20200802
2642	Merge with NetBSD make, pick up
2643	o more unit tests
2644
26452020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
2646
2647	* Remove NetBSD specific plumbing from unit-tests/Makefile
2648
2649	* VERSION (_MAKE_VERSION): 20200801
2650	Merge with NetBSD make, pick up
2651	o make Var_Value return const
2652	o size_t for buf sizes
2653	o optimize some buffer operations - avoid strlen
2654
26552020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
2656
2657	* VERSION (_MAKE_VERSION): 20200731
2658	Merge with NetBSD make, pick up
2659	o var.c: fix undefinded behavior for incomplete :t modifier
2660	  fixes unit-test/moderrs on Ubuntu
2661	o parse.c: When parsing variable assignments other than :=
2662	  if DEBUG(LINT) test substition of value, so we get a file and
2663	  line number in the resulting error.
2664	o dir.c: fix parsing of nested braces in dependency lines
2665	  add unit-tests
2666
26672020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
2668
2669	* VERSION (_MAKE_VERSION): 20200730
2670	Merge with NetBSD make, pick up
2671	o var.c: minor cleanup
2672	o unit-tests: more tests to improve code coverage
2673
26742020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
2675
2676	* VERSION (_MAKE_VERSION): 20200728
2677	Merge with NetBSD make, pick up
2678	o var.c: more optimizations
2679
26802020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
2681
2682	* VERSION (_MAKE_VERSION): 20200726
2683	Merge with NetBSD make, pick up
2684	o collapse lsd.lib into lst.c - reduce code size and allow inlining
2685	o lots of function comment updates
2686	o var.c: more optimizations
2687	o make return of Var_Parse const
2688
26892020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
2690
2691	* VERSION (_MAKE_VERSION): 20200720
2692	Merge with NetBSD make, pick up
2693	o DEBUG_HASH report stats at end and tone down the noise
2694	o var.c: each flag type gets its own prefix.
2695	move SysV string matching to var.c
2696	make ampersand in ${VAR:from=to&} an ordinary character
2697	cleanup and simplify implementation of modifiers
2698	o make.1: move documentation for assignment modifiers
2699
27002020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
2701
2702	* VERSION (_MAKE_VERSION): 20200718
2703	Merge with NetBSD make, pick up
2704	o DEBUG_HASH to see how well the hash tables are working
2705
27062020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
2707
2708	* bsd.after-import.mk: make sure we update unit-tests/Makefile
2709
27102020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
2711
2712	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
2713
2714	* VERSION (_MAKE_VERSION): 20200710
2715	Merge with NetBSD make, pick up
2716	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
2717	o meta.c: target flagged .META is out-of-date if meta file missing
2718
27192020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
2720
2721	* VERSION (_MAKE_VERSION): 20200709
2722	Merge with NetBSD make, pick up
2723	o cond.c: fix for compare_expression when doEval=0
2724	o unit-tests/Makefile: rework
2725	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
2726
27272020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
2728
2729	* VERSION (_MAKE_VERSION): 20200704
2730	Merge with NetBSD make, pick up
2731	(most of this by rillig@)
2732	o lots of style and white-space cleanup
2733	o lots more unit tests for variable modifiers
2734	o simplified description of some functions
2735	o str.c: refactor Str_Match
2736	o var.c: debugging output for :@
2737	  constify VarModify parameter
2738	  fix :hash modifier on 16-bit platforms
2739	  remove unnecessary forward declarations
2740	  refactor ApplyModifier_SysV to have less indentation
2741	  simplify code for :E and :R
2742	  clean up code for :H and :T
2743	  refactor ApplyModifiers
2744
2745	* var.c: we need stdint.h on some platforms to get uint32_t
2746	* unit-test/Makefile: we need to supress the specific error
2747	for RE substitution error in modmisc, since it varies accross
2748	different OS.
2749
27502020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
2751
2752	* VERSION (_MAKE_VERSION): 20200702
2753	Merge with NetBSD make, pick up
2754	o var.c: more improvements to avoiding unnecessary evaluation
2755	use enums for flags
2756	o remove flags arg to Var_Set which outside of var.c is always 0
2757
27582020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
2759
2760	* VERSION (_MAKE_VERSION): 20200701
2761	Merge with NetBSD make, pick up
2762	o var.c: with change to cond.c; ensure that nested variables
2763	within a variable name are expanded.
2764	o unit-tests/varmisc.mk: test for nested varname
2765
27662020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
2767
2768	* VERSION (_MAKE_VERSION): 20200629
2769	Merge with NetBSD make, pick up
2770	o cond.c: do not eval unnecessary terms of conditionals.
2771
27722020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
2773
2774	* VERSION (_MAKE_VERSION): 20200625
2775	Merge with NetBSD make, pick up
2776	o meta.c: report error if lseek in filemon_read fails
2777
27782020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
2779
2780	* VERSION (_MAKE_VERSION): 20200622
2781	Merge with NetBSD make, pick up
2782	o dieQuietly: ignore OP_SUBMAKE as too aggressive
2783
27842020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
2785
2786	* VERSION (_MAKE_VERSION): 20200619
2787	Merge with NetBSD make, pick up
2788	o str.c: performance improvement for Str_Match for multiple '*'
2789	o dieQuietly: supress the failure output from make
2790	when failing node is a sub-make or a sibling failed.
2791	This cuts down greatly on unhelpful noise at the end of
2792	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
2793
27942020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
2795
2796	* FILES: add LICENSE to appease some packagers.
2797	This is an attempt to fairly represent the license on almost
2798	200 files, which are almost all BSD-3-Clause
2799	The few exceptions being more liberal.
2800
2801	* VERSION (_MAKE_VERSION): 20200610
2802	Merge with NetBSD make, pick up
2803	o unit test for :Or
2804
28052020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
2806
2807	* VERSION (_MAKE_VERSION): 20200606
2808	Merge with NetBSD make, pick up
2809	o make.1: cleanup
2810
2811	* Makefile: fix depends for main.o which broke MAKE_VERSION
2812
28132020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
2814
2815	* VERSION (_MAKE_VERSION): 20200605
2816	Merge with NetBSD make, pick up
2817	o dir.c: cached_stats - don't confuse stat and lstat results.
2818	o var.c: add :Or for reverse sort.
2819
28202020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
2821
2822	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
2823	also if --with-filemon= specifies path to filemon.h
2824	set use_filemon=dev
2825	* dirname.c: remove include of namespace.h
2826
28272020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
2828
2829	* VERSION (_MAKE_VERSION): 20200517
2830	Merge with NetBSD make, pick up
2831	o modified dollar tests to avoid shell dependencies
2832	o new tests for .INCLUDEFROM
2833
28342020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
2835
2836	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
2837	to not depend so much on shell behavior
2838
28392020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
2840
2841	* VERSION (_MAKE_VERSION): 20200510
2842	Merge with NetBSD make, pick up
2843	o unit test for dollar handling
2844
28452020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
2846
2847	* VERSION (_MAKE_VERSION): 20200506
2848	Merge with NetBSD make, pick up
2849	o str.c: empty string does not match % pattern
2850	  plus unit-test changes
2851
28522020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
2853
2854	* VERSION (_MAKE_VERSION): 20200504
2855	May the 4th be with you
2856	Merge with NetBSD make, pick up
2857	o var.c: import handling of old sysV style modifier using '%'
2858	o str.c: refactor brk_string
2859	o unit-tests: add test case for lazy conditions
2860
28612020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
2862
2863	* VERSION (_MAKE_VERSION): 20200418
2864
2865	* configure.in: use_makefile=no for Cygwin et al.
2866	case insensitive filesystems just don't work if both
2867	makefile and Makefile exist.
2868	NOTE: bmake does not support Cygwin and likely never will,
2869	but if brave souls want to try it - help them out.
2870
28712020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
2872
2873	* VERSION (_MAKE_VERSION): 20200402
2874	Merge with NetBSD make, pick up
2875	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
2876	  a blank command is perfectly valid.
2877
28782020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
2879
2880	* VERSION (_MAKE_VERSION): 20200330
2881	Merge with NetBSD make, pick up
2882	o make.h: extern debug_file
2883
28842020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
2885
2886	* VERSION (_MAKE_VERSION): 20200318
2887	Merge with NetBSD make, pick up
2888	o meta.c: meta_oodate, check for corrupted meta file
2889	  earlier and more often.
2890
28912020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
2892
2893	* VERSION (_MAKE_VERSION): 20200220
2894
28952020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
2896
2897	* boot-strap: unset MAKEFLAGS
2898
28992020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
2900
2901	* VERSION (_MAKE_VERSION): 20200212
2902	* meta.c: meta_compat_parent check for USE_FILEMON
2903	  patch from Soeren Tempel
2904
29052020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
2906
2907	* VERSION: 20200205
2908	Merge with NetBSD make, pick up
2909	o meta.c: fix compat mode, need to call meta_job_output()
2910	o job.c: extra fds for meta mode not needed if using filemon_dev
2911
29122020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
2913
2914	* VERSION: 20200122
2915	Merge with NetBSD make, pick up
2916	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
2917	  returns FALSE.
2918
29192020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
2920
2921	* VERSION: 20200121
2922	Merge with NetBSD make, pick up
2923	o filemon/filemon_{dev,ktrace}.c: allow selection of
2924	  filemon implementation.  filemon_dev.c uses the kernel module
2925	  while filemon_ktrace.c leverages the fktrace api available in
2926	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
2927	  adding support for other tracing mechanisms such as strace on
2928	  Linux.
2929	o meta.c: when target is out-of-date per normal make rules
2930	  record value of .OODATE in meta file.
2931
29322019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
2933
2934	* VERSION: 20190926
2935	  Merge with NetBSD make, pick up
2936	  o parse.c: don't pass NULL to realpath(3)
2937	    some versions cannot handle it.
2938
29392019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
2940
2941	* VERSION: 20190409
2942	  Merge with NetBSD make, pick up
2943	  o parse.c: ParseDoDependency: free paths rather than assert
2944
29452018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
2946
2947	* VERSION: 20181222
2948
2949	* configure.in: add --without-makefile to avoid generating
2950	  makefile and make-bootstrap.sh
2951
2952	* include Makefile.inc if it exists
2953
2954	* Use Makefile and Makefile.config.in in unit-tests
2955	  so we can use just: make obj && make && make test
2956	  when bmake is already available.
2957	  We add --without-makefile to CONFIGURE_ARGS in this case.
2958
2959	* tweak bsd.after-import.mk (captures Makefile.config etc
2960	  after import to FreeBSD for example) to cope with all the above.
2961
29622018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
2963
2964	* VERSION: 20181221
2965	  Merge with NetBSD make, pick up
2966	  o parse.c: ParseVErrorInternal use .PARSEDIR
2967	    and apply if relative, and then use .PARSEFILE
2968	    for consistent result.
2969
29702018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
2971
2972	* VERSION: 20181220
2973	  Merge with NetBSD make, pick up
2974	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
2975	    is relative
2976	  o var.c: avoid SEGFAULT in .unexport-env
2977	    when MAKELEVEL is not set
2978
29792018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
2980
2981	* VERSION: 20181216
2982	  Merge with NetBSD make, pick up
2983	  o fix for unit-tests/varquote.mk on Debian
2984
29852018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2986
2987	* VERSION: 20180919
2988	  Merge with NetBSD make, pick up
2989	  o var.c: add :q
2990	  o dir.c: cleanup caching of stats
2991
29922018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
2993
2994	* Makefile.config.in: use += where it makes sense.
2995
29962018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2997
2998	* VERSION: 20180512
2999	  Merge with NetBSD make, pick up
3000	  o job.c: skip polling job token pipe
3001
30022018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3003
3004	* VERSION: 20180405
3005	  Merge with NetBSD make, pick up
3006	  o parse.c: be more cautious about detecting depenency line
3007	    rather than sysV style include.
3008
30092018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3010
3011	* VERSION: 20180222
3012	  Merge with NetBSD make, pick up
3013	  o parse.c: avoid calling sysconf for every call to loadfile
3014
30152018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3016
3017	* VERSION: 20180218
3018	  Merge with NetBSD make, pick up
3019	  o var.c: Var_Set handle NULL value anytime.
3020
30212018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3022
3023	* VERSION: 20180212
3024	  Merge with NetBSD make, pick up
3025	  o parse.c: do not treat .info as warning with -W
3026
30272017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3028
3029	* VERSION: 20171207
3030	  Merge with NetBSD make, pick up
3031	  o var.c: Var_Append use Var_Set if var not previously set
3032	    so that VAR_CMD is handled correctly.
3033	    Add a suitable unit-test.
3034
30352017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3036
3037	* VERSION (_MAKE_VERSION): 20171126
3038
3039	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
3040	  since AC_TRY_COMPILE puts input inside main()
3041	  which upsets modern compilers.
3042
30432017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3044
3045	* VERSION: 20171118
3046	  Merge with NetBSD make, pick up
3047	  o var.c: do not append to variable set on command line
3048	    add unit-test to catch this.
3049
30502017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3051
3052	* VERSION: 20171028
3053	  Merge with NetBSD make, pick up
3054	  o main.c: ignore empty MAKEOBJDIR
3055
3056	* Makefile.config.in:
3057	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
3058
30592017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3060
3061	* VERSION: 20171005
3062
3063	* unit-tests/dotwait.mk: redirect stderr through pipe for more
3064	  consistent result on some platforms.
3065
30662017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3067
3068	* machine.sh: entry for AIX
3069
30702017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3071
3072	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
3073	  to a file that can be included by configure as well as make.
3074	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
3075
30762017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3077
3078	* Makefile (_MAKE_VERSION): 20170810
3079	  Merge with NetBSD make, pick up
3080	  o meta.c: if target is in subdir we only need subdir name in
3081	    meta_name.
3082
30832017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3084
3085	* Makefile (_MAKE_VERSION): 20170720
3086	  Merge with NetBSD make, pick up
3087	  o compat.c: pass SIGINT etc onto child and wait for it to exit
3088	    before we self-terminate.
3089
30902017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3091
3092	* Makefile (_MAKE_VERSION): 20170711
3093	  forgot to update after merge on 20170708 ;-)
3094	  o main.c: refactor to reduce size of main function.
3095	    add -v option to always fully expand values.
3096	  o meta.c: ensure command output in meta file has ending newline
3097	    even when filemon not being used.
3098	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
3099	    pathname via ':L' since any ':' in pathname breaks that.
3100	    Instead set a '${.p.}' to pathname in the target context and
3101	    use that.
3102
31032017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3104
3105	* Makefile (_MAKE_VERSION): 20170510
3106	  Merge with NetBSD make, pick up
3107	  o main.c: Main_SetObjdir: ensure buf2 is in scope
3108
31092017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3110
3111	* Makefile (_MAKE_VERSION): 20170505
3112	  see mk/ChangeLog
3113
31142017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3115
3116	* parse.c: not everyone has stdint.h
3117
31182017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3119
3120	* Makefile (_MAKE_VERSION): 20170501
3121	  see mk/ChangeLog
3122
31232017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
3124
3125	* Makefile (_MAKE_VERSION): 20170421
3126	  Merge with NetBSD make, pick up
3127	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
3128
31292017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3130
3131	* Makefile (_MAKE_VERSION): 20170420
3132	  Merge with NetBSD make, pick up
3133	  o main.c: only use -C arg "as is" if it contains no
3134	    relative component.
3135
31362017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3137
3138	* Makefile (_MAKE_VERSION): 20170418
3139	  Merge with NetBSD make, pick up
3140	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
3141
31422017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3143
3144	* Makefile (_MAKE_VERSION): 20170417
3145	  Merge with NetBSD make, pick up
3146	  o fixes a number of coverity complaints
3147	    - check return value of fseek, fcntl
3148	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
3149	      JobPrintCommand, ParseTraditionalInclude
3150	    - use bmake_malloc() where NULL is not tollerated
3151	    - use MAKE_ATTR_UNUSED rather that kludges like
3152	      return(unused ? 0 : 0)
3153	    - use purge_cached_realpaths() rather than abuse cached_realpath()
3154
31552017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3156
3157	* Makefile (_MAKE_VERSION): 20170413
3158	  Merge with NetBSD make, pick up
3159	  o main.c: when setting .OBJDIR ignore '$' in paths.
3160
3161	* job.c: use MALLOC_OPTIONS to set malloc_options.
3162
31632017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3164
3165	* Makefile (_MAKE_VERSION): 20170411
3166	  Merge with NetBSD make, pick up
3167	  o str.c: Str_Match: allow [^a-z] to behave as expected.
3168
31692017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3170
3171	* Makefile (_MAKE_VERSION): 20170326
3172	  Merge with NetBSD make, pick up
3173	  o main.c: purge relative paths from realpath cache when .OBJDIR
3174	    is changed.
3175
31762017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3177
3178	* Makefile (_MAKE_VERSION): 20170311
3179	  Merge with NetBSD make, pick up
3180          o main.c: only use -C arg "as is" if it starts with '/'.
3181
31822017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3183
3184	* Makefile (_MAKE_VERSION): 20170301
3185	  Merge with NetBSD make, pick up
3186	  o main.c: use -C arg "as is" rather than getcwd()
3187	    if they identify the same directory.
3188	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
3189
31902017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3191
3192	* Makefile (_MAKE_VERSION): 20170201
3193	  Merge with NetBSD make, pick up
3194	  o var.c: allow :_=var and avoid use of special context.
3195
31962017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3197
3198	* Makefile (_MAKE_VERSION): 20170130
3199	  Merge with NetBSD make, pick up
3200	  o var.c: add :range and :_
3201	  o main.c: partially initialize Dir_* before MainParseArgs()
3202	    can be called.
3203	    If -V, skip Main_ExportMAKEFLAGS()
3204
32052017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3206
3207	* Makefile (_MAKE_VERSION): 20170114
3208	  Merge with NetBSD make, pick up
3209	  o var.c: allow specifying the utc value used by :{gm,local}time
3210
32112016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3212
3213	* Makefile (_MAKE_VERSION): 20161212
3214	  Merge with NetBSD make, pick up
3215          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
3216
32172016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3218
3219	* Makefile (_MAKE_VERSION): 20161209
3220	  Merge with NetBSD make, pick up
3221	  o main.c: cleanup setting of .OBJDIR
3222	  o parse.c: avoid coredump from (var)=val
3223
32242016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3225
3226	* Makefile (_MAKE_VERSION): 20161126
3227	  Merge with NetBSD make, pick up
3228	  o make.c: Make_OODate: report src node name if path not set
3229
32302016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3231
3232	* Makefile (_MAKE_VERSION): 20160926
3233	  Merge with NetBSD make, pick up
3234	  o support for .DELETE_ON_ERROR: (remove targets that fail)
3235
32362016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3237
3238	* Makefile MAN: tweak .Dt to match ${PROG}
3239
32402016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3241
3242	* Makefile (_MAKE_VERSION): 20160818
3243	  its a neater number; pick up whitespace fixes to man page.
3244
32452016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3246
3247	* Makefile (_MAKE_VERSION): 20160817
3248	  Merge with NetBSD make, pick up
3249	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
3250	    so we can call it before adding entries to missingFiles.
3251	    Thus we do not track files we have been told to ignore.
3252
32532016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3254
3255	* Makefile (_MAKE_VERSION): 20160815
3256	  Merge with NetBSD make, pick up
3257	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
3258	    pathnames, and skip if the expansion is empty.
3259	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
3260
32612016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3262
3263	* Makefile (_MAKE_VERSION): 20160812
3264	  Merge with NetBSD make, pick up
3265	  o meta.c: remove all missingFiles entries that match a deleted
3266	    dir.
3267	  o main.c: set .ERROR_CMD if possible.
3268
32692016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3270
3271	* Makefile (_MAKE_VERSION): 20160606
3272	  Merge with NetBSD make, pick up
3273	  o dir.c: extend mtimes cache to others via cached_stat()
3274
32752016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3276
3277	* Makefile (_MAKE_VERSION): 20160604
3278	  Merge with NetBSD make, pick up
3279	  o meta.c: missing filemon data is only relevant if we read a
3280	    meta file.
3281	    Also do not return oodate for a missing metafile if gn->path
3282	    points to .CURDIR
3283
32842016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3285
3286	* Makefile (_MAKE_VERSION): 20160602
3287	  Merge with NetBSD make, pick up
3288	  o cached_realpath(): avoid hitting filesystem more than necessary.
3289	  o meta.c: refactor need_meta decision, add knobs for
3290	    missing meta file and filemon data wrt out-of-datedness.
3291
32922016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3293
3294	* Makefile (_MAKE_VERSION): 20160528
3295
3296	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
3297
32982016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3299
3300	* Makefile (_MAKE_VERSION): 20160512
3301	  Merge with NetBSD make, pick up
3302	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
3303	    this is useful for gcov builds.
3304	  o propagate errors from filemon(4).
3305
33062016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3307
3308	* Makefile (_MAKE_VERSION): 20160509
3309	  Merge with NetBSD make, pick up
3310	  o remove use of non-standard types u_int etc.
3311	  o meta.c: apply realpath() before matching against metaIgnorePaths
3312
33132016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3314
3315	* Makefile (_MAKE_VERSION): 20160404
3316	  Merge with NetBSD make, pick up
3317	  o allow makefile to set .MAKE.JOBS
3318
3319	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
3320
33212016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
3322
3323	* Makefile (_MAKE_VERSION): 20160315
3324	  Merge with NetBSD make, pick up
3325	  o fix handling of archive members
3326
33272016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3328
3329	* Makefile (_MAKE_VERSION): rename variable to avoid interference
3330	  with checks for ${MAKE_VERSION}
3331
33322016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3333
3334	* Makefile (MAKE_VERSION): 20160310
3335	  Merge with NetBSD make, pick up
3336	  o meta.c: treat missing Read file same as Write, incase we Delete it.
3337
33382016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3339
3340	* Makefile (MAKE_VERSION): 20160307
3341	  Merge with NetBSD make, pick up
3342	  o var.c: fix :ts\nnn to be octal by default.
3343	  o meta.c: meta_finish() to cleanup memory.
3344
33452016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3346
3347	* Makefile (MAKE_VERSION): 20160226
3348	  Merge with NetBSD make, pick up
3349	  o meta.c: allow meta file for makeDepend if makefiles want it.
3350
33512016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3352
3353	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
3354	  for backwards compatability.
3355
3356	* Makefile (MAKE_VERSION): 20160220
3357	  Merge with NetBSD make, pick up
3358	  o var.c: add knob to control handling of '$$' in :=
3359
33602016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3361
3362	* Makefile (MAKE_VERSION): 20160218
3363	  Merge with NetBSD make, pick up
3364	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
3365	    post the changes to Var_Subst.
3366	    Var_Subst now takes flags, and does not consume '$$' in :=
3367
33682016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3369
3370	* Makefile (MAKE_VERSION): 20160217
3371	  Merge with NetBSD make, pick up
3372	  o var.c: preserve '$$' in :=
3373	  o parse.c: add .dinclude for handling included
3374	    makefile like .depend
3375
33762015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3377
3378	* Makefile (MAKE_VERSION): 20151220
3379	  Merge with NetBSD make, pick up
3380	  o suff.c: re-initialize suffNull when clearing suffixes.
3381
33822015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3383
3384	* Makefile (MAKE_VERSION): 20151201
3385	  Merge with NetBSD make, pick up
3386	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
3387	  o meta.c: meta_oodate: use lstat(2) for checking link target
3388	    in case it is a symlink.
3389	  o var.c: avoid calling brk_string and Var_Export1 with empty
3390	    strings.
3391
33922015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3393
3394	* Makefile (MAKE_VERSION): 20151126
3395	  Merge with NetBSD make, pick up
3396	  o parse.c: ParseTrackInput don't access beyond
3397	    end of old value.
3398
33992015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3400
3401	* Makefile (MAKE_VERSION): 20151022
3402
3403	* Add support for BSD/OS which lacks inttypes.h
3404	  and really needs sys/param.h for sys/sysctl.h
3405	  also 'type' is not a shell builtin.
3406
3407	* var.c: eliminate uint32_t and need for inttypes.h
3408
3409	* main.c: PrintOnError flush stdout before run .ERROR
3410
3411	* parse.c: cope with _SC_PAGESIZE not being defined.
3412
3413
34142015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3415
3416	* Makefile (MAKE_VERSION): 20151020
3417	  Merge with NetBSD make, pick up
3418	  o var.c: fix uninitialized var
3419
34202015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3421
3422	* var.c: the conditional expressions used with ':?' can be
3423	expensive, if already discarding do not evaluate or expand
3424	anything.
3425
34262015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3427
3428	* Makefile (MAKE_VERSION): 20151010
3429	  Merge with NetBSD make, pick up
3430	  o Add Boolean wantit flag to Var_Subst and Var_Parse
3431	    when FALSE we know we are discarding the result and can
3432	    skip operations like Cmd_Exec.
3433
34342015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3435
3436	* Makefile (MAKE_VERSION): 20151009
3437	  Merge with NetBSD make, pick up
3438	  o var.c: don't check for NULL before free()
3439	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
3440
34412015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3442
3443	* Makefile (MAKE_VERSION): 20150910
3444	  Merge with NetBSD make, pick up
3445	  o main.c: with -w print Enter/Leaving messages for objdir too
3446	    if necessary.
3447	  o centralize shell metachar handling
3448
3449	* FILES: add metachar.[ch]
3450
34512015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3452
3453	* Makefile (MAKE_VERSION): 20150606
3454	  Merge with NetBSD make, pick up
3455	  o make.1: document .OBJDIR target
3456
34572015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3458
3459	* Makefile (MAKE_VERSION): 20150505
3460	  Merge with NetBSD make, pick up
3461	  o cond.c: be strict about lhs of comparison when evaluating .if
3462	    but less so when called from variable expansion.
3463	  o unit-tests/cond2.mk: test various error conditions
3464
34652015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3466
3467	* machine.sh (MACHINE): Add Bitrig
3468	  patch from joerg@netbsd.org
3469
34702015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3471
3472	* Makefile (MAKE_VERSION): 20150418
3473	  Merge with NetBSD make, pick up
3474	  o job.c: use memmove() rather than memcpy()
3475
3476	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
3477	  case, so skip it.
3478
34792015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3480
3481	* Makefile (MAKE_VERSION): 20150411
3482	  bump version - only mk/ changes.
3483
34842015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3485
3486	* Makefile (MAKE_VERSION): 20150410
3487	  Merge with NetBSD make, pick up
3488	  o document different handling of '-' in jobs mode vs compat
3489	  o fix jobs mode so that '-' only applies to whole job
3490	    when shell lacks hasErrCtl
3491	  o meta.c: use separate vars to track lcwd and latestdir (read)
3492	    per process
3493
34942015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3495
3496	* Makefile (MAKE_VERSION): 20150401
3497	  Merge with NetBSD make, pick up
3498	  o meta.c: close meta file in child
3499
3500	* Makefile: use BINDIR.bmake if set.
3501	  Same for MANDIR and SHAREDIR
3502	  Handy for testing release candidates
3503	  in various environments.
3504
35052015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3506
3507	* move initialization of savederr to block where it is used
3508	  to avoid spurious warning from gcc5
3509
35102014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3511
3512	* Makefile (MAKE_VERSION): 20141111
3513	  just a cooler number
3514
35152014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3516
3517	* Makefile (MAKE_VERSION): 20141105
3518	  Merge with NetBSD make, pick up
3519	  o revert major overhaul of suffix handling
3520	    and POSIX compliance - too much breakage
3521	    and impossible to make backwards compatible.
3522	  o we still have the new unit test structure which is ok.
3523	  o meta.c ensure "-- filemon" is at start of line.
3524
35252014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
3526
3527	* configure.in: test that result of getconf PATH_MAX is numeric
3528	  and discard if not.  Apparently needed for Hurd.
3529
35302014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3531
3532	* Makefile (MAKE_VERSION): 20140830
3533	  Merge with NetBSD make, pick up
3534	  o major overhaul of suffix handling
3535	  o improved POSIX compliance
3536	  o overhauled unit-tests
3537
35382014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3539
3540	* Makefile (MAKE_VERSION): 20140620
3541	  Merge with NetBSD make, pick up
3542	  o var.c return varNoError rather than var_Error for ::= modifiers.
3543
35442014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3545
3546	* Makefile (MAKE_VERSION): 20140522
3547	  Merge with NetBSD make, pick up
3548	  o var.c detect some parse errors.
3549
35502014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3551
3552	* Fix spelling errors - patch from Pedro Giffuni
3553
35542014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3555
3556	* Makefile (MAKE_VERSION): 20140214
3557	  Merge with NetBSD make, pick up
3558	  o .INCLUDEFROM*
3559	  o use Var_Value to get MAKEOBJDIR[PREFIX]
3560	  o reduced realloc'ign in brk_string.
3561	* configure.in: add a check for compiler supporting __func__
3562
35632014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3564
3565	* boot-strap: ignore mksrc=none
3566
35672014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3568
3569	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
3570
35712014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3572
3573	* Makefile (MAKE_VERSION): 20140101
3574	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
3575	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
3576	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
3577	  Hurd)
3578	* configure.in: Add AC_PREREQ and check for
3579	  sysctl; patch from Andrew Shadura andrewsh at debian.org
3580
35812013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3582
3583	* Makefile (MAKE_VERSION): 20131010
3584	* lose the const from arg to systcl to avoid problems on older BSDs.
3585
35862013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3587
3588	* Makefile (MAKE_VERSION): 20131001
3589	  Merge with NetBSD make, pick up
3590	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
3591	    hw.machine_arch if necessary.
3592	  o meta.c: meta_oodate - need to look at src of Link and target
3593	    of Move as well.
3594	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
3595	  provide __arraycount() if needed.
3596
35972013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3598
3599	* Makefile (MAKE_VERSION): 20130904
3600	  Merge with NetBSD make, pick up
3601	  o Add VAR_INTERNAL context, so that internal setting of
3602	    MAKEFILE does not override value set by makefiles.
3603
36042013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3605
3606	* Makefile (MAKE_VERSION): 20130902
3607	  Merge with NetBSD make, pick up
3608	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
3609
36102013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3611
3612	* Makefile (MAKE_VERSION): 20130828
3613	  Merge with NetBSD make, pick up
3614	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
3615	  o Call Job_SetPrefix() from Job_Init() so makefiles have
3616	    opportunity to set .MAKE.JOB.PREFIX
3617
36182013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3619
3620	* Makefile (MAKE_VERSION): 20130730
3621	  Merge with NetBSD make, pick up
3622	  o Allow suppression of --- job -- tokens by setting
3623	    .MAKE.JOB.PREFIX empty.
3624
36252013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
3626
3627	* Makefile (MAKE_VERSION): 20130716
3628	  Merge with NetBSD make, pick up
3629	  o number of gmake compatibility tweaks
3630	    -w for gmake style entering/leaving messages
3631	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
3632	    handle MAKEFLAGS containing only letters.
3633	  o when overriding a GLOBAL variable on the command line,
3634	    delete it from GLOBAL context so -V doesn't show the wrong
3635	    value.
3636
36372013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3638
3639	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
3640
3641	* Makefile (MAKE_VERSION): 20130706
3642	  Merge with NetBSD make, pick up
3643	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
3644	    true so that CompatRunCommand() can use it, to ensure
3645	    consistent behavior with jobs mode.
3646	  o use MAKE_LEVEL_ENV to define the variable to propagate
3647	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
3648	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
3649	    paths to ignore.
3650
36512013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3652
3653	* Makefile (MAKE_VERSION): 20130604
3654	  Merge with NetBSD make, pick up
3655	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
3656	    to avoid leaking descriptors.
3657
36582013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3659
3660	* Makefile (MAKE_VERSION): 20130528
3661	  Merge with NetBSD make, pick up
3662	  o var.c: cleanup some left-overs in VarHash()
3663
36642013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3665
3666	* Makefile (MAKE_VERSION): 20130520
3667	  generate manifest from component FILES rather than have to
3668	  update FILES when mk/FILES changes.
3669
36702013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3671
3672	* Makefile (MAKE_VERSION): 20130518
3673	  Merge with NetBSD make, pick up
3674	  o suff.c: don't skip all processsing for .PHONY targets
3675	    else wildcard srcs do not get expanded.
3676	  o var.c: expand name of variable to delete if necessary.
3677
36782013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3679
3680	* Makefile (MAKE_VERSION): 20130330
3681	  Merge with NetBSD make, pick up
3682	  o meta.c: refine the handling of .OODATE in commands.
3683	    Rather than suppress command comparison for the entire script
3684	    as though .NOMETA_CMP had been used, only suppress it for the
3685	    one command line.
3686	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
3687	    suppress comparison of a command without otherwise affecting it.
3688	  o make.1: document that
3689
36902013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
3691
3692	* Makefile (MAKE_VERSION): 20130321
3693	  yes, not quite right but its a cooler number.
3694	  Merge with NetBSD make, pick up
3695	  o parse.c: fix ParseGmakeExport to be portable
3696	    and add a unit-test.
3697	* meta.c: call meta_init() before makefiles are read and if built
3698	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
3699	  this let's makefiles test for support.
3700	  Call meta_mode_init() to process .MAKE.MODE.
3701
37022013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
3703
3704	* Makefile (MAKE_VERSION): 20130305
3705	  Merge with NetBSD make, pick up
3706	  o run .STALE: target when a dependency from .depend is missing.
3707	  o job.c: add Job_RunTarget() for the above and .BEGIN
3708
37092013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
3710
3711	* Makefile (MAKE_VERSION): 20130303
3712	  Merge with NetBSD make, pick up
3713	  o main.c: set .MAKE.OS to utsname.sysname
3714	  o job.c: more checks for read and poll errors
3715	  o var.c: lose VarChangeCase() saves 4% time
3716
37172013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3718
3719	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
3720	  want to use MAKEOBJDIR
3721
37222013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3723
3724	* Merge with NetBSD make, pick up
3725	  o make.1: more info on how shell commands are handled.
3726	  o job.c,main.c: detect write errors to job pipes.
3727
37282013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3729
3730	* Makefile (MAKE_VERSION): 20130123
3731	  Merge with NetBSD make, pick up
3732	  o meta.c: if script uses .OODATE and meta_oodate() decides
3733	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
3734	  o var.c: in debug output indicate which variabale modifiers
3735	    apply to.
3736	  o remove Check_Cwd logic the makefiles have been fixed.
3737
37382012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
3739
3740	* makefile.in: add a simple makefile for folk who insist on
3741	  ./configure; make; make install
3742	  it just runs boot-strap
3743	* include mk/* to accommodate the above
3744	* boot-strap:  re-work to accommodate the above
3745	  mksrc defaults to $Mydir/mk
3746	  allow op={configure,build,install,clean,all}
3747	  add options to facilitate install
3748	* Makefile.config.in: just the bits set by configure
3749	* Makefile: bump version to 20121212
3750	  abandon Makefile.in (NetBSD Makefile)
3751	  leverage mk/* instead
3752	* configure.in: ensure srcdir is absolute
3753
37542012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3755
3756	* Makefile.in (MAKE_VERSION): 20121111
3757	  fix generation of bmake.cat1
3758
37592012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3760
3761	* Makefile.in (MAKE_VERSION): 20121109
3762	  Merge with NetBSD make, pick up
3763	  o make.c: MakeBuildChild: return 0 so search continues if a
3764	    .ORDER dependency is detected.
3765	  o unit-tests/order: test the above
3766
37672012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3768
3769	* Makefile.in (MAKE_VERSION): 20121102
3770	  Merge with NetBSD make, pick up
3771	  o cond.c: allow cond_state[] to grow.
3772	    In meta mode with a very large tree, we can hit the limit
3773	    while processing dirdeps.
3774
37752012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3776
3777	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
3778
37792012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3780
3781	* Makefile.in (MAKE_VERSION): 20121010
3782	  o protect syntax that only bmake parses correctly.
3783	  o remove auto setting of FORCE_MACHINE, use configure's
3784	    --with-force-machine=whatever if that is desired.
3785
37862012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
3787
3788	* Makefile.in: do not lose history from make.1 when generating bmake.1
3789
37902012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
3791
3792	* Makefile.in (MAKE_VERSION): 20121007
3793	  Merge with NetBSD make, pick up
3794	  o compat.c: ignore empty commands - same as jobs mode.
3795	  o make.1: document meta chars that cause use of shell
3796
37972012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
3798
3799	* Makefile.in (MAKE_VERSION): bump version to 20120911
3800	* bsd.after-import.mk: include Makefile.inc early and allow it to
3801	  override PROG
3802
38032012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
3804
3805	* Makefile.in (MAKE_VERSION): bump version to 20120831
3806	  Merge with NetBSD make, pick up
3807	  o cast sizeof() to int for comparison
3808	  o minor make.1 tweak
3809
38102012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3811
3812	* Makefile.in (MAKE_VERSION): bump version to 20120830
3813	  Merge with NetBSD make, pick up
3814	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
3815	  o debug flag -dV causes -V to show raw value regardless.
3816
38172012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3818
3819	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
3820	  gets SRCTOP set.
3821
38222012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3823
3824	* Makefile.in (MAKE_VERSION): bump version to 20120704
3825	  Merge with NetBSD make, pick up
3826	  o Job_ParseShell should call Shell_Init if it has been
3827	    previously called.
3828	* Makefile.in: set USE_META based on configure result.
3829	  also .PARSEDIR is safer indicator of bmake.
3830
38312012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
3832
3833	* Makefile.in: bump version to 20120626
3834	  ensure CPPFLAGS is in CFLAGS
3835	* meta.c: avoid nested externs
3836	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
3837
38382012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3839
3840	* Makefile.in (MAKE_VERSION): bump version to 20120620
3841	  Merge with NetBSD make, pick up
3842	  o make_malloc.c: avoid including make_malloc.h again
3843
3844	* Makefile.in: avoid bmake only syntax or protect with
3845	  .if defined(.MAKE.LEVEL)
3846	* bsd.after-import.mk: replace .-include with .sinclude
3847	  ensure? SRCTOP gets a value
3848	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
3849
38502012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
3851
3852	* Makefile.in (MAKE_VERSION): bump version to 20120612
3853	  Merge with NetBSD make, pick up
3854	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
3855	    for greater portability.
3856	  o unit-tests/forloop: check that .for works as expected wrt
3857	    number of times and with "quoted strings".
3858
38592012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
3860
3861	* Makefile.in (MAKE_VERSION): bump version to 20120606
3862	  Merge with NetBSD make, pick up
3863	  o compat.c: use kill(2) rather than raise(3).
3864	* configure.in: look for sys/dev/filemon
3865	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
3866	  and pass BOOTSTRAP_XTRAS to boot-strap.
3867
38682012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
3869
3870	* Makefile.in (MAKE_VERSION): bump version to 20120604
3871	  Merge with NetBSD make, pick up
3872	  o util.c and var.c share same var for tracking if environ
3873	    has been reallocated.
3874	  o util.c provide getenv with setenv.
3875	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
3876	  when the shell actively strips .MAKE.* from the environment.
3877	  We still refer to the variable always as .MAKE.LEVEL
3878	* util.c fix bug in findenv() was finding prefix of name.
3879	* compat.c: re-raising SIGINT etc after running .INTERRUPT
3880	  results in more reliable termination of all activity on many
3881	  platforms.
3882
38832012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
3884
3885	* Makefile.in (MAKE_VERSION): bump version to 20120602
3886	  Merge with NetBSD make, pick up
3887	  o for.c: handle quoted items in .for list
3888
38892012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
3890
3891	* Makefile.in (MAKE_VERSION): bump version to 20120530
3892	  Merge with NetBSD make, pick up
3893	  o compat.c: ignore empty command.
3894
38952012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3896
3897	* Makefile.in (MAKE_VERSION): bump version to 20120524
3898	* FILES: add bsd.after-import.mk:
3899	  A simple means of integrating bmake into a BSD build system.
3900
39012012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3902
3903	* Makefile.in (MAKE_VERSION): bump version to 20120520
3904	  Merge with NetBSD make, pick up
3905	  o increased limit for nested conditionals.
3906
39072012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3908
3909	* Makefile.in (MAKE_VERSION): bump version to 20120518
3910	  Merge with NetBSD make, pick up
3911	  o use _exit(2) in signal hanlder
3912	  o Don't use the [dir] cache when building nodes that might have
3913	    changed since the last exec.
3914	  o Avoid nested extern declaration warnings.
3915
39162012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
3917
3918	* meta.c (fgetLine): avoid %z - not portable.
3919	* parse.c: Since we moved include of sys/mman.h
3920	  and def's of MAP_COPY etc. we got dups from a merge.
3921
39222012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
3923
3924	* Makefile.in (MAKE_VERSION): bump version to 20120420
3925	  Merge with NetBSD make, pick up
3926	  o restore duplicate supression in .MAKE.MAKEFILES
3927	    runtime saving can be significant.
3928	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
3929	    consumption up to 20%.
3930
39312012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
3932
3933	* Makefile.in (MAKE_VERSION): bump version to 20120420
3934          Merge with NetBSD make, pick up
3935	  o remove duplicate supression in .MAKE.MAKEFILES
3936	  o improved dir cache behavior
3937	  o gmake'ish export command
3938
39392012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
3940
3941	* Makefile.in (MAKE_VERSION): bump version to 20120325
3942	  Merge with NetBSD make, pick up
3943	  o fix parsing of :[#] in conditionals.
3944
39452012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3946
3947	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
3948	  since some systems cannot cope with .Nx <version>
3949
39502011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
3951
3952	* Makefile.in (MAKE_VERSION): bump version to 20111111
3953	  Merge with NetBSD make, pick up
3954	  o debug output for .PARSEDIR and .PARSEFILE
3955
39562011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3957
3958	* Makefile.in (MAKE_VERSION):  bump version to 20111010
3959
39602011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
3961
3962	* boot-strap: check for an expected file in the dirs we look for.
3963	* make-bootstrap.sh: pass on LDSTATIC
3964
39652011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
3966
3967	* Makefile.in (MAKE_VERSION): bump version to 20111001
3968	  Merge with NetBSD make, pick up
3969	  o ensure .PREFIX is set for .PHONY
3970	    and .TARGET set for .PHONY run via .END
3971	  o __dead used consistently
3972
39732011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
3974
3975	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
3976
39772011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
3978
3979	* Makefile.in (MAKE_VERSION): bump version to 20110905
3980	  Merge with NetBSD make, pick up
3981	  o meta_oodate: ignore makeDependfile
3982
39832011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
3984
3985	* Makefile.in (MAKE_VERSION): bump version to 20110828
3986	  Merge with NetBSD make, pick up
3987	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
3988	    as SILENT if a .meta file is created
3989
39902011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
3991
3992	* Makefile.in (MAKE_VERSION): bump version to 20110818
3993	  Merge with NetBSD make, pick up
3994	  o in meta mode, if target flagged .META a missing .meta file
3995	    means target is out-of-date
3996	  o fixes for gcc 4.5 warnings
3997	  o simplify job printing code
3998
39992011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
4000
4001	* Makefile.in (MAKE_VERSION): bump version to 20110808
4002	  Merge with NetBSD make, pick up
4003	  o do not touch OP_SPECIAL targets when doing make -t
4004
40052011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
4006
4007	* Makefile.in (MAKE_VERSION): bump version to 20110622
4008	  Merge with NetBSD make, pick up
4009	  o meta_oodate detect corrupted .meta file and declare oodate.
4010	* configure.in: add check for setsid
4011
40122011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
4013
4014	* Merge with NetBSD make, pick up
4015	  o unit-tests/modts now works on MirBSD
4016
40172011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
4018
4019	* Makefile.in (MAKE_VERSION): bump version to 20110606
4020	  Merge with NetBSD make, pick up
4021	  o ApplyModifiers: when we parse a variable which is not
4022	    the entire modifier string, or not followed by ':', do not
4023	    consider it as containing modifiers.
4024	  o loadfile: ensure newline at end of mapped file.
4025
40262011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
4027
4028	* Makefile.in (MAKE_VERSION): bump version to 20110505
4029	  Merge with NetBSD make, pick up
4030	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
4031	    of make's control.  In meta mode, any generated file within
4032	    said bailiwick, which  is found to be missing, causes current
4033	    target to be out-of-date.
4034
40352011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
4036
4037	* Makefile.in (MAKE_VERSION): bump version to 20110411
4038	  Merge with NetBSD make, pick up
4039	  o when long modifiers fail to match, check sysV style.
4040	    - add a test case
4041
40422011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
4043
4044	* Makefile.in (MAKE_VERSION): bump version to 20110410
4045	  Merge with NetBSD make, pick up
4046	  o :hash - cheap 32bit hash of value
4047	  o :localtime, :gmtime - use value as format string for strftime.
4048
40492011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
4050
4051	* Makefile.in (MAKE_VERSION): bump version to 20110330
4052	  mostly because its a cooler version.
4053	  Merge with NetBSD make, pick up
4054	  o NetBSD tags for meta.[ch]
4055	  o job.c call meta_job_finish() after meta_job_error().
4056	  o meta_job_error() should call meta_job_finish() to ensure
4057	    .meta file is closed, and safe to copy - if .ERROR target wants.
4058	   meta_job_finish() is safe to call repeatedly.
4059
40602011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
4061
4062	* unit-tests/modts: use printf if it is a builtin,
4063	  to save us from MirBSD
4064
4065	* Makefile.in (MAKE_VERSION): bump version to 20110329
4066	  Merge with NetBSD make, pick up
4067	  o fix for use after free() in CondDoExists().
4068	  o meta_oodate() report extra commands and return earlier.
4069
40702011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
4071
4072	* Makefile.in (MAKE_VERSION): bump version to 20110327
4073	  Merge with NetBSD make, pick up
4074	  o meta.c, if .MAKE.MODE contains curdirOk=yes
4075	    allow creating .meta files in .CURDIR
4076	* boot-strap (TOOL_DIFF): aparently at least on linux distro
4077	  formats the output of 'type' differently - so eat any "()"
4078
40792011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
4080
4081	* Makefile.in (MAKE_VERSION): bump version to 20110306
4082	  Merge with NetBSD make, pick up
4083	  o meta.c, only do getcwd() once
4084
40852011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
4086
4087	* Makefile.in (MAKE_VERSION): bump version to 20110305
4088	  Merge with NetBSD make, pick up
4089	  o correct sysV substitution handling of empty lhs and variable
4090	  o correct exists() check for dir with trailing /
4091	  o correct handling of modifiers for non-existant variables
4092	    during evaluation of conditionals.
4093	  o ensure MAP_FILE is defined.
4094	  o meta.c use curdir[] now exported by main.c
4095
40962011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
4097
4098	* Makefile.in (MAKE_VERSION): bump version to 20110225
4099	  Merge with NetBSD make, pick up
4100	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
4101	    makefiles have been read.
4102	  o fix example of :? modifier in man page.
4103
41042011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
4105
4106	* Makefile.in (MAKE_VERSION): bump version to 20110214
4107	  Merge with NetBSD make, pick up
4108	  o meta.c handle realpath() failing when generating meta file
4109	    name.
4110
4111	* sigcompat.c: convert to ansi so we can use higher warning levels.
4112
4113
41142011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
4115
4116	* Makefile.in (MAKE_VERSION): bump version to 20110207
4117	  Merge with NetBSD make, pick up
4118	  o fix for bug in meta mode.
4119
41202011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
4121
4122	* parse.c: SunOS 5.8 at least does not have MAP_FILE
4123
41242011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
4125
4126	* Makefile.in (MAKE_VERSION): bump version to 20110101
4127	  Merge with NetBSD make, pick up
4128	  o use mmap(2) if available, for reading makefiles
4129
41302010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
4131
4132	* Makefile.in (MAKE_VERSION): bump version to 20101215
4133	  Merge with NetBSD make, pick up
4134	  o ensure meta_job_error() does not report a previous .meta file
4135	    as being culprit.
4136
41372010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
4138
4139	* Makefile.in (MAKE_VERSION): bump version to 20101210
4140	  Merge with NetBSD make, pick up
4141	  o meta_oodate: track cwd per process, and only consider target
4142	    out-of-date if missing file is outside make's CWD.
4143	    Ignore files in /tmp/ etc.
4144	  o to ensure unit-tests results match, need to control LC_ALL
4145	    as well as LANG.
4146	  o fix for parsing bug in var.c
4147
41482010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
4149
4150	* Makefile.in (MAKE_VERSION): bump version to 20101126
4151	  Merge with NetBSD make, pick up
4152	  o if stale dependency is an IMPSRC, search via .PATH
4153	  o meta_oodate: if a referenced file is missing, target is
4154	    out-of-date.
4155	  o meta_oodate: if a target uses .OODATE in its commands,
4156	    it (.OODATE) needs to be recomputed.
4157	  o keep a pointer to youngest child node, rather than just its
4158	    mtime.
4159
41602010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
4161
4162	* Makefile.in (MAKE_VERSION): bump version to 20101101
4163
41642010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
4165
4166	* machine.sh: like os.sh,
4167	allow for uname -p producing useless drivel
4168
41692010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
4170
4171	* boot-strap: document configure knobs for meta and filemon.
4172
4173	* Makefile.in (MAKE_VERSION): bump version to 20100911
4174	  Merge with NetBSD make, pick up
4175	  o meta.c - meta mode
4176
4177	* make-bootstrap.sh.in: handle meta.c
4178	* configure.in: add knobs for use_meta and filemon_h
4179	  also, look for dirname, str[e]sep and strlcpy
4180	* util.c: add simple err[x] and warn[x]
4181
41822010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
4183
4184	* boot-strap (TOOL_DIFF): set this to ensure tests use
4185	  the same version of diff that configure tested
4186
4187	* Makefile.in (MAKE_VERSION): bump version to 20100808
4188	  Merge with NetBSD make, pick up
4189	  o in jobs mode, when we discover we cannot make something,
4190	    call PrintOnError before exit.
4191
41922010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
4193
4194	* Makefile.in (MAKE_VERSION): bump version to 20100806
4195	  Merge with NetBSD make, pick up
4196	  o formatting fixes for ignored errors
4197	  o ensure jobs are cleaned up regardless of where wait() was called.
4198
41992010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
4200
4201	* Makefile.in (MAKE_VERSION): bump version to 20100618
4202	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
4203
42042010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
4205
4206	* Makefile.in (MAKE_VERSION): bump version to 20100616
4207	  Merge with NetBSD make, pick up
4208	  o man page update
4209	  o call PrintOnError from JobFinish when we detect an error we
4210	    are not ignoring.
4211
42122010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
4213
4214	* Makefile.in (MAKE_VERSION): bump version to 20100606
4215	  Merge with NetBSD make, pick up
4216	  o man page update
4217
42182010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
4219
4220	* Makefile.in (MAKE_VERSION): bump version to 20100605
4221	  Merge with NetBSD make, pick up
4222	  o use bmake_signal() which is a wrapper around sigaction()
4223	    in place of signal()
4224	  o add .export-env to allow exporting variables to environment
4225	    without tracking (so no re-export when the internal value is
4226	    changed).
4227
42282010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
4229
4230	* Makefile.in (MAKE_VERSION): bump version to 20100524
4231	  Merge with NetBSD make, pick up
4232	  o fix for .info et al being greedy.
4233
42342010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
4235
4236	* Makefile.in (MAKE_VERSION): bump version to 20100520
4237	  Merge with NetBSD make, pick up
4238	  o back to using realpath on argv[0]
4239	    but only if contains '/' and does not start with '/'.
4240
42412010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
4242
4243	* boot-strap: use absolute path for bmake when running tests.
4244
4245	* Makefile.in (MAKE_VERSION):  bump version to 20100510
4246	  Merge with NetBSD make, pick up
4247	  o revert use of realpath on argv[0]
4248	    too many corner cases.
4249	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
4250
42512010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
4252
4253	* Makefile.in (MAKE_VERSION): bump version to 20100505
4254	  Merge with NetBSD make, pick up
4255	  o fix for missed SIGCHLD when compiled with SunPRO
4256	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
4257	    done the job.
4258
42592010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
4260
4261	* Makefile.in (MAKE_VERSION): bump version to 20100430
4262	  Merge with NetBSD make, pick up
4263	  o fflush stdout before writing to stdout
4264
42652010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
4266
4267	* Makefile.in (MAKE_VERSION): bump version to 20100423
4268	  Merge with NetBSD make, pick up
4269	  o updated unit tests for Haiku (this time for sure).
4270	* boot-strap: based on patch from joerg
4271	  honor --with-default-sys-path better.
4272	* boot-strap: remove mention of --with-prefix-sys-path
4273
42742010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
4275
4276	* Makefile.in (MAKE_VERSION): bump version to 20100422
4277	* Merge with NetBSD make, pick up
4278	  o fix for vfork() on Darwin.
4279	  o fix for bogus $TMPDIR.
4280	  o set .MAKE.MODE=compat for -B
4281	  o set .MAKE.JOBS=max_jobs for -j max_jobs
4282	  o allow unit-tests to run without any *.mk
4283	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
4284	* boot-strap: ignore /usr/share/mk except on NetBSD.
4285	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
4286	  ensure sort(1) behaves as expected.
4287
42882010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
4289
4290	* boot-strap: add FindHereOrAbove so we can use -m .../mk
4291
42922010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
4293
4294	* Makefile.in (MAKE_VERSION): bump version to 20100420
4295	* Merge with NetBSD make, pick up
4296	  o fix for variable realpath() behavior.
4297	    we have to stat(2) the result to be sure.
4298	  o fix for .export (all) when nested vars use :sh
4299
43002010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
4301
4302	* Makefile.in (MAKE_VERSION): bump version to 20100414
4303	* Merge with NetBSD make, pick up
4304	  o use realpath to resolve argv[0] (for .MAKE) if needed.
4305	  o add realpath from libc.
4306	  o add :tA to resolve variable via realpath(3) if possible.
4307
43082010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
4309
4310	* Makefile.in (MAKE_VERSION): bump version to 20100408
4311	* Merge with NetBSD make, pick up
4312	  o unit tests for .ERROR, .error
4313	  o fix for .ERROR to ensure it cannot be default target.
4314
43152010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
4316
4317	* Makefile.in (MAKE_VERSION): bump version to 20100406
4318	* Merge with NetBSD make, pick up
4319	  o fix for compat mode "Error code" going to debug_file.
4320	  o fix for .ALLSRC being populated twice.
4321	  o support for .info, .warning and .error directives
4322	  o .MAKE.MODE to control make's operational mode
4323	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
4324	    name(s).
4325	  o .MAKE.DEPENDFILE to control the name of the depend file
4326	  o .ERROR target - run on failure.
4327
43282010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
4329
4330	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
4331
4332	* os.sh,arch.c: patch for Haiku from joerg at netbsd
4333
43342010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
4335
4336	* Makefile.in (MAKE_VERSION): bump version to 20100222
4337	* Merge with NetBSD make, pick up
4338	  o better error msg for .for with mutiple inter vars
4339
4340	* boot-strap:
4341	  o use make-bootstrap.sh from joerg at netbsd
4342	    to avoid the need for a native make when bootstrapping.
4343	  o add "" everywhere ;-)
4344	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
4345	    otherwise the pre-formated version.
4346
43472010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
4348
4349	* Makefile.in (MAKE_VERSION): bump version to 20100102
4350	* Merge with NetBSD make, pick up:
4351	  o fix for -m .../
4352
43532009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
4354
4355	* Makefile.in (MAKE_VERSION): bump version to 20091118
4356	* Merge with NetBSD make, pick up:
4357	  o .unexport
4358	  o report lines that start with '.' and should have ':'
4359	    (catch typo's of .el*if).
4360
43612009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
4362
4363	* configure.in: Ensure that srcdir and mksrc are absolute paths.
4364
43652009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
4366
4367	* Makefile.in (MAKE_VERSION): fix version to 20091007
4368
43692009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
4370
4371	* Makefile.in (MAKE_VERSION): bump version to 200910007
4372	* Merge with NetBSD make, pick up:
4373	  o fix for parsing of :S;...;...; applied to .for loop iterator
4374	    appearing in a dependency line.
4375
43762009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
4377
4378	* Makefile.in (MAKE_VERSION): bump version to 20090909
4379	* Merge with NetBSD make, pick up:
4380	  o fix for -C, .CURDIR and .OBJDIR
4381	* boot-strap:
4382	  o allow share_dir to be set independent of prefix.
4383	  o select default share_dir better when prefix ends in $HOST_TARGET
4384	  o if FORCE_BSD_MK etc were set, include them in the suggested
4385	    install-mk command.
4386
43872009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
4388
4389	* Makefile.in (MAKE_VERSION): bump version to 20090908
4390	* Merge with NetBSD make, pick up:
4391	  o .MAKE.LEVEL for recursion tracking
4392	  o fix for :M scanning \:
4393
43942009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
4395
4396	* configure.in: Don't -D__EXTENSIONS__ if
4397	AC_USE_SYSTEM_EXTENSIONS says "no".
4398
43992009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
4400
4401	* Makefile.in (MAKE_VERSION): bump version to 20090826
4402	Simplify MAKE_VERSION to just the bare date.
4403	* Merge with NetBSD make, pick up:
4404	  o -C directory support.
4405	  o support for SIGINFO
4406	  o use $TMPDIR for temp files.
4407	  o child of vfork should be careful about modifying parent's state.
4408
4409
44102009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
4411
4412	* Appy some patches for MiNT from David Brownlee
4413
44142009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
4415
4416	* Makefile.in (BMAKE_VERSION): bump version to 20090222
4417	* Merge with NetBSD make, pick up:
4418	  o Possible null pointer de-ref in Var_Set.
4419
44202009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
4421
4422	* Makefile.in (BMAKE_VERSION): bump version to 20090204
4423	* Merge with NetBSD make, pick up:
4424	  o bmake_malloc et al moved to their own .c
4425	  o Count both () and {} when looking for the end of a :M pattern
4426	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
4427	  o strlist.c - functions for processing extendable arrays of pointers to strings.
4428	  o ClientData replaced with void *, so const void * can be used.
4429	  o New debug flag C for DEBUG_CWD
4430
44312008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
4432
4433	* Makefile.in (BMAKE_VERSION): bump version to 20081111
4434	  Apply patch from Joerg Sonnenberge to
4435	  configure.in:
4436	  o remove some redundant checks
4437	  o check for emlloc etc only in libutil and require the whole family.
4438	  util.c:
4439	  o remove [v]asprintf which is no longer used.
4440
44412008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
4442
4443	* Makefile.in (BMAKE_VERSION): bump version to 20081101
4444	* Merge with NetBSD make, pick up:
4445	  o util.c: avoid use of putenv() - christos
4446
44472008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
4448
4449	* Makefile.in (BMAKE_VERSION): bump version to 20081030
4450	  pick up man page tweaks.
4451
44522008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
4453
4454	* Makefile.in: move processing of LIBOBJS to after is definition!
4455	  thus we'll have getenv.c in SRCS only if needed.
4456
4457	* make.1: add examples of how to use :?
4458
4459	* Makefile.in (BMAKE_VERSION): bump version to 20081029
4460	* Merge with NetBSD make, pick up:
4461	  o fix for .END processing with -j
4462	  o segfault from Parse_Error when no makefile is open
4463	  o handle numeric expressions in any variable expansion
4464	  o debug output now defaults to stderr, -dF to change it - apb
4465	  o make now uses bmake_malloc etc so that it can build natively
4466	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
4467
44682008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
4469
4470	* Makefile.in (BMAKE_VERSION): bump version to 20080808
4471	* Merge with NetBSD make, pick up:
4472	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
4473	    long lines in Makefiles
4474	  o optimizations for VarQuote by joerg
4475	  o fix for PR/38756: dominik: make dumps core on invalid makefile
4476
44772008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
4478
4479	* Makefile.in (BMAKE_VERSION): bump version to 20080515
4480	* Merge with NetBSD make, pick up:
4481	  o fix skip setting vars in VAR_GLOBAL context, to handle
4482	    cases where VAR_CMD is used for other than command line vars.
4483
44842008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
4485
4486	* boot-strap (make_version): we may need to look in
4487	$prefix/share/mk for sys.mk
4488
4489	* Makefile.in (BMAKE_VERSION): bump version to 20080514
4490	* Merge with NetBSD make, pick up:
4491	  o skip setting vars in VAR_GLOBAL context, when already set in
4492	  VAR_CMD which takes precedence.
4493
44942008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
4495
4496	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
4497	* Merge with NetBSD make, pick up:
4498	  o fix for ?= when LHS contains variable reference.
4499
45002008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4501
4502	* merge some patches from NetBSD pkgsrc.
4503
4504	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
4505	the MAKSYSPATH used during bootstrap.
4506
4507	* Makefile.in (BMAKE_VERSION): bump version to 20080215
4508	* Merge with NetBSD make, pick up:
4509	  o warn if non-space chars follow 'empty' in a conditional.
4510
45112008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4512
4513	* Makefile.in (BMAKE_VERSION): bump version to 20080118
4514	* Merge with NetBSD make, pick up:
4515	  o consider dependencies read from .depend as optional - dsl
4516	  o remember when buffer for reading makefile grows - dsl
4517	  o add -dl (aka LOUD) - David O'Brien
4518
45192007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
4520
4521	* Makefile.in (BMAKE_VERSION): bump version to 20071022
4522	* Merge with NetBSD make, pick up:
4523	  o Allow .PATH<suffix> to be used for .include ""
4524
4525	* boot-strap: source default settings from .bmake-boot-strap.rc
4526
45272007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
4528
4529	* Makefile.in: fix maninstall on various systems
4530	  provided that our man.mk is used.
4531	  For non-BSD systems we install the preformatted page
4532	  into $MANDIR/cat1
4533
45342007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
4535
4536	* boot-strap: make bmake.1 too, so maninstall works.
4537
45382007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
4539
4540	* Makefile.in (BMAKE_VERSION): bump version to 20071014
4541	* Merge with NetBSD make, pick up:
4542	  o revamped handling of defshell - configure no longer needs to
4543	    know the content of the shells array - apb
4544	  o stop Var_Subst modifying its input - apb
4545	  o avoid calling ParseTrackInput too often - dsl
4546
45472007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
4548
4549	* Makefile.in (BMAKE_VERSION): bump version to 20071011
4550	* Merge with NetBSD make, pick up:
4551	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
4552
4553	* sigcompat.c: some tweaks for HP-UX 11.x based on
4554	  patch from Tobias Nygren
4555
4556	* configure.in: update handling of --with-defshell to match
4557	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
4558	  will now do what one might hope - provided the chosen shell
4559	  behaves enough like sh.
4560
45612007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
4562
4563	* Makefile.in (BMAKE_VERSION): bump to 20071008
4564	* Merge with NetBSD make, pick up:
4565	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
4566	  o .export/.MAKE.EXPORTED - export of variables - sjg
4567	  o .MAKE.MAKEFILES - track all makefiles read - sjg
4568	  o performance improvements - dsl
4569	  o revamp parallel job scheduling - dsl
4570
45712006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4572
4573	* Makefile.in (BMAKE_VERSION): bump to 20060728
4574	* Merge with NetBSD make, pick up:
4575	  o extra debug info during variable and cond processing - sjg
4576	  o shell definition now covers newline - rillig
4577	  o minor mem leak in PrintOnError - sjg
4578
45792006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4580
4581	* Makefile.in (BMAKE_VERSION):  bump to 20060511
4582	* Merge with NetBSD make, pick up:
4583	  o more memory leaks - coverity
4584	  o possible overflow in ArchFindMember - coverity
4585	  o extract variable modifier code out of Var_Parse()
4586	    so it can be called recursively - sjg
4587	  o unit-tests/moderrs - sjg
4588
45892006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
4590
4591	* Makefile.in (BMAKE_VERSION): bump to 20060412
4592	* Merge with NetBSD make, pick up:
4593	  o fixes for some memory leaks - coverity
4594	  o only read first sys.mk etc when searching sysIncPath - sjg
4595
4596	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
4597	setting ${MAKEFILE} - OBATA Akio
4598
45992006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
4600
4601	* Makefile.in (BMAKE_VERSION): bump to 20060318
4602	* Merge with NetBSD make, pick up:
4603	  o cleanup of job.c to remove remote handling, distcc is more
4604	    useful and this code was likely bit-rotting - dsl
4605	  o fix for :P modifier - sjg
4606	* boot-strap: set default prefix to something reasonable
4607	  (for me anyway).
4608
46092006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
4610
4611	* Makefile.in (BMAKE_VERSION): bump to 20060301
4612	* Merge with NetBSD make, pick up:
4613	  o make .WAIT apply recursively, document and test case - apb
4614	  o allow variable modifiers in a variable appear anywhere in
4615	    modifier list, document and test case - sjg
4616
46172006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
4618
4619	* Makefile.in (BMAKE_VERSION): bump to 20060222
4620	* Merge with NetBSD make, pick up:
4621	  o improved job token handling - dsl
4622	  o SIG_DFL the correct signal before exec - dsl
4623	  o more debug info during parsing - dsl
4624	  o allow variable modifiers to be specified via variable - sjg
4625	* boot-strap: explain why we died if no mksrc
4626
46272005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
4628
4629	* Makefile.in (BMAKE_VERSION): bump to 20051105
4630	* configure.in: always set default_sys_path
4631	  default is ${prefix}/share/mk
4632	  - remove prefix_sys_path, anyone wanting more than above
4633	    needs to set it manually.
4634
46352005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
4636
4637	* boot-strap: make this a bit easier for pkgsrc folk.
4638	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
4639	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
4640
46412005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
4642
4643	* Makefile.in (BMAKE_VERSION): bump to 20051102
4644	* job.c (JobFinish): fix likely ancient merge lossage
4645	fix from Todd Vierling.
4646	* boot-strap (srcdir): allow setting mksrc=none
4647
46482005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
4649
4650	* Makefile.in (BMAKE_VERSION): bump to 20051031
4651	* ranlib.h: skip on OSF too.
4652	  (NetBSD PR 31864)
4653
46542005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
4655
4656	* Makefile.in (BMAKE_VERSION): bump to 20051002
4657	  fix a silly typo
4658
46592005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
4660
4661	* Makefile.in (BMAKE_VERSION): bump to 20051001
4662	  support for UnixWare and some other systems,
4663	  based on patches from pkgsrc/bootstrap
4664
46652005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
4666
4667	* Makefile.in (BMAKE_VERSION): bump to 20050901
4668	* Merge with NetBSD make, pick up:
4669	  o possible parse error causing us to wander off.
4670
46712005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
4672
4673	* Makefile.in (BMAKE_VERSION): bump to 20050606
4674	* Merge with NetBSD make, pick up:
4675	  o :0x modifier for randomizing a list
4676	  o fixes for a number of -Wuninitialized issues.
4677
46782005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
4679
4680	* Makefile.in (BMAKE_VERSION): bump to 20050530
4681	* Merge with NetBSD make, pick up:
4682	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
4683
4684	* README: was seriously out of date.
4685
46862005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
4687
4688	* Important to use .MAKE rather than MAKE.
4689
46902005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
4691
4692	* Makefile.in (BMAKE_VERSION): bump to 20050315
4693	* Merge with NetBSD make, pick up:
4694	  o don't mistake .elsefoo for .else
4695	  o use suffix-specific search path correctly
4696	  o bunch of style nits
4697
46982004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
4699
4700	* boot-strap:
4701	o ensure that args to --src and --with-mksrc
4702	  are resolved before giving them to configure.
4703	o add -o "objdir" so that builder can control it,
4704	  default is $OS as determined by os.sh
4705	o add -q to suppress all the install instructions.
4706
47072004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
4708
4709	* Remove __IDSTRING()
4710
4711	* Makefile.in (BMAKE_VERSION): bump to 20040508
4712	* Merge with NetBSD make, pick up:
4713	  o posix fixes
4714	    - remove '-e' from compat mode
4715	    - add support for '+' command-line prefix.
4716	  o fix for handling '--' on command-line.
4717	  o fix include in lst.lib/lstInt.h to simplify '-I's
4718	  o we also picked up replacement of MAKE_BOOTSTRAP
4719	    with !MAKE_NATIVE which is a noop, but possibly confusing.
4720
47212004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
4722
4723	* Makefile.in (BMAKE_VERSION): bump to 20040414
4724	* Merge with NetBSD make, pick up:
4725	  o allow quoted strings on lhs of conditionals
4726	  o issue warning when extra .else is seen
4727	  o print line numer when errors encountered during parsing from
4728	  string.
4729
47302004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
4731
4732	* Makefile.in (BMAKE_VERSION):  bump to 20040220
4733	* Merge with NetBSD make, pick up:
4734	  o fix for old :M parsing bug.
4735	  o re-jigged unit-tests
4736
47372004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
4738
4739	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
4740	so that './bmake -f Makefile test' works.
4741
47422004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
4743
4744	* Makefile.in: (BMAKE_VERSION): bump to 20040214
4745	* Merge with NetBSD make, pick up:
4746	  o search upwards for *.mk
4747	  o fix for double free of var substitution buffers
4748	  o use of getopt replaced with custom code, since the usage
4749	  (re-scanning) isn't posix compatible.
4750
47512004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
4752
4753	* arch.c: don't include ranlib.h on ELF systems
4754	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
4755
47562004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
4757
4758	* Makefile.in (BMAKE_VERSION): bump to 20040118
4759
4760	* boot-strap (while): export vars we assign to on cmdline
4761	* unit-test/Makefile.in: ternary is .PHONY
4762
47632004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
4764
4765	* Makefile.in (BMAKE_VERSION): bump version to 20040108
4766	* Merge with NetBSD make, pick up:
4767	  o fix for ternary modifier
4768
47692004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
4770
4771	* Makefile.in (BMAKE_VERSION): bump version to 20040105
4772	* Merge with NetBSD make, pick up:
4773	  o fix for cond.c to handle compound expressions better
4774	  o variable expansion within sysV style replacements
4775
47762003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
4777
4778	* Make portable snprintf safer - output to /dev/null first to
4779	check space needed.
4780
4781	* Makefile.in (BMAKE_VERSION): bump version to 20031222
4782	* Merge with NetBSD make, pick up:
4783	  o -dg3 to show input graph when things go wrong.
4784	  o explicitly look for makefiles in objdir if not found in curdir so
4785	    that errors in .depend etc will be reported accurarely.
4786	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
4787	    instead as it more accurately reflects the expected behavior and
4788	    is more consistently implemented.
4789	  o avoid use of asprintf.
4790
47912003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
4792
4793	* util.c: Add asprintf and vasprintf.
4794
4795	* Makefile.in (BMAKE_VERSION): bump version to 20030928
4796	* Merge with NetBSD make, pick up:
4797	:[] modifier - allows picking words from a variable.
4798	:tW modifier - allows treating value as one big word.
4799	W flag for :C and :S - allows treating value as one big word.
4800
48012003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
4802
4803	* Merge with NetBSD make
4804	pick up -de flag to enable printing failed command.
4805	don't skip 1st two dir entries (normally . and ..) since
4806	coda does not have them.
4807
48082003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
4809
4810	* Makefile.in (BMAKE_VERSION): bump version to 20030909
4811	* Merge with NetBSD make, pick up:
4812	- changes for -V '${VAR}' to print fully expanded value
4813	  cf. -V VAR
4814	- CompatRunCommand now prints the command that failed.
4815	- several files got updated 3 clause Berkeley license.
4816
48172003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
4818
4819	* boot-strap: Allow setting configure args on command line.
4820
48212003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
4822
4823	* configure.in: add --with-defshell to allow sh or ksh
4824	to be selected as default shell.
4825
4826	* Makefile.in: bump version to 20030731
4827
4828	* Merge with NetBSD make
4829	Pick up .SHELL spec for ksh and associate man page changes.
4830	Also compat mode now uses the same shell specs.
4831
48322003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
4833
4834	* var.c (Var_Parse): ensure delim is initialized.
4835
4836	* unit-tests/Makefile.in: use single quotes to avoid problems from
4837	some shells.
4838
4839	* makefile.boot.in:
4840	Run the unit-tests as part of the bootstrap procedure.
4841
48422003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
4843
4844	* unit-tests/Makefile.in: always force complaints from
4845	${TEST_MAKE} to be from 'make'.
4846
4847	* configure.in: add check for 'diff -u'
4848	also fix some old autoconf'isms
4849
4850	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
4851	if using GCC add -Wno-cast-qual to CFLAGS for var.o
4852
4853	* Merge with NetBSD make
4854	Pick up fix for :ts parsing error in some cases.
4855	Pick unit-tests.
4856
48572003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
4858
4859	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
4860
4861	* var.c (Var_Parse): fix bug in :ts modifier, after const
4862	correctness fixes, must pass nstr to VarModify.
4863
48642003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
4865
4866	* Makefile.in: BMAKE_VERSION switch to a date based version.
4867	We'll generally use the date of last import from NetBSD.
4868
4869	* Merge with NetBSD make
4870	Pick up fixes for const-correctness, now passes WARNS=3 on
4871	NetBSD.
4872	Pick up :ts modifier, allows controlling the separator used
4873	between words in variable expansion.
4874
48752003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
4876
4877	* FILES: include boot-strap and os.sh
4878
4879	* Makefile.in: only set WARNS if we are NetBSD, the effect on
4880	FreeBSD is known to be bad.
4881
4882	* makefile.boot.in (bootstrap): make this the default target.
4883
4884	* Makefile.in: bump version to 3.1.19
4885
4886	* machine.sh: avoid A-Z with tr as it is bound to lose.
4887
48882003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
4889
4890	* Merge with NetBSD make
4891	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
4892	Plus some doc fixes.
4893
48942003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
4895
4896	* Merge with NetBSD make
4897	Pick up fix for PR/1523 - don't count a library as built, if there
4898	is no way to build it
4899
4900	* Bump version to 3.1.18
4901
49022003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
4903
4904	* Merge with NetBSD make
4905	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
4906	appears in src list.
4907
49082003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
4909
4910	* Merge with NetBSD make (mmm 10th anniversary!)
4911	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
4912	pick up -X which tells us to not export VAR=val via setenv if
4913	we are already doing so via MAKEFLAGS.  This saves valuable env
4914	space on systems like Darwin.
4915	set MAKE_VERSION to 3.1.17
4916
4917	* parse.c: pix up fix for suffix rules
4918
49192003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
4920
4921	* Merge with NetBSD make.
4922	pick up fix for propagating -B via MAKEFLAGS.
4923	set MAKE_VERSION to 3.1.16
4924
4925	* Apply some patches from pkgsrc-bootstrap/bmake
4926	Originally by Grant Beattie <grant@netbsd.org>
4927	I may have missed some - since they are based on bmake-3.1.12
4928
49292002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
4930
4931	* makefile.boot.in (bmake): update install targets for those that
4932	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
4933	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
4934
4935	* bmake.cat1: update the pre-formatted man page!
4936
49372002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
4938
4939	* Merge with NetBSD make.
4940	pick up fix for premature free of pointer used in call
4941	to Dir_InitCur().
4942	set MAKE_VERSION to 3.1.15
4943
49442002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
4945
4946	* configure.in: determine suitable value for MKSRC.
4947	override using --with-mksrc=PATH.
4948
4949	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
4950	configs(8) will use 'sun4' as an alias for 'sparc'.
4951
49522002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
4953
4954	* Merge with NetBSD make.
4955	pick up ${.PATH}
4956	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
4957	set MAKE_VERSION to 3.1.14
4958	add configure checks for killpg and sys/socket.h
4959
49602002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
4961
4962	* tag bmake-3-1-13
4963
4964	* makefile.boot.in (bmake): use install-mk
4965	Also setup ./mk before trying to invoke bmake.boot incase we
4966	needed install-mk to create a sys.mk for us.
4967
4968	* configure.in: If we need to add -I${srcdir}/missing, make it an
4969	absolute path so that it works for lst.lib too.
4970
4971	* make.h: always include sys/cdefs.h since we provide one if the
4972	host does not.
4973
4974	* Makefile.in (install-mk):
4975	use MKSRC/install-mk which will do the right thing.
4976	use uname -p for ARCH if possible.
4977	since install-mk will setup links bsd.prog.mk -> prog.mk if
4978	needed, just .include bsd.prog.mk
4979
4980	* Merge with NetBSD make (NetBSD-1.6)
4981	Code is ansi-C only now.
4982	Bug in handling of dotLast is fixed.
4983	Can now assign .OBJDIR and make will reset its notions of life.
4984	New modifiers :tu :tl for toUpper and toLower.
4985
4986Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4987
4988	* Merge with NetBSD make
4989	pick up fix for .END failure in compat mode.
4990	pick up fix for extra va_end() in ParseVErrorInternal.
4991
4992Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
4993
4994	* configure.in: for systems that have sys/cdefs.h check if it is
4995	compatible.  If not, include the one under missing, but tell it to
4996	include the native one too - necessary on Linux.
4997
4998	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
4999	include_next (for gcc) to get the native sys/cdefs.h
5000
5001Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5002
5003	* job.c (JobFinish): Fix an earlier merge bug that resulted in
5004	leaking descriptors when using -jN.
5005
5006	* job.c (JobPrintCommand): See if "curdir" exists before
5007	attempting to chdir().  Doing the chdir directly in make (when in
5008	compat mode) fails silently, so let the -jN version do the same.
5009	This can happen when building kernels in an object tree and
5010	playing clever games to reset .CURDIR.
5011
5012	* Merged with NetBSD make
5013	pick up .USEBEFORE
5014
5015Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5016
5017	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
5018
5019Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5020
5021	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
5022	us not to export the iterator variable when using VAR_CMD context.
5023
5024Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5025
5026	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
5027	its the wrong "fix".
5028
5029Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5030
5031	* Redesigned export of VAR_CMD's via MAKEFLAGS.
5032	We now simply append the variable names to .MAKEOVERRIDES, and
5033	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
5034	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
5035	Apart from fixing quoting bugs in previous version, this allows us
5036	to export vars to the environment by simply doing:
5037	.MAKEOVERRIDES+= PATH
5038	Merged again with NetBSD make, but the above is the only change.
5039
5040	* configure.in: added
5041	--disable-pwd-override		disable $PWD overriding getcwd()
5042	--disable-check-make-chdir	disable make trying to guess
5043		when it should automatically cd ${.CURDIR}
5044
5045	* Merge with NetBSD make, changes include:
5046	parse.c (ParseDoDependency): Spot that the syntax error is
5047	caused by an unresolved cvs/rcs conflict and say so.
5048	var.c: most of Var* functions now take a ctxt as 1st arg.
5049	now does variable substituion on rhs of sysv style modifiers.
5050
5051	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
5052	is now done here.  We append the name='value' to .MAKEOVERRIDES
5053	rather than directly into MAKEFLAGS as this allows a Makefile to
5054	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
5055	very similar mechanism.  Note that in adding name='value' to
5056	.MAKEOVERRIDES we do the moral equivalent of:
5057	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
5058
5059Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5060
5061	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
5062
5063	* Merged with NetBSD make
5064	make -dx can now be used to run commands via sh -x
5065	better error messages on exec failures.
5066
5067Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5068
5069	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
5070	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
5071	MACHINE etc otherwise they propagate from the previous bmake.
5072
5073	* configure.in (machine): allow --with-machine=generic to make
5074	configure use machine.sh to set MACHINE.
5075
5076	* job.c (JobInterrupt): convert to using WAIT_T and friends.
5077
5078	* Makefile.in: mention in bmake.1 that we use autoconf.
5079
5080	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
5081
5082Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5083
5084	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
5085	as that rather defeats the usefulness of ${MAKEFILE}.
5086
5087	* main.c (MainParseArgs): append command line variable assignments
5088	to MAKEFLAGS so that they get propagated to child make's.
5089	Apparently this is required POSIX behaviour?  Its useful anyway.
5090
5091Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5092
5093	* compat.c (CompatRunCommand): don't use perror() since stdio may
5094	cause problems in child of vfork().
5095
5096	* compat.c, main.c: Call PrintOnError() when we are going to bail.
5097	This routine prints out the .curdir where we stopped and will also
5098	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
5099
5100	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
5101	:@ expansion.
5102
5103	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
5104
5105	* Added RCSid's for the files we've touched.
5106
5107Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5108
5109	* configure.in:	Thanks to some clues from mdb@juniper.net,
5110	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
5111	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
5112
5113  --with-machine=MACHINE  explicitly set MACHINE
5114  --with-force-machine=MACHINE  set FORCE_MACHINE
5115  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
5116  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
5117  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
5118  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
5119
5120	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
5121
5122	* makefile: added a pathetically simple makefile to drive
5123	bootstrapping.  Running configure by hand is more useful.
5124
5125	* Makefile.in: added MAKE_VERSION, and reworked things to be less
5126	dependent on NetBSD bsd.*.mk
5127
5128	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
5129	_PATH_OBJDIRPREFIX for those that don't want a default.
5130	construct _PATH_DEFSYSPATH from the info we get from configure.
5131
5132	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
5133	if MAKE_VERSION is defined.
5134
5135	* compat.c: when we bail, print out the .CURDIR we were in.
5136
5137Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5138
5139	* Merged with NetBSD make
5140
5141	* var.c: fixed a bug in the handling of the modifier :P
5142	if the node as found but the path was null, we segfault trying to
5143	duplicate it.
5144
5145Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
5146
5147	* Merged with NetBSD make
5148
5149	* make.c: Make_OODate's test for a library out of date was using
5150	cmtime where it should have used mtime (my bug).
5151
5152	* compat.c: Use perror() to tell us what really went wrong when we
5153	cannot exec a command.
5154
5155Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5156
5157	* Merged with NetBSD make
5158
5159Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5160
5161	* Merged with NetBSD make
5162
5163Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5164
5165	* Merged with NetBSD make
5166
5167Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5168
5169	* Merged with NetBSD make
5170
5171Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5172
5173	* util.c: don't provide signal() since we use sigcompat.c
5174
5175	* Makefile.in: added a build target.
5176
5177	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
5178	These allow some quite clever magic.
5179
5180	* main.c (main): added support for getenv(MAKESYSPATH).
5181
5182Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5183
5184	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
5185	This avoids objdir having a different value depending on how a
5186	directory was reached (via command line, or subdir.mk).
5187
5188	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
5189
5190Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
5191
5192	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
5193	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
5194	I've been testing this in NetBSD's make for some weeks.
5195
5196	* Turn Makefile into Makefile.in and make it useful.
5197
5198Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
5199
5200	* Imported NetBSD's -current make(1) and resolve conflicts.
5201
5202	* Applied autoconf patches from bmake v2
5203
5204	* Imported clean code base from NetBSD-1.0
5205