xref: /freebsd/contrib/bmake/ChangeLog (revision 43a5ec4eb41567cc92586503212743d89686d78f)
12021-12-15  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* cond.c: fix mem leak in CondParser_Leaf
4
52021-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
6
7	* VERSION (_MAKE_VERSION): 20211212
8	Merge with NetBSD make, pick up
9	o rename Parse_SetInput to Parse_PushInput
10	o remove remove period from end of error messages and warnings
11	to be more consistent
12	o arch.c: use simpler memory management for parsing archive members
13	o cond.c: rework and reduce recursion
14	o for.c: rename some functions to better reflect purpose
15	o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string.
16	o var.c: in parse errors, mark whitespace more clearly
17	inline ParseEmptyArg into CondParser_FuncCallEmpty
18	minimize calls to LazyBuf_Get in ParseVarnameLong
19	treat .SUFFIXES as a read-only variable
20
212021-12-07  Simon J Gerraty  <sjg@beast.crufty.net>
22
23	* VERSION (_MAKE_VERSION): 20211207
24	Merge with NetBSD make, pick up
25	o inline HashIter_Init
26	o parse.c: inline common subexpression in ParseRawLine
27	o var.c: merge branches for modifiers ':D' and ':U'
28	extract common code into Expr_Words
29	extract common code into Expr_Str
30	move low-level implementation details out of Var_Parse
31
322021-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
33
34	* VERSION (_MAKE_VERSION): 20211206
35	Merge with NetBSD make, pick up
36	o add unit-tests/varmod-loop-delete
37	o for.c: inline Str_Words - reduce memory allocation
38	o parse.c: do not try to expand fixed variable names
39	only allocate the name of an included file if necessary
40	clean up ParseInclude
41	o var.c: fix use-after-free in modifier ':@'
42	save a memory allocation in each modifier ':O' and ':u'
43	save a memory allocation in the modifier ':[...]'
44	in UnexportVars, replace Str_Words with Substring_Words to
45	reduce allocations and copying.
46
472021-12-04  Simon J Gerraty  <sjg@beast.crufty.net>
48
49	* VERSION (_MAKE_VERSION): 20211204
50	Merge with NetBSD make, pick up
51	o flesh out a number of tests
52	o replace enums with bitfields, this simplifies a lot of code.
53	o var.c: refactor ParseModifierPartSubst
54
552021-10-24  Simon J Gerraty  <sjg@beast.crufty.net>
56
57	* VERSION (_MAKE_VERSION): 20211024
58	Merge with NetBSD make, pick up
59	o Punt on write errors - ENOSPC etc.
60
612021-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
62
63	* configure.in: use_defshell, set both DEFSHELL_INDEX
64	and defshell_path if appropriate.
65	This makes it easier to use say the KSH specification with
66	and alternate path for the shell.
67
68	* configure.in compat.c: for SCO we need to force UseShell
69
70	* configure.in: SCO /bin/sh is not usable, provide a list of
71	alternatives for use as .SHELL.
72	We still have to mark some tests as broken, plus more if we end up
73	with ksh as .SHELL.
74	Issue a warning about skipped tests.
75
76	* boot-strap: leave TOOL_DIFF to configure
77
78	* configure.in: on SCO native cc is not usable,
79	gcc is to be found in /usr/gnu/bin
80	and while ancient is at least able to compile bmake.
81	Thus we add /usr/gnu/bin to PATH if it exists, and later
82	check if $CC would have been found via $PATH.
83	If not we set CC to the full path of $CC.
84	Also gnu diff is known to support -u, so if it exists use it.
85
86	* configure.in: move getopt to AC_REPLACE_FUNCS
87	also add AC_C_INLINE - in an attempt to compile using
88	native cc on SCO.
89
90	* configure.in: check for stresep as well as strsep, since we
91	define the later to the former if necessary, and if we have to
92	provide stresep we also need to provide a prototype.
93
94	* configure.in: we no longer need to worry about
95	sys/cdefs.h providing __RCSID which simplifies things quite a bit.
96
97	* make.h: make sure we have __RCSID
98
99	* unit-tests/Makefile.config.in: add TOOL_DIFF so configure
100	can control it.
101
1022021-10-20  Simon J Gerraty  <sjg@beast.crufty.net>
103
104	* VERSION: 20211020
105	Merge with NetBSD make, pick up
106	o confirm sync of unit-tests
107
1082021-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
109
110	* configure.in: check if timezone Europe/Berlin is supported
111	if not try UTC-1
112	* configure.in: if .OBJDIR is $srcdir/obj we need to create a
113	symlink unit-tests -> ../unit-tests/obj so that
114	unit-tests/Makefile.config is put in the right place.
115	* refine filtering of .OBJDIR in unit-tests
116
1172021-10-16  Simon J Gerraty  <sjg@beast.crufty.net>
118
119	* Fix unit-tests on Minix 3.2.0
120	o job.c: do not punt if read of token pipe fails for EAGAIN.
121	On Minix at least, we are not ready to read the childExitJob pipe
122	when poll says we are.
123	There should actually be no reason for this pipe to be
124	non-blocking, but while that works fine on {Net,Free}BSD it
125	breaks another test case on Minix.
126	o unit-tests/Makefile: deal with variants of error messages
127	  and use of obj as .OBJDIR
128
1292021-10-14  Simon J Gerraty  <sjg@beast.crufty.net>
130
131	* configure.in: add sigaction to AC_REPLACE_FUNCS
132	we also need to check for sigaddset etc just for the benefit of
133	sigact.c
134
135	* Add sigact.c as sigaction.c so this "just works".
136	This should have been done back when bmake_signal started using
137	sigaction (I only just noticed that sigact.c wasn't here ;-)
138	Note: I no longer have access to any system where this would matter.
139
1402021-10-13  Simon J Gerraty  <sjg@beast.crufty.net>
141
142	* VERSION (_MAKE_VERSION): 20211011
143
144	* Makefile: cleanup a little
145
146	* configure.in: check for sigsetmask
147
1482021-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
149
150	* VERSION (_MAKE_VERSION): 20211001
151	Merge with NetBSD make, pick up
152	o reduce locations reducing text size
153	o remove unnecessary const
154	o cond.c: fix lint warning on i386
155	do not allow unquoted 'left == right' after modifier ':?'
156	o hash.c: fix build for DEBUG_HASH_LOOKUP
157	o var.c: fix memory leak in error case of the ':?' modifier
158
1592021-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
160
161	* VERSION (_MAKE_VERSION): 20210911
162	Merge with NetBSD make, pick up
163	o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
164
1652021-09-08  Simon J Gerraty  <sjg@beast.crufty.net>
166
167	* VERSION (_MAKE_VERSION): 20210906
168	Merge with NetBSD make, pick up
169	o more unit tests
170	o lint cleanup
171	o rename some functions to better fit purpose
172	o for.c: cleanup - remove unnecessary optimization
173	  fix embedded newlines
174	o parse.c: correct case for CVS/RCS
175
1762021-08-11  Simon J Gerraty  <sjg@beast.crufty.net>
177
178	* VERSION (_MAKE_VERSION): 20210808
179	Merge with NetBSD make, pick up
180	o var.c: remove redundant initialization in ApplyModifier_Order
181
182	* mk/options.mk: issue warning for incorrect usage
183
1842021-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
185
186	* var.c: use long for :On if we don't have a 64bit int type
187
188	* VERSION (_MAKE_VERSION): 20210803
189	Merge with NetBSD make, pick up
190	o rework varmod-order tests to avoid qsort instability
191	o make.1: clarify :On entry
192
1932021-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
194
195	* VERSION (_MAKE_VERSION): 20210731
196	Merge with NetBSD make, pick up
197	o fix some lint issues
198	o more unit tests
199	o var.c: rework of ApplyModifier_Order
200
2012021-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
202
203	* util.c: add strto*l if HAVE_STRTO*L not defined
204
205	* VERSION (_MAKE_VERSION): 20210730
206	Merge with NetBSD make, pick up
207	o var.c: add :On and :Orn for numeric sort
208	  disabled if no 64bit type available.
209	o _strtol.h: to implement strto*l functions
210
2112021-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
212
213	* VERSION (_MAKE_VERSION): 20210704
214	Merge with NetBSD make, pick up
215	o unit-tests: fix some tests to be more portable
216	- job-output-null not all shells do the same number of write calls
217	- objdir-writable if TMPDIR is set; /tmp may not be usable
218
2192021-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
220
221	* VERSION (_MAKE_VERSION): 20210701
222	Merge with NetBSD make, pick up
223	o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped;
224	some tests just cannot work in some environments.
225	o buf.c: simpler upper bound for length in Buf_AddInt
226	o cond.c: fix grammar in error message for malformed conditional
227	o for.c: prevent newline injection (from ${.newline}) in .for loops
228	o var.c: use more practical data type in RegexReplace
229	(avoid need for %zu)
230	extract RegexReplace from ModifyWord_SubstRegex
231
2322021-06-21  Simon J Gerraty  <sjg@beast.crufty.net>
233
234	* VERSION (_MAKE_VERSION): 20210621
235	Merge with NetBSD make, pick up
236	o var.c: only report error for unmatched regex subexpression
237	when linting (-dL) since we cannot tell when an unmatched
238	subexpression is an expected result.
239	o move unmatched regex subexpression tests to
240	varmod-subst-regex.mk and enable strict (lint) mode
241
2422021-06-16  Simon J Gerraty  <sjg@beast.crufty.net>
243
244	* VERSION (_MAKE_VERSION): 20210616
245	Merge with NetBSD make, pick up
246	o more unit tests
247	o cond.c: rename If_Eval to EvalBare
248	improve function names for parsing conditions
249	o job.c: fix error handling of targets that cannot be made
250	o var.c: uncompress code in ApplyModifier_Unique
251
2522021-05-18  Simon J Gerraty  <sjg@beast.crufty.net>
253
254	* VERSION (_MAKE_VERSION): 20210518
255	Merge with NetBSD make, pick up
256	o fix unit-tests/opt-chdir to cope with /nonexistent existing.
257	o job.c: Print -de error information when running multiple jobs
258
2592021-04-20  Simon J Gerraty  <sjg@beast.crufty.net>
260
261	* VERSION (_MAKE_VERSION): 20210420
262	Merge with NetBSD make, pick up
263	o use C99 bool type
264	o convert VarEvalFlags back into an enum
265	o cond.c: do not complain when skipping the condition 'no >= 10'
266	o hash.c: avoid allocating memory for simple variable names
267	o job.c: use distinct wording for writing to the shell commands file
268	remove type name for the abort status in job handling
269	rename PrintOutput to PrintFilteredOutput to avoid confusion
270	o main.c: avoid double slash in name of temporary directory
271	o var.c: use straight quotes for error 'Bad conditional expression'
272	reduce memory allocations in the modifiers ':D' and ':U'
273	rename members of ModifyWord_LoopArgs
274	clean up pattern flags for the modifiers ':S' and ':C'
275	reduce memory allocation and strlen calls in modifier ':from=to'
276	in the ':Q' modifier, only allocate memory if necessary
277	improve performance for LazyBuf
278	remove redundant parameter from ParseVarnameLong
279	migrate ParseModifierPart to use Substring
280	avoid unnecessary calls to strlen when evaluating modifiers
281	migrate ModifyWord functions to use Substring
282	migrate handling of the modifier ':S,from,to,' to Substring
283	reduce debug logging and memory allocation for ${:U...}
284	reduce verbosity of the -dv debug logging for standard cases
285	clean up debug logging for ':M' and ':N'
286	disallow '$' in the variable name of the modifier ':@'
287	simplify access to the name of an expression during evaluation
288
2892021-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
290
291	* VERSION (_MAKE_VERSION): 20210330
292	Merge with NetBSD make, pick up
293	o replace enum bit-field with struct bit-field for VarEvalFlags
294	o rename VARE_NONE to VARE_PARSE_ONLY
295	o var.c: rename ApplyModifiersState to ModChain
296	fix double varname expansion in the variable modifier '::='
297	change debug log for variable evaluation flags to lowercase
298
2992021-03-14  Simon J Gerraty  <sjg@beast.crufty.net>
300
301	* VERSION (_MAKE_VERSION): 20210314
302	Merge with NetBSD make, pick up
303	o var.c: avoid evaluating many modifiers in parse only mode
304	in strict mode (-dL) many variable references are parsed twice,
305	the first time just to report parse errors early, so we want to
306	avoid side effects and wasted effort to the extent possible.
307
3082021-02-26  Simon J Gerraty  <sjg@beast.crufty.net>
309
310	* VERSION (_MAKE_VERSION): 20210226
311	Merge with NetBSD make, pick up
312	o remove freestanding freeIt variables
313	link via FStr
314	o var.c: restructure code in ParseVarname to target human readers
315	improve error message for;
316	  bad modifier in variable expression
317	  unclosed modifier
318	  unknown modifier
319	remove redundant parameter of ApplySingleModifier
320	explain non-obvious code around indirect variable modifiers
321	quote ':S' in error message about missing delimiter
322	extract ParseModifier_Match into separate function
323	add context information to error message about ':range' modifier
324	add quotes around variable name in an error message
325	reorder code in ModifyWords
326	use more common parameter order for VarSelectWords
327	make ModifyWord_Subst a little easier to understand
328	do not expand variable name from the command line twice
329	extract ExistsInCmdline from Var_SetWithFlags
330	save a hash map lookup when defining a cmdline variable
331	clean up VarAdd, Var_Delete, Var_ReexportVars
332	use bit-shift expressions for VarFlags constants
333	rename constants for VarFlags
334	rename ExprDefined constants for debug logging
335	rename ExprStatus to ExprDefined
336	split parameters for evaluating variable expressions
337	reduce redundant code around ModifyWords
338	print error about failed shell command before overwriting variable
339	clean up ValidShortVarname, ParseVarnameShort
340	rename VarExprStatus to ExprStatus
341	add functions for assigning the value of an expression
342	rename ApplyModifiersState_Define to Expr_Define
343	condense the code for parsing :S and :C modifiers
344
3452021-02-06  Simon J Gerraty  <sjg@beast.crufty.net>
346
347	* VERSION (_MAKE_VERSION): 20210206
348	Merge with NetBSD make, pick up
349	o unit-tests: use private TMPDIR to avoid errors from other users
350
3512021-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
352
353	* VERSION (_MAKE_VERSION): 20210205
354	Merge with NetBSD make, pick up
355	o avoid strdup in mkTempFile
356	o always use vfork
357	o rename context and ctxt to scope
358	o rename some VAR constants to SCOPE
359	o Var_ functions, move the scope to the front
360	o use shortcut functions Global_Set and Global_Append
361	o add shortcut Global_Delete for deleting a global variable
362	o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
363	o compat.c: when exiting due to an error, print graph information
364	o enum.c: remove overengineered Enum_ValueToString
365	o make.c: remove unused INTERNAL flag
366	remove unused return type of MakeBuildParent
367	o parse.c: replace parse error "Need an operator" with better message
368	o var.c: improve documentation about variable scopes
369	rename Var_ValueDirect to GNode_ValueDirect
370	rename old Var_SetWithFlags to Var_SetExpandWithFlags
371	merge SetVar into Var_SetWithFlags
372	split Var_Exists into plain Var_Exists and Var_ExistsExpand
373	split Var_Append into Var_Append and Var_AppendExpand
374	replace enum bit-set with bit-field
375	o unit-tests/var-op-shell: use kill rather than kill -14
376	which broke on darwin with recent update.
377
3782021-02-01  Simon J Gerraty  <sjg@beast.crufty.net>
379
380	* configure.in: check for sig_atomic_t and define it as 'int'
381	if missing.
382
383	* VERSION (_MAKE_VERSION): 20210201
384	Merge with NetBSD make, pick up
385	o use sig_atomic_t for caught_sigchld
386
3872021-01-30  Simon J Gerraty  <sjg@beast.crufty.net>
388
389	* VERSION (_MAKE_VERSION): 20210130
390	Merge with NetBSD make, pick up
391	o more unit tests
392	o convert SearchPath to struct
393	o split Buf_Destroy into Buf_Done and Buf_DoneData
394	o for.c: split For_Eval into separate functions
395	rename struct For to struct ForLoop
396	o job.c: do not create empty shell files in jobs mode
397	rename JobOpenTmpFile to JobWriteShellCommands
398	reduce unnecessary calls to waitpid
399	o parse.c: in -dp mode, print stack trace with each diagnostic
400
4012021-01-23  Simon J Gerraty  <sjg@beast.crufty.net>
402
403	* VERSION (_MAKE_VERSION): 20210123
404	Merge with NetBSD make, pick up
405	o rename Dir_Expand to SearchPath_Expand
406	o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
407	o cond.c: fix debug output for comparison operators in conditionals
408	o dir.c: split Dir_FindFile into separate functions
409
4102021-01-20  Simon J Gerraty  <sjg@beast.crufty.net>
411
412	* VERSION (_MAKE_VERSION): 20210120
413	Merge with NetBSD make, pick up
414	o fix some more lint nits
415	o refine some unit tests for portability
416	o cond.c: rework parsing
417
4182021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
419
420	* VERSION (_MAKE_VERSION): 20210110
421	Merge with NetBSD make, pick up
422	o fix lint warnings
423	o consistently use boolean expressions in conditions
424
4252021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
426
427	* VERSION (_MAKE_VERSION): 20210108
428	Merge with NetBSD make, pick up
429	o job.c: back to polling token pipe if we want a token
430	o main.c: always print 'stopped in' on first call
431	The execption is if we bail because of an abort token
432	in which case just exit 6.
433
4342021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
435
436	* VERSION (_MAKE_VERSION): 20210101
437	Merge with NetBSD make, pick up
438	o Happy New Year!
439	o rename CmdOpts.lint to strict
440	o exit 2 on technical errors
441	o replace pointers in controlling conditions with booleans
442	o replace global preserveUndefined with VARE_KEEP_UNDEF
443	o compat.c: re-export variables from the actual make process
444	if using vfork this is the effect anyway
445	o cond.c: clean up VarParseResult constants
446	o for.c: fix undefined behavior in SubstVarLong
447	make control flow in SubstVarLong of .for loops more obvious
448	clean up SubstVarShort in .for loops
449	extract ForSubstBody from ForReadMore
450	clean up ForReadMore
451	simplify termination condition for .for loop
452	add error handling for .for loop items
453	job.c: re-export variables from the actual make process
454	parse.c: remove mmap for loading files, only allow files < 1 GiB
455	fix edge case in := with undefined in variable name
456	skip variable expansion in ParseDependencyTargetWord
457	var.c: split ExportVar into separate functions
458	clean up code in extracted ExportVar functions
459	remove dead code from ApplyModifiersIndirect
460	split Var_Subst into easily understandable functions
461	clean up VarParseResult constants
462
4632020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
464
465	* main.c: use .MAKE.DEPENDFILE as set by makefiles
466
4672020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
468
469	* VERSION (_MAKE_VERSION): 20201222
470	Merge with NetBSD make, pick up
471	o make DEBUG macro return boolean
472	o parse.c: fix assertion failure for files without trailing newline
473	o var.c: allow .undef to undefine multiple variables at once
474	remove excess newline from parse errors
475
4762020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
477
478	* VERSION (_MAKE_VERSION): 20201221
479	Merge with NetBSD make, pick up
480	o some unit-test updates
481
4822020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
483
484	* VERSION (_MAKE_VERSION): 20201220
485	Merge with NetBSD make, pick up
486	o more unit tests
487	o return FStr from Var_Parse and Var_Value
488	o spell nonexistent consistently
489	o add str_basename to reduce duplicate code
490	o compat.c: fix .ERROR_TARGET in compat -k mode
491	extract InitSignals from Compat_Run
492	extract UseShell from Compat_RunCommand
493	o cond.c: error out if an '.endif' or '.else' contain extraneous text
494	o for.c: rename ForIterate to ForReadMore
495	o hash.c: clean up hash function for HashTable
496	o lst.c: rename Vector.priv_cap to cap
497	o main.c: remove constant parameter from MakeMode
498	o make.c: use symbolic time for 0 in Make_Recheck
499	extract MakeChildren from MakeStartJobs
500	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
501	fix error message for .info/.warning/.error without argument
502	extract Var_Undef from ParseDirective
503	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
504	rename mode constants for ParseGetLine to be more expressive
505	reduce debugging details in Parse_SetInput
506	fix line numbers in .for loops
507	split ParseGetLine into separate functions
508	fix garbled output for failed shell command
509	var.c: remove redundant assignment in ApplyModifier_SysV
510	error out on unknown variable modifiers at parse time
511	remove wrong error message for indirect modifier in lint mode
512	extract ApplySingleModifier from ApplyModifiers
513	use FStr for memory management in Var_SetWithFlags
514	extract SetVar from Var_SetWithFlags
515	use FStr in VarNew
516	extract string functions from ApplyModifier_To
517	error out if .undef has not exactly 1 argument
518	extract Var_DeleteVar from Var_Delete
519	extract Var_Undef from ParseDirective
520	clean up memory management for expanding variable expressions
521
5222020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
523
524	* avoid %zu
525
526	* lst.c: avoid anonymous union
527
528	* VERSION (_MAKE_VERSION): 20201212
529	Merge with NetBSD make, pick up
530	o more unit tests
531	o inline Targ_Ignore and Targ_Silent
532	o split JobFlags into separate fields
533	o remove const from function parameters (left overs from refactoring)
534	o eliminate boolean argument of Var_Export
535	o make API of Buf_Init simpler
536	o rename ParseRunOptions to ParseCommandFlags
537	o replace *line with line[0]
538	o compat.c: fix wrong exit status for multiple failed main targets
539	refactor Compat_Run to show the error condition more clearly
540	don't make .END if the main targets already failed (-k mode)
541	fix exit status in -k mode if a dependency fails
542	o for.c: clean up Buf_AddEscaped in .for loops
543	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
544	make Job_Touch simpler
545	refactor JobFinish
546	rename Shell.exitFlag to errFlag
547	move Job.xtraced to ShellWriter
548	make printing of shell commands independent from the job
549	rename shell flags in struct Shell
550	extract JobOpenTmpFile from JobStart
551	rename RunFlags to CommandFlags
552	split various Job.* into separate fields
553	rename commandShell to shell
554	extract InitShellNameAndPath from Shell_Init
555	replace signal handling macros with local functions
556	replace macro MESSAGE with local function
557	parse.c: error out on null bytes in makefiles
558	error out on misspelled directives
559	rename IFile.nextbuf to readMore
560	fix undefined behavior in ParseEOF
561	str.c: remove redundant call to strlen in Str_Words
562	var.c: error out on misspelled .unexport-env
563	error out on misspelled .export directives
564	extract ExportVars from Var_Export
565	extract ExportVarsExpand from Var_Export
566	eliminate boolean argument of Var_Export
567	fix undefined behavior when exporting ${:U }
568	rename Var_ExportVars to Var_ReexportVars
569	rename Var_Export1 to ExportVar
570
5712020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
572
573	* VERSION (_MAKE_VERSION): 20201206
574	Merge with NetBSD make, pick up
575	o more unit tests
576	o inline macros for debug logging
577	o use consistent variable names for list nodes
578	o define constants for enum zero-values
579	o dir.c: use fixed format for debug output of the directory cache
580	remove Dir_InitDir
581	o lst.c: inline Lst_Enqueue, Vector_Done
582	o meta.c: remove unused parameter from meta_needed
583	o parse.c: rename parse functions
584	o suff.c: extract ExpandChildrenRegular from ExpandChildren
585	o targ.c: don't concatenate identifiers in Targ_PrintType
586	o var.c: remove comment decoration
587	extract UnexportVars from Var_UnExport
588	extract GetVarnamesToUnexport from Var_UnExport
589	extract UnexportEnv from Var_UnExport
590	extract UnexportVar from Var_UnExport
591	move CleanEnv to UnexportVars
592	replace pointer comparisons with enum
593	add FStr to var.c to make memory handling simpler
594	use FStr in Var_UnExport
595	move type definitions in var.c to the top
596	extract FreeEnvVar from Var_Parse
597	extract ShuffleStrings from ApplyModifier_Order
598
5992020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
600
601	* VERSION (_MAKE_VERSION): 20201130
602	Merge with NetBSD make, pick up
603	o add unit tests for META MODE
604	o reduce memory allocation for dirSearchPath, GNode.parents,
605	GNode.children, OpenDirs
606	o reduce pointer indirection for GNode.cohorts and
607	GNode.implicitParents
608	o remove pointer indirection from GNode.commands
609	o inline Lst_ForEachUntil in meta mode
610	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
611	clean up memory management for CachedDirs
612	fix the reference count of dotLast going negative
613	add debug logging for OpenDirs_Done
614	extract CacheNewDir from Dir_AddDir
615	add debug logging for reference counting of CachedDir
616	rename some Dir functions to SearchPath
617	o job.c: rename some global variables
618	o main.c: reduce memory allocation in ReadBuiltinRules
619	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
620	CmdOpts.makefiles
621	Add .MAKE.UID and .MAKE.GID
622	o make.c: reduce memory allocation for/in toBeMade,
623	Make_ProcessWait, Make_ExpandUse
624	o meta.c: reduce memory allocation in meta_oodate
625	o parse.c: reduce memory allocations for parsing dependencies and
626	targets
627	o suff.c: reduce memory allocation in suffix handling
628
6292020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
630
631	* VERSION (_MAKE_VERSION): 20201124
632	Merge with NetBSD make, pick up
633	o .MAKE.{UID,GID} represent uid and gid running make.
634	o fix error handling for .BEGIN and .END dependency in -k mode
635	o fix missing "Stop." after failed .END node in -k mode
636	o use properly typed comparisons in boolean contexts
637	o replace a few HashTable_CreateEntry with HashTable_Set
638	o add HashSet type
639	o compat.c: split Compat_Make into smaller functions
640	extract DebugFailedTarget from Compat_RunCommand
641	o dir.c: refactor Dir_UpdateMTime
642	migrate CachedDir.files from HashTable to HashSet
643	o make.c: add high-level API for GNode.made
644
6452020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
646
647	* VERSION (_MAKE_VERSION): 20201122
648	Merge with NetBSD make, pick up
649	o rename GNode.context to vars
650	o suff.c: cleanup and refactor
651	rename some functions and vars to better reflect usage
652	add high-level API for CandidateSearcher
653	o targ.c: add more debug logging for suffix handling
654	o more unit tests
655	o add debug logging for setting and resetting the main target
656
6572020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
658
659	* VERSION (_MAKE_VERSION): 20201117
660	Merge with NetBSD make, pick up
661	o fix some unit-tests when .SHELL is dash
662	o rename Targ_NewGN to GNode_New
663	o make some GNode functions const
664	o main.c: call Targ_Init before Var_Init
665	cleanup PrintOnError, getTmpdir and ParseBoolean
666	o var.c: fix error message of failed :!cmd! modifier
667
6682020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
669
670	* VERSION (_MAKE_VERSION): 20201114
671	Merge with NetBSD make, pick up
672	o replace a few HashTable_CreateEntry with HashTable_Set
673	o clean up cached_stats
674	o rename DEFAULT to defaultNode
675	o remove redundant struct make_stat
676	o cond.c: in lint mode, check for ".else <cond>"
677	use bitset for IfState
678	replace large switch with if-else in Cond_EvalLine
679	o job.c: clean up JobExec, JobStart, JobDoOutput
680	use stderr for error message about failed touch
681	clean up Job_Touch
682	replace macro DBPRINTF with JobPrintln
683	rename JobState to JobStatus
684	main.c: switch cache for realpath from GNode to HashTable
685	clean up Fatal
686	clean up InitDefSysIncPath
687	use progname instead of hard-coded 'make' in warning
688	rename Main_SetVarObjdir to SetVarObjdir
689	make.1: document the -S option
690	make.c: fix debug output for GNode details
691	use symbolic names in debug output of GNodes
692
6932020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
694
695	* configure.in: fix --with-force-machine-arch
696
697	* VERSION (_MAKE_VERSION): 20201112
698	Merge with NetBSD make, pick up
699	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
700	checks in InitObjdir.  Explicit .OBJDIR target always allows
701	read-only directory.
702	o cond.c: clean up Cond_EvalLine
703
7042020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
705
706	* VERSION (_MAKE_VERSION): 20201111
707	Merge with NetBSD make, pick up
708	o more unit-tests
709	o style cleanup
710	remove redundant parentheses from sizeof operator
711	replace character literal 0 with '\0'.
712	replace pointer literal 0 with NULL.
713	remove redundant parentheses.
714	replace (expr & mask) == 0 with !(expr & mask).
715	use strict typing in conditions of the form !var
716	o rename Make_OODate to GNode_IsOODate
717	o rename Make_TimeStamp to GNode_UpdateYoungestChild
718	o rename Var_Set_with_flags to Var_SetWithFlags
719	o rename dieQuietly to shouldDieQuietly
720	o buf.c: make API of Buf_Init simpler
721	o compat.c: clean up Compat_Make, Compat_RunCommand,
722	CompatDeleteTarget and CompatInterrupt
723	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
724	clean up CondParser_Comparison
725	o main.c: rename getBoolean and s2Boolean
726	rename MAKEFILE_PREFERENCE for consistency
727	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
728	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
729	replace emptyString with allocated empty string
730	error out on unclosed expressions after the colon
731
7322020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
733
734	* VERSION (_MAKE_VERSION): 20201101
735	Merge with NetBSD make, pick up
736	o negate NoExecute to GNode_ShouldExecute
737	o job.c: rename JobMatchShell to FindShellByName
738	extract EscapeShellDblQuot from JobPrintCommand
739	extract ParseRunOptions from JobPrintCommand
740	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
741	treat malformed :range, :ts and :[...] as errors
742	add tests for the variable modifiers :[words] and :range
743
7442020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
745
746	* VERSION (_MAKE_VERSION): 20201031
747	Merge with NetBSD make, pick up
748	o format #include directives consistently
749	o do not look up local variables like .TARGET anywhere else
750	o main.c: Main_SetObjdir is first called for curdir which may be
751	readonly
752	reduce the scope where recursive expressions are detected
753	remove redundant :tl from getBoolean
754	clean up mkTempFile
755	o meta.c: simplify memory allocation in meta_create and meta_oodate
756	o parse.c: extract loadedfile_mmap from loadfile
757	o trace.c: document possible undefined behavior with .CURDIR
758	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
759	rename ismeta to is_shell_metachar
760	remove debug logging for the :Q variable modifier
761	rename VarIsDynamic to VarnameIsDynamic
762	use consistent parameter order in varname parsing functions
763	extract ParseVarnameLong from Var_Parse
764	extract ParseVarnameShort from Var_Parse
765	fix type of ParseModifierPart parameter delim
766	extract IsEscapedModifierPart from ParseModifierPart
767	clean up ModifyWords
768	add test for combining the :@ and :? variable modifiers
769
7702020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
771
772	* VERSION (_MAKE_VERSION): 20201030
773	Merge with NetBSD make, pick up
774	o change char * to void * in Var_Value
775	o make iterating over HashTable simpler
776	o rename VAR_CMD to VAR_CMDLINE
777	o cond.c: clean up is_separator
778	fix parse error in string literal in conditional
779	o main.c: do not use objdir that is not writable
780	in lint mode, exit with error status on errors
781	o  parse.c: clean up StrContainsWord
782	fix out-of-bounds pointer in ParseTrackInput
783	o var.c: rename Str_SYSVMatch and its parameters
784	remove unsatisfiable conditions in Var_Set_with_flags
785	document where the variable name is expanded
786	fix documentation for VARP_SUB_ONE
787	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
788	document VAR_READONLY
789	prevent appending to read-only variables
790	extract MayExport from Var_Export1
791	remove redundant evaluations in VarFind
792	replace VarFindFlags with a simple Boolean
793	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
794
7952020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
796
797	* VERSION (_MAKE_VERSION): 20201028
798	Merge with NetBSD make, pick up
799	o rename defIncPath to defSysIncPath
800	o initialize all CmdOpts fields
801	o lst.c: inline Vector_Get
802	o main.c: refactor main extract
803	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
804	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
805	InitDefIncPath,CmdOpts_Init,UnlimitFiles
806	o parse.c: merge curFile into includes
807	rename predecessor to order_pred
808	sort ParseSpecial alphabetically
809	remove unused, undocumented .NOEXPORT
810	rename ParseSpecial enum values consistently
811	rename some fields of struct IFile
812
8132020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
814
815	* VERSION (_MAKE_VERSION): 20201026
816	Merge with NetBSD make, pick up
817	o group the command line options and arguments into a struct
818	o rename GNode.cmgn to youngestChild
819	o rename hash functions to identify the type name
820	o negate OP_NOP and rename it to GNode_IsTarget
821	o add GNode_Path to access the path of a GNode
822	o remove macros MIN and MAX
823	o remove unused Lst_Find and Lst_FindFrom
824	o arch.c: and make Arch_FindLib simpler
825	clean up code layout
826	make Arch_ParseArchive simpler
827	o cond.c: inline CondFindStrMatch into FuncMake
828	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
829	omit trailing space in debug output for expanding file patterns
830	refactor DirMatchFiles
831	document that the SearchPath of Dir_FindFile may be NULL
832	remove UNCONST from Dir_Expand
833	inline DirFindName
834	o for.c: clean up code for handling .for loops
835	o hash.c: print hash in debug log with fixed width
836	clean up hash table functions
837	reduce amount of string hashing
838	o job.c: refactor JobDeleteTarget
839	use proper enum constants for aborting
840	convert result of JobStart from macros to enum
841	convert abort reason macros to enum
842	rework Job_CheckCommands to reduce indentation
843	rename Shell fields
844	add field names in declaration of DEFSHELL_CUSTOM
845	convert JobState and JobFlags to enum types
846	move handling of the "..." command to JobPrintCommands
847	o lst.c: clean up
848	refactor LstNodeNew
849	remove Lst_Open, Lst_Next, Lst_Close
850	remove code for circular lists from Lst_Next
851	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
852	/dev/null or anything starting with "no"
853	convert macros for debug flags into enum
854	o make.c: inline Lst_Copy in Make_ExpandUse
855	o meta.c: inline Lst_Find in meta_oodate
856	make Lst_RemoveIf simpler in meta_oodate
857	o parse.c: convert error level for Parse_Error to an enum
858	o suff.c: properly terminate debug output with newline
859	add more details to DEBUG_SRC log
860	replace Dir_CopyDir with Dir_CopyDirSearchPath
861	don't modify GNode name while rebuilding the suffix graph
862	o var.c: reduce duplicate code in VarFind
863
8642020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
865
866	* VERSION (_MAKE_VERSION): 20201022
867	Merge with NetBSD make, pick up
868	o more refactoring and simplification to reduce code size
869	o var.c: extract CanonicalVarname from VarFind
870	o make.c: extract UpdateImplicitParentsVars from Make_Update
871	o main.c: extract PrintVar from doPrintVars
872	extract HandlePWD from main
873	o lst.c: inline simple Lst getters
874	remove unused Lst_ForEach
875	o job.c: move struct Shell from job.h to job.c
876	o more unit tests
877
8782020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
879
880	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
881
8822020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
883
884	* VERSION (_MAKE_VERSION): 20201018
885	Merge with NetBSD make, pick up
886	o remove USE_IOVEC
887	o rename some Hash_* apis to Hash*
888	o replace execError with execDie
889	o rename Lst_Init to Lst_New
890	o add tags to enum types
891	o rename Stack to Vector
892	o parse.c: more refactoring
893	o unit-tests: make some tests use line buffered stdout
894	o unit-tests/Makefile: in meta mode do not make all tests depend on
895	Makefile, it isn't necessary.
896
8972020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
898
899	* main.c: check for CTL_HW being defined.
900	* unit-tests/Makefile: ensure export tests output are POSIX compliant
901	disable opt-debug-jobs test until it works on ubuntu
902
903	* VERSION (_MAKE_VERSION): 20201010
904	Merge with NetBSD make, pick up
905	o dir.c: remove pathname limit for Dir_FindHereOrAbove
906	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
907	o main.c: extract init_machine and init_machine_arch from main
908	allow to disable debug logging options
909	o parse.c: enable format string truncation warnings
910	extract parsing of sources from ParseDoDependency
911	split ParseDoSrc into smaller functions
912	hide implementation details from Parse_DoVar
913	clean up parsing of variable assignments
914	split Parse_DoVar into manageable pieces
915	don't modify the given line during Parse_DoVar
916	fix out-of-bounds memory access in Parse_DoVar
917	fix parsing of the :sh assignment modifier
918	o var.c: rework memory allocation for the name of variables
919	extract ApplyModifier_Literal into separate function
920	in lint mode, reject modifiers without delimiter
921	do not export variable names starting with '-'
922	o fix double-free bug in -DCLEANUP mode
923	o more cleanup to enable higher warnings level
924	o more unit tests
925
9262020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
927
928	* VERSION (_MAKE_VERSION): 20201002
929	Merge with NetBSD make, pick up
930	o dir.c: use hash table for looking up open directories by name
931	o main.c: clean up option handling
932	o parse.c: add missing const for Parse_AddIncludeDir
933	o var.c: ApplyModifier_To, update pp in each branch
934	o remove redundant function prototypes
935	o more unit tests
936
9372020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
938
939	* VERSION (_MAKE_VERSION): 20201001
940	Merge with NetBSD make, pick up
941	o compat.c: comment about "..."
942
9432020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
944
945	* VERSION (_MAKE_VERSION): 20200930
946	Merge with NetBSD make, pick up
947	o job.c: split Job.jobPipe into 2 separate fields
948	replace Lst_Open with direct iteration
949	o lst.c: remove redundant assertions
950	o targ.c: replace Lst_Open with direct iteration
951	o var.c: fix bug in evaluation of indirect variable modifiers
952	extract ApplyModifier_Quote into separate function
953	o make debug logging simpler
954
9552020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
956
957	* VERSION (_MAKE_VERSION): 20200927
958	Merge with NetBSD make, pick up
959	o parse.c: ensure parse errors result in 'stopped in' message.
960	o compat.c: make parameter of Compat_RunCommand const
961	o main.c: extract InitVarTarget from main
962	o parse.c: rename ParseFinishLine to FinishDependencyGroup
963	refactor ParseDoDependency
964	o var.c: Var_Subst no longer returns string result
965	rename Var_ParsePP back to Var_Parse
966	in lint mode, improve error handling for undefined variables
967	extract ParseVarname from Var_Parse
968	o rename Lst_ForEach to Lst_ForEachUntil
969	o inline Lst_ForEachUntil in several cases
970	o clean up API for finding and creating GNodes
971	o fix assertion failure in -j mode with .END node
972	o inline and remove LstNode_Prev and LstNode_Next
973	o use fine-grained type names for lists and their nodes
974	o more unit tests
975
9762020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
977
978	* VERSION (_MAKE_VERSION): 20200911
979	Merge with NetBSD make, pick up
980	o cond.c: split EvalComparison into smaller functions
981	reorder parameters of condition parsing functions
982	reduce code size in CondParser_Eval
983	rename CondGetString to CondParser_String
984	add CondLexer_SkipWhitespace
985	group the condition parsing state into a struct
986	in CondGetString, replace repeated Buf_Add with Buf_AddStr
987	o migrate Var_Parse to Var_ParsePP
988	o add wrappers around ctype.h functions
989	o lst.c: use a stack instead of a list for the nested include path
990	o more unit tests
991
9922020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
993
994	* make-bootstrap.sh.in: adjust object list
995
9962020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
997
998	* VERSION (_MAKE_VERSION): 20200902
999	Merge with NetBSD make, pick up
1000	o use make_stat to ensure no confusion over valid fields
1001	returned by cached_stat
1002	o var.c: make VarQuote const-correct
1003	o add unit tests for .for
1004
10052020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
1006
1007	* VERSION (_MAKE_VERSION): 20200901
1008	Merge with NetBSD make, pick up
1009	o rename Hash_Table fields
1010	o make data types in Dir_HasWildcards more precise
1011
10122020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
1013
1014	* VERSION (_MAKE_VERSION): 20200831
1015	Merge with NetBSD make, pick up
1016	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
1017	o lst.c: Lst_Open renable assert that list isn't open
1018	o unit test for .TARGET dependent flags
1019	o var.c: fix aliasing bug in VarUniq
1020	o more unit tests for :u
1021
10222020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
1023
1024	* VERSION (_MAKE_VERSION): 20200830
1025	Merge with NetBSD make, pick up
1026	o allow for strict type checking for Boolean
1027	o Var_Parse never returns NULL
1028	o Var_Subst never returns NULL
1029	o Lst_Find now takes boolean match function
1030	o rename Lst_Memeber to Lst_FindDatum
1031	o rename LstNode functions to match their type
1032	o rename GNode.iParents to implicitParents
1033	o fix assertion failure for .SUFFIXES in archives
1034	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
1035	remove unreachable code from CompatRunCommand
1036	o main.c: simplify getBoolean
1037	o stc.c: replace brk_string with simpler Str_Words
1038	o suff.c: add debug macros
1039
10402020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
1041
1042	* VERSION (_MAKE_VERSION): 20200828
1043	Merge with NetBSD make, pick up
1044	o lst.c: inline LstIsValid and LstNodeIsValid
1045	o remove trailing S from Lst function names after migration complete
1046	o more comment cleanup/clarification
1047	o suff.c: clean up suffix handling
1048	o more unit tests
1049
10502020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
1051
1052	* VERSION (_MAKE_VERSION): 20200826
1053	Merge with NetBSD make, pick up
1054	o enum.c: distinguish between bitsets containing flags and
1055	ordinary enums
1056	o var.c: fix error message for ::!= modifier with shell error
1057	o fix bugs in -DCLEANUP mode
1058
10592020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
1060
1061	* VERSION (_MAKE_VERSION): 20200824
1062	Merge with NetBSD make, pick up
1063	o in debug mode, print GNode details in symbols
1064
10652020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
1066
1067	* VERSION (_MAKE_VERSION): 20200823
1068	Merge with NetBSD make, pick up
1069	o lst.c: more asserts,
1070	make args to Lst_Find match others.
1071	o var.c: pass flags to VarAdd
1072	o arch.c: use Buffer
1073	o str.c: brk_string return size_t for nwords
1074	o more unit tests
1075
10762020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
1077
1078	* VERSION (_MAKE_VERSION):
1079	Merge with NetBSD make, pick up
1080	o var.c: support for read-only variables eg .SHELL
1081	being the shell used to run scripts.
1082	o lst.c: more simplification
1083	o more documentation and style cleanup
1084	o more unit tests
1085	o ensure unit-test/Makefile is run by TEST_MAKE
1086	o reduce duplication of header inclusion
1087
10882020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
1089
1090	* VERSION (_MAKE_VERSION): 20200821
1091	Merge with NetBSD make, pick up
1092	o lst.c: revert invalid assertion - but document it
1093	o dir.c: split Dir_Init into two functions
1094
10952020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
1096
1097	* lst.c: needs inttypes.h on Linux
1098
1099	* VERSION (_MAKE_VERSION): 20200820
1100	Merge with NetBSD make, pick up
1101	o make.1: clarify some passages
1102	o var.c: more cleanup, clarify comments
1103	o make_malloc.c: remove unreachable code
1104	o cond.c: make CondGetString easier to debug
1105	o simplify list usage
1106	o unit-tests: more
1107
11082020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
1109
1110	* VERSION (_MAKE_VERSION): 20200816
1111	Merge with NetBSD make, pick up
1112	o refactor unit-tests to be more fine grained
1113	  not all tests moved yet
1114
11152020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
1116
1117	* VERSION (_MAKE_VERSION): 20200814
1118	Merge with NetBSD make, pick up
1119	o more str_concat variants
1120	o more enums for flags
1121	o var.c: cleanup for higher warnings level
1122
11232020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
1124
1125	* VERSION (_MAKE_VERSION): 20200810
1126	Merge with NetBSD make, pick up
1127	o more unit tests
1128	o general comment and style cleanup
1129
11302020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
1131
1132	* VERSION (_MAKE_VERSION): 20200808
1133	Merge with NetBSD make, pick up
1134	o enum.[ch]: streamline, enums for use in flags and debug output
1135	o cond.c: cleanup
1136	o var.c: reduce duplicate code for modifiers
1137	debug logging for Var_Parse
1138	more detailed debug output
1139	o more unit tests
1140
11412020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
1142
1143	* unit-tests/Makefile: -r for recursive and include Makefile.inc
1144	so I can run tests in meta mode
1145	supress extra noise if in meta mode
1146
1147	* VERSION (_MAKE_VERSION): 20200806
1148	Merge with NetBSD make, pick up
1149	o parse.c: remove VARE_WANTRES for LINT
1150	we just want to check parsing (for now).
1151
11522020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
1153
1154	* VERSION (_MAKE_VERSION): 20200805
1155	Merge with NetBSD make, pick up
1156	o make.1: Rework the description of dependence operators
1157
11582020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
1159
1160	* VERSION (_MAKE_VERSION): 20200803
1161	Merge with NetBSD make, pick up
1162	o revert some C99 usage, for max portability
1163	o unit-tests/lint
1164
11652020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
1166
1167	* VERSION (_MAKE_VERSION): 20200802
1168	Merge with NetBSD make, pick up
1169	o more unit tests
1170
11712020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
1172
1173	* Remove NetBSD specific plumbing from unit-tests/Makefile
1174
1175	* VERSION (_MAKE_VERSION): 20200801
1176	Merge with NetBSD make, pick up
1177	o make Var_Value return const
1178	o size_t for buf sizes
1179	o optimize some buffer operations - avoid strlen
1180
11812020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
1182
1183	* VERSION (_MAKE_VERSION): 20200731
1184	Merge with NetBSD make, pick up
1185	o var.c: fix undefinded behavior for incomplete :t modifier
1186	  fixes unit-test/moderrs on Ubuntu
1187	o parse.c: When parsing variable assignments other than :=
1188	  if DEBUG(LINT) test substition of value, so we get a file and
1189	  line number in the resulting error.
1190	o dir.c: fix parsing of nested braces in dependency lines
1191	  add unit-tests
1192
11932020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
1194
1195	* VERSION (_MAKE_VERSION): 20200730
1196	Merge with NetBSD make, pick up
1197	o var.c: minor cleanup
1198	o unit-tests: more tests to improve code coverage
1199
12002020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
1201
1202	* VERSION (_MAKE_VERSION): 20200728
1203	Merge with NetBSD make, pick up
1204	o var.c: more optimizations
1205
12062020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
1207
1208	* VERSION (_MAKE_VERSION): 20200726
1209	Merge with NetBSD make, pick up
1210	o collapse lsd.lib into lst.c - reduce code size and allow inlining
1211	o lots of function comment updates
1212	o var.c: more optimizations
1213	o make return of Var_Parse const
1214
12152020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
1216
1217	* VERSION (_MAKE_VERSION): 20200720
1218	Merge with NetBSD make, pick up
1219	o DEBUG_HASH report stats at end and tone down the noise
1220	o var.c: each flag type gets its own prefix.
1221	move SysV string matching to var.c
1222	make ampersand in ${VAR:from=to&} an ordinary character
1223	cleanup and simplify implementation of modifiers
1224	o make.1: move documentation for assignment modifiers
1225
12262020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
1227
1228	* VERSION (_MAKE_VERSION): 20200718
1229	Merge with NetBSD make, pick up
1230	o DEBUG_HASH to see how well the hash tables are working
1231
12322020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
1233
1234	* bsd.after-import.mk: make sure we update unit-tests/Makefile
1235
12362020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
1237
1238	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
1239
1240	* VERSION (_MAKE_VERSION): 20200710
1241	Merge with NetBSD make, pick up
1242	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
1243	o meta.c: target flagged .META is out-of-date if meta file missing
1244
12452020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
1246
1247	* VERSION (_MAKE_VERSION): 20200709
1248	Merge with NetBSD make, pick up
1249	o cond.c: fix for compare_expression when doEval=0
1250	o unit-tests/Makefile: rework
1251	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
1252
12532020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
1254
1255	* VERSION (_MAKE_VERSION): 20200704
1256	Merge with NetBSD make, pick up
1257	(most of this by rillig@)
1258	o lots of style and white-space cleanup
1259	o lots more unit tests for variable modifiers
1260	o simplified description of some functions
1261	o str.c: refactor Str_Match
1262	o var.c: debugging output for :@
1263	  constify VarModify parameter
1264	  fix :hash modifier on 16-bit platforms
1265	  remove unnecessary forward declarations
1266	  refactor ApplyModifier_SysV to have less indentation
1267	  simplify code for :E and :R
1268	  clean up code for :H and :T
1269	  refactor ApplyModifiers
1270
1271	* var.c: we need stdint.h on some platforms to get uint32_t
1272	* unit-test/Makefile: we need to supress the specific error
1273	for RE substitution error in modmisc, since it varies accross
1274	different OS.
1275
12762020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
1277
1278	* VERSION (_MAKE_VERSION): 20200702
1279	Merge with NetBSD make, pick up
1280	o var.c: more improvements to avoiding unnecessary evaluation
1281	use enums for flags
1282	o remove flags arg to Var_Set which outside of var.c is always 0
1283
12842020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
1285
1286	* VERSION (_MAKE_VERSION): 20200701
1287	Merge with NetBSD make, pick up
1288	o var.c: with change to cond.c; ensure that nested variables
1289	within a variable name are expanded.
1290	o unit-tests/varmisc.mk: test for nested varname
1291
12922020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
1293
1294	* VERSION (_MAKE_VERSION): 20200629
1295	Merge with NetBSD make, pick up
1296	o cond.c: do not eval unnecessary terms of conditionals.
1297
12982020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
1299
1300	* VERSION (_MAKE_VERSION): 20200625
1301	Merge with NetBSD make, pick up
1302	o meta.c: report error if lseek in filemon_read fails
1303
13042020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
1305
1306	* VERSION (_MAKE_VERSION): 20200622
1307	Merge with NetBSD make, pick up
1308	o dieQuietly: ignore OP_SUBMAKE as too aggressive
1309
13102020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
1311
1312	* VERSION (_MAKE_VERSION): 20200619
1313	Merge with NetBSD make, pick up
1314	o str.c: performance improvement for Str_Match for multiple '*'
1315	o dieQuietly: supress the failure output from make
1316	when failing node is a sub-make or a sibling failed.
1317	This cuts down greatly on unhelpful noise at the end of
1318	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
1319
13202020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
1321
1322	* FILES: add LICENSE to appease some packagers.
1323	This is an attempt to fairly represent the license on almost
1324	200 files, which are almost all BSD-3-Clause
1325	The few exceptions being more liberal.
1326
1327	* VERSION (_MAKE_VERSION): 20200610
1328	Merge with NetBSD make, pick up
1329	o unit test for :Or
1330
13312020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
1332
1333	* VERSION (_MAKE_VERSION): 20200606
1334	Merge with NetBSD make, pick up
1335	o make.1: cleanup
1336
1337	* Makefile: fix depends for main.o which broke MAKE_VERSION
1338
13392020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
1340
1341	* VERSION (_MAKE_VERSION): 20200605
1342	Merge with NetBSD make, pick up
1343	o dir.c: cached_stats - don't confuse stat and lstat results.
1344	o var.c: add :Or for reverse sort.
1345
13462020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
1347
1348	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
1349	also if --with-filemon= specifies path to filemon.h
1350	set use_filemon=dev
1351	* dirname.c: remove include of namespace.h
1352
13532020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
1354
1355	* VERSION (_MAKE_VERSION): 20200517
1356	Merge with NetBSD make, pick up
1357	o modified dollar tests to avoid shell dependencies
1358	o new tests for .INCLUDEFROM
1359
13602020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
1361
1362	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
1363	to not depend so much on shell behavior
1364
13652020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
1366
1367	* VERSION (_MAKE_VERSION): 20200510
1368	Merge with NetBSD make, pick up
1369	o unit test for dollar handling
1370
13712020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
1372
1373	* VERSION (_MAKE_VERSION): 20200506
1374	Merge with NetBSD make, pick up
1375	o str.c: empty string does not match % pattern
1376	  plus unit-test changes
1377
13782020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
1379
1380	* VERSION (_MAKE_VERSION): 20200504
1381	May the 4th be with you
1382	Merge with NetBSD make, pick up
1383	o var.c: import handling of old sysV style modifier using '%'
1384	o str.c: refactor brk_string
1385	o unit-tests: add test case for lazy conditions
1386
13872020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
1388
1389	* VERSION (_MAKE_VERSION): 20200418
1390
1391	* configure.in: use_makefile=no for cygwin et al.
1392	case insensitive filesystems just don't work if both
1393	makefile and Makefile exist.
1394	NOTE: bmake does not support cygwin and likely never will,
1395	but if brave souls want to try it - help them out.
1396
13972020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
1398
1399	* VERSION (_MAKE_VERSION): 20200402
1400	Merge with NetBSD make, pick up
1401	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
1402	  a blank command is perfectly valid.
1403
14042020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
1405
1406	* VERSION (_MAKE_VERSION): 20200330
1407	Merge with NetBSD make, pick up
1408	o make.h: extern debug_file
1409
14102020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
1411
1412	* VERSION (_MAKE_VERSION): 20200318
1413	Merge with NetBSD make, pick up
1414	o meta.c: meta_oodate, check for corrupted meta file
1415	  earlier and more often.
1416
14172020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
1418
1419	* VERSION (_MAKE_VERSION): 20200220
1420
14212020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
1422
1423	* boot-strap: unset MAKEFLAGS
1424
14252020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
1426
1427	* VERSION (_MAKE_VERSION): 20200212
1428	* meta.c: meta_compat_parent check for USE_FILEMON
1429	  patch from Soeren Tempel
1430
14312020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1432
1433	* VERSION: 20200205
1434	Merge with NetBSD make, pick up
1435	o meta.c: fix compat mode, need to call meta_job_output()
1436	o job.c: extra fds for meta mode not needed if using filemon_dev
1437
14382020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
1439
1440	* VERSION: 20200122
1441	Merge with NetBSD make, pick up
1442	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1443	  returns FALSE.
1444
14452020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
1446
1447	* VERSION: 20200121
1448	Merge with NetBSD make, pick up
1449	o filemon/filemon_{dev,ktrace}.c: allow selection of
1450	  filemon implementation.  filemon_dev.c uses the kernel module
1451	  while filemon_ktrace.c leverages the fktrace api available in
1452	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
1453	  adding support for other tracing mechanisms such as strace on
1454	  Linux.
1455	o meta.c: when target is out-of-date per normal make rules
1456	  record value of .OODATE in meta file.
1457
14582019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
1459
1460	* VERSION: 20190926
1461	  Merge with NetBSD make, pick up
1462	  o parse.c: don't pass NULL to realpath(3)
1463	    some versions cannot handle it.
1464
14652019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
1466
1467	* VERSION: 20190409
1468	  Merge with NetBSD make, pick up
1469	  o parse.c: ParseDoDependency: free paths rather than assert
1470
14712018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1472
1473	* VERSION: 20181222
1474
1475	* configure.in: add --without-makefile to avoid generating
1476	  makefile and make-bootstrap.sh
1477
1478	* include Makefile.inc if it exists
1479
1480	* Use Makefile and Makefile.config.in in unit-tests
1481	  so we can use just: make obj && make && make test
1482	  when bmake is already available.
1483	  We add --without-makefile to CONFIGURE_ARGS in this case.
1484
1485	* tweak bsd.after-import.mk (captures Makefile.config etc
1486	  after import to FreeBSD for example) to cope with all the above.
1487
14882018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1489
1490	* VERSION: 20181221
1491	  Merge with NetBSD make, pick up
1492	  o parse.c: ParseVErrorInternal use .PARSEDIR
1493	    and apply if relative, and then use .PARSEFILE
1494	    for consistent result.
1495
14962018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1497
1498	* VERSION: 20181220
1499	  Merge with NetBSD make, pick up
1500	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1501	    is relative
1502	  o var.c: avoid SEGFAULT in .unexport-env
1503	    when MAKELEVEL is not set
1504
15052018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
1506
1507	* VERSION: 20181216
1508	  Merge with NetBSD make, pick up
1509	  o fix for unit-tests/varquote.mk on Debian
1510
15112018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1512
1513	* VERSION: 20180919
1514	  Merge with NetBSD make, pick up
1515	  o var.c: add :q
1516	  o dir.c: cleanup caching of stats
1517
15182018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
1519
1520	* Makefile.config.in: use += where it makes sense.
1521
15222018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1523
1524	* VERSION: 20180512
1525	  Merge with NetBSD make, pick up
1526	  o job.c: skip polling job token pipe
1527
15282018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1529
1530	* VERSION: 20180405
1531	  Merge with NetBSD make, pick up
1532	  o parse.c: be more cautious about detecting depenency line
1533	    rather than sysV style include.
1534
15352018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1536
1537	* VERSION: 20180222
1538	  Merge with NetBSD make, pick up
1539	  o parse.c: avoid calling sysconf for every call to loadfile
1540
15412018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1542
1543	* VERSION: 20180218
1544	  Merge with NetBSD make, pick up
1545	  o var.c: Var_Set handle NULL value anytime.
1546
15472018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1548
1549	* VERSION: 20180212
1550	  Merge with NetBSD make, pick up
1551	  o parse.c: do not treat .info as warning with -W
1552
15532017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1554
1555	* VERSION: 20171207
1556	  Merge with NetBSD make, pick up
1557	  o var.c: Var_Append use Var_Set if var not previously set
1558	    so that VAR_CMD is handled correctly.
1559	    Add a suitable unit-test.
1560
15612017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1562
1563	* VERSION (_MAKE_VERSION): 20171126
1564
1565	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1566	  since AC_TRY_COMPILE puts input inside main()
1567	  which upsets modern compilers.
1568
15692017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1570
1571	* VERSION: 20171118
1572	  Merge with NetBSD make, pick up
1573	  o var.c: do not append to variable set on command line
1574	    add unit-test to catch this.
1575
15762017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1577
1578	* VERSION: 20171028
1579	  Merge with NetBSD make, pick up
1580	  o main.c: ignore empty MAKEOBJDIR
1581
1582	* Makefile.config.in:
1583	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
1584
15852017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1586
1587	* VERSION: 20171005
1588
1589	* unit-tests/dotwait.mk: redirect stderr through pipe for more
1590	  consistent result on some platforms.
1591
15922017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1593
1594	* machine.sh: entry for AIX
1595
15962017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1597
1598	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1599	  to a file that can be included by configure as well as make.
1600	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1601
16022017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1603
1604	* Makefile (_MAKE_VERSION): 20170810
1605	  Merge with NetBSD make, pick up
1606	  o meta.c: if target is in subdir we only need subdir name in
1607	    meta_name.
1608
16092017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1610
1611	* Makefile (_MAKE_VERSION): 20170720
1612	  Merge with NetBSD make, pick up
1613	  o compat.c: pass SIGINT etc onto child and wait for it to exit
1614	    before we self-terminate.
1615
16162017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1617
1618	* Makefile (_MAKE_VERSION): 20170711
1619	  forgot to update after merge on 20170708 ;-)
1620	  o main.c: refactor to reduce size of main function.
1621	    add -v option to always fully expand values.
1622	  o meta.c: ensure command output in meta file has ending newline
1623	    even when filemon not being used.
1624	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1625	    pathname via ':L' since any ':' in pathname breaks that.
1626	    Instead set a '${.p.}' to pathname in the target context and
1627	    use that.
1628
16292017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1630
1631	* Makefile (_MAKE_VERSION): 20170510
1632	  Merge with NetBSD make, pick up
1633	  o main.c: Main_SetObjdir: ensure buf2 is in scope
1634
16352017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1636
1637	* Makefile (_MAKE_VERSION): 20170505
1638	  see mk/ChangeLog
1639
16402017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1641
1642	* parse.c: not everyone has stdint.h
1643
16442017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1645
1646	* Makefile (_MAKE_VERSION): 20170501
1647	  see mk/ChangeLog
1648
16492017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1650
1651	* Makefile (_MAKE_VERSION): 20170421
1652	  Merge with NetBSD make, pick up
1653	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1654
16552017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1656
1657	* Makefile (_MAKE_VERSION): 20170420
1658	  Merge with NetBSD make, pick up
1659	  o main.c: only use -C arg "as is" if it contains no
1660	    relative component.
1661
16622017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1663
1664	* Makefile (_MAKE_VERSION): 20170418
1665	  Merge with NetBSD make, pick up
1666	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1667
16682017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1669
1670	* Makefile (_MAKE_VERSION): 20170417
1671	  Merge with NetBSD make, pick up
1672	  o fixes a number of coverity complaints
1673	    - check return value of fseek, fcntl
1674	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
1675	      JobPrintCommand, ParseTraditionalInclude
1676	    - use bmake_malloc() where NULL is not tollerated
1677	    - use MAKE_ATTR_UNUSED rather that kludges like
1678	      return(unused ? 0 : 0)
1679	    - use purge_cached_realpaths() rather than abuse cached_realpath()
1680
16812017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1682
1683	* Makefile (_MAKE_VERSION): 20170413
1684	  Merge with NetBSD make, pick up
1685	  o main.c: when setting .OBJDIR ignore '$' in paths.
1686
1687	* job.c: use MALLOC_OPTIONS to set malloc_options.
1688
16892017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1690
1691	* Makefile (_MAKE_VERSION): 20170411
1692	  Merge with NetBSD make, pick up
1693	  o str.c: Str_Match: allow [^a-z] to behave as expected.
1694
16952017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1696
1697	* Makefile (_MAKE_VERSION): 20170326
1698	  Merge with NetBSD make, pick up
1699	  o main.c: purge relative paths from realpath cache when .OBJDIR
1700	    is changed.
1701
17022017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1703
1704	* Makefile (_MAKE_VERSION): 20170311
1705	  Merge with NetBSD make, pick up
1706          o main.c: only use -C arg "as is" if it starts with '/'.
1707
17082017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1709
1710	* Makefile (_MAKE_VERSION): 20170301
1711	  Merge with NetBSD make, pick up
1712	  o main.c: use -C arg "as is" rather than getcwd()
1713	    if they identify the same directory.
1714	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1715
17162017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1717
1718	* Makefile (_MAKE_VERSION): 20170201
1719	  Merge with NetBSD make, pick up
1720	  o var.c: allow :_=var and avoid use of special context.
1721
17222017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1723
1724	* Makefile (_MAKE_VERSION): 20170130
1725	  Merge with NetBSD make, pick up
1726	  o var.c: add :range and :_
1727	  o main.c: partially initialize Dir_* before MainParseArgs()
1728	    can be called.
1729	    If -V, skip Main_ExportMAKEFLAGS()
1730
17312017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1732
1733	* Makefile (_MAKE_VERSION): 20170114
1734	  Merge with NetBSD make, pick up
1735	  o var.c: allow specifying the utc value used by :{gm,local}time
1736
17372016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1738
1739	* Makefile (_MAKE_VERSION): 20161212
1740	  Merge with NetBSD make, pick up
1741          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1742
17432016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1744
1745	* Makefile (_MAKE_VERSION): 20161209
1746	  Merge with NetBSD make, pick up
1747	  o main.c: cleanup setting of .OBJDIR
1748	  o parse.c: avoid coredump from (var)=val
1749
17502016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1751
1752	* Makefile (_MAKE_VERSION): 20161126
1753	  Merge with NetBSD make, pick up
1754	  o make.c: Make_OODate: report src node name if path not set
1755
17562016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1757
1758	* Makefile (_MAKE_VERSION): 20160926
1759	  Merge with NetBSD make, pick up
1760	  o support for .DELETE_ON_ERROR: (remove targets that fail)
1761
17622016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1763
1764	* Makefile MAN: tweak .Dt to match ${PROG}
1765
17662016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1767
1768	* Makefile (_MAKE_VERSION): 20160818
1769	  its a neater number; pick up whitespace fixes to man page.
1770
17712016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1772
1773	* Makefile (_MAKE_VERSION): 20160817
1774	  Merge with NetBSD make, pick up
1775	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1776	    so we can call it before adding entries to missingFiles.
1777	    Thus we do not track files we have been told to ignore.
1778
17792016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1780
1781	* Makefile (_MAKE_VERSION): 20160815
1782	  Merge with NetBSD make, pick up
1783	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1784	    pathnames, and skip if the expansion is empty.
1785	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1786
17872016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1788
1789	* Makefile (_MAKE_VERSION): 20160812
1790	  Merge with NetBSD make, pick up
1791	  o meta.c: remove all missingFiles entries that match a deleted
1792	    dir.
1793	  o main.c: set .ERROR_CMD if possible.
1794
17952016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1796
1797	* Makefile (_MAKE_VERSION): 20160606
1798	  Merge with NetBSD make, pick up
1799	  o dir.c: extend mtimes cache to others via cached_stat()
1800
18012016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1802
1803	* Makefile (_MAKE_VERSION): 20160604
1804	  Merge with NetBSD make, pick up
1805	  o meta.c: missing filemon data is only relevant if we read a
1806	    meta file.
1807	    Also do not return oodate for a missing metafile if gn->path
1808	    points to .CURDIR
1809
18102016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1811
1812	* Makefile (_MAKE_VERSION): 20160602
1813	  Merge with NetBSD make, pick up
1814	  o cached_realpath(): avoid hitting filesystem more than necessary.
1815	  o meta.c: refactor need_meta decision, add knobs for
1816	    missing meta file and filemon data wrt out-of-datedness.
1817
18182016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1819
1820	* Makefile (_MAKE_VERSION): 20160528
1821
1822	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1823
18242016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1825
1826	* Makefile (_MAKE_VERSION): 20160512
1827	  Merge with NetBSD make, pick up
1828	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1829	    this is useful for gcov builds.
1830	  o propagate errors from filemon(4).
1831
18322016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1833
1834	* Makefile (_MAKE_VERSION): 20160509
1835	  Merge with NetBSD make, pick up
1836	  o remove use of non-standard types u_int etc.
1837	  o meta.c: apply realpath() before matching against metaIgnorePaths
1838
18392016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1840
1841	* Makefile (_MAKE_VERSION): 20160404
1842	  Merge with NetBSD make, pick up
1843	  o allow makefile to set .MAKE.JOBS
1844
1845	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
1846
18472016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1848
1849	* Makefile (_MAKE_VERSION): 20160315
1850	  Merge with NetBSD make, pick up
1851	  o fix handling of archive members
1852
18532016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1854
1855	* Makefile (_MAKE_VERSION): rename variable to avoid interference
1856	  with checks for ${MAKE_VERSION}
1857
18582016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1859
1860	* Makefile (MAKE_VERSION): 20160310
1861	  Merge with NetBSD make, pick up
1862	  o meta.c: treat missing Read file same as Write, incase we Delete it.
1863
18642016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1865
1866	* Makefile (MAKE_VERSION): 20160307
1867	  Merge with NetBSD make, pick up
1868	  o var.c: fix :ts\nnn to be octal by default.
1869	  o meta.c: meta_finish() to cleanup memory.
1870
18712016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1872
1873	* Makefile (MAKE_VERSION): 20160226
1874	  Merge with NetBSD make, pick up
1875	  o meta.c: allow meta file for makeDepend if makefiles want it.
1876
18772016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1878
1879	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
1880	  for backwards compatability.
1881
1882	* Makefile (MAKE_VERSION): 20160220
1883	  Merge with NetBSD make, pick up
1884	  o var.c: add knob to control handling of '$$' in :=
1885
18862016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1887
1888	* Makefile (MAKE_VERSION): 20160218
1889	  Merge with NetBSD make, pick up
1890	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
1891	    post the changes to Var_Subst.
1892	    Var_Subst now takes flags, and does not consume '$$' in :=
1893
18942016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1895
1896	* Makefile (MAKE_VERSION): 20160217
1897	  Merge with NetBSD make, pick up
1898	  o var.c: preserve '$$' in :=
1899	  o parse.c: add .dinclude for handling included
1900	    makefile like .depend
1901
19022015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1903
1904	* Makefile (MAKE_VERSION): 20151220
1905	  Merge with NetBSD make, pick up
1906	  o suff.c: re-initialize suffNull when clearing suffixes.
1907
19082015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1909
1910	* Makefile (MAKE_VERSION): 20151201
1911	  Merge with NetBSD make, pick up
1912	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1913	  o meta.c: meta_oodate: use lstat(2) for checking link target
1914	    in case it is a symlink.
1915	  o var.c: avoid calling brk_string and Var_Export1 with empty
1916	    strings.
1917
19182015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1919
1920	* Makefile (MAKE_VERSION): 20151126
1921	  Merge with NetBSD make, pick up
1922	  o parse.c: ParseTrackInput don't access beyond
1923	    end of old value.
1924
19252015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1926
1927	* Makefile (MAKE_VERSION): 20151022
1928
1929	* Add support for BSD/OS which lacks inttypes.h
1930	  and really needs sys/param.h for sys/sysctl.h
1931	  also 'type' is not a shell builtin.
1932
1933	* var.c: eliminate uint32_t and need for inttypes.h
1934
1935	* main.c: PrintOnError flush stdout before run .ERROR
1936
1937	* parse.c: cope with _SC_PAGESIZE not being defined.
1938
1939
19402015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1941
1942	* Makefile (MAKE_VERSION): 20151020
1943	  Merge with NetBSD make, pick up
1944	  o var.c: fix uninitialized var
1945
19462015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1947
1948	* var.c: the conditional expressions used with ':?' can be
1949	expensive, if already discarding do not evaluate or expand
1950	anything.
1951
19522015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1953
1954	* Makefile (MAKE_VERSION): 20151010
1955	  Merge with NetBSD make, pick up
1956	  o Add Boolean wantit flag to Var_Subst and Var_Parse
1957	    when FALSE we know we are discarding the result and can
1958	    skip operations like Cmd_Exec.
1959
19602015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1961
1962	* Makefile (MAKE_VERSION): 20151009
1963	  Merge with NetBSD make, pick up
1964	  o var.c: don't check for NULL before free()
1965	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1966
19672015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1968
1969	* Makefile (MAKE_VERSION): 20150910
1970	  Merge with NetBSD make, pick up
1971	  o main.c: with -w print Enter/Leaving messages for objdir too
1972	    if necessary.
1973	  o centralize shell metachar handling
1974
1975	* FILES: add metachar.[ch]
1976
19772015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1978
1979	* Makefile (MAKE_VERSION): 20150606
1980	  Merge with NetBSD make, pick up
1981	  o make.1: document .OBJDIR target
1982
19832015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1984
1985	* Makefile (MAKE_VERSION): 20150505
1986	  Merge with NetBSD make, pick up
1987	  o cond.c: be strict about lhs of comparison when evaluating .if
1988	    but less so when called from variable expansion.
1989	  o unit-tests/cond2.mk: test various error conditions
1990
19912015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1992
1993	* machine.sh (MACHINE): Add Bitrig
1994	  patch from joerg@netbsd.org
1995
19962015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1997
1998	* Makefile (MAKE_VERSION): 20150418
1999	  Merge with NetBSD make, pick up
2000	  o job.c: use memmove() rather than memcpy()
2001
2002	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2003	  case, so skip it.
2004
20052015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2006
2007	* Makefile (MAKE_VERSION): 20150411
2008	  bump version - only mk/ changes.
2009
20102015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2011
2012	* Makefile (MAKE_VERSION): 20150410
2013	  Merge with NetBSD make, pick up
2014	  o document different handling of '-' in jobs mode vs compat
2015	  o fix jobs mode so that '-' only applies to whole job
2016	    when shell lacks hasErrCtl
2017	  o meta.c: use separate vars to track lcwd and latestdir (read)
2018	    per process
2019
20202015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2021
2022	* Makefile (MAKE_VERSION): 20150401
2023	  Merge with NetBSD make, pick up
2024	  o meta.c: close meta file in child
2025
2026	* Makefile: use BINDIR.bmake if set.
2027	  Same for MANDIR and SHAREDIR
2028	  Handy for testing release candidates
2029	  in various environments.
2030
20312015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2032
2033	* move initialization of savederr to block where it is used
2034	  to avoid spurious warning from gcc5
2035
20362014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2037
2038	* Makefile (MAKE_VERSION): 20141111
2039	  just a cooler number
2040
20412014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2042
2043	* Makefile (MAKE_VERSION): 20141105
2044	  Merge with NetBSD make, pick up
2045	  o revert major overhaul of suffix handling
2046	    and POSIX compliance - too much breakage
2047	    and impossible to make backwards compatible.
2048	  o we still have the new unit test structure which is ok.
2049	  o meta.c ensure "-- filemon" is at start of line.
2050
20512014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2052
2053	* configure.in: test that result of getconf PATH_MAX is numeric
2054	  and discard if not.  Apparently needed for Hurd.
2055
20562014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2057
2058	* Makefile (MAKE_VERSION): 20140830
2059	  Merge with NetBSD make, pick up
2060	  o major overhaul of suffix handling
2061	  o improved POSIX compliance
2062	  o overhauled unit-tests
2063
20642014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2065
2066	* Makefile (MAKE_VERSION): 20140620
2067	  Merge with NetBSD make, pick up
2068	  o var.c return varNoError rather than var_Error for ::= modifiers.
2069
20702014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2071
2072	* Makefile (MAKE_VERSION): 20140522
2073	  Merge with NetBSD make, pick up
2074	  o var.c detect some parse errors.
2075
20762014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2077
2078	* Fix spelling errors - patch from Pedro Giffuni
2079
20802014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2081
2082	* Makefile (MAKE_VERSION): 20140214
2083	  Merge with NetBSD make, pick up
2084	  o .INCLUDEFROM*
2085	  o use Var_Value to get MAKEOBJDIR[PREFIX]
2086	  o reduced realloc'ign in brk_string.
2087	* configure.in: add a check for compiler supporting __func__
2088
20892014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2090
2091	* boot-strap: ignore mksrc=none
2092
20932014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2094
2095	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
2096
20972014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2098
2099	* Makefile (MAKE_VERSION): 20140101
2100	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
2101	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
2102	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
2103	  Hurd)
2104	* configure.in: Add AC_PREREQ and check for
2105	  sysctl; patch from Andrew Shadura andrewsh at debian.org
2106
21072013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2108
2109	* Makefile (MAKE_VERSION): 20131010
2110	* lose the const from arg to systcl to avoid problems on older BSDs.
2111
21122013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2113
2114	* Makefile (MAKE_VERSION): 20131001
2115	  Merge with NetBSD make, pick up
2116	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
2117	    hw.machine_arch if necessary.
2118	  o meta.c: meta_oodate - need to look at src of Link and target
2119	    of Move as well.
2120	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
2121	  provide __arraycount() if needed.
2122
21232013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2124
2125	* Makefile (MAKE_VERSION): 20130904
2126	  Merge with NetBSD make, pick up
2127	  o Add VAR_INTERNAL context, so that internal setting of
2128	    MAKEFILE does not override value set by makefiles.
2129
21302013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2131
2132	* Makefile (MAKE_VERSION): 20130902
2133	  Merge with NetBSD make, pick up
2134	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
2135
21362013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2137
2138	* Makefile (MAKE_VERSION): 20130828
2139	  Merge with NetBSD make, pick up
2140	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
2141	  o Call Job_SetPrefix() from Job_Init() so makefiles have
2142	    opportunity to set .MAKE.JOB.PREFIX
2143
21442013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2145
2146	* Makefile (MAKE_VERSION): 20130730
2147	  Merge with NetBSD make, pick up
2148	  o Allow suppression of --- job -- tokens by setting
2149	    .MAKE.JOB.PREFIX empty.
2150
21512013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2152
2153	* Makefile (MAKE_VERSION): 20130716
2154	  Merge with NetBSD make, pick up
2155	  o number of gmake compatibility tweaks
2156	    -w for gmake style entering/leaving messages
2157	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
2158	    handle MAKEFLAGS containing only letters.
2159	  o when overriding a GLOBAL variable on the command line,
2160	    delete it from GLOBAL context so -V doesn't show the wrong
2161	    value.
2162
21632013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2164
2165	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
2166
2167	* Makefile (MAKE_VERSION): 20130706
2168	  Merge with NetBSD make, pick up
2169	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
2170	    true so that CompatRunCommand() can use it, to ensure
2171	    consistent behavior with jobs mode.
2172	  o use MAKE_LEVEL_ENV to define the variable to propagate
2173	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
2174	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
2175	    paths to ignore.
2176
21772013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2178
2179	* Makefile (MAKE_VERSION): 20130604
2180	  Merge with NetBSD make, pick up
2181	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
2182	    to avoid leaking descriptors.
2183
21842013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2185
2186	* Makefile (MAKE_VERSION): 20130528
2187	  Merge with NetBSD make, pick up
2188	  o var.c: cleanup some left-overs in VarHash()
2189
21902013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2191
2192	* Makefile (MAKE_VERSION): 20130520
2193	  generate manifest from component FILES rather than have to
2194	  update FILES when mk/FILES changes.
2195
21962013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2197
2198	* Makefile (MAKE_VERSION): 20130518
2199	  Merge with NetBSD make, pick up
2200	  o suff.c: don't skip all processsing for .PHONY targets
2201	    else wildcard srcs do not get expanded.
2202	  o var.c: expand name of variable to delete if necessary.
2203
22042013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2205
2206	* Makefile (MAKE_VERSION): 20130330
2207	  Merge with NetBSD make, pick up
2208	  o meta.c: refine the handling of .OODATE in commands.
2209	    Rather than suppress command comparison for the entire script
2210	    as though .NOMETA_CMP had been used, only suppress it for the
2211	    one command line.
2212	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
2213	    suppress comparison of a command without otherwise affecting it.
2214	  o make.1: document that
2215
22162013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2217
2218	* Makefile (MAKE_VERSION): 20130321
2219	  yes, not quite right but its a cooler number.
2220	  Merge with NetBSD make, pick up
2221	  o parse.c: fix ParseGmakeExport to be portable
2222	    and add a unit-test.
2223	* meta.c: call meta_init() before makefiles are read and if built
2224	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
2225	  this let's makefiles test for support.
2226	  Call meta_mode_init() to process .MAKE.MODE.
2227
22282013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2229
2230	* Makefile (MAKE_VERSION): 20130305
2231	  Merge with NetBSD make, pick up
2232	  o run .STALE: target when a dependency from .depend is missing.
2233	  o job.c: add Job_RunTarget() for the above and .BEGIN
2234
22352013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2236
2237	* Makefile (MAKE_VERSION): 20130303
2238	  Merge with NetBSD make, pick up
2239	  o main.c: set .MAKE.OS to utsname.sysname
2240	  o job.c: more checks for read and poll errors
2241	  o var.c: lose VarChangeCase() saves 4% time
2242
22432013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2244
2245	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
2246	  want to use MAKEOBJDIR
2247
22482013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2249
2250	* Merge with NetBSD make, pick up
2251	  o make.1: more info on how shell commands are handled.
2252	  o job.c,main.c: detect write errors to job pipes.
2253
22542013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2255
2256	* Makefile (MAKE_VERSION): 20130123
2257	  Merge with NetBSD make, pick up
2258	  o meta.c: if script uses .OODATE and meta_oodate() decides
2259	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
2260	  o var.c: in debug output indicate which variabale modifiers
2261	    apply to.
2262	  o remove Check_Cwd logic the makefiles have been fixed.
2263
22642012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
2265
2266	* makefile.in: add a simple makefile for folk who insist on
2267	  ./configure; make; make install
2268	  it just runs boot-strap
2269	* include mk/* to accommodate the above
2270	* boot-strap:  re-work to accommodate the above
2271	  mksrc defaults to $Mydir/mk
2272	  allow op={configure,build,install,clean,all}
2273	  add options to facilitate install
2274	* Makefile.config.in: just the bits set by configure
2275	* Makefile: bump version to 20121212
2276	  abandon Makefile.in (NetBSD Makefile)
2277	  leverage mk/* instead
2278	* configure.in: ensure srcdir is absolute
2279
22802012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2281
2282	* Makefile.in (MAKE_VERSION): 20121111
2283	  fix generation of bmake.cat1
2284
22852012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2286
2287	* Makefile.in (MAKE_VERSION): 20121109
2288	  Merge with NetBSD make, pick up
2289	  o make.c: MakeBuildChild: return 0 so search continues if a
2290	    .ORDER dependency is detected.
2291	  o unit-tests/order: test the above
2292
22932012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2294
2295	* Makefile.in (MAKE_VERSION): 20121102
2296	  Merge with NetBSD make, pick up
2297	  o cond.c: allow cond_state[] to grow.
2298	    In meta mode with a very large tree, we can hit the limit
2299	    while processing dirdeps.
2300
23012012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2302
2303	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2304
23052012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2306
2307	* Makefile.in (MAKE_VERSION): 20121010
2308	  o protect syntax that only bmake parses correctly.
2309	  o remove auto setting of FORCE_MACHINE, use configure's
2310	    --with-force-machine=whatever if that is desired.
2311
23122012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2313
2314	* Makefile.in: do not lose history from make.1 when generating bmake.1
2315
23162012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2317
2318	* Makefile.in (MAKE_VERSION): 20121007
2319	  Merge with NetBSD make, pick up
2320	  o compat.c: ignore empty commands - same as jobs mode.
2321	  o make.1: document meta chars that cause use of shell
2322
23232012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2324
2325	* Makefile.in (MAKE_VERSION): bump version to 20120911
2326	* bsd.after-import.mk: include Makefile.inc early and allow it to
2327	  override PROG
2328
23292012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
2330
2331	* Makefile.in (MAKE_VERSION): bump version to 20120831
2332	  Merge with NetBSD make, pick up
2333	  o cast sizeof() to int for comparison
2334	  o minor make.1 tweak
2335
23362012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2337
2338	* Makefile.in (MAKE_VERSION): bump version to 20120830
2339	  Merge with NetBSD make, pick up
2340	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
2341	  o debug flag -dV causes -V to show raw value regardless.
2342
23432012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2344
2345	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2346	  gets SRCTOP set.
2347
23482012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2349
2350	* Makefile.in (MAKE_VERSION): bump version to 20120704
2351	  Merge with NetBSD make, pick up
2352	  o Job_ParseShell should call Shell_Init if it has been
2353	    previously called.
2354	* Makefile.in: set USE_META based on configure result.
2355	  also .PARSEDIR is safer indicator of bmake.
2356
23572012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2358
2359	* Makefile.in: bump version to 20120626
2360	  ensure CPPFLAGS is in CFLAGS
2361	* meta.c: avoid nested externs
2362	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2363
23642012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2365
2366	* Makefile.in (MAKE_VERSION): bump version to 20120620
2367	  Merge with NetBSD make, pick up
2368	  o make_malloc.c: avoid including make_malloc.h again
2369
2370	* Makefile.in: avoid bmake only syntax or protect with
2371	  .if defined(.MAKE.LEVEL)
2372	* bsd.after-import.mk: replace .-include with .sinclude
2373	  ensure? SRCTOP gets a value
2374	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
2375
23762012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
2377
2378	* Makefile.in (MAKE_VERSION): bump version to 20120612
2379	  Merge with NetBSD make, pick up
2380	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
2381	    for greater portability.
2382	  o unit-tests/forloop: check that .for works as expected wrt
2383	    number of times and with "quoted strings".
2384
23852012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2386
2387	* Makefile.in (MAKE_VERSION): bump version to 20120606
2388	  Merge with NetBSD make, pick up
2389	  o compat.c: use kill(2) rather than raise(3).
2390	* configure.in: look for sys/dev/filemon
2391	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
2392	  and pass BOOTSTRAP_XTRAS to boot-strap.
2393
23942012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2395
2396	* Makefile.in (MAKE_VERSION): bump version to 20120604
2397	  Merge with NetBSD make, pick up
2398	  o util.c and var.c share same var for tracking if environ
2399	    has been reallocated.
2400	  o util.c provide getenv with setenv.
2401	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
2402	  when the shell actively strips .MAKE.* from the environment.
2403	  We still refer to the variable always as .MAKE.LEVEL
2404	* util.c fix bug in findenv() was finding prefix of name.
2405	* compat.c: re-raising SIGINT etc after running .INTERRUPT
2406	  results in more reliable termination of all activity on many
2407	  platforms.
2408
24092012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2410
2411	* Makefile.in (MAKE_VERSION): bump version to 20120602
2412	  Merge with NetBSD make, pick up
2413	  o for.c: handle quoted items in .for list
2414
24152012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2416
2417	* Makefile.in (MAKE_VERSION): bump version to 20120530
2418	  Merge with NetBSD make, pick up
2419	  o compat.c: ignore empty command.
2420
24212012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2422
2423	* Makefile.in (MAKE_VERSION): bump version to 20120524
2424	* FILES: add bsd.after-import.mk:
2425	  A simple means of integrating bmake into a BSD build system.
2426
24272012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2428
2429	* Makefile.in (MAKE_VERSION): bump version to 20120520
2430	  Merge with NetBSD make, pick up
2431	  o increased limit for nested conditionals.
2432
24332012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2434
2435	* Makefile.in (MAKE_VERSION): bump version to 20120518
2436	  Merge with NetBSD make, pick up
2437	  o use _exit(2) in signal hanlder
2438	  o Don't use the [dir] cache when building nodes that might have
2439	    changed since the last exec.
2440	  o Avoid nested extern declaration warnings.
2441
24422012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2443
2444	* meta.c (fgetLine): avoid %z - not portable.
2445	* parse.c: Since we moved include of sys/mman.h
2446	  and def's of MAP_COPY etc. we got dups from a merge.
2447
24482012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2449
2450	* Makefile.in (MAKE_VERSION): bump version to 20120420
2451	  Merge with NetBSD make, pick up
2452	  o restore duplicate supression in .MAKE.MAKEFILES
2453	    runtime saving can be significant.
2454	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2455	    consumption up to 20%.
2456
24572012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2458
2459	* Makefile.in (MAKE_VERSION): bump version to 20120420
2460          Merge with NetBSD make, pick up
2461	  o remove duplicate supression in .MAKE.MAKEFILES
2462	  o improved dir cache behavior
2463	  o gmake'ish export command
2464
24652012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2466
2467	* Makefile.in (MAKE_VERSION): bump version to 20120325
2468	  Merge with NetBSD make, pick up
2469	  o fix parsing of :[#] in conditionals.
2470
24712012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2472
2473	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2474	  since some systems cannot cope with .Nx <version>
2475
24762011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2477
2478	* Makefile.in (MAKE_VERSION): bump version to 20111111
2479	  Merge with NetBSD make, pick up
2480	  o debug output for .PARSEDIR and .PARSEFILE
2481
24822011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2483
2484	* Makefile.in (MAKE_VERSION):  bump version to 20111010
2485
24862011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2487
2488	* boot-strap: check for an expected file in the dirs we look for.
2489	* make-bootstrap.sh: pass on LDSTATIC
2490
24912011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2492
2493	* Makefile.in (MAKE_VERSION): bump version to 20111001
2494	  Merge with NetBSD make, pick up
2495	  o ensure .PREFIX is set for .PHONY
2496	    and .TARGET set for .PHONY run via .END
2497	  o __dead used consistently
2498
24992011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2500
2501	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2502
25032011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2504
2505	* Makefile.in (MAKE_VERSION): bump version to 20110905
2506	  Merge with NetBSD make, pick up
2507	  o meta_oodate: ignore makeDependfile
2508
25092011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2510
2511	* Makefile.in (MAKE_VERSION): bump version to 20110828
2512	  Merge with NetBSD make, pick up
2513	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
2514	    as SILENT if a .meta file is created
2515
25162011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2517
2518	* Makefile.in (MAKE_VERSION): bump version to 20110818
2519	  Merge with NetBSD make, pick up
2520	  o in meta mode, if target flagged .META a missing .meta file
2521	    means target is out-of-date
2522	  o fixes for gcc 4.5 warnings
2523	  o simplify job printing code
2524
25252011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2526
2527	* Makefile.in (MAKE_VERSION): bump version to 20110808
2528	  Merge with NetBSD make, pick up
2529	  o do not touch OP_SPECIAL targets when doing make -t
2530
25312011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2532
2533	* Makefile.in (MAKE_VERSION): bump version to 20110622
2534	  Merge with NetBSD make, pick up
2535	  o meta_oodate detect corrupted .meta file and declare oodate.
2536	* configure.in: add check for setsid
2537
25382011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2539
2540	* Merge with NetBSD make, pick up
2541	  o unit-tests/modts now works on MirBSD
2542
25432011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2544
2545	* Makefile.in (MAKE_VERSION): bump version to 20110606
2546	  Merge with NetBSD make, pick up
2547	  o ApplyModifiers: when we parse a variable which is not
2548	    the entire modifier string, or not followed by ':', do not
2549	    consider it as containing modifiers.
2550	  o loadfile: ensure newline at end of mapped file.
2551
25522011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2553
2554	* Makefile.in (MAKE_VERSION): bump version to 20110505
2555	  Merge with NetBSD make, pick up
2556	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2557	    of make's control.  In meta mode, any generated file within
2558	    said bailiwick, which  is found to be missing, causes current
2559	    target to be out-of-date.
2560
25612011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2562
2563	* Makefile.in (MAKE_VERSION): bump version to 20110411
2564	  Merge with NetBSD make, pick up
2565	  o when long modifiers fail to match, check sysV style.
2566	    - add a test case
2567
25682011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2569
2570	* Makefile.in (MAKE_VERSION): bump version to 20110410
2571	  Merge with NetBSD make, pick up
2572	  o :hash - cheap 32bit hash of value
2573	  o :localtime, :gmtime - use value as format string for strftime.
2574
25752011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2576
2577	* Makefile.in (MAKE_VERSION): bump version to 20110330
2578	  mostly because its a cooler version.
2579	  Merge with NetBSD make, pick up
2580	  o NetBSD tags for meta.[ch]
2581	  o job.c call meta_job_finish() after meta_job_error().
2582	  o meta_job_error() should call meta_job_finish() to ensure
2583	    .meta file is closed, and safe to copy - if .ERROR target wants.
2584	   meta_job_finish() is safe to call repeatedly.
2585
25862011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
2587
2588	* unit-tests/modts: use printf if it is a builtin,
2589	  to save us from MirBSD
2590
2591	* Makefile.in (MAKE_VERSION): bump version to 20110329
2592	  Merge with NetBSD make, pick up
2593	  o fix for use after free() in CondDoExists().
2594	  o meta_oodate() report extra commands and return earlier.
2595
25962011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2597
2598	* Makefile.in (MAKE_VERSION): bump version to 20110327
2599	  Merge with NetBSD make, pick up
2600	  o meta.c, if .MAKE.MODE contains curdirOk=yes
2601	    allow creating .meta files in .CURDIR
2602	* boot-strap (TOOL_DIFF): aparently at least on linux distro
2603	  formats the output of 'type' differently - so eat any "()"
2604
26052011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2606
2607	* Makefile.in (MAKE_VERSION): bump version to 20110306
2608	  Merge with NetBSD make, pick up
2609	  o meta.c, only do getcwd() once
2610
26112011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2612
2613	* Makefile.in (MAKE_VERSION): bump version to 20110305
2614	  Merge with NetBSD make, pick up
2615	  o correct sysV substitution handling of empty lhs and variable
2616	  o correct exists() check for dir with trailing /
2617	  o correct handling of modifiers for non-existant variables
2618	    during evaluation of conditionals.
2619	  o ensure MAP_FILE is defined.
2620	  o meta.c use curdir[] now exported by main.c
2621
26222011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2623
2624	* Makefile.in (MAKE_VERSION): bump version to 20110225
2625	  Merge with NetBSD make, pick up
2626	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2627	    makefiles have been read.
2628	  o fix example of :? modifier in man page.
2629
26302011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2631
2632	* Makefile.in (MAKE_VERSION): bump version to 20110214
2633	  Merge with NetBSD make, pick up
2634	  o meta.c handle realpath() failing when generating meta file
2635	    name.
2636
2637	* sigcompat.c: convert to ansi so we can use higher warning levels.
2638
2639
26402011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2641
2642	* Makefile.in (MAKE_VERSION): bump version to 20110207
2643	  Merge with NetBSD make, pick up
2644	  o fix for bug in meta mode.
2645
26462011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2647
2648	* parse.c: SunOS 5.8 at least does not have MAP_FILE
2649
26502011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2651
2652	* Makefile.in (MAKE_VERSION): bump version to 20110101
2653	  Merge with NetBSD make, pick up
2654	  o use mmap(2) if available, for reading makefiles
2655
26562010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2657
2658	* Makefile.in (MAKE_VERSION): bump version to 20101215
2659	  Merge with NetBSD make, pick up
2660	  o ensure meta_job_error() does not report a previous .meta file
2661	    as being culprit.
2662
26632010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2664
2665	* Makefile.in (MAKE_VERSION): bump version to 20101210
2666	  Merge with NetBSD make, pick up
2667	  o meta_oodate: track cwd per process, and only consider target
2668	    out-of-date if missing file is outside make's CWD.
2669	    Ignore files in /tmp/ etc.
2670	  o to ensure unit-tests results match, need to control LC_ALL
2671	    as well as LANG.
2672	  o fix for parsing bug in var.c
2673
26742010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2675
2676	* Makefile.in (MAKE_VERSION): bump version to 20101126
2677	  Merge with NetBSD make, pick up
2678	  o if stale dependency is an IMPSRC, search via .PATH
2679	  o meta_oodate: if a referenced file is missing, target is
2680	    out-of-date.
2681	  o meta_oodate: if a target uses .OODATE in its commands,
2682	    it (.OODATE) needs to be recomputed.
2683	  o keep a pointer to youngest child node, rather than just its
2684	    mtime.
2685
26862010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2687
2688	* Makefile.in (MAKE_VERSION): bump version to 20101101
2689
26902010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2691
2692	* machine.sh: like os.sh,
2693	allow for uname -p producing useless drivel
2694
26952010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2696
2697	* boot-strap: document configure knobs for meta and filemon.
2698
2699	* Makefile.in (MAKE_VERSION): bump version to 20100911
2700	  Merge with NetBSD make, pick up
2701	  o meta.c - meta mode
2702
2703	* make-bootstrap.sh.in: handle meta.c
2704	* configure.in: add knobs for use_meta and filemon_h
2705	  also, look for dirname, str[e]sep and strlcpy
2706	* util.c: add simple err[x] and warn[x]
2707
27082010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2709
2710	* boot-strap (TOOL_DIFF): set this to ensure tests use
2711	  the same version of diff that configure tested
2712
2713	* Makefile.in (MAKE_VERSION): bump version to 20100808
2714	  Merge with NetBSD make, pick up
2715	  o in jobs mode, when we discover we cannot make something,
2716	    call PrintOnError before exit.
2717
27182010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2719
2720	* Makefile.in (MAKE_VERSION): bump version to 20100806
2721	  Merge with NetBSD make, pick up
2722	  o formatting fixes for ignored errors
2723	  o ensure jobs are cleaned up regardless of where wait() was called.
2724
27252010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2726
2727	* Makefile.in (MAKE_VERSION): bump version to 20100618
2728	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2729
27302010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2731
2732	* Makefile.in (MAKE_VERSION): bump version to 20100616
2733	  Merge with NetBSD make, pick up
2734	  o man page update
2735	  o call PrintOnError from JobFinish when we detect an error we
2736	    are not ignoring.
2737
27382010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2739
2740	* Makefile.in (MAKE_VERSION): bump version to 20100606
2741	  Merge with NetBSD make, pick up
2742	  o man page update
2743
27442010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2745
2746	* Makefile.in (MAKE_VERSION): bump version to 20100605
2747	  Merge with NetBSD make, pick up
2748	  o use bmake_signal() which is a wrapper around sigaction()
2749	    in place of signal()
2750	  o add .export-env to allow exporting variables to environment
2751	    without tracking (so no re-export when the internal value is
2752	    changed).
2753
27542010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2755
2756	* Makefile.in (MAKE_VERSION): bump version to 20100524
2757	  Merge with NetBSD make, pick up
2758	  o fix for .info et al being greedy.
2759
27602010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2761
2762	* Makefile.in (MAKE_VERSION): bump version to 20100520
2763	  Merge with NetBSD make, pick up
2764	  o back to using realpath on argv[0]
2765	    but only if contains '/' and does not start with '/'.
2766
27672010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2768
2769	* boot-strap: use absolute path for bmake when running tests.
2770
2771	* Makefile.in (MAKE_VERSION):  bump version to 20100510
2772	  Merge with NetBSD make, pick up
2773	  o revert use of realpath on argv[0]
2774	    too many corner cases.
2775	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2776
27772010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2778
2779	* Makefile.in (MAKE_VERSION): bump version to 20100505
2780	  Merge with NetBSD make, pick up
2781	  o fix for missed SIGCHLD when compiled with SunPRO
2782	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
2783	    done the job.
2784
27852010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2786
2787	* Makefile.in (MAKE_VERSION): bump version to 20100430
2788	  Merge with NetBSD make, pick up
2789	  o fflush stdout before writing to stdout
2790
27912010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2792
2793	* Makefile.in (MAKE_VERSION): bump version to 20100423
2794	  Merge with NetBSD make, pick up
2795	  o updated unit tests for Haiku (this time for sure).
2796	* boot-strap: based on patch from joerg
2797	  honor --with-default-sys-path better.
2798	* boot-strap: remove mention of --with-prefix-sys-path
2799
28002010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2801
2802	* Makefile.in (MAKE_VERSION): bump version to 20100422
2803	* Merge with NetBSD make, pick up
2804	  o fix for vfork() on Darwin.
2805	  o fix for bogus $TMPDIR.
2806	  o set .MAKE.MODE=compat for -B
2807	  o set .MAKE.JOBS=max_jobs for -j max_jobs
2808	  o allow unit-tests to run without any *.mk
2809	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
2810	* boot-strap: ignore /usr/share/mk except on NetBSD.
2811	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
2812	  ensure sort(1) behaves as expected.
2813
28142010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2815
2816	* boot-strap: add FindHereOrAbove so we can use -m .../mk
2817
28182010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2819
2820	* Makefile.in (MAKE_VERSION): bump version to 20100420
2821	* Merge with NetBSD make, pick up
2822	  o fix for variable realpath() behavior.
2823	    we have to stat(2) the result to be sure.
2824	  o fix for .export (all) when nested vars use :sh
2825
28262010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2827
2828	* Makefile.in (MAKE_VERSION): bump version to 20100414
2829	* Merge with NetBSD make, pick up
2830	  o use realpath to resolve argv[0] (for .MAKE) if needed.
2831	  o add realpath from libc.
2832	  o add :tA to resolve variable via realpath(3) if possible.
2833
28342010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2835
2836	* Makefile.in (MAKE_VERSION): bump version to 20100408
2837	* Merge with NetBSD make, pick up
2838	  o unit tests for .ERROR, .error
2839	  o fix for .ERROR to ensure it cannot be default target.
2840
28412010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2842
2843	* Makefile.in (MAKE_VERSION): bump version to 20100406
2844	* Merge with NetBSD make, pick up
2845	  o fix for compat mode "Error code" going to debug_file.
2846	  o fix for .ALLSRC being populated twice.
2847	  o support for .info, .warning and .error directives
2848	  o .MAKE.MODE to control make's operational mode
2849	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2850	    name(s).
2851	  o .MAKE.DEPENDFILE to control the name of the depend file
2852	  o .ERROR target - run on failure.
2853
28542010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2855
2856	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2857
2858	* os.sh,arch.c: patch for Haiku from joerg at netbsd
2859
28602010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2861
2862	* Makefile.in (MAKE_VERSION): bump version to 20100222
2863	* Merge with NetBSD make, pick up
2864	  o better error msg for .for with mutiple inter vars
2865
2866	* boot-strap:
2867	  o use make-bootstrap.sh from joerg at netbsd
2868	    to avoid the need for a native make when bootstrapping.
2869	  o add "" everywhere ;-)
2870	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2871	    otherwise the pre-formated version.
2872
28732010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2874
2875	* Makefile.in (MAKE_VERSION): bump version to 20100102
2876	* Merge with NetBSD make, pick up:
2877	  o fix for -m .../
2878
28792009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
2880
2881	* Makefile.in (MAKE_VERSION): bump version to 20091118
2882	* Merge with NetBSD make, pick up:
2883	  o .unexport
2884	  o report lines that start with '.' and should have ':'
2885	    (catch typo's of .el*if).
2886
28872009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
2888
2889	* configure.in: Ensure that srcdir and mksrc are absolute paths.
2890
28912009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2892
2893	* Makefile.in (MAKE_VERSION): fix version to 20091007
2894
28952009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
2896
2897	* Makefile.in (MAKE_VERSION): bump version to 200910007
2898	* Merge with NetBSD make, pick up:
2899	  o fix for parsing of :S;...;...; applied to .for loop iterator
2900	    appearing in a dependency line.
2901
29022009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
2903
2904	* Makefile.in (MAKE_VERSION): bump version to 20090909
2905	* Merge with NetBSD make, pick up:
2906	  o fix for -C, .CURDIR and .OBJDIR
2907	* boot-strap:
2908	  o allow share_dir to be set independent of prefix.
2909	  o select default share_dir better when prefix ends in $HOST_TARGET
2910	  o if FORCE_BSD_MK etc were set, include them in the suggested
2911	    install-mk command.
2912
29132009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2914
2915	* Makefile.in (MAKE_VERSION): bump version to 20090908
2916	* Merge with NetBSD make, pick up:
2917	  o .MAKE.LEVEL for recursion tracking
2918	  o fix for :M scanning \:
2919
29202009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
2921
2922	* configure.in: Don't -D__EXTENSIONS__ if
2923	AC_USE_SYSTEM_EXTENSIONS says "no".
2924
29252009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
2926
2927	* Makefile.in (MAKE_VERSION): bump version to 20090826
2928	Simplify MAKE_VERSION to just the bare date.
2929	* Merge with NetBSD make, pick up:
2930	  o -C directory support.
2931	  o support for SIGINFO
2932	  o use $TMPDIR for temp files.
2933	  o child of vfork should be careful about modifying parent's state.
2934
2935
29362009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2937
2938	* Appy some patches for MiNT from David Brownlee
2939
29402009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
2941
2942	* Makefile.in (BMAKE_VERSION): bump version to 20090222
2943	* Merge with NetBSD make, pick up:
2944	  o Possible null pointer de-ref in Var_Set.
2945
29462009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
2947
2948	* Makefile.in (BMAKE_VERSION): bump version to 20090204
2949	* Merge with NetBSD make, pick up:
2950	  o bmake_malloc et al moved to their own .c
2951	  o Count both () and {} when looking for the end of a :M pattern
2952	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2953	  o strlist.c - functions for processing extendable arrays of pointers to strings.
2954	  o ClientData replaced with void *, so const void * can be used.
2955	  o New debug flag C for DEBUG_CWD
2956
29572008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2958
2959	* Makefile.in (BMAKE_VERSION): bump version to 20081111
2960	  Apply patch from Joerg Sonnenberge to
2961	  configure.in:
2962	  o remove some redundant checks
2963	  o check for emlloc etc only in libutil and require the whole family.
2964	  util.c:
2965	  o remove [v]asprintf which is no longer used.
2966
29672008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2968
2969	* Makefile.in (BMAKE_VERSION): bump version to 20081101
2970	* Merge with NetBSD make, pick up:
2971	  o util.c: avoid use of putenv() - christos
2972
29732008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
2974
2975	* Makefile.in (BMAKE_VERSION): bump version to 20081030
2976	  pick up man page tweaks.
2977
29782008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
2979
2980	* Makefile.in: move processing of LIBOBJS to after is definition!
2981	  thus we'll have getenv.c in SRCS only if needed.
2982
2983	* make.1: add examples of how to use :?
2984
2985	* Makefile.in (BMAKE_VERSION): bump version to 20081029
2986	* Merge with NetBSD make, pick up:
2987	  o fix for .END processing with -j
2988	  o segfault from Parse_Error when no makefile is open
2989	  o handle numeric expressions in any variable expansion
2990	  o debug output now defaults to stderr, -dF to change it - apb
2991	  o make now uses bmake_malloc etc so that it can build natively
2992	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2993
29942008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
2995
2996	* Makefile.in (BMAKE_VERSION): bump version to 20080808
2997	* Merge with NetBSD make, pick up:
2998	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2999	    long lines in Makefiles
3000	  o optimizations for VarQuote by joerg
3001	  o fix for PR/38756: dominik: make dumps core on invalid makefile
3002
30032008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
3004
3005	* Makefile.in (BMAKE_VERSION): bump version to 20080515
3006	* Merge with NetBSD make, pick up:
3007	  o fix skip setting vars in VAR_GLOBAL context, to handle
3008	    cases where VAR_CMD is used for other than command line vars.
3009
30102008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
3011
3012	* boot-strap (make_version): we may need to look in
3013	$prefix/share/mk for sys.mk
3014
3015	* Makefile.in (BMAKE_VERSION): bump version to 20080514
3016	* Merge with NetBSD make, pick up:
3017	  o skip setting vars in VAR_GLOBAL context, when already set in
3018	  VAR_CMD which takes precedence.
3019
30202008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
3021
3022	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
3023	* Merge with NetBSD make, pick up:
3024	  o fix for ?= when LHS contains variable reference.
3025
30262008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3027
3028	* merge some patches from NetBSD pkgsrc.
3029
3030	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3031	the MAKSYSPATH used during bootstrap.
3032
3033	* Makefile.in (BMAKE_VERSION): bump version to 20080215
3034	* Merge with NetBSD make, pick up:
3035	  o warn if non-space chars follow 'empty' in a conditional.
3036
30372008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3038
3039	* Makefile.in (BMAKE_VERSION): bump version to 20080118
3040	* Merge with NetBSD make, pick up:
3041	  o consider dependencies read from .depend as optional - dsl
3042	  o remember when buffer for reading makefile grows - dsl
3043	  o add -dl (aka LOUD) - David O'Brien
3044
30452007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
3046
3047	* Makefile.in (BMAKE_VERSION): bump version to 20071022
3048	* Merge with NetBSD make, pick up:
3049	  o Allow .PATH<suffix> to be used for .include ""
3050
3051	* boot-strap: source default settings from .bmake-boot-strap.rc
3052
30532007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
3054
3055	* Makefile.in: fix maninstall on various systems
3056	  provided that our man.mk is used.
3057	  For non-BSD systems we install the preformatted page
3058	  into $MANDIR/cat1
3059
30602007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
3061
3062	* boot-strap: make bmake.1 too, so maninstall works.
3063
30642007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
3065
3066	* Makefile.in (BMAKE_VERSION): bump version to 20071014
3067	* Merge with NetBSD make, pick up:
3068	  o revamped handling of defshell - configure no longer needs to
3069	    know the content of the shells array - apb
3070	  o stop Var_Subst modifying its input - apb
3071	  o avoid calling ParseTrackInput too often - dsl
3072
30732007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
3074
3075	* Makefile.in (BMAKE_VERSION): bump version to 20071011
3076	* Merge with NetBSD make, pick up:
3077	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
3078
3079	* sigcompat.c: some tweaks for HP-UX 11.x based on
3080	  patch from Tobias Nygren
3081
3082	* configure.in: update handling of --with-defshell to match
3083	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
3084	  will now do what one might hope - provided the chosen shell
3085	  behaves enough like sh.
3086
30872007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
3088
3089	* Makefile.in (BMAKE_VERSION): bump to 20071008
3090	* Merge with NetBSD make, pick up:
3091	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
3092	  o .export/.MAKE.EXPORTED - export of variables - sjg
3093	  o .MAKE.MAKEFILES - track all makefiles read - sjg
3094	  o performance improvements - dsl
3095	  o revamp parallel job scheduling - dsl
3096
30972006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3098
3099	* Makefile.in (BMAKE_VERSION): bump to 20060728
3100	* Merge with NetBSD make, pick up:
3101	  o extra debug info during variable and cond processing - sjg
3102	  o shell definition now covers newline - rillig
3103	  o minor mem leak in PrintOnError - sjg
3104
31052006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3106
3107	* Makefile.in (BMAKE_VERSION):  bump to 20060511
3108	* Merge with NetBSD make, pick up:
3109	  o more memory leaks - coverity
3110	  o possible overflow in ArchFindMember - coverity
3111	  o extract variable modifier code out of Var_Parse()
3112	    so it can be called recursively - sjg
3113	  o unit-tests/moderrs - sjg
3114
31152006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
3116
3117	* Makefile.in (BMAKE_VERSION): bump to 20060412
3118	* Merge with NetBSD make, pick up:
3119	  o fixes for some memory leaks - coverity
3120	  o only read first sys.mk etc when searching sysIncPath - sjg
3121
3122	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
3123	setting ${MAKEFILE} - OBATA Akio
3124
31252006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
3126
3127	* Makefile.in (BMAKE_VERSION): bump to 20060318
3128	* Merge with NetBSD make, pick up:
3129	  o cleanup of job.c to remove remote handling, distcc is more
3130	    useful and this code was likely bit-rotting - dsl
3131	  o fix for :P modifier - sjg
3132	* boot-strap: set default prefix to something reasonable
3133	  (for me anyway).
3134
31352006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
3136
3137	* Makefile.in (BMAKE_VERSION): bump to 20060301
3138	* Merge with NetBSD make, pick up:
3139	  o make .WAIT apply recursively, document and test case - apb
3140	  o allow variable modifiers in a variable appear anywhere in
3141	    modifier list, document and test case - sjg
3142
31432006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
3144
3145	* Makefile.in (BMAKE_VERSION): bump to 20060222
3146	* Merge with NetBSD make, pick up:
3147	  o improved job token handling - dsl
3148	  o SIG_DFL the correct signal before exec - dsl
3149	  o more debug info during parsing - dsl
3150	  o allow variable modifiers to be specified via variable - sjg
3151	* boot-strap: explain why we died if no mksrc
3152
31532005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
3154
3155	* Makefile.in (BMAKE_VERSION): bump to 20051105
3156	* configure.in: always set default_sys_path
3157	  default is ${prefix}/share/mk
3158	  - remove prefix_sys_path, anyone wanting more than above
3159	    needs to set it manually.
3160
31612005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
3162
3163	* boot-strap: make this a bit easier for pkgsrc folk.
3164	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
3165	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
3166
31672005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
3168
3169	* Makefile.in (BMAKE_VERSION): bump to 20051102
3170	* job.c (JobFinish): fix likely ancient merge lossage
3171	fix from Todd Vierling.
3172	* boot-strap (srcdir): allow setting mksrc=none
3173
31742005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
3175
3176	* Makefile.in (BMAKE_VERSION): bump to 20051031
3177	* ranlib.h: skip on OSF too.
3178	  (NetBSD PR 31864)
3179
31802005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
3181
3182	* Makefile.in (BMAKE_VERSION): bump to 20051002
3183	  fix a silly typo
3184
31852005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
3186
3187	* Makefile.in (BMAKE_VERSION): bump to 20051001
3188	  support for UnixWare and some other systems,
3189	  based on patches from pkgsrc/bootstrap
3190
31912005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
3192
3193	* Makefile.in (BMAKE_VERSION): bump to 20050901
3194	* Merge with NetBSD make, pick up:
3195	  o possible parse error causing us to wander off.
3196
31972005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
3198
3199	* Makefile.in (BMAKE_VERSION): bump to 20050606
3200	* Merge with NetBSD make, pick up:
3201	  o :0x modifier for randomizing a list
3202	  o fixes for a number of -Wuninitialized issues.
3203
32042005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
3205
3206	* Makefile.in (BMAKE_VERSION): bump to 20050530
3207	* Merge with NetBSD make, pick up:
3208	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
3209
3210	* README: was seriously out of date.
3211
32122005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
3213
3214	* Important to use .MAKE rather than MAKE.
3215
32162005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
3217
3218	* Makefile.in (BMAKE_VERSION): bump to 20050315
3219	* Merge with NetBSD make, pick up:
3220	  o don't mistake .elsefoo for .else
3221	  o use suffix-specific search path correctly
3222	  o bunch of style nits
3223
32242004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
3225
3226	* boot-strap:
3227	o ensure that args to --src and --with-mksrc
3228	  are resolved before giving them to configure.
3229	o add -o "objdir" so that builder can control it,
3230	  default is $OS as determined by os.sh
3231	o add -q to suppress all the install instructions.
3232
32332004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
3234
3235	* Remove __IDSTRING()
3236
3237	* Makefile.in (BMAKE_VERSION): bump to 20040508
3238	* Merge with NetBSD make, pick up:
3239	  o posix fixes
3240	    - remove '-e' from compat mode
3241	    - add support for '+' command-line prefix.
3242	  o fix for handling '--' on command-line.
3243	  o fix include in lst.lib/lstInt.h to simplify '-I's
3244	  o we also picked up replacement of MAKE_BOOTSTRAP
3245	    with !MAKE_NATIVE which is a noop, but possibly confusing.
3246
32472004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
3248
3249	* Makefile.in (BMAKE_VERSION): bump to 20040414
3250	* Merge with NetBSD make, pick up:
3251	  o allow quoted strings on lhs of conditionals
3252	  o issue warning when extra .else is seen
3253	  o print line numer when errors encountered during parsing from
3254	  string.
3255
32562004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
3257
3258	* Makefile.in (BMAKE_VERSION):  bump to 20040220
3259	* Merge with NetBSD make, pick up:
3260	  o fix for old :M parsing bug.
3261	  o re-jigged unit-tests
3262
32632004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
3264
3265	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
3266	so that './bmake -f Makefile test' works.
3267
32682004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
3269
3270	* Makefile.in: (BMAKE_VERSION): bump to 20040214
3271	* Merge with NetBSD make, pick up:
3272	  o search upwards for *.mk
3273	  o fix for double free of var substitution buffers
3274	  o use of getopt replaced with custom code, since the usage
3275	  (re-scanning) isn't posix compatible.
3276
32772004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
3278
3279	* arch.c: don't include ranlib.h on ELF systems
3280	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
3281
32822004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
3283
3284	* Makefile.in (BMAKE_VERSION): bump to 20040118
3285
3286	* boot-strap (while): export vars we assign to on cmdline
3287	* unit-test/Makefile.in: ternary is .PHONY
3288
32892004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
3290
3291	* Makefile.in (BMAKE_VERSION): bump version to 20040108
3292	* Merge with NetBSD make, pick up:
3293	  o fix for ternary modifier
3294
32952004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
3296
3297	* Makefile.in (BMAKE_VERSION): bump version to 20040105
3298	* Merge with NetBSD make, pick up:
3299	  o fix for cond.c to handle compound expressions better
3300	  o variable expansion within sysV style replacements
3301
33022003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
3303
3304	* Make portable snprintf safer - output to /dev/null first to
3305	check space needed.
3306
3307	* Makefile.in (BMAKE_VERSION): bump version to 20031222
3308	* Merge with NetBSD make, pick up:
3309	  o -dg3 to show input graph when things go wrong.
3310	  o explicitly look for makefiles in objdir if not found in curdir so
3311	    that errors in .depend etc will be reported accurarely.
3312	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
3313	    instead as it more accurately reflects the expected behavior and
3314	    is more consistently implemented.
3315	  o avoid use of asprintf.
3316
33172003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
3318
3319	* util.c: Add asprintf and vasprintf.
3320
3321	* Makefile.in (BMAKE_VERSION): bump version to 20030928
3322	* Merge with NetBSD make, pick up:
3323	:[] modifier - allows picking words from a variable.
3324	:tW modifier - allows treating value as one big word.
3325	W flag for :C and :S - allows treating value as one big word.
3326
33272003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
3328
3329	* Merge with NetBSD make
3330	pick up -de flag to enable printing failed command.
3331	don't skip 1st two dir entries (normally . and ..) since
3332	coda does not have them.
3333
33342003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
3335
3336	* Makefile.in (BMAKE_VERSION): bump version to 20030909
3337	* Merge with NetBSD make, pick up:
3338	- changes for -V '${VAR}' to print fully expanded value
3339	  cf. -V VAR
3340	- CompatRunCommand now prints the command that failed.
3341	- several files got updated 3 clause Berkeley license.
3342
33432003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
3344
3345	* boot-strap: Allow setting configure args on command line.
3346
33472003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
3348
3349	* configure.in: add --with-defshell to allow sh or ksh
3350	to be selected as default shell.
3351
3352	* Makefile.in: bump version to 20030731
3353
3354	* Merge with NetBSD make
3355	Pick up .SHELL spec for ksh and associate man page changes.
3356	Also compat mode now uses the same shell specs.
3357
33582003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
3359
3360	* var.c (Var_Parse): ensure delim is initialized.
3361
3362	* unit-tests/Makefile.in: use single quotes to avoid problems from
3363	some shells.
3364
3365	* makefile.boot.in:
3366	Run the unit-tests as part of the bootstrap procedure.
3367
33682003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
3369
3370	* unit-tests/Makefile.in: always force complaints from
3371	${TEST_MAKE} to be from 'make'.
3372
3373	* configure.in: add check for 'diff -u'
3374	also fix some old autoconf'isms
3375
3376	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
3377	if using GCC add -Wno-cast-qual to CFLAGS for var.o
3378
3379	* Merge with NetBSD make
3380	Pick up fix for :ts parsing error in some cases.
3381	Pick unit-tests.
3382
33832003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
3384
3385	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
3386
3387	* var.c (Var_Parse): fix bug in :ts modifier, after const
3388	correctness fixes, must pass nstr to VarModify.
3389
33902003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
3391
3392	* Makefile.in: BMAKE_VERSION switch to a date based version.
3393	We'll generally use the date of last import from NetBSD.
3394
3395	* Merge with NetBSD make
3396	Pick up fixes for const-correctness, now passes WARNS=3 on
3397	NetBSD.
3398	Pick up :ts modifier, allows controlling the separator used
3399	between words in variable expansion.
3400
34012003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
3402
3403	* FILES: include boot-strap and os.sh
3404
3405	* Makefile.in: only set WARNS if we are NetBSD, the effect on
3406	FreeBSD is known to be bad.
3407
3408	* makefile.boot.in (bootstrap): make this the default target.
3409
3410	* Makefile.in: bump version to 3.1.19
3411
3412	* machine.sh: avoid A-Z with tr as it is bound to lose.
3413
34142003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
3415
3416	* Merge with NetBSD make
3417	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3418	Plus some doc fixes.
3419
34202003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
3421
3422	* Merge with NetBSD make
3423	Pick up fix for PR/1523 - don't count a library as built, if there
3424	is no way to build it
3425
3426	* Bump version to 3.1.18
3427
34282003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
3429
3430	* Merge with NetBSD make
3431	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3432	appears in src list.
3433
34342003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
3435
3436	* Merge with NetBSD make (mmm 10th anniversary!)
3437	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3438	pick up -X which tells us to not export VAR=val via setenv if
3439	we are already doing so via MAKEFLAGS.  This saves valuable env
3440	space on systems like Darwin.
3441	set MAKE_VERSION to 3.1.17
3442
3443	* parse.c: pix up fix for suffix rules
3444
34452003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
3446
3447	* Merge with NetBSD make.
3448	pick up fix for propagating -B via MAKEFLAGS.
3449	set MAKE_VERSION to 3.1.16
3450
3451	* Apply some patches from pkgsrc-bootstrap/bmake
3452	Originally by Grant Beattie <grant@netbsd.org>
3453	I may have missed some - since they are based on bmake-3.1.12
3454
34552002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
3456
3457	* makefile.boot.in (bmake): update install targets for those that
3458	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3459	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
3460
3461	* bmake.cat1: update the pre-formatted man page!
3462
34632002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
3464
3465	* Merge with NetBSD make.
3466	pick up fix for premature free of pointer used in call
3467	to Dir_InitCur().
3468	set MAKE_VERSION to 3.1.15
3469
34702002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
3471
3472	* configure.in: determine suitable value for MKSRC.
3473	override using --with-mksrc=PATH.
3474
3475	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3476	configs(8) will use 'sun4' as an alias for 'sparc'.
3477
34782002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
3479
3480	* Merge with NetBSD make.
3481	pick up ${.PATH}
3482	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3483	set MAKE_VERSION to 3.1.14
3484	add configure checks for killpg and sys/socket.h
3485
34862002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
3487
3488	* tag bmake-3-1-13
3489
3490	* makefile.boot.in (bmake): use install-mk
3491	Also setup ./mk before trying to invoke bmake.boot incase we
3492	needed install-mk to create a sys.mk for us.
3493
3494	* configure.in: If we need to add -I${srcdir}/missing, make it an
3495	absolute path so that it works for lst.lib too.
3496
3497	* make.h: always include sys/cdefs.h since we provide one if the
3498	host does not.
3499
3500	* Makefile.in (install-mk):
3501	use MKSRC/install-mk which will do the right thing.
3502	use uname -p for ARCH if possible.
3503	since install-mk will setup links bsd.prog.mk -> prog.mk if
3504	needed, just .include bsd.prog.mk
3505
3506	* Merge with NetBSD make (NetBSD-1.6)
3507	Code is ansi-C only now.
3508	Bug in handling of dotLast is fixed.
3509	Can now assign .OBJDIR and make will reset its notions of life.
3510	New modifiers :tu :tl for toUpper and toLower.
3511
3512Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3513
3514	* Merge with NetBSD make
3515	pick up fix for .END failure in compat mode.
3516	pick up fix for extra va_end() in ParseVErrorInternal.
3517
3518Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3519
3520	* configure.in: for systems that have sys/cdefs.h check if it is
3521	compatible.  If not, include the one under missing, but tell it to
3522	include the native one too - necessary on Linux.
3523
3524	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3525	include_next (for gcc) to get the native sys/cdefs.h
3526
3527Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3528
3529	* job.c (JobFinish): Fix an earlier merge bug that resulted in
3530	leaking descriptors when using -jN.
3531
3532	* job.c (JobPrintCommand): See if "curdir" exists before
3533	attempting to chdir().  Doing the chdir directly in make (when in
3534	compat mode) fails silently, so let the -jN version do the same.
3535	This can happen when building kernels in an object tree and
3536	playing clever games to reset .CURDIR.
3537
3538	* Merged with NetBSD make
3539	pick up .USEBEFORE
3540
3541Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3542
3543	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3544
3545Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3546
3547	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3548	us not to export the iterator variable when using VAR_CMD context.
3549
3550Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3551
3552	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3553	its the wrong "fix".
3554
3555Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3556
3557	* Redesigned export of VAR_CMD's via MAKEFLAGS.
3558	We now simply append the variable names to .MAKEOVERRIDES, and
3559	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3560	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3561	Apart from fixing quoting bugs in previous version, this allows us
3562	to export vars to the environment by simply doing:
3563	.MAKEOVERRIDES+= PATH
3564	Merged again with NetBSD make, but the above is the only change.
3565
3566	* configure.in: added
3567	--disable-pwd-override		disable $PWD overriding getcwd()
3568	--disable-check-make-chdir	disable make trying to guess
3569		when it should automatically cd ${.CURDIR}
3570
3571	* Merge with NetBSD make, changes include:
3572	parse.c (ParseDoDependency): Spot that the syntax error is
3573	caused by an unresolved cvs/rcs conflict and say so.
3574	var.c: most of Var* functions now take a ctxt as 1st arg.
3575	now does variable substituion on rhs of sysv style modifiers.
3576
3577	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
3578	is now done here.  We append the name='value' to .MAKEOVERRIDES
3579	rather than directly into MAKEFLAGS as this allows a Makefile to
3580	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
3581	very similar mechanism.  Note that in adding name='value' to
3582	.MAKEOVERRIDES we do the moral equivalent of:
3583	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3584
3585Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3586
3587	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3588
3589	* Merged with NetBSD make
3590	make -dx can now be used to run commands via sh -x
3591	better error messages on exec failures.
3592
3593Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3594
3595	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3596	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
3597	MACHINE etc otherwise they propagate from the previous bmake.
3598
3599	* configure.in (machine): allow --with-machine=generic to make
3600	configure use machine.sh to set MACHINE.
3601
3602	* job.c (JobInterrupt): convert to using WAIT_T and friends.
3603
3604	* Makefile.in: mention in bmake.1 that we use autoconf.
3605
3606	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3607
3608Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3609
3610	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3611	as that rather defeats the usefulness of ${MAKEFILE}.
3612
3613	* main.c (MainParseArgs): append command line variable assignments
3614	to MAKEFLAGS so that they get propagated to child make's.
3615	Apparently this is required POSIX behaviour?  Its useful anyway.
3616
3617Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3618
3619	* compat.c (CompatRunCommand): don't use perror() since stdio may
3620	cause problems in child of vfork().
3621
3622	* compat.c, main.c: Call PrintOnError() when we are going to bail.
3623	This routine prints out the .curdir where we stopped and will also
3624	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3625
3626	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
3627	:@ expansion.
3628
3629	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
3630
3631	* Added RCSid's for the files we've touched.
3632
3633Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3634
3635	* configure.in:	Thanks to some clues from mdb@juniper.net,
3636	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3637	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
3638
3639  --with-machine=MACHINE  explicitly set MACHINE
3640  --with-force-machine=MACHINE  set FORCE_MACHINE
3641  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
3642  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
3643  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
3644  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
3645
3646	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3647
3648	* makefile: added a pathetically simple makefile to drive
3649	bootstrapping.  Running configure by hand is more useful.
3650
3651	* Makefile.in: added MAKE_VERSION, and reworked things to be less
3652	dependent on NetBSD bsd.*.mk
3653
3654	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3655	_PATH_OBJDIRPREFIX for those that don't want a default.
3656	construct _PATH_DEFSYSPATH from the info we get from configure.
3657
3658	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3659	if MAKE_VERSION is defined.
3660
3661	* compat.c: when we bail, print out the .CURDIR we were in.
3662
3663Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3664
3665	* Merged with NetBSD make
3666
3667	* var.c: fixed a bug in the handling of the modifier :P
3668	if the node as found but the path was null, we segfault trying to
3669	duplicate it.
3670
3671Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3672
3673	* Merged with NetBSD make
3674
3675	* make.c: Make_OODate's test for a library out of date was using
3676	cmtime where it should have used mtime (my bug).
3677
3678	* compat.c: Use perror() to tell us what really went wrong when we
3679	cannot exec a command.
3680
3681Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3682
3683	* Merged with NetBSD make
3684
3685Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3686
3687	* Merged with NetBSD make
3688
3689Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3690
3691	* Merged with NetBSD make
3692
3693Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3694
3695	* Merged with NetBSD make
3696
3697Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3698
3699	* util.c: don't provide signal() since we use sigcompat.c
3700
3701	* Makefile.in: added a build target.
3702
3703	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3704	These allow some quite clever magic.
3705
3706	* main.c (main): added support for getenv(MAKESYSPATH).
3707
3708Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3709
3710	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3711	This avoids objdir having a different value depending on how a
3712	directory was reached (via command line, or subdir.mk).
3713
3714	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3715
3716Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3717
3718	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3719	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3720	I've been testing this in NetBSD's make for some weeks.
3721
3722	* Turn Makefile into Makefile.in and make it useful.
3723
3724Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
3725
3726	* Imported NetBSD's -current make(1) and resolve conflicts.
3727
3728	* Applied autoconf patches from bmake v2
3729
3730	* Imported clean code base from NetBSD-1.0
3731