xref: /freebsd/contrib/bmake/ChangeLog (revision 3110d4ebd6c0848cf5e25890d01791bb407e2a9b)
12021-01-10  Simon J Gerraty  <sjg@beast.crufty.net>
2
3	* VERSION (_MAKE_VERSION): 20210110
4	Merge with NetBSD make, pick up
5	o fix lint warnings
6	o consistently use boolean expressions in conditions
7
82021-01-08  Simon J Gerraty  <sjg@beast.crufty.net>
9
10	* VERSION (_MAKE_VERSION): 20210108
11	Merge with NetBSD make, pick up
12	o job.c: back to polling token pipe if we want a token
13	o main.c: always print 'stopped in' on first call
14	The execption is if we bail because of an abort token
15	in which case just exit 6.
16
172021-01-01  Simon J Gerraty  <sjg@beast.crufty.net>
18
19	* VERSION (_MAKE_VERSION): 20210101
20	Merge with NetBSD make, pick up
21	o Happy New Year!
22	o rename CmdOpts.lint to strict
23	o exit 2 on technical errors
24	o replace pointers in controlling conditions with booleans
25	o replace global preserveUndefined with VARE_KEEP_UNDEF
26	o compat.c: re-export variables from the actual make process
27	if using vfork this is the effect anyway
28	o cond.c: clean up VarParseResult constants
29	o for.c: fix undefined behavior in SubstVarLong
30	make control flow in SubstVarLong of .for loops more obvious
31	clean up SubstVarShort in .for loops
32	extract ForSubstBody from ForReadMore
33	clean up ForReadMore
34	simplify termination condition for .for loop
35	add error handling for .for loop items
36	job.c: re-export variables from the actual make process
37	parse.c: remove mmap for loading files, only allow files < 1 GiB
38	fix edge case in := with undefined in variable name
39	skip variable expansion in ParseDependencyTargetWord
40	var.c: split ExportVar into separate functions
41	clean up code in extracted ExportVar functions
42	remove dead code from ApplyModifiersIndirect
43	split Var_Subst into easily understandable functions
44	clean up VarParseResult constants
45
462020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
47
48	* main.c: use .MAKE.DEPENDFILE as set by makefiles
49
502020-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
51
52	* VERSION (_MAKE_VERSION): 20201222
53	Merge with NetBSD make, pick up
54	o make DEBUG macro return boolean
55	o parse.c: fix assertion failure for files without trailing newline
56	o var.c: allow .undef to undefine multiple variables at once
57	remove excess newline from parse errors
58
592020-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
60
61	* VERSION (_MAKE_VERSION): 20201221
62	Merge with NetBSD make, pick up
63	o some unit-test updates
64
652020-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
66
67	* VERSION (_MAKE_VERSION): 20201220
68	Merge with NetBSD make, pick up
69	o more unit tests
70	o return FStr from Var_Parse and Var_Value
71	o spell nonexistent consistently
72	o add str_basename to reduce duplicate code
73	o compat.c: fix .ERROR_TARGET in compat -k mode
74	extract InitSignals from Compat_Run
75	extract UseShell from Compat_RunCommand
76	o cond.c: error out if an '.endif' or '.else' contain extraneous text
77	o for.c: rename ForIterate to ForReadMore
78	o hash.c: clean up hash function for HashTable
79	o lst.c: rename Vector.priv_cap to cap
80	o main.c: remove constant parameter from MakeMode
81	o make.c: use symbolic time for 0 in Make_Recheck
82	extract MakeChildren from MakeStartJobs
83	o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
84	fix error message for .info/.warning/.error without argument
85	extract Var_Undef from ParseDirective
86	extract ParseSkippedBranches, ParseForLoop from ParseReadLine
87	rename mode constants for ParseGetLine to be more expressive
88	reduce debugging details in Parse_SetInput
89	fix line numbers in .for loops
90	split ParseGetLine into separate functions
91	fix garbled output for failed shell command
92	var.c: remove redundant assignment in ApplyModifier_SysV
93	error out on unknown variable modifiers at parse time
94	remove wrong error message for indirect modifier in lint mode
95	extract ApplySingleModifier from ApplyModifiers
96	use FStr for memory management in Var_SetWithFlags
97	extract SetVar from Var_SetWithFlags
98	use FStr in VarNew
99	extract string functions from ApplyModifier_To
100	error out if .undef has not exactly 1 argument
101	extract Var_DeleteVar from Var_Delete
102	extract Var_Undef from ParseDirective
103	clean up memory management for expanding variable expressions
104
1052020-12-12  Simon J Gerraty  <sjg@beast.crufty.net>
106
107	* avoid %zu
108
109	* lst.c: avoid anonymous union
110
111	* VERSION (_MAKE_VERSION): 20201212
112	Merge with NetBSD make, pick up
113	o more unit tests
114	o inline Targ_Ignore and Targ_Silent
115	o split JobFlags into separate fields
116	o remove const from function parameters (left overs from refactoring)
117	o eliminate boolean argument of Var_Export
118	o make API of Buf_Init simpler
119	o rename ParseRunOptions to ParseCommandFlags
120	o replace *line with line[0]
121	o compat.c: fix wrong exit status for multiple failed main targets
122	refactor Compat_Run to show the error condition more clearly
123	don't make .END if the main targets already failed (-k mode)
124	fix exit status in -k mode if a dependency fails
125	o for.c: clean up Buf_AddEscaped in .for loops
126	o job.c: extract ShellWriter_ErrOn from JobPrintCommand
127	make Job_Touch simpler
128	refactor JobFinish
129	rename Shell.exitFlag to errFlag
130	move Job.xtraced to ShellWriter
131	make printing of shell commands independent from the job
132	rename shell flags in struct Shell
133	extract JobOpenTmpFile from JobStart
134	rename RunFlags to CommandFlags
135	split various Job.* into separate fields
136	rename commandShell to shell
137	extract InitShellNameAndPath from Shell_Init
138	replace signal handling macros with local functions
139	replace macro MESSAGE with local function
140	parse.c: error out on null bytes in makefiles
141	error out on misspelled directives
142	rename IFile.nextbuf to readMore
143	fix undefined behavior in ParseEOF
144	str.c: remove redundant call to strlen in Str_Words
145	var.c: error out on misspelled .unexport-env
146	error out on misspelled .export directives
147	extract ExportVars from Var_Export
148	extract ExportVarsExpand from Var_Export
149	eliminate boolean argument of Var_Export
150	fix undefined behavior when exporting ${:U }
151	rename Var_ExportVars to Var_ReexportVars
152	rename Var_Export1 to ExportVar
153
1542020-12-06  Simon J Gerraty  <sjg@beast.crufty.net>
155
156	* VERSION (_MAKE_VERSION): 20201206
157	Merge with NetBSD make, pick up
158	o more unit tests
159	o inline macros for debug logging
160	o use consistent variable names for list nodes
161	o define constants for enum zero-values
162	o dir.c: use fixed format for debug output of the directory cache
163	remove Dir_InitDir
164	o lst.c: inline Lst_Enqueue, Vector_Done
165	o meta.c: remove unused parameter from meta_needed
166	o parse.c: rename parse functions
167	o suff.c: extract ExpandChildrenRegular from ExpandChildren
168	o targ.c: don't concatenate identifiers in Targ_PrintType
169	o var.c: remove comment decoration
170	extract UnexportVars from Var_UnExport
171	extract GetVarnamesToUnexport from Var_UnExport
172	extract UnexportEnv from Var_UnExport
173	extract UnexportVar from Var_UnExport
174	move CleanEnv to UnexportVars
175	replace pointer comparisons with enum
176	add FStr to var.c to make memory handling simpler
177	use FStr in Var_UnExport
178	move type definitions in var.c to the top
179	extract FreeEnvVar from Var_Parse
180	extract ShuffleStrings from ApplyModifier_Order
181
1822020-11-30  Simon J Gerraty  <sjg@beast.crufty.net>
183
184	* VERSION (_MAKE_VERSION): 20201130
185	Merge with NetBSD make, pick up
186	o add unit tests for META MODE
187	o reduce memory allocation for dirSearchPath, GNode.parents,
188	GNode.children, OpenDirs
189	o reduce pointer indirection for GNode.cohorts and
190	GNode.implicitParents
191	o remove pointer indirection from GNode.commands
192	o inline Lst_ForEachUntil in meta mode
193	o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
194	clean up memory management for CachedDirs
195	fix the reference count of dotLast going negative
196	add debug logging for OpenDirs_Done
197	extract CacheNewDir from Dir_AddDir
198	add debug logging for reference counting of CachedDir
199	rename some Dir functions to SearchPath
200	o job.c: rename some global variables
201	o main.c: reduce memory allocation in ReadBuiltinRules
202	reduce memory allocation in CmdOpts.create, CmdOpts.variables,
203	CmdOpts.makefiles
204	Add .MAKE.UID and .MAKE.GID
205	o make.c: reduce memory allocation for/in toBeMade,
206	Make_ProcessWait, Make_ExpandUse
207	o meta.c: reduce memory allocation in meta_oodate
208	o parse.c: reduce memory allocations for parsing dependencies and
209	targets
210	o suff.c: reduce memory allocation in suffix handling
211
2122020-11-24  Simon J Gerraty  <sjg@beast.crufty.net>
213
214	* VERSION (_MAKE_VERSION): 20201124
215	Merge with NetBSD make, pick up
216	o .MAKE.{UID,GID} represent uid and gid running make.
217	o fix error handling for .BEGIN and .END dependency in -k mode
218	o fix missing "Stop." after failed .END node in -k mode
219	o use properly typed comparisons in boolean contexts
220	o replace a few HashTable_CreateEntry with HashTable_Set
221	o add HashSet type
222	o compat.c: split Compat_Make into smaller functions
223	extract DebugFailedTarget from Compat_RunCommand
224	o dir.c: refactor Dir_UpdateMTime
225	migrate CachedDir.files from HashTable to HashSet
226	o make.c: add high-level API for GNode.made
227
2282020-11-22  Simon J Gerraty  <sjg@beast.crufty.net>
229
230	* VERSION (_MAKE_VERSION): 20201122
231	Merge with NetBSD make, pick up
232	o rename GNode.context to vars
233	o suff.c: cleanup and refactor
234	rename some functions and vars to better reflect usage
235	add high-level API for CandidateSearcher
236	o targ.c: add more debug logging for suffix handling
237	o more unit tests
238	o add debug logging for setting and resetting the main target
239
2402020-11-17  Simon J Gerraty  <sjg@beast.crufty.net>
241
242	* VERSION (_MAKE_VERSION): 20201117
243	Merge with NetBSD make, pick up
244	o fix some unit-tests when .SHELL is dash
245	o rename Targ_NewGN to GNode_New
246	o make some GNode functions const
247	o main.c: call Targ_Init before Var_Init
248	cleanup PrintOnError, getTmpdir and ParseBoolean
249	o var.c: fix error message of failed :!cmd! modifier
250
2512020-11-14  Simon J Gerraty  <sjg@beast.crufty.net>
252
253	* VERSION (_MAKE_VERSION): 20201114
254	Merge with NetBSD make, pick up
255	o replace a few HashTable_CreateEntry with HashTable_Set
256	o clean up cached_stats
257	o rename DEFAULT to defaultNode
258	o remove redundant struct make_stat
259	o cond.c: in lint mode, check for ".else <cond>"
260	use bitset for IfState
261	replace large switch with if-else in Cond_EvalLine
262	o job.c: clean up JobExec, JobStart, JobDoOutput
263	use stderr for error message about failed touch
264	clean up Job_Touch
265	replace macro DBPRINTF with JobPrintln
266	rename JobState to JobStatus
267	main.c: switch cache for realpath from GNode to HashTable
268	clean up Fatal
269	clean up InitDefSysIncPath
270	use progname instead of hard-coded 'make' in warning
271	rename Main_SetVarObjdir to SetVarObjdir
272	make.1: document the -S option
273	make.c: fix debug output for GNode details
274	use symbolic names in debug output of GNodes
275
2762020-11-12  Simon J Gerraty  <sjg@beast.crufty.net>
277
278	* configure.in: fix --with-force-machine-arch
279
280	* VERSION (_MAKE_VERSION): 20201112
281	Merge with NetBSD make, pick up
282	o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
283	checks in InitObjdir.  Explicit .OBJDIR target always allows
284	read-only directory.
285	o cond.c: clean up Cond_EvalLine
286
2872020-11-11  Simon J Gerraty  <sjg@beast.crufty.net>
288
289	* VERSION (_MAKE_VERSION): 20201111
290	Merge with NetBSD make, pick up
291	o more unit-tests
292	o style cleanup
293	remove redundant parentheses from sizeof operator
294	replace character literal 0 with '\0'.
295	replace pointer literal 0 with NULL.
296	remove redundant parentheses.
297	replace (expr & mask) == 0 with !(expr & mask).
298	use strict typing in conditions of the form !var
299	o rename Make_OODate to GNode_IsOODate
300	o rename Make_TimeStamp to GNode_UpdateYoungestChild
301	o rename Var_Set_with_flags to Var_SetWithFlags
302	o rename dieQuietly to shouldDieQuietly
303	o buf.c: make API of Buf_Init simpler
304	o compat.c: clean up Compat_Make, Compat_RunCommand,
305	CompatDeleteTarget and CompatInterrupt
306	o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
307	clean up CondParser_Comparison
308	o main.c: rename getBoolean and s2Boolean
309	rename MAKEFILE_PREFERENCE for consistency
310	o parse.c: replace strstr in ParseMaybeSubMake with optimized code
311	o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
312	replace emptyString with allocated empty string
313	error out on unclosed expressions after the colon
314
3152020-11-01  Simon J Gerraty  <sjg@beast.crufty.net>
316
317	* VERSION (_MAKE_VERSION): 20201101
318	Merge with NetBSD make, pick up
319	o negate NoExecute to GNode_ShouldExecute
320	o job.c: rename JobMatchShell to FindShellByName
321	extract EscapeShellDblQuot from JobPrintCommand
322	extract ParseRunOptions from JobPrintCommand
323	o var.c: extract ApplyModifiersIndirect from ApplyModifiers
324	treat malformed :range, :ts and :[...] as errors
325	add tests for the variable modifiers :[words] and :range
326
3272020-10-31  Simon J Gerraty  <sjg@beast.crufty.net>
328
329	* VERSION (_MAKE_VERSION): 20201031
330	Merge with NetBSD make, pick up
331	o format #include directives consistently
332	o do not look up local variables like .TARGET anywhere else
333	o main.c: Main_SetObjdir is first called for curdir which may be
334	readonly
335	reduce the scope where recursive expressions are detected
336	remove redundant :tl from getBoolean
337	clean up mkTempFile
338	o meta.c: simplify memory allocation in meta_create and meta_oodate
339	o parse.c: extract loadedfile_mmap from loadfile
340	o trace.c: document possible undefined behavior with .CURDIR
341	o var.c: make parsing of the :gmtime and :localtime modifiers stricter
342	rename ismeta to is_shell_metachar
343	remove debug logging for the :Q variable modifier
344	rename VarIsDynamic to VarnameIsDynamic
345	use consistent parameter order in varname parsing functions
346	extract ParseVarnameLong from Var_Parse
347	extract ParseVarnameShort from Var_Parse
348	fix type of ParseModifierPart parameter delim
349	extract IsEscapedModifierPart from ParseModifierPart
350	clean up ModifyWords
351	add test for combining the :@ and :? variable modifiers
352
3532020-10-30  Simon J Gerraty  <sjg@beast.crufty.net>
354
355	* VERSION (_MAKE_VERSION): 20201030
356	Merge with NetBSD make, pick up
357	o change char * to void * in Var_Value
358	o make iterating over HashTable simpler
359	o rename VAR_CMD to VAR_CMDLINE
360	o cond.c: clean up is_separator
361	fix parse error in string literal in conditional
362	o main.c: do not use objdir that is not writable
363	in lint mode, exit with error status on errors
364	o  parse.c: clean up StrContainsWord
365	fix out-of-bounds pointer in ParseTrackInput
366	o var.c: rename Str_SYSVMatch and its parameters
367	remove unsatisfiable conditions in Var_Set_with_flags
368	document where the variable name is expanded
369	fix documentation for VARP_SUB_ONE
370	rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
371	document VAR_READONLY
372	prevent appending to read-only variables
373	extract MayExport from Var_Export1
374	remove redundant evaluations in VarFind
375	replace VarFindFlags with a simple Boolean
376	rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
377
3782020-10-28  Simon J Gerraty  <sjg@beast.crufty.net>
379
380	* VERSION (_MAKE_VERSION): 20201028
381	Merge with NetBSD make, pick up
382	o rename defIncPath to defSysIncPath
383	o initialize all CmdOpts fields
384	o lst.c: inline Vector_Get
385	o main.c: refactor main extract
386	InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
387	ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
388	InitDefIncPath,CmdOpts_Init,UnlimitFiles
389	o parse.c: merge curFile into includes
390	rename predecessor to order_pred
391	sort ParseSpecial alphabetically
392	remove unused, undocumented .NOEXPORT
393	rename ParseSpecial enum values consistently
394	rename some fields of struct IFile
395
3962020-10-26  Simon J Gerraty  <sjg@beast.crufty.net>
397
398	* VERSION (_MAKE_VERSION): 20201026
399	Merge with NetBSD make, pick up
400	o group the command line options and arguments into a struct
401	o rename GNode.cmgn to youngestChild
402	o rename hash functions to identify the type name
403	o negate OP_NOP and rename it to GNode_IsTarget
404	o add GNode_Path to access the path of a GNode
405	o remove macros MIN and MAX
406	o remove unused Lst_Find and Lst_FindFrom
407	o arch.c: and make Arch_FindLib simpler
408	clean up code layout
409	make Arch_ParseArchive simpler
410	o cond.c: inline CondFindStrMatch into FuncMake
411	o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
412	omit trailing space in debug output for expanding file patterns
413	refactor DirMatchFiles
414	document that the SearchPath of Dir_FindFile may be NULL
415	remove UNCONST from Dir_Expand
416	inline DirFindName
417	o for.c: clean up code for handling .for loops
418	o hash.c: print hash in debug log with fixed width
419	clean up hash table functions
420	reduce amount of string hashing
421	o job.c: refactor JobDeleteTarget
422	use proper enum constants for aborting
423	convert result of JobStart from macros to enum
424	convert abort reason macros to enum
425	rework Job_CheckCommands to reduce indentation
426	rename Shell fields
427	add field names in declaration of DEFSHELL_CUSTOM
428	convert JobState and JobFlags to enum types
429	move handling of the "..." command to JobPrintCommands
430	o lst.c: clean up
431	refactor LstNodeNew
432	remove Lst_Open, Lst_Next, Lst_Close
433	remove code for circular lists from Lst_Next
434	o main.c: do not attempt to read .MAKE.DEPENFILE if set to
435	/dev/null or anything starting with "no"
436	convert macros for debug flags into enum
437	o make.c: inline Lst_Copy in Make_ExpandUse
438	o meta.c: inline Lst_Find in meta_oodate
439	make Lst_RemoveIf simpler in meta_oodate
440	o parse.c: convert error level for Parse_Error to an enum
441	o suff.c: properly terminate debug output with newline
442	add more details to DEBUG_SRC log
443	replace Dir_CopyDir with Dir_CopyDirSearchPath
444	don't modify GNode name while rebuilding the suffix graph
445	o var.c: reduce duplicate code in VarFind
446
4472020-10-22  Simon J Gerraty  <sjg@beast.crufty.net>
448
449	* VERSION (_MAKE_VERSION): 20201022
450	Merge with NetBSD make, pick up
451	o more refactoring and simplification to reduce code size
452	o var.c: extract CanonicalVarname from VarFind
453	o make.c: extract UpdateImplicitParentsVars from Make_Update
454	o main.c: extract PrintVar from doPrintVars
455	extract HandlePWD from main
456	o lst.c: inline simple Lst getters
457	remove unused Lst_ForEach
458	o job.c: move struct Shell from job.h to job.c
459	o more unit tests
460
4612020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
462
463	* configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
464
4652020-10-18  Simon J Gerraty  <sjg@beast.crufty.net>
466
467	* VERSION (_MAKE_VERSION): 20201018
468	Merge with NetBSD make, pick up
469	o remove USE_IOVEC
470	o rename some Hash_* apis to Hash*
471	o replace execError with execDie
472	o rename Lst_Init to Lst_New
473	o add tags to enum types
474	o rename Stack to Vector
475	o parse.c: more refactoring
476	o unit-tests: make some tests use line buffered stdout
477	o unit-tests/Makefile: in meta mode do not make all tests depend on
478	Makefile, it isn't necessary.
479
4802020-10-10  Simon J Gerraty  <sjg@beast.crufty.net>
481
482	* main.c: check for CTL_HW being defined.
483	* unit-tests/Makefile: ensure export tests output are POSIX compliant
484	disable opt-debug-jobs test until it works on ubuntu
485
486	* VERSION (_MAKE_VERSION): 20201010
487	Merge with NetBSD make, pick up
488	o dir.c: remove pathname limit for Dir_FindHereOrAbove
489	o hash.c: replace strcpy with memcpy in Hash_CreateEntry
490	o main.c: extract init_machine and init_machine_arch from main
491	allow to disable debug logging options
492	o parse.c: enable format string truncation warnings
493	extract parsing of sources from ParseDoDependency
494	split ParseDoSrc into smaller functions
495	hide implementation details from Parse_DoVar
496	clean up parsing of variable assignments
497	split Parse_DoVar into manageable pieces
498	don't modify the given line during Parse_DoVar
499	fix out-of-bounds memory access in Parse_DoVar
500	fix parsing of the :sh assignment modifier
501	o var.c: rework memory allocation for the name of variables
502	extract ApplyModifier_Literal into separate function
503	in lint mode, reject modifiers without delimiter
504	do not export variable names starting with '-'
505	o fix double-free bug in -DCLEANUP mode
506	o more cleanup to enable higher warnings level
507	o more unit tests
508
5092020-10-02  Simon J Gerraty  <sjg@beast.crufty.net>
510
511	* VERSION (_MAKE_VERSION): 20201002
512	Merge with NetBSD make, pick up
513	o dir.c: use hash table for looking up open directories by name
514	o main.c: clean up option handling
515	o parse.c: add missing const for Parse_AddIncludeDir
516	o var.c: ApplyModifier_To, update pp in each branch
517	o remove redundant function prototypes
518	o more unit tests
519
5202020-10-01  Simon J Gerraty  <sjg@beast.crufty.net>
521
522	* VERSION (_MAKE_VERSION): 20201001
523	Merge with NetBSD make, pick up
524	o compat.c: comment about "..."
525
5262020-09-30  Simon J Gerraty  <sjg@beast.crufty.net>
527
528	* VERSION (_MAKE_VERSION): 20200930
529	Merge with NetBSD make, pick up
530	o job.c: split Job.jobPipe into 2 separate fields
531	replace Lst_Open with direct iteration
532	o lst.c: remove redundant assertions
533	o targ.c: replace Lst_Open with direct iteration
534	o var.c: fix bug in evaluation of indirect variable modifiers
535	extract ApplyModifier_Quote into separate function
536	o make debug logging simpler
537
5382020-09-27  Simon J Gerraty  <sjg@beast.crufty.net>
539
540	* VERSION (_MAKE_VERSION): 20200927
541	Merge with NetBSD make, pick up
542	o parse.c: ensure parse errors result in 'stopped in' message.
543	o compat.c: make parameter of Compat_RunCommand const
544	o main.c: extract InitVarTarget from main
545	o parse.c: rename ParseFinishLine to FinishDependencyGroup
546	refactor ParseDoDependency
547	o var.c: Var_Subst no longer returns string result
548	rename Var_ParsePP back to Var_Parse
549	in lint mode, improve error handling for undefined variables
550	extract ParseVarname from Var_Parse
551	o rename Lst_ForEach to Lst_ForEachUntil
552	o inline Lst_ForEachUntil in several cases
553	o clean up API for finding and creating GNodes
554	o fix assertion failure in -j mode with .END node
555	o inline and remove LstNode_Prev and LstNode_Next
556	o use fine-grained type names for lists and their nodes
557	o more unit tests
558
5592020-09-11  Simon J Gerraty  <sjg@beast.crufty.net>
560
561	* VERSION (_MAKE_VERSION): 20200911
562	Merge with NetBSD make, pick up
563	o cond.c: split EvalComparison into smaller functions
564	reorder parameters of condition parsing functions
565	reduce code size in CondParser_Eval
566	rename CondGetString to CondParser_String
567	add CondLexer_SkipWhitespace
568	group the condition parsing state into a struct
569	in CondGetString, replace repeated Buf_Add with Buf_AddStr
570	o migrate Var_Parse to Var_ParsePP
571	o add wrappers around ctype.h functions
572	o lst.c: use a stack instead of a list for the nested include path
573	o more unit tests
574
5752020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
576
577	* make-bootstrap.sh.in: adjust object list
578
5792020-09-02  Simon J Gerraty  <sjg@beast.crufty.net>
580
581	* VERSION (_MAKE_VERSION): 20200902
582	Merge with NetBSD make, pick up
583	o use make_stat to ensure no confusion over valid fields
584	returned by cached_stat
585	o var.c: make VarQuote const-correct
586	o add unit tests for .for
587
5882020-09-01  Simon J Gerraty  <sjg@beast.crufty.net>
589
590	* VERSION (_MAKE_VERSION): 20200901
591	Merge with NetBSD make, pick up
592	o rename Hash_Table fields
593	o make data types in Dir_HasWildcards more precise
594
5952020-08-31  Simon J Gerraty  <sjg@beast.crufty.net>
596
597	* VERSION (_MAKE_VERSION): 20200831
598	Merge with NetBSD make, pick up
599	o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
600	o lst.c: Lst_Open renable assert that list isn't open
601	o unit test for .TARGET dependent flags
602	o var.c: fix aliasing bug in VarUniq
603	o more unit tests for :u
604
6052020-08-30  Simon J Gerraty  <sjg@beast.crufty.net>
606
607	* VERSION (_MAKE_VERSION): 20200830
608	Merge with NetBSD make, pick up
609	o allow for strict type checking for Boolean
610	o Var_Parse never returns NULL
611	o Var_Subst never returns NULL
612	o Lst_Find now takes boolean match function
613	o rename Lst_Memeber to Lst_FindDatum
614	o rename LstNode functions to match their type
615	o rename GNode.iParents to implicitParents
616	o fix assertion failure for .SUFFIXES in archives
617	o compat.c: clean up documentation for CompatInterrupt and Compat_Run
618	remove unreachable code from CompatRunCommand
619	o main.c: simplify getBoolean
620	o stc.c: replace brk_string with simpler Str_Words
621	o suff.c: add debug macros
622
6232020-08-28  Simon J Gerraty  <sjg@beast.crufty.net>
624
625	* VERSION (_MAKE_VERSION): 20200828
626	Merge with NetBSD make, pick up
627	o lst.c: inline LstIsValid and LstNodeIsValid
628	o remove trailing S from Lst function names after migration complete
629	o more comment cleanup/clarification
630	o suff.c: clean up suffix handling
631	o more unit tests
632
6332020-08-26  Simon J Gerraty  <sjg@beast.crufty.net>
634
635	* VERSION (_MAKE_VERSION): 20200826
636	Merge with NetBSD make, pick up
637	o enum.c: distinguish between bitsets containing flags and
638	ordinary enums
639	o var.c: fix error message for ::!= modifier with shell error
640	o fix bugs in -DCLEANUP mode
641
6422020-08-24  Simon J Gerraty  <sjg@beast.crufty.net>
643
644	* VERSION (_MAKE_VERSION): 20200824
645	Merge with NetBSD make, pick up
646	o in debug mode, print GNode details in symbols
647
6482020-08-23  Simon J Gerraty  <sjg@beast.crufty.net>
649
650	* VERSION (_MAKE_VERSION): 20200823
651	Merge with NetBSD make, pick up
652	o lst.c: more asserts,
653	make args to Lst_Find match others.
654	o var.c: pass flags to VarAdd
655	o arch.c: use Buffer
656	o str.c: brk_string return size_t for nwords
657	o more unit tests
658
6592020-08-22  Simon J Gerraty  <sjg@beast.crufty.net>
660
661	* VERSION (_MAKE_VERSION):
662	Merge with NetBSD make, pick up
663	o var.c: support for read-only variables eg .SHELL
664	being the shell used to run scripts.
665	o lst.c: more simplification
666	o more documentation and style cleanup
667	o more unit tests
668	o ensure unit-test/Makefile is run by TEST_MAKE
669	o reduce duplication of header inclusion
670
6712020-08-21  Simon J Gerraty  <sjg@beast.crufty.net>
672
673	* VERSION (_MAKE_VERSION): 20200821
674	Merge with NetBSD make, pick up
675	o lst.c: revert invalid assertion - but document it
676	o dir.c: split Dir_Init into two functions
677
6782020-08-20  Simon J Gerraty  <sjg@beast.crufty.net>
679
680	* lst.c: needs inttypes.h on Linux
681
682	* VERSION (_MAKE_VERSION): 20200820
683	Merge with NetBSD make, pick up
684	o make.1: clarify some passages
685	o var.c: more cleanup, clarify comments
686	o make_malloc.c: remove unreachable code
687	o cond.c: make CondGetString easier to debug
688	o simplify list usage
689	o unit-tests: more
690
6912020-08-16  Simon J Gerraty  <sjg@beast.crufty.net>
692
693	* VERSION (_MAKE_VERSION): 20200816
694	Merge with NetBSD make, pick up
695	o refactor unit-tests to be more fine grained
696	  not all tests moved yet
697
6982020-08-14  Simon J Gerraty  <sjg@beast.crufty.net>
699
700	* VERSION (_MAKE_VERSION): 20200814
701	Merge with NetBSD make, pick up
702	o more str_concat variants
703	o more enums for flags
704	o var.c: cleanup for higher warnings level
705
7062020-08-10  Simon J Gerraty  <sjg@beast.crufty.net>
707
708	* VERSION (_MAKE_VERSION): 20200810
709	Merge with NetBSD make, pick up
710	o more unit tests
711	o general comment and style cleanup
712
7132020-08-08  Simon J Gerraty  <sjg@beast.crufty.net>
714
715	* VERSION (_MAKE_VERSION): 20200808
716	Merge with NetBSD make, pick up
717	o enum.[ch]: streamline, enums for use in flags and debug output
718	o cond.c: cleanup
719	o var.c: reduce duplicate code for modifiers
720	debug logging for Var_Parse
721	more detailed debug output
722	o more unit tests
723
7242020-08-06  Simon J Gerraty  <sjg@beast.crufty.net>
725
726	* unit-tests/Makefile: -r for recursive and include Makefile.inc
727	so I can run tests in meta mode
728	supress extra noise if in meta mode
729
730	* VERSION (_MAKE_VERSION): 20200806
731	Merge with NetBSD make, pick up
732	o parse.c: remove VARE_WANTRES for LINT
733	we just want to check parsing (for now).
734
7352020-08-05  Simon J Gerraty  <sjg@beast.crufty.net>
736
737	* VERSION (_MAKE_VERSION): 20200805
738	Merge with NetBSD make, pick up
739	o make.1: Rework the description of dependence operators
740
7412020-08-03  Simon J Gerraty  <sjg@beast.crufty.net>
742
743	* VERSION (_MAKE_VERSION): 20200803
744	Merge with NetBSD make, pick up
745	o revert some C99 usage, for max portability
746	o unit-tests/lint
747
7482020-08-02  Simon J Gerraty  <sjg@beast.crufty.net>
749
750	* VERSION (_MAKE_VERSION): 20200802
751	Merge with NetBSD make, pick up
752	o more unit tests
753
7542020-08-01  Simon J Gerraty  <sjg@beast.crufty.net>
755
756	* Remove NetBSD specific plumbing from unit-tests/Makefile
757
758	* VERSION (_MAKE_VERSION): 20200801
759	Merge with NetBSD make, pick up
760	o make Var_Value return const
761	o size_t for buf sizes
762	o optimize some buffer operations - avoid strlen
763
7642020-07-31  Simon J Gerraty  <sjg@beast.crufty.net>
765
766	* VERSION (_MAKE_VERSION): 20200731
767	Merge with NetBSD make, pick up
768	o var.c: fix undefinded behavior for incomplete :t modifier
769	  fixes unit-test/moderrs on Ubuntu
770	o parse.c: When parsing variable assignments other than :=
771	  if DEBUG(LINT) test substition of value, so we get a file and
772	  line number in the resulting error.
773	o dir.c: fix parsing of nested braces in dependency lines
774	  add unit-tests
775
7762020-07-30  Simon J Gerraty  <sjg@beast.crufty.net>
777
778	* VERSION (_MAKE_VERSION): 20200730
779	Merge with NetBSD make, pick up
780	o var.c: minor cleanup
781	o unit-tests: more tests to improve code coverage
782
7832020-07-28  Simon J Gerraty  <sjg@beast.crufty.net>
784
785	* VERSION (_MAKE_VERSION): 20200728
786	Merge with NetBSD make, pick up
787	o var.c: more optimizations
788
7892020-07-26  Simon J Gerraty  <sjg@beast.crufty.net>
790
791	* VERSION (_MAKE_VERSION): 20200726
792	Merge with NetBSD make, pick up
793	o collapse lsd.lib into lst.c - reduce code size and allow inlining
794	o lots of function comment updates
795	o var.c: more optimizations
796	o make return of Var_Parse const
797
7982020-07-20  Simon J Gerraty  <sjg@beast.crufty.net>
799
800	* VERSION (_MAKE_VERSION): 20200720
801	Merge with NetBSD make, pick up
802	o DEBUG_HASH report stats at end and tone down the noise
803	o var.c: each flag type gets its own prefix.
804	move SysV string matching to var.c
805	make ampersand in ${VAR:from=to&} an ordinary character
806	cleanup and simplify implementation of modifiers
807	o make.1: move documentation for assignment modifiers
808
8092020-07-18  Simon J Gerraty  <sjg@beast.crufty.net>
810
811	* VERSION (_MAKE_VERSION): 20200718
812	Merge with NetBSD make, pick up
813	o DEBUG_HASH to see how well the hash tables are working
814
8152020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
816
817	* bsd.after-import.mk: make sure we update unit-tests/Makefile
818
8192020-07-10  Simon J Gerraty  <sjg@beast.crufty.net>
820
821	* configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
822
823	* VERSION (_MAKE_VERSION): 20200710
824	Merge with NetBSD make, pick up
825	o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
826	o meta.c: target flagged .META is out-of-date if meta file missing
827
8282020-07-09  Simon J Gerraty  <sjg@beast.crufty.net>
829
830	* VERSION (_MAKE_VERSION): 20200709
831	Merge with NetBSD make, pick up
832	o cond.c: fix for compare_expression when doEval=0
833	o unit-tests/Makefile: rework
834	o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
835
8362020-07-04  Simon J Gerraty  <sjg@beast.crufty.net>
837
838	* VERSION (_MAKE_VERSION): 20200704
839	Merge with NetBSD make, pick up
840	(most of this by rillig@)
841	o lots of style and white-space cleanup
842	o lots more unit tests for variable modifiers
843	o simplified description of some functions
844	o str.c: refactor Str_Match
845	o var.c: debugging output for :@
846	  constify VarModify parameter
847	  fix :hash modifier on 16-bit platforms
848	  remove unnecessary forward declarations
849	  refactor ApplyModifier_SysV to have less indentation
850	  simplify code for :E and :R
851	  clean up code for :H and :T
852	  refactor ApplyModifiers
853
854	* var.c: we need stdint.h on some platforms to get uint32_t
855	* unit-test/Makefile: we need to supress the specific error
856	for RE substitution error in modmisc, since it varies accross
857	different OS.
858
8592020-07-02  Simon J Gerraty  <sjg@beast.crufty.net>
860
861	* VERSION (_MAKE_VERSION): 20200702
862	Merge with NetBSD make, pick up
863	o var.c: more improvements to avoiding unnecessary evaluation
864	use enums for flags
865	o remove flags arg to Var_Set which outside of var.c is always 0
866
8672020-07-01  Simon J Gerraty  <sjg@beast.crufty.net>
868
869	* VERSION (_MAKE_VERSION): 20200701
870	Merge with NetBSD make, pick up
871	o var.c: with change to cond.c; ensure that nested variables
872	within a variable name are expanded.
873	o unit-tests/varmisc.mk: test for nested varname
874
8752020-06-29  Simon J Gerraty  <sjg@beast.crufty.net>
876
877	* VERSION (_MAKE_VERSION): 20200629
878	Merge with NetBSD make, pick up
879	o cond.c: do not eval unnecessary terms of conditionals.
880
8812020-06-25  Simon J Gerraty  <sjg@beast.crufty.net>
882
883	* VERSION (_MAKE_VERSION): 20200625
884	Merge with NetBSD make, pick up
885	o meta.c: report error if lseek in filemon_read fails
886
8872020-06-22  Simon J Gerraty  <sjg@beast.crufty.net>
888
889	* VERSION (_MAKE_VERSION): 20200622
890	Merge with NetBSD make, pick up
891	o dieQuietly: ignore OP_SUBMAKE as too aggressive
892
8932020-06-19  Simon J Gerraty  <sjg@beast.crufty.net>
894
895	* VERSION (_MAKE_VERSION): 20200619
896	Merge with NetBSD make, pick up
897	o str.c: performance improvement for Str_Match for multiple '*'
898	o dieQuietly: supress the failure output from make
899	when failing node is a sub-make or a sibling failed.
900	This cuts down greatly on unhelpful noise at the end of
901	build log.  Disabled by -dj or .MAKE.DIE_QUIETLY=no
902
9032020-06-10  Simon J Gerraty  <sjg@beast.crufty.net>
904
905	* FILES: add LICENSE to appease some packagers.
906	This is an attempt to fairly represent the license on almost
907	200 files, which are almost all BSD-3-Clause
908	The few exceptions being more liberal.
909
910	* VERSION (_MAKE_VERSION): 20200610
911	Merge with NetBSD make, pick up
912	o unit test for :Or
913
9142020-06-06  Simon J Gerraty  <sjg@beast.crufty.net>
915
916	* VERSION (_MAKE_VERSION): 20200606
917	Merge with NetBSD make, pick up
918	o make.1: cleanup
919
920	* Makefile: fix depends for main.o which broke MAKE_VERSION
921
9222020-06-05  Simon J Gerraty  <sjg@beast.crufty.net>
923
924	* VERSION (_MAKE_VERSION): 20200605
925	Merge with NetBSD make, pick up
926	o dir.c: cached_stats - don't confuse stat and lstat results.
927	o var.c: add :Or for reverse sort.
928
9292020-05-24  Simon J Gerraty  <sjg@beast.crufty.net>
930
931	* configure.in: add AC_PROG_CC_C99 for mipspro compiler
932	also if --with-filemon= specifies path to filemon.h
933	set use_filemon=dev
934	* dirname.c: remove include of namespace.h
935
9362020-05-17  Simon J Gerraty  <sjg@beast.crufty.net>
937
938	* VERSION (_MAKE_VERSION): 20200517
939	Merge with NetBSD make, pick up
940	o modified dollar tests to avoid shell dependencies
941	o new tests for .INCLUDEFROM
942
9432020-05-16  Simon J Gerraty  <sjg@beast.crufty.net>
944
945	* unit-tests/dollar.mk: tweak  '1 dollar literal' test
946	to not depend so much on shell behavior
947
9482020-05-10  Simon J Gerraty  <sjg@beast.crufty.net>
949
950	* VERSION (_MAKE_VERSION): 20200510
951	Merge with NetBSD make, pick up
952	o unit test for dollar handling
953
9542020-05-06  Simon J Gerraty  <sjg@beast.crufty.net>
955
956	* VERSION (_MAKE_VERSION): 20200506
957	Merge with NetBSD make, pick up
958	o str.c: empty string does not match % pattern
959	  plus unit-test changes
960
9612020-05-04  Simon J Gerraty  <sjg@beast.crufty.net>
962
963	* VERSION (_MAKE_VERSION): 20200504
964	May the 4th be with you
965	Merge with NetBSD make, pick up
966	o var.c: import handling of old sysV style modifier using '%'
967	o str.c: refactor brk_string
968	o unit-tests: add test case for lazy conditions
969
9702020-04-18  Simon J Gerraty  <sjg@beast.crufty.net>
971
972	* VERSION (_MAKE_VERSION): 20200418
973
974	* configure.in: use_makefile=no for cygwin et al.
975	case insensitive filesystems just don't work if both
976	makefile and Makefile exist.
977	NOTE: bmake does not support cygwin and likely never will,
978	but if brave souls want to try it - help them out.
979
9802020-04-02  Simon J Gerraty  <sjg@beast.crufty.net>
981
982	* VERSION (_MAKE_VERSION): 20200402
983	Merge with NetBSD make, pick up
984	o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
985	  a blank command is perfectly valid.
986
9872020-03-30  Simon J Gerraty  <sjg@beast.crufty.net>
988
989	* VERSION (_MAKE_VERSION): 20200330
990	Merge with NetBSD make, pick up
991	o make.h: extern debug_file
992
9932020-03-18  Simon J Gerraty  <sjg@beast.crufty.net>
994
995	* VERSION (_MAKE_VERSION): 20200318
996	Merge with NetBSD make, pick up
997	o meta.c: meta_oodate, check for corrupted meta file
998	  earlier and more often.
999
10002020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
1001
1002	* VERSION (_MAKE_VERSION): 20200220
1003
10042020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
1005
1006	* boot-strap: unset MAKEFLAGS
1007
10082020-02-12  Simon J Gerraty  <sjg@beast.crufty.net>
1009
1010	* VERSION (_MAKE_VERSION): 20200212
1011	* meta.c: meta_compat_parent check for USE_FILEMON
1012	  patch from Soeren Tempel
1013
10142020-02-05  Simon J Gerraty  <sjg@beast.crufty.net>
1015
1016	* VERSION: 20200205
1017	Merge with NetBSD make, pick up
1018	o meta.c: fix compat mode, need to call meta_job_output()
1019	o job.c: extra fds for meta mode not needed if using filemon_dev
1020
10212020-01-22  Simon J Gerraty  <sjg@beast.crufty.net>
1022
1023	* VERSION: 20200122
1024	Merge with NetBSD make, pick up
1025	o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1026	  returns FALSE.
1027
10282020-01-21  Simon J Gerraty  <sjg@beast.crufty.net>
1029
1030	* VERSION: 20200121
1031	Merge with NetBSD make, pick up
1032	o filemon/filemon_{dev,ktrace}.c: allow selection of
1033	  filemon implementation.  filemon_dev.c uses the kernel module
1034	  while filemon_ktrace.c leverages the fktrace api available in
1035	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
1036	  adding support for other tracing mechanisms such as strace on
1037	  Linux.
1038	o meta.c: when target is out-of-date per normal make rules
1039	  record value of .OODATE in meta file.
1040
10412019-09-26  Simon J Gerraty  <sjg@beast.crufty.net>
1042
1043	* VERSION: 20190926
1044	  Merge with NetBSD make, pick up
1045	  o parse.c: don't pass NULL to realpath(3)
1046	    some versions cannot handle it.
1047
10482019-04-09  Simon J Gerraty  <sjg@beast.crufty.net>
1049
1050	* VERSION: 20190409
1051	  Merge with NetBSD make, pick up
1052	  o parse.c: ParseDoDependency: free paths rather than assert
1053
10542018-12-22  Simon J Gerraty  <sjg@beast.crufty.net>
1055
1056	* VERSION: 20181222
1057
1058	* configure.in: add --without-makefile to avoid generating
1059	  makefile and make-bootstrap.sh
1060
1061	* include Makefile.inc if it exists
1062
1063	* Use Makefile and Makefile.config.in in unit-tests
1064	  so we can use just: make obj && make && make test
1065	  when bmake is already available.
1066	  We add --without-makefile to CONFIGURE_ARGS in this case.
1067
1068	* tweak bsd.after-import.mk (captures Makefile.config etc
1069	  after import to FreeBSD for example) to cope with all the above.
1070
10712018-12-21  Simon J Gerraty  <sjg@beast.crufty.net>
1072
1073	* VERSION: 20181221
1074	  Merge with NetBSD make, pick up
1075	  o parse.c: ParseVErrorInternal use .PARSEDIR
1076	    and apply if relative, and then use .PARSEFILE
1077	    for consistent result.
1078
10792018-12-20  Simon J Gerraty  <sjg@beast.crufty.net>
1080
1081	* VERSION: 20181220
1082	  Merge with NetBSD make, pick up
1083	  o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1084	    is relative
1085	  o var.c: avoid SEGFAULT in .unexport-env
1086	    when MAKELEVEL is not set
1087
10882018-12-16  Simon J Gerraty  <sjg@beast.crufty.net>
1089
1090	* VERSION: 20181216
1091	  Merge with NetBSD make, pick up
1092	  o fix for unit-tests/varquote.mk on Debian
1093
10942018-09-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1095
1096	* VERSION: 20180919
1097	  Merge with NetBSD make, pick up
1098	  o var.c: add :q
1099	  o dir.c: cleanup caching of stats
1100
11012018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
1102
1103	* Makefile.config.in: use += where it makes sense.
1104
11052018-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1106
1107	* VERSION: 20180512
1108	  Merge with NetBSD make, pick up
1109	  o job.c: skip polling job token pipe
1110
11112018-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1112
1113	* VERSION: 20180405
1114	  Merge with NetBSD make, pick up
1115	  o parse.c: be more cautious about detecting depenency line
1116	    rather than sysV style include.
1117
11182018-02-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1119
1120	* VERSION: 20180222
1121	  Merge with NetBSD make, pick up
1122	  o parse.c: avoid calling sysconf for every call to loadfile
1123
11242018-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1125
1126	* VERSION: 20180218
1127	  Merge with NetBSD make, pick up
1128	  o var.c: Var_Set handle NULL value anytime.
1129
11302018-02-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1131
1132	* VERSION: 20180212
1133	  Merge with NetBSD make, pick up
1134	  o parse.c: do not treat .info as warning with -W
1135
11362017-12-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1137
1138	* VERSION: 20171207
1139	  Merge with NetBSD make, pick up
1140	  o var.c: Var_Append use Var_Set if var not previously set
1141	    so that VAR_CMD is handled correctly.
1142	    Add a suitable unit-test.
1143
11442017-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1145
1146	* VERSION (_MAKE_VERSION): 20171126
1147
1148	* aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1149	  since AC_TRY_COMPILE puts input inside main()
1150	  which upsets modern compilers.
1151
11522017-11-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1153
1154	* VERSION: 20171118
1155	  Merge with NetBSD make, pick up
1156	  o var.c: do not append to variable set on command line
1157	    add unit-test to catch this.
1158
11592017-10-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1160
1161	* VERSION: 20171028
1162	  Merge with NetBSD make, pick up
1163	  o main.c: ignore empty MAKEOBJDIR
1164
1165	* Makefile.config.in:
1166	  make @prefix@ @machine*@ and @default_sys_path@ defaults.
1167
11682017-10-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1169
1170	* VERSION: 20171005
1171
1172	* unit-tests/dotwait.mk: redirect stderr through pipe for more
1173	  consistent result on some platforms.
1174
11752017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1176
1177	* machine.sh: entry for AIX
1178
11792017-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1180
1181	* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1182	  to a file that can be included by configure as well as make.
1183	  This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1184
11852017-08-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1186
1187	* Makefile (_MAKE_VERSION): 20170810
1188	  Merge with NetBSD make, pick up
1189	  o meta.c: if target is in subdir we only need subdir name in
1190	    meta_name.
1191
11922017-07-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1193
1194	* Makefile (_MAKE_VERSION): 20170720
1195	  Merge with NetBSD make, pick up
1196	  o compat.c: pass SIGINT etc onto child and wait for it to exit
1197	    before we self-terminate.
1198
11992017-07-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1200
1201	* Makefile (_MAKE_VERSION): 20170711
1202	  forgot to update after merge on 20170708 ;-)
1203	  o main.c: refactor to reduce size of main function.
1204	    add -v option to always fully expand values.
1205	  o meta.c: ensure command output in meta file has ending newline
1206	    even when filemon not being used.
1207	    When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1208	    pathname via ':L' since any ':' in pathname breaks that.
1209	    Instead set a '${.p.}' to pathname in the target context and
1210	    use that.
1211
12122017-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1213
1214	* Makefile (_MAKE_VERSION): 20170510
1215	  Merge with NetBSD make, pick up
1216	  o main.c: Main_SetObjdir: ensure buf2 is in scope
1217
12182017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1219
1220	* Makefile (_MAKE_VERSION): 20170505
1221	  see mk/ChangeLog
1222
12232017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1224
1225	* parse.c: not everyone has stdint.h
1226
12272017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1228
1229	* Makefile (_MAKE_VERSION): 20170501
1230	  see mk/ChangeLog
1231
12322017-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
1233
1234	* Makefile (_MAKE_VERSION): 20170421
1235	  Merge with NetBSD make, pick up
1236	  o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1237
12382017-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1239
1240	* Makefile (_MAKE_VERSION): 20170420
1241	  Merge with NetBSD make, pick up
1242	  o main.c: only use -C arg "as is" if it contains no
1243	    relative component.
1244
12452017-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1246
1247	* Makefile (_MAKE_VERSION): 20170418
1248	  Merge with NetBSD make, pick up
1249	  o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1250
12512017-04-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1252
1253	* Makefile (_MAKE_VERSION): 20170417
1254	  Merge with NetBSD make, pick up
1255	  o fixes a number of coverity complaints
1256	    - check return value of fseek, fcntl
1257	    - plug memory leak in Dir_FindFile, Var_LoopExpand,
1258	      JobPrintCommand, ParseTraditionalInclude
1259	    - use bmake_malloc() where NULL is not tollerated
1260	    - use MAKE_ATTR_UNUSED rather that kludges like
1261	      return(unused ? 0 : 0)
1262	    - use purge_cached_realpaths() rather than abuse cached_realpath()
1263
12642017-04-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1265
1266	* Makefile (_MAKE_VERSION): 20170413
1267	  Merge with NetBSD make, pick up
1268	  o main.c: when setting .OBJDIR ignore '$' in paths.
1269
1270	* job.c: use MALLOC_OPTIONS to set malloc_options.
1271
12722017-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1273
1274	* Makefile (_MAKE_VERSION): 20170411
1275	  Merge with NetBSD make, pick up
1276	  o str.c: Str_Match: allow [^a-z] to behave as expected.
1277
12782017-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1279
1280	* Makefile (_MAKE_VERSION): 20170326
1281	  Merge with NetBSD make, pick up
1282	  o main.c: purge relative paths from realpath cache when .OBJDIR
1283	    is changed.
1284
12852017-03-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1286
1287	* Makefile (_MAKE_VERSION): 20170311
1288	  Merge with NetBSD make, pick up
1289          o main.c: only use -C arg "as is" if it starts with '/'.
1290
12912017-03-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1292
1293	* Makefile (_MAKE_VERSION): 20170301
1294	  Merge with NetBSD make, pick up
1295	  o main.c: use -C arg "as is" rather than getcwd()
1296	    if they identify the same directory.
1297	  o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1298
12992017-02-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1300
1301	* Makefile (_MAKE_VERSION): 20170201
1302	  Merge with NetBSD make, pick up
1303	  o var.c: allow :_=var and avoid use of special context.
1304
13052017-01-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1306
1307	* Makefile (_MAKE_VERSION): 20170130
1308	  Merge with NetBSD make, pick up
1309	  o var.c: add :range and :_
1310	  o main.c: partially initialize Dir_* before MainParseArgs()
1311	    can be called.
1312	    If -V, skip Main_ExportMAKEFLAGS()
1313
13142017-01-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1315
1316	* Makefile (_MAKE_VERSION): 20170114
1317	  Merge with NetBSD make, pick up
1318	  o var.c: allow specifying the utc value used by :{gm,local}time
1319
13202016-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1321
1322	* Makefile (_MAKE_VERSION): 20161212
1323	  Merge with NetBSD make, pick up
1324          o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1325
13262016-12-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1327
1328	* Makefile (_MAKE_VERSION): 20161209
1329	  Merge with NetBSD make, pick up
1330	  o main.c: cleanup setting of .OBJDIR
1331	  o parse.c: avoid coredump from (var)=val
1332
13332016-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1334
1335	* Makefile (_MAKE_VERSION): 20161126
1336	  Merge with NetBSD make, pick up
1337	  o make.c: Make_OODate: report src node name if path not set
1338
13392016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1340
1341	* Makefile (_MAKE_VERSION): 20160926
1342	  Merge with NetBSD make, pick up
1343	  o support for .DELETE_ON_ERROR: (remove targets that fail)
1344
13452016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1346
1347	* Makefile MAN: tweak .Dt to match ${PROG}
1348
13492016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1350
1351	* Makefile (_MAKE_VERSION): 20160818
1352	  its a neater number; pick up whitespace fixes to man page.
1353
13542016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1355
1356	* Makefile (_MAKE_VERSION): 20160817
1357	  Merge with NetBSD make, pick up
1358	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1359	    so we can call it before adding entries to missingFiles.
1360	    Thus we do not track files we have been told to ignore.
1361
13622016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1363
1364	* Makefile (_MAKE_VERSION): 20160815
1365	  Merge with NetBSD make, pick up
1366	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1367	    pathnames, and skip if the expansion is empty.
1368	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1369
13702016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1371
1372	* Makefile (_MAKE_VERSION): 20160812
1373	  Merge with NetBSD make, pick up
1374	  o meta.c: remove all missingFiles entries that match a deleted
1375	    dir.
1376	  o main.c: set .ERROR_CMD if possible.
1377
13782016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1379
1380	* Makefile (_MAKE_VERSION): 20160606
1381	  Merge with NetBSD make, pick up
1382	  o dir.c: extend mtimes cache to others via cached_stat()
1383
13842016-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1385
1386	* Makefile (_MAKE_VERSION): 20160604
1387	  Merge with NetBSD make, pick up
1388	  o meta.c: missing filemon data is only relevant if we read a
1389	    meta file.
1390	    Also do not return oodate for a missing metafile if gn->path
1391	    points to .CURDIR
1392
13932016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1394
1395	* Makefile (_MAKE_VERSION): 20160602
1396	  Merge with NetBSD make, pick up
1397	  o cached_realpath(): avoid hitting filesystem more than necessary.
1398	  o meta.c: refactor need_meta decision, add knobs for
1399	    missing meta file and filemon data wrt out-of-datedness.
1400
14012016-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1402
1403	* Makefile (_MAKE_VERSION): 20160528
1404
1405	* boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1406
14072016-05-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1408
1409	* Makefile (_MAKE_VERSION): 20160512
1410	  Merge with NetBSD make, pick up
1411	  o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1412	    this is useful for gcov builds.
1413	  o propagate errors from filemon(4).
1414
14152016-05-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1416
1417	* Makefile (_MAKE_VERSION): 20160509
1418	  Merge with NetBSD make, pick up
1419	  o remove use of non-standard types u_int etc.
1420	  o meta.c: apply realpath() before matching against metaIgnorePaths
1421
14222016-04-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1423
1424	* Makefile (_MAKE_VERSION): 20160404
1425	  Merge with NetBSD make, pick up
1426	  o allow makefile to set .MAKE.JOBS
1427
1428	* Makefile (PROG_NAME): use ${_MAKE_VERSION}
1429
14302016-03-15  Simon J. Gerraty  <sjg@bad.crufty.net>
1431
1432	* Makefile (_MAKE_VERSION): 20160315
1433	  Merge with NetBSD make, pick up
1434	  o fix handling of archive members
1435
14362016-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1437
1438	* Makefile (_MAKE_VERSION): rename variable to avoid interference
1439	  with checks for ${MAKE_VERSION}
1440
14412016-03-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1442
1443	* Makefile (MAKE_VERSION): 20160310
1444	  Merge with NetBSD make, pick up
1445	  o meta.c: treat missing Read file same as Write, incase we Delete it.
1446
14472016-03-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1448
1449	* Makefile (MAKE_VERSION): 20160307
1450	  Merge with NetBSD make, pick up
1451	  o var.c: fix :ts\nnn to be octal by default.
1452	  o meta.c: meta_finish() to cleanup memory.
1453
14542016-02-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1455
1456	* Makefile (MAKE_VERSION): 20160226
1457	  Merge with NetBSD make, pick up
1458	  o meta.c: allow meta file for makeDepend if makefiles want it.
1459
14602016-02-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1461
1462	* var.c: default .MAKE.SAVE_DOLLARS to FALSE
1463	  for backwards compatability.
1464
1465	* Makefile (MAKE_VERSION): 20160220
1466	  Merge with NetBSD make, pick up
1467	  o var.c: add knob to control handling of '$$' in :=
1468
14692016-02-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1470
1471	* Makefile (MAKE_VERSION): 20160218
1472	  Merge with NetBSD make, pick up
1473	  o var.c: add .export-literal allows us to fix sys.clean-env.mk
1474	    post the changes to Var_Subst.
1475	    Var_Subst now takes flags, and does not consume '$$' in :=
1476
14772016-02-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1478
1479	* Makefile (MAKE_VERSION): 20160217
1480	  Merge with NetBSD make, pick up
1481	  o var.c: preserve '$$' in :=
1482	  o parse.c: add .dinclude for handling included
1483	    makefile like .depend
1484
14852015-12-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1486
1487	* Makefile (MAKE_VERSION): 20151220
1488	  Merge with NetBSD make, pick up
1489	  o suff.c: re-initialize suffNull when clearing suffixes.
1490
14912015-12-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1492
1493	* Makefile (MAKE_VERSION): 20151201
1494	  Merge with NetBSD make, pick up
1495	  o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1496	  o meta.c: meta_oodate: use lstat(2) for checking link target
1497	    in case it is a symlink.
1498	  o var.c: avoid calling brk_string and Var_Export1 with empty
1499	    strings.
1500
15012015-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1502
1503	* Makefile (MAKE_VERSION): 20151126
1504	  Merge with NetBSD make, pick up
1505	  o parse.c: ParseTrackInput don't access beyond
1506	    end of old value.
1507
15082015-10-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1509
1510	* Makefile (MAKE_VERSION): 20151022
1511
1512	* Add support for BSD/OS which lacks inttypes.h
1513	  and really needs sys/param.h for sys/sysctl.h
1514	  also 'type' is not a shell builtin.
1515
1516	* var.c: eliminate uint32_t and need for inttypes.h
1517
1518	* main.c: PrintOnError flush stdout before run .ERROR
1519
1520	* parse.c: cope with _SC_PAGESIZE not being defined.
1521
1522
15232015-10-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1524
1525	* Makefile (MAKE_VERSION): 20151020
1526	  Merge with NetBSD make, pick up
1527	  o var.c: fix uninitialized var
1528
15292015-10-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1530
1531	* var.c: the conditional expressions used with ':?' can be
1532	expensive, if already discarding do not evaluate or expand
1533	anything.
1534
15352015-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1536
1537	* Makefile (MAKE_VERSION): 20151010
1538	  Merge with NetBSD make, pick up
1539	  o Add Boolean wantit flag to Var_Subst and Var_Parse
1540	    when FALSE we know we are discarding the result and can
1541	    skip operations like Cmd_Exec.
1542
15432015-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1544
1545	* Makefile (MAKE_VERSION): 20151009
1546	  Merge with NetBSD make, pick up
1547	  o var.c: don't check for NULL before free()
1548	  o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1549
15502015-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1551
1552	* Makefile (MAKE_VERSION): 20150910
1553	  Merge with NetBSD make, pick up
1554	  o main.c: with -w print Enter/Leaving messages for objdir too
1555	    if necessary.
1556	  o centralize shell metachar handling
1557
1558	* FILES: add metachar.[ch]
1559
15602015-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1561
1562	* Makefile (MAKE_VERSION): 20150606
1563	  Merge with NetBSD make, pick up
1564	  o make.1: document .OBJDIR target
1565
15662015-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1567
1568	* Makefile (MAKE_VERSION): 20150505
1569	  Merge with NetBSD make, pick up
1570	  o cond.c: be strict about lhs of comparison when evaluating .if
1571	    but less so when called from variable expansion.
1572	  o unit-tests/cond2.mk: test various error conditions
1573
15742015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1575
1576	* machine.sh (MACHINE): Add Bitrig
1577	  patch from joerg@netbsd.org
1578
15792015-04-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1580
1581	* Makefile (MAKE_VERSION): 20150418
1582	  Merge with NetBSD make, pick up
1583	  o job.c: use memmove() rather than memcpy()
1584
1585	* unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
1586	  case, so skip it.
1587
15882015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1589
1590	* Makefile (MAKE_VERSION): 20150411
1591	  bump version - only mk/ changes.
1592
15932015-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1594
1595	* Makefile (MAKE_VERSION): 20150410
1596	  Merge with NetBSD make, pick up
1597	  o document different handling of '-' in jobs mode vs compat
1598	  o fix jobs mode so that '-' only applies to whole job
1599	    when shell lacks hasErrCtl
1600	  o meta.c: use separate vars to track lcwd and latestdir (read)
1601	    per process
1602
16032015-04-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1604
1605	* Makefile (MAKE_VERSION): 20150401
1606	  Merge with NetBSD make, pick up
1607	  o meta.c: close meta file in child
1608
1609	* Makefile: use BINDIR.bmake if set.
1610	  Same for MANDIR and SHAREDIR
1611	  Handy for testing release candidates
1612	  in various environments.
1613
16142015-03-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1615
1616	* move initialization of savederr to block where it is used
1617	  to avoid spurious warning from gcc5
1618
16192014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1620
1621	* Makefile (MAKE_VERSION): 20141111
1622	  just a cooler number
1623
16242014-11-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1625
1626	* Makefile (MAKE_VERSION): 20141105
1627	  Merge with NetBSD make, pick up
1628	  o revert major overhaul of suffix handling
1629	    and POSIX compliance - too much breakage
1630	    and impossible to make backwards compatible.
1631	  o we still have the new unit test structure which is ok.
1632	  o meta.c ensure "-- filemon" is at start of line.
1633
16342014-09-17  Simon J. Gerraty  <sjg@bad.crufty.net>
1635
1636	* configure.in: test that result of getconf PATH_MAX is numeric
1637	  and discard if not.  Apparently needed for Hurd.
1638
16392014-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1640
1641	* Makefile (MAKE_VERSION): 20140830
1642	  Merge with NetBSD make, pick up
1643	  o major overhaul of suffix handling
1644	  o improved POSIX compliance
1645	  o overhauled unit-tests
1646
16472014-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1648
1649	* Makefile (MAKE_VERSION): 20140620
1650	  Merge with NetBSD make, pick up
1651	  o var.c return varNoError rather than var_Error for ::= modifiers.
1652
16532014-05-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1654
1655	* Makefile (MAKE_VERSION): 20140522
1656	  Merge with NetBSD make, pick up
1657	  o var.c detect some parse errors.
1658
16592014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1660
1661	* Fix spelling errors - patch from Pedro Giffuni
1662
16632014-02-14  Simon J. Gerraty  <sjg@bad.crufty.net>
1664
1665	* Makefile (MAKE_VERSION): 20140214
1666	  Merge with NetBSD make, pick up
1667	  o .INCLUDEFROM*
1668	  o use Var_Value to get MAKEOBJDIR[PREFIX]
1669	  o reduced realloc'ign in brk_string.
1670	* configure.in: add a check for compiler supporting __func__
1671
16722014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1673
1674	* boot-strap: ignore mksrc=none
1675
16762014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1677
1678	* Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1679
16802014-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1681
1682	* Makefile (MAKE_VERSION): 20140101
1683	* configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
1684	* Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
1685	* make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
1686	  Hurd)
1687	* configure.in: Add AC_PREREQ and check for
1688	  sysctl; patch from Andrew Shadura andrewsh at debian.org
1689
16902013-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1691
1692	* Makefile (MAKE_VERSION): 20131010
1693	* lose the const from arg to systcl to avoid problems on older BSDs.
1694
16952013-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1696
1697	* Makefile (MAKE_VERSION): 20131001
1698	  Merge with NetBSD make, pick up
1699	  o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
1700	    hw.machine_arch if necessary.
1701	  o meta.c: meta_oodate - need to look at src of Link and target
1702	    of Move as well.
1703	* main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
1704	  provide __arraycount() if needed.
1705
17062013-09-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1707
1708	* Makefile (MAKE_VERSION): 20130904
1709	  Merge with NetBSD make, pick up
1710	  o Add VAR_INTERNAL context, so that internal setting of
1711	    MAKEFILE does not override value set by makefiles.
1712
17132013-09-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1714
1715	* Makefile (MAKE_VERSION): 20130902
1716	  Merge with NetBSD make, pick up
1717	  o CompatRunCommand: only apply shellErrFlag when errCheck is true
1718
17192013-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1720
1721	* Makefile (MAKE_VERSION): 20130828
1722	  Merge with NetBSD make, pick up
1723	  o Fix VAR :sh = syntax from Will Andrews at freebsd.org
1724	  o Call Job_SetPrefix() from Job_Init() so makefiles have
1725	    opportunity to set .MAKE.JOB.PREFIX
1726
17272013-07-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1728
1729	* Makefile (MAKE_VERSION): 20130730
1730	  Merge with NetBSD make, pick up
1731	  o Allow suppression of --- job -- tokens by setting
1732	    .MAKE.JOB.PREFIX empty.
1733
17342013-07-16  Simon J. Gerraty  <sjg@bad.crufty.net>
1735
1736	* Makefile (MAKE_VERSION): 20130716
1737	  Merge with NetBSD make, pick up
1738	  o number of gmake compatibility tweaks
1739	    -w for gmake style entering/leaving messages
1740	    if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
1741	    handle MAKEFLAGS containing only letters.
1742	  o when overriding a GLOBAL variable on the command line,
1743	    delete it from GLOBAL context so -V doesn't show the wrong
1744	    value.
1745
17462013-07-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1747
1748	* configure.in: We don't need MAKE_LEVEL_SAFE anymore.
1749
1750	* Makefile (MAKE_VERSION): 20130706
1751	  Merge with NetBSD make, pick up
1752	  o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
1753	    true so that CompatRunCommand() can use it, to ensure
1754	    consistent behavior with jobs mode.
1755	  o use MAKE_LEVEL_ENV to define the variable to propagate
1756	    .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
1757	  o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
1758	    paths to ignore.
1759
17602013-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1761
1762	* Makefile (MAKE_VERSION): 20130604
1763	  Merge with NetBSD make, pick up
1764	  o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
1765	    to avoid leaking descriptors.
1766
17672013-05-28  Simon J. Gerraty  <sjg@bad.crufty.net>
1768
1769	* Makefile (MAKE_VERSION): 20130528
1770	  Merge with NetBSD make, pick up
1771	  o var.c: cleanup some left-overs in VarHash()
1772
17732013-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1774
1775	* Makefile (MAKE_VERSION): 20130520
1776	  generate manifest from component FILES rather than have to
1777	  update FILES when mk/FILES changes.
1778
17792013-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
1780
1781	* Makefile (MAKE_VERSION): 20130518
1782	  Merge with NetBSD make, pick up
1783	  o suff.c: don't skip all processsing for .PHONY targets
1784	    else wildcard srcs do not get expanded.
1785	  o var.c: expand name of variable to delete if necessary.
1786
17872013-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1788
1789	* Makefile (MAKE_VERSION): 20130330
1790	  Merge with NetBSD make, pick up
1791	  o meta.c: refine the handling of .OODATE in commands.
1792	    Rather than suppress command comparison for the entire script
1793	    as though .NOMETA_CMP had been used, only suppress it for the
1794	    one command line.
1795	    This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
1796	    suppress comparison of a command without otherwise affecting it.
1797	  o make.1: document that
1798
17992013-03-22  Simon J. Gerraty  <sjg@bad.crufty.net>
1800
1801	* Makefile (MAKE_VERSION): 20130321
1802	  yes, not quite right but its a cooler number.
1803	  Merge with NetBSD make, pick up
1804	  o parse.c: fix ParseGmakeExport to be portable
1805	    and add a unit-test.
1806	* meta.c: call meta_init() before makefiles are read and if built
1807	  with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
1808	  this let's makefiles test for support.
1809	  Call meta_mode_init() to process .MAKE.MODE.
1810
18112013-03-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1812
1813	* Makefile (MAKE_VERSION): 20130305
1814	  Merge with NetBSD make, pick up
1815	  o run .STALE: target when a dependency from .depend is missing.
1816	  o job.c: add Job_RunTarget() for the above and .BEGIN
1817
18182013-03-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1819
1820	* Makefile (MAKE_VERSION): 20130303
1821	  Merge with NetBSD make, pick up
1822	  o main.c: set .MAKE.OS to utsname.sysname
1823	  o job.c: more checks for read and poll errors
1824	  o var.c: lose VarChangeCase() saves 4% time
1825
18262013-03-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1827
1828	* boot-strap: remove MAKEOBJDIRPREFIX from environment since we
1829	  want to use MAKEOBJDIR
1830
18312013-01-27  Simon J. Gerraty  <sjg@bad.crufty.net>
1832
1833	* Merge with NetBSD make, pick up
1834	  o make.1: more info on how shell commands are handled.
1835	  o job.c,main.c: detect write errors to job pipes.
1836
18372013-01-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1838
1839	* Makefile (MAKE_VERSION): 20130123
1840	  Merge with NetBSD make, pick up
1841	  o meta.c: if script uses .OODATE and meta_oodate() decides
1842	    rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
1843	  o var.c: in debug output indicate which variabale modifiers
1844	    apply to.
1845	  o remove Check_Cwd logic the makefiles have been fixed.
1846
18472012-12-12  Simon J. Gerraty  <sjg@bad.crufty.net>
1848
1849	* makefile.in: add a simple makefile for folk who insist on
1850	  ./configure; make; make install
1851	  it just runs boot-strap
1852	* include mk/* to accommodate the above
1853	* boot-strap:  re-work to accommodate the above
1854	  mksrc defaults to $Mydir/mk
1855	  allow op={configure,build,install,clean,all}
1856	  add options to facilitate install
1857	* Makefile.config.in: just the bits set by configure
1858	* Makefile: bump version to 20121212
1859	  abandon Makefile.in (NetBSD Makefile)
1860	  leverage mk/* instead
1861	* configure.in: ensure srcdir is absolute
1862
18632012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1864
1865	* Makefile.in (MAKE_VERSION): 20121111
1866	  fix generation of bmake.cat1
1867
18682012-11-09  Simon J. Gerraty  <sjg@bad.crufty.net>
1869
1870	* Makefile.in (MAKE_VERSION): 20121109
1871	  Merge with NetBSD make, pick up
1872	  o make.c: MakeBuildChild: return 0 so search continues if a
1873	    .ORDER dependency is detected.
1874	  o unit-tests/order: test the above
1875
18762012-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1877
1878	* Makefile.in (MAKE_VERSION): 20121102
1879	  Merge with NetBSD make, pick up
1880	  o cond.c: allow cond_state[] to grow.
1881	    In meta mode with a very large tree, we can hit the limit
1882	    while processing dirdeps.
1883
18842012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1885
1886	* Makefile.in: we need to use ${srcdir} not ${.CURDIR}
1887
18882012-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
1889
1890	* Makefile.in (MAKE_VERSION): 20121010
1891	  o protect syntax that only bmake parses correctly.
1892	  o remove auto setting of FORCE_MACHINE, use configure's
1893	    --with-force-machine=whatever if that is desired.
1894
18952012-10-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1896
1897	* Makefile.in: do not lose history from make.1 when generating bmake.1
1898
18992012-10-07  Simon J. Gerraty  <sjg@bad.crufty.net>
1900
1901	* Makefile.in (MAKE_VERSION): 20121007
1902	  Merge with NetBSD make, pick up
1903	  o compat.c: ignore empty commands - same as jobs mode.
1904	  o make.1: document meta chars that cause use of shell
1905
19062012-09-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1907
1908	* Makefile.in (MAKE_VERSION): bump version to 20120911
1909	* bsd.after-import.mk: include Makefile.inc early and allow it to
1910	  override PROG
1911
19122012-08-31  Simon J. Gerraty  <sjg@bad.crufty.net>
1913
1914	* Makefile.in (MAKE_VERSION): bump version to 20120831
1915	  Merge with NetBSD make, pick up
1916	  o cast sizeof() to int for comparison
1917	  o minor make.1 tweak
1918
19192012-08-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1920
1921	* Makefile.in (MAKE_VERSION): bump version to 20120830
1922	  Merge with NetBSD make, pick up
1923	  o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
1924	  o debug flag -dV causes -V to show raw value regardless.
1925
19262012-07-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1927
1928	* bsd.after-import.mk (after-import): ensure unit-tests/Makefile
1929	  gets SRCTOP set.
1930
19312012-07-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1932
1933	* Makefile.in (MAKE_VERSION): bump version to 20120704
1934	  Merge with NetBSD make, pick up
1935	  o Job_ParseShell should call Shell_Init if it has been
1936	    previously called.
1937	* Makefile.in: set USE_META based on configure result.
1938	  also .PARSEDIR is safer indicator of bmake.
1939
19402012-06-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1941
1942	* Makefile.in: bump version to 20120626
1943	  ensure CPPFLAGS is in CFLAGS
1944	* meta.c: avoid nested externs
1945	* bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
1946
19472012-06-20  Simon J. Gerraty  <sjg@bad.crufty.net>
1948
1949	* Makefile.in (MAKE_VERSION): bump version to 20120620
1950	  Merge with NetBSD make, pick up
1951	  o make_malloc.c: avoid including make_malloc.h again
1952
1953	* Makefile.in: avoid bmake only syntax or protect with
1954	  .if defined(.MAKE.LEVEL)
1955	* bsd.after-import.mk: replace .-include with .sinclude
1956	  ensure? SRCTOP gets a value
1957	* configure.in: look for filemon.h in /usr/include/dev/filemon first.
1958
19592012-06-19  Simon J. Gerraty  <sjg@bad.crufty.net>
1960
1961	* Makefile.in (MAKE_VERSION): bump version to 20120612
1962	  Merge with NetBSD make, pick up
1963	  o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
1964	    for greater portability.
1965	  o unit-tests/forloop: check that .for works as expected wrt
1966	    number of times and with "quoted strings".
1967
19682012-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
1969
1970	* Makefile.in (MAKE_VERSION): bump version to 20120606
1971	  Merge with NetBSD make, pick up
1972	  o compat.c: use kill(2) rather than raise(3).
1973	* configure.in: look for sys/dev/filemon
1974	* bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
1975	  and pass BOOTSTRAP_XTRAS to boot-strap.
1976
19772012-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1978
1979	* Makefile.in (MAKE_VERSION): bump version to 20120604
1980	  Merge with NetBSD make, pick up
1981	  o util.c and var.c share same var for tracking if environ
1982	    has been reallocated.
1983	  o util.c provide getenv with setenv.
1984	* Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
1985	  when the shell actively strips .MAKE.* from the environment.
1986	  We still refer to the variable always as .MAKE.LEVEL
1987	* util.c fix bug in findenv() was finding prefix of name.
1988	* compat.c: re-raising SIGINT etc after running .INTERRUPT
1989	  results in more reliable termination of all activity on many
1990	  platforms.
1991
19922012-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1993
1994	* Makefile.in (MAKE_VERSION): bump version to 20120602
1995	  Merge with NetBSD make, pick up
1996	  o for.c: handle quoted items in .for list
1997
19982012-05-30  Simon J. Gerraty  <sjg@bad.crufty.net>
1999
2000	* Makefile.in (MAKE_VERSION): bump version to 20120530
2001	  Merge with NetBSD make, pick up
2002	  o compat.c: ignore empty command.
2003
20042012-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2005
2006	* Makefile.in (MAKE_VERSION): bump version to 20120524
2007	* FILES: add bsd.after-import.mk:
2008	  A simple means of integrating bmake into a BSD build system.
2009
20102012-05-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2011
2012	* Makefile.in (MAKE_VERSION): bump version to 20120520
2013	  Merge with NetBSD make, pick up
2014	  o increased limit for nested conditionals.
2015
20162012-05-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2017
2018	* Makefile.in (MAKE_VERSION): bump version to 20120518
2019	  Merge with NetBSD make, pick up
2020	  o use _exit(2) in signal hanlder
2021	  o Don't use the [dir] cache when building nodes that might have
2022	    changed since the last exec.
2023	  o Avoid nested extern declaration warnings.
2024
20252012-04-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2026
2027	* meta.c (fgetLine): avoid %z - not portable.
2028	* parse.c: Since we moved include of sys/mman.h
2029	  and def's of MAP_COPY etc. we got dups from a merge.
2030
20312012-04-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2032
2033	* Makefile.in (MAKE_VERSION): bump version to 20120420
2034	  Merge with NetBSD make, pick up
2035	  o restore duplicate supression in .MAKE.MAKEFILES
2036	    runtime saving can be significant.
2037	  o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2038	    consumption up to 20%.
2039
20402012-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2041
2042	* Makefile.in (MAKE_VERSION): bump version to 20120420
2043          Merge with NetBSD make, pick up
2044	  o remove duplicate supression in .MAKE.MAKEFILES
2045	  o improved dir cache behavior
2046	  o gmake'ish export command
2047
20482012-03-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2049
2050	* Makefile.in (MAKE_VERSION): bump version to 20120325
2051	  Merge with NetBSD make, pick up
2052	  o fix parsing of :[#] in conditionals.
2053
20542012-02-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2055
2056	* Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2057	  since some systems cannot cope with .Nx <version>
2058
20592011-11-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2060
2061	* Makefile.in (MAKE_VERSION): bump version to 20111111
2062	  Merge with NetBSD make, pick up
2063	  o debug output for .PARSEDIR and .PARSEFILE
2064
20652011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2066
2067	* Makefile.in (MAKE_VERSION):  bump version to 20111010
2068
20692011-10-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2070
2071	* boot-strap: check for an expected file in the dirs we look for.
2072	* make-bootstrap.sh: pass on LDSTATIC
2073
20742011-10-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2075
2076	* Makefile.in (MAKE_VERSION): bump version to 20111001
2077	  Merge with NetBSD make, pick up
2078	  o ensure .PREFIX is set for .PHONY
2079	    and .TARGET set for .PHONY run via .END
2080	  o __dead used consistently
2081
20822011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2083
2084	* Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2085
20862011-09-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2087
2088	* Makefile.in (MAKE_VERSION): bump version to 20110905
2089	  Merge with NetBSD make, pick up
2090	  o meta_oodate: ignore makeDependfile
2091
20922011-08-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2093
2094	* Makefile.in (MAKE_VERSION): bump version to 20110828
2095	  Merge with NetBSD make, pick up
2096	  o silent=yes in .MAKE.MODE causes meta mode to mark targets
2097	    as SILENT if a .meta file is created
2098
20992011-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2100
2101	* Makefile.in (MAKE_VERSION): bump version to 20110818
2102	  Merge with NetBSD make, pick up
2103	  o in meta mode, if target flagged .META a missing .meta file
2104	    means target is out-of-date
2105	  o fixes for gcc 4.5 warnings
2106	  o simplify job printing code
2107
21082011-08-09  Simon J. Gerraty  <sjg@bad.crufty.net>
2109
2110	* Makefile.in (MAKE_VERSION): bump version to 20110808
2111	  Merge with NetBSD make, pick up
2112	  o do not touch OP_SPECIAL targets when doing make -t
2113
21142011-06-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2115
2116	* Makefile.in (MAKE_VERSION): bump version to 20110622
2117	  Merge with NetBSD make, pick up
2118	  o meta_oodate detect corrupted .meta file and declare oodate.
2119	* configure.in: add check for setsid
2120
21212011-06-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2122
2123	* Merge with NetBSD make, pick up
2124	  o unit-tests/modts now works on MirBSD
2125
21262011-06-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2127
2128	* Makefile.in (MAKE_VERSION): bump version to 20110606
2129	  Merge with NetBSD make, pick up
2130	  o ApplyModifiers: when we parse a variable which is not
2131	    the entire modifier string, or not followed by ':', do not
2132	    consider it as containing modifiers.
2133	  o loadfile: ensure newline at end of mapped file.
2134
21352011-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2136
2137	* Makefile.in (MAKE_VERSION): bump version to 20110505
2138	  Merge with NetBSD make, pick up
2139	  o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2140	    of make's control.  In meta mode, any generated file within
2141	    said bailiwick, which  is found to be missing, causes current
2142	    target to be out-of-date.
2143
21442011-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
2145
2146	* Makefile.in (MAKE_VERSION): bump version to 20110411
2147	  Merge with NetBSD make, pick up
2148	  o when long modifiers fail to match, check sysV style.
2149	    - add a test case
2150
21512011-04-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2152
2153	* Makefile.in (MAKE_VERSION): bump version to 20110410
2154	  Merge with NetBSD make, pick up
2155	  o :hash - cheap 32bit hash of value
2156	  o :localtime, :gmtime - use value as format string for strftime.
2157
21582011-03-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2159
2160	* Makefile.in (MAKE_VERSION): bump version to 20110330
2161	  mostly because its a cooler version.
2162	  Merge with NetBSD make, pick up
2163	  o NetBSD tags for meta.[ch]
2164	  o job.c call meta_job_finish() after meta_job_error().
2165	  o meta_job_error() should call meta_job_finish() to ensure
2166	    .meta file is closed, and safe to copy - if .ERROR target wants.
2167	   meta_job_finish() is safe to call repeatedly.
2168
21692011-03-29  Simon J. Gerraty  <sjg@bad.crufty.net>
2170
2171	* unit-tests/modts: use printf if it is a builtin,
2172	  to save us from MirBSD
2173
2174	* Makefile.in (MAKE_VERSION): bump version to 20110329
2175	  Merge with NetBSD make, pick up
2176	  o fix for use after free() in CondDoExists().
2177	  o meta_oodate() report extra commands and return earlier.
2178
21792011-03-27  Simon J. Gerraty  <sjg@bad.crufty.net>
2180
2181	* Makefile.in (MAKE_VERSION): bump version to 20110327
2182	  Merge with NetBSD make, pick up
2183	  o meta.c, if .MAKE.MODE contains curdirOk=yes
2184	    allow creating .meta files in .CURDIR
2185	* boot-strap (TOOL_DIFF): aparently at least on linux distro
2186	  formats the output of 'type' differently - so eat any "()"
2187
21882011-03-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2189
2190	* Makefile.in (MAKE_VERSION): bump version to 20110306
2191	  Merge with NetBSD make, pick up
2192	  o meta.c, only do getcwd() once
2193
21942011-03-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2195
2196	* Makefile.in (MAKE_VERSION): bump version to 20110305
2197	  Merge with NetBSD make, pick up
2198	  o correct sysV substitution handling of empty lhs and variable
2199	  o correct exists() check for dir with trailing /
2200	  o correct handling of modifiers for non-existant variables
2201	    during evaluation of conditionals.
2202	  o ensure MAP_FILE is defined.
2203	  o meta.c use curdir[] now exported by main.c
2204
22052011-02-25  Simon J. Gerraty  <sjg@bad.crufty.net>
2206
2207	* Makefile.in (MAKE_VERSION): bump version to 20110225
2208	  Merge with NetBSD make, pick up
2209	  o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2210	    makefiles have been read.
2211	  o fix example of :? modifier in man page.
2212
22132011-02-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2214
2215	* Makefile.in (MAKE_VERSION): bump version to 20110214
2216	  Merge with NetBSD make, pick up
2217	  o meta.c handle realpath() failing when generating meta file
2218	    name.
2219
2220	* sigcompat.c: convert to ansi so we can use higher warning levels.
2221
2222
22232011-02-07  Simon J. Gerraty  <sjg@bad.crufty.net>
2224
2225	* Makefile.in (MAKE_VERSION): bump version to 20110207
2226	  Merge with NetBSD make, pick up
2227	  o fix for bug in meta mode.
2228
22292011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2230
2231	* parse.c: SunOS 5.8 at least does not have MAP_FILE
2232
22332011-01-01  Simon J. Gerraty  <sjg@bad.crufty.net>
2234
2235	* Makefile.in (MAKE_VERSION): bump version to 20110101
2236	  Merge with NetBSD make, pick up
2237	  o use mmap(2) if available, for reading makefiles
2238
22392010-12-15  Simon J. Gerraty  <sjg@bad.crufty.net>
2240
2241	* Makefile.in (MAKE_VERSION): bump version to 20101215
2242	  Merge with NetBSD make, pick up
2243	  o ensure meta_job_error() does not report a previous .meta file
2244	    as being culprit.
2245
22462010-12-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2247
2248	* Makefile.in (MAKE_VERSION): bump version to 20101210
2249	  Merge with NetBSD make, pick up
2250	  o meta_oodate: track cwd per process, and only consider target
2251	    out-of-date if missing file is outside make's CWD.
2252	    Ignore files in /tmp/ etc.
2253	  o to ensure unit-tests results match, need to control LC_ALL
2254	    as well as LANG.
2255	  o fix for parsing bug in var.c
2256
22572010-11-26  Simon J. Gerraty  <sjg@bad.crufty.net>
2258
2259	* Makefile.in (MAKE_VERSION): bump version to 20101126
2260	  Merge with NetBSD make, pick up
2261	  o if stale dependency is an IMPSRC, search via .PATH
2262	  o meta_oodate: if a referenced file is missing, target is
2263	    out-of-date.
2264	  o meta_oodate: if a target uses .OODATE in its commands,
2265	    it (.OODATE) needs to be recomputed.
2266	  o keep a pointer to youngest child node, rather than just its
2267	    mtime.
2268
22692010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2270
2271	* Makefile.in (MAKE_VERSION): bump version to 20101101
2272
22732010-10-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2274
2275	* machine.sh: like os.sh,
2276	allow for uname -p producing useless drivel
2277
22782010-09-13  Simon J. Gerraty  <sjg@bad.crufty.net>
2279
2280	* boot-strap: document configure knobs for meta and filemon.
2281
2282	* Makefile.in (MAKE_VERSION): bump version to 20100911
2283	  Merge with NetBSD make, pick up
2284	  o meta.c - meta mode
2285
2286	* make-bootstrap.sh.in: handle meta.c
2287	* configure.in: add knobs for use_meta and filemon_h
2288	  also, look for dirname, str[e]sep and strlcpy
2289	* util.c: add simple err[x] and warn[x]
2290
22912010-08-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2292
2293	* boot-strap (TOOL_DIFF): set this to ensure tests use
2294	  the same version of diff that configure tested
2295
2296	* Makefile.in (MAKE_VERSION): bump version to 20100808
2297	  Merge with NetBSD make, pick up
2298	  o in jobs mode, when we discover we cannot make something,
2299	    call PrintOnError before exit.
2300
23012010-08-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2302
2303	* Makefile.in (MAKE_VERSION): bump version to 20100806
2304	  Merge with NetBSD make, pick up
2305	  o formatting fixes for ignored errors
2306	  o ensure jobs are cleaned up regardless of where wait() was called.
2307
23082010-06-28  Simon J. Gerraty  <sjg@bad.crufty.net>
2309
2310	* Makefile.in (MAKE_VERSION): bump version to 20100618
2311	* os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2312
23132010-06-16  Simon J. Gerraty  <sjg@bad.crufty.net>
2314
2315	* Makefile.in (MAKE_VERSION): bump version to 20100616
2316	  Merge with NetBSD make, pick up
2317	  o man page update
2318	  o call PrintOnError from JobFinish when we detect an error we
2319	    are not ignoring.
2320
23212010-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2322
2323	* Makefile.in (MAKE_VERSION): bump version to 20100606
2324	  Merge with NetBSD make, pick up
2325	  o man page update
2326
23272010-06-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2328
2329	* Makefile.in (MAKE_VERSION): bump version to 20100605
2330	  Merge with NetBSD make, pick up
2331	  o use bmake_signal() which is a wrapper around sigaction()
2332	    in place of signal()
2333	  o add .export-env to allow exporting variables to environment
2334	    without tracking (so no re-export when the internal value is
2335	    changed).
2336
23372010-05-24  Simon J. Gerraty  <sjg@bad.crufty.net>
2338
2339	* Makefile.in (MAKE_VERSION): bump version to 20100524
2340	  Merge with NetBSD make, pick up
2341	  o fix for .info et al being greedy.
2342
23432010-05-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2344
2345	* Makefile.in (MAKE_VERSION): bump version to 20100520
2346	  Merge with NetBSD make, pick up
2347	  o back to using realpath on argv[0]
2348	    but only if contains '/' and does not start with '/'.
2349
23502010-05-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2351
2352	* boot-strap: use absolute path for bmake when running tests.
2353
2354	* Makefile.in (MAKE_VERSION):  bump version to 20100510
2355	  Merge with NetBSD make, pick up
2356	  o revert use of realpath on argv[0]
2357	    too many corner cases.
2358	  o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2359
23602010-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
2361
2362	* Makefile.in (MAKE_VERSION): bump version to 20100505
2363	  Merge with NetBSD make, pick up
2364	  o fix for missed SIGCHLD when compiled with SunPRO
2365	    actually for bmake, defining FORCE_POSIX_SIGNALS would have
2366	    done the job.
2367
23682010-04-30  Simon J. Gerraty  <sjg@bad.crufty.net>
2369
2370	* Makefile.in (MAKE_VERSION): bump version to 20100430
2371	  Merge with NetBSD make, pick up
2372	  o fflush stdout before writing to stdout
2373
23742010-04-23  Simon J. Gerraty  <sjg@bad.crufty.net>
2375
2376	* Makefile.in (MAKE_VERSION): bump version to 20100423
2377	  Merge with NetBSD make, pick up
2378	  o updated unit tests for Haiku (this time for sure).
2379	* boot-strap: based on patch from joerg
2380	  honor --with-default-sys-path better.
2381	* boot-strap: remove mention of --with-prefix-sys-path
2382
23832010-04-22  Simon J. Gerraty  <sjg@bad.crufty.net>
2384
2385	* Makefile.in (MAKE_VERSION): bump version to 20100422
2386	* Merge with NetBSD make, pick up
2387	  o fix for vfork() on Darwin.
2388	  o fix for bogus $TMPDIR.
2389	  o set .MAKE.MODE=compat for -B
2390	  o set .MAKE.JOBS=max_jobs for -j max_jobs
2391	  o allow unit-tests to run without any *.mk
2392	  o unit-tests/modmisc be more conservative in dirs presumed to exist.
2393	* boot-strap: ignore /usr/share/mk except on NetBSD.
2394	* unit-tests/Makefile.in: set LANG=C when running unit-tests to
2395	  ensure sort(1) behaves as expected.
2396
23972010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2398
2399	* boot-strap: add FindHereOrAbove so we can use -m .../mk
2400
24012010-04-20  Simon J. Gerraty  <sjg@bad.crufty.net>
2402
2403	* Makefile.in (MAKE_VERSION): bump version to 20100420
2404	* Merge with NetBSD make, pick up
2405	  o fix for variable realpath() behavior.
2406	    we have to stat(2) the result to be sure.
2407	  o fix for .export (all) when nested vars use :sh
2408
24092010-04-14  Simon J. Gerraty  <sjg@bad.crufty.net>
2410
2411	* Makefile.in (MAKE_VERSION): bump version to 20100414
2412	* Merge with NetBSD make, pick up
2413	  o use realpath to resolve argv[0] (for .MAKE) if needed.
2414	  o add realpath from libc.
2415	  o add :tA to resolve variable via realpath(3) if possible.
2416
24172010-04-08  Simon J. Gerraty  <sjg@bad.crufty.net>
2418
2419	* Makefile.in (MAKE_VERSION): bump version to 20100408
2420	* Merge with NetBSD make, pick up
2421	  o unit tests for .ERROR, .error
2422	  o fix for .ERROR to ensure it cannot be default target.
2423
24242010-04-06  Simon J. Gerraty  <sjg@bad.crufty.net>
2425
2426	* Makefile.in (MAKE_VERSION): bump version to 20100406
2427	* Merge with NetBSD make, pick up
2428	  o fix for compat mode "Error code" going to debug_file.
2429	  o fix for .ALLSRC being populated twice.
2430	  o support for .info, .warning and .error directives
2431	  o .MAKE.MODE to control make's operational mode
2432	  o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2433	    name(s).
2434	  o .MAKE.DEPENDFILE to control the name of the depend file
2435	  o .ERROR target - run on failure.
2436
24372010-03-18  Simon J. Gerraty  <sjg@bad.crufty.net>
2438
2439	* make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2440
2441	* os.sh,arch.c: patch for Haiku from joerg at netbsd
2442
24432010-03-17  Simon J. Gerraty  <sjg@bad.crufty.net>
2444
2445	* Makefile.in (MAKE_VERSION): bump version to 20100222
2446	* Merge with NetBSD make, pick up
2447	  o better error msg for .for with mutiple inter vars
2448
2449	* boot-strap:
2450	  o use make-bootstrap.sh from joerg at netbsd
2451	    to avoid the need for a native make when bootstrapping.
2452	  o add "" everywhere ;-)
2453	  o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2454	    otherwise the pre-formated version.
2455
24562010-01-04  Simon J. Gerraty  <sjg@bad.crufty.net>
2457
2458	* Makefile.in (MAKE_VERSION): bump version to 20100102
2459	* Merge with NetBSD make, pick up:
2460	  o fix for -m .../
2461
24622009-11-18  Simon J. Gerraty  <sjg@void.crufty.net>
2463
2464	* Makefile.in (MAKE_VERSION): bump version to 20091118
2465	* Merge with NetBSD make, pick up:
2466	  o .unexport
2467	  o report lines that start with '.' and should have ':'
2468	    (catch typo's of .el*if).
2469
24702009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
2471
2472	* configure.in: Ensure that srcdir and mksrc are absolute paths.
2473
24742009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2475
2476	* Makefile.in (MAKE_VERSION): fix version to 20091007
2477
24782009-10-07  Simon J. Gerraty  <sjg@void.crufty.net>
2479
2480	* Makefile.in (MAKE_VERSION): bump version to 200910007
2481	* Merge with NetBSD make, pick up:
2482	  o fix for parsing of :S;...;...; applied to .for loop iterator
2483	    appearing in a dependency line.
2484
24852009-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
2486
2487	* Makefile.in (MAKE_VERSION): bump version to 20090909
2488	* Merge with NetBSD make, pick up:
2489	  o fix for -C, .CURDIR and .OBJDIR
2490	* boot-strap:
2491	  o allow share_dir to be set independent of prefix.
2492	  o select default share_dir better when prefix ends in $HOST_TARGET
2493	  o if FORCE_BSD_MK etc were set, include them in the suggested
2494	    install-mk command.
2495
24962009-09-08  Simon J. Gerraty  <sjg@void.crufty.net>
2497
2498	* Makefile.in (MAKE_VERSION): bump version to 20090908
2499	* Merge with NetBSD make, pick up:
2500	  o .MAKE.LEVEL for recursion tracking
2501	  o fix for :M scanning \:
2502
25032009-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
2504
2505	* configure.in: Don't -D__EXTENSIONS__ if
2506	AC_USE_SYSTEM_EXTENSIONS says "no".
2507
25082009-08-26  Simon J. Gerraty  <sjg@void.crufty.net>
2509
2510	* Makefile.in (MAKE_VERSION): bump version to 20090826
2511	Simplify MAKE_VERSION to just the bare date.
2512	* Merge with NetBSD make, pick up:
2513	  o -C directory support.
2514	  o support for SIGINFO
2515	  o use $TMPDIR for temp files.
2516	  o child of vfork should be careful about modifying parent's state.
2517
2518
25192009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2520
2521	* Appy some patches for MiNT from David Brownlee
2522
25232009-02-26  Simon J. Gerraty  <sjg@void.crufty.net>
2524
2525	* Makefile.in (BMAKE_VERSION): bump version to 20090222
2526	* Merge with NetBSD make, pick up:
2527	  o Possible null pointer de-ref in Var_Set.
2528
25292009-02-08  Simon J. Gerraty  <sjg@void.crufty.net>
2530
2531	* Makefile.in (BMAKE_VERSION): bump version to 20090204
2532	* Merge with NetBSD make, pick up:
2533	  o bmake_malloc et al moved to their own .c
2534	  o Count both () and {} when looking for the end of a :M pattern
2535	  o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2536	  o strlist.c - functions for processing extendable arrays of pointers to strings.
2537	  o ClientData replaced with void *, so const void * can be used.
2538	  o New debug flag C for DEBUG_CWD
2539
25402008-11-11  Simon J. Gerraty  <sjg@void.crufty.net>
2541
2542	* Makefile.in (BMAKE_VERSION): bump version to 20081111
2543	  Apply patch from Joerg Sonnenberge to
2544	  configure.in:
2545	  o remove some redundant checks
2546	  o check for emlloc etc only in libutil and require the whole family.
2547	  util.c:
2548	  o remove [v]asprintf which is no longer used.
2549
25502008-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2551
2552	* Makefile.in (BMAKE_VERSION): bump version to 20081101
2553	* Merge with NetBSD make, pick up:
2554	  o util.c: avoid use of putenv() - christos
2555
25562008-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
2557
2558	* Makefile.in (BMAKE_VERSION): bump version to 20081030
2559	  pick up man page tweaks.
2560
25612008-10-29  Simon J. Gerraty  <sjg@void.crufty.net>
2562
2563	* Makefile.in: move processing of LIBOBJS to after is definition!
2564	  thus we'll have getenv.c in SRCS only if needed.
2565
2566	* make.1: add examples of how to use :?
2567
2568	* Makefile.in (BMAKE_VERSION): bump version to 20081029
2569	* Merge with NetBSD make, pick up:
2570	  o fix for .END processing with -j
2571	  o segfault from Parse_Error when no makefile is open
2572	  o handle numeric expressions in any variable expansion
2573	  o debug output now defaults to stderr, -dF to change it - apb
2574	  o make now uses bmake_malloc etc so that it can build natively
2575	    on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2576
25772008-09-27  Simon J. Gerraty  <sjg@void.crufty.net>
2578
2579	* Makefile.in (BMAKE_VERSION): bump version to 20080808
2580	* Merge with NetBSD make, pick up:
2581	  o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2582	    long lines in Makefiles
2583	  o optimizations for VarQuote by joerg
2584	  o fix for PR/38756: dominik: make dumps core on invalid makefile
2585
25862008-05-15  Simon J. Gerraty  <sjg@void.crufty.net>
2587
2588	* Makefile.in (BMAKE_VERSION): bump version to 20080515
2589	* Merge with NetBSD make, pick up:
2590	  o fix skip setting vars in VAR_GLOBAL context, to handle
2591	    cases where VAR_CMD is used for other than command line vars.
2592
25932008-05-14  Simon J. Gerraty  <sjg@void.crufty.net>
2594
2595	* boot-strap (make_version): we may need to look in
2596	$prefix/share/mk for sys.mk
2597
2598	* Makefile.in (BMAKE_VERSION): bump version to 20080514
2599	* Merge with NetBSD make, pick up:
2600	  o skip setting vars in VAR_GLOBAL context, when already set in
2601	  VAR_CMD which takes precedence.
2602
26032008-03-30  Simon J. Gerraty  <sjg@void.crufty.net>
2604
2605	* Makefile.in (BMAKE_VERSION):  bump version to 20080330
2606	* Merge with NetBSD make, pick up:
2607	  o fix for ?= when LHS contains variable reference.
2608
26092008-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2610
2611	* merge some patches from NetBSD pkgsrc.
2612
2613	* makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
2614	the MAKSYSPATH used during bootstrap.
2615
2616	* Makefile.in (BMAKE_VERSION): bump version to 20080215
2617	* Merge with NetBSD make, pick up:
2618	  o warn if non-space chars follow 'empty' in a conditional.
2619
26202008-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
2621
2622	* Makefile.in (BMAKE_VERSION): bump version to 20080118
2623	* Merge with NetBSD make, pick up:
2624	  o consider dependencies read from .depend as optional - dsl
2625	  o remember when buffer for reading makefile grows - dsl
2626	  o add -dl (aka LOUD) - David O'Brien
2627
26282007-10-22  Simon J. Gerraty  <sjg@void.crufty.net>
2629
2630	* Makefile.in (BMAKE_VERSION): bump version to 20071022
2631	* Merge with NetBSD make, pick up:
2632	  o Allow .PATH<suffix> to be used for .include ""
2633
2634	* boot-strap: source default settings from .bmake-boot-strap.rc
2635
26362007-10-16  Simon J. Gerraty  <sjg@void.crufty.net>
2637
2638	* Makefile.in: fix maninstall on various systems
2639	  provided that our man.mk is used.
2640	  For non-BSD systems we install the preformatted page
2641	  into $MANDIR/cat1
2642
26432007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
2644
2645	* boot-strap: make bmake.1 too, so maninstall works.
2646
26472007-10-14  Simon J. Gerraty  <sjg@void.crufty.net>
2648
2649	* Makefile.in (BMAKE_VERSION): bump version to 20071014
2650	* Merge with NetBSD make, pick up:
2651	  o revamped handling of defshell - configure no longer needs to
2652	    know the content of the shells array - apb
2653	  o stop Var_Subst modifying its input - apb
2654	  o avoid calling ParseTrackInput too often - dsl
2655
26562007-10-11  Simon J. Gerraty  <sjg@void.crufty.net>
2657
2658	* Makefile.in (BMAKE_VERSION): bump version to 20071011
2659	* Merge with NetBSD make, pick up:
2660	  o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
2661
2662	* sigcompat.c: some tweaks for HP-UX 11.x based on
2663	  patch from Tobias Nygren
2664
2665	* configure.in: update handling of --with-defshell to match
2666	  new make behavior.  --with-defshell=/usr/xpg4/bin/sh
2667	  will now do what one might hope - provided the chosen shell
2668	  behaves enough like sh.
2669
26702007-10-08  Simon J. Gerraty  <sjg@void.crufty.net>
2671
2672	* Makefile.in (BMAKE_VERSION): bump to 20071008
2673	* Merge with NetBSD make, pick up:
2674	  o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
2675	  o .export/.MAKE.EXPORTED - export of variables - sjg
2676	  o .MAKE.MAKEFILES - track all makefiles read - sjg
2677	  o performance improvements - dsl
2678	  o revamp parallel job scheduling - dsl
2679
26802006-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2681
2682	* Makefile.in (BMAKE_VERSION): bump to 20060728
2683	* Merge with NetBSD make, pick up:
2684	  o extra debug info during variable and cond processing - sjg
2685	  o shell definition now covers newline - rillig
2686	  o minor mem leak in PrintOnError - sjg
2687
26882006-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
2689
2690	* Makefile.in (BMAKE_VERSION):  bump to 20060511
2691	* Merge with NetBSD make, pick up:
2692	  o more memory leaks - coverity
2693	  o possible overflow in ArchFindMember - coverity
2694	  o extract variable modifier code out of Var_Parse()
2695	    so it can be called recursively - sjg
2696	  o unit-tests/moderrs - sjg
2697
26982006-04-12  Simon J. Gerraty  <sjg@void.crufty.net>
2699
2700	* Makefile.in (BMAKE_VERSION): bump to 20060412
2701	* Merge with NetBSD make, pick up:
2702	  o fixes for some memory leaks - coverity
2703	  o only read first sys.mk etc when searching sysIncPath - sjg
2704
2705	* main.c (ReadMakefile): remove hack for __INTERIX that prevented
2706	setting ${MAKEFILE} - OBATA Akio
2707
27082006-03-18  Simon J. Gerraty  <sjg@void.crufty.net>
2709
2710	* Makefile.in (BMAKE_VERSION): bump to 20060318
2711	* Merge with NetBSD make, pick up:
2712	  o cleanup of job.c to remove remote handling, distcc is more
2713	    useful and this code was likely bit-rotting - dsl
2714	  o fix for :P modifier - sjg
2715	* boot-strap: set default prefix to something reasonable
2716	  (for me anyway).
2717
27182006-03-01  Simon J. Gerraty  <sjg@void.crufty.net>
2719
2720	* Makefile.in (BMAKE_VERSION): bump to 20060301
2721	* Merge with NetBSD make, pick up:
2722	  o make .WAIT apply recursively, document and test case - apb
2723	  o allow variable modifiers in a variable appear anywhere in
2724	    modifier list, document and test case - sjg
2725
27262006-02-22  Simon J. Gerraty  <sjg@void.crufty.net>
2727
2728	* Makefile.in (BMAKE_VERSION): bump to 20060222
2729	* Merge with NetBSD make, pick up:
2730	  o improved job token handling - dsl
2731	  o SIG_DFL the correct signal before exec - dsl
2732	  o more debug info during parsing - dsl
2733	  o allow variable modifiers to be specified via variable - sjg
2734	* boot-strap: explain why we died if no mksrc
2735
27362005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>
2737
2738	* Makefile.in (BMAKE_VERSION): bump to 20051105
2739	* configure.in: always set default_sys_path
2740	  default is ${prefix}/share/mk
2741	  - remove prefix_sys_path, anyone wanting more than above
2742	    needs to set it manually.
2743
27442005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>
2745
2746	* boot-strap: make this a bit easier for pkgsrc folk.
2747	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
2748	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2749
27502005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>
2751
2752	* Makefile.in (BMAKE_VERSION): bump to 20051102
2753	* job.c (JobFinish): fix likely ancient merge lossage
2754	fix from Todd Vierling.
2755	* boot-strap (srcdir): allow setting mksrc=none
2756
27572005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>
2758
2759	* Makefile.in (BMAKE_VERSION): bump to 20051031
2760	* ranlib.h: skip on OSF too.
2761	  (NetBSD PR 31864)
2762
27632005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
2764
2765	* Makefile.in (BMAKE_VERSION): bump to 20051002
2766	  fix a silly typo
2767
27682005-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2769
2770	* Makefile.in (BMAKE_VERSION): bump to 20051001
2771	  support for UnixWare and some other systems,
2772	  based on patches from pkgsrc/bootstrap
2773
27742005-09-03  Simon J. Gerraty  <sjg@void.crufty.net>
2775
2776	* Makefile.in (BMAKE_VERSION): bump to 20050901
2777	* Merge with NetBSD make, pick up:
2778	  o possible parse error causing us to wander off.
2779
27802005-06-06  Simon J. Gerraty  <sjg@void.crufty.net>
2781
2782	* Makefile.in (BMAKE_VERSION): bump to 20050606
2783	* Merge with NetBSD make, pick up:
2784	  o :0x modifier for randomizing a list
2785	  o fixes for a number of -Wuninitialized issues.
2786
27872005-05-30  Simon J. Gerraty  <sjg@void.crufty.net>
2788
2789	* Makefile.in (BMAKE_VERSION): bump to 20050530
2790	* Merge with NetBSD make, pick up:
2791	  o Handle dependencies for .BEGIN, .END and .INTERRUPT
2792
2793	* README: was seriously out of date.
2794
27952005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2796
2797	* Important to use .MAKE rather than MAKE.
2798
27992005-03-15  Simon J. Gerraty  <sjg@void.crufty.net>
2800
2801	* Makefile.in (BMAKE_VERSION): bump to 20050315
2802	* Merge with NetBSD make, pick up:
2803	  o don't mistake .elsefoo for .else
2804	  o use suffix-specific search path correctly
2805	  o bunch of style nits
2806
28072004-05-11  Simon J. Gerraty  <sjg@void.crufty.net>
2808
2809	* boot-strap:
2810	o ensure that args to --src and --with-mksrc
2811	  are resolved before giving them to configure.
2812	o add -o "objdir" so that builder can control it,
2813	  default is $OS as determined by os.sh
2814	o add -q to suppress all the install instructions.
2815
28162004-05-08  Simon J. Gerraty  <sjg@void.crufty.net>
2817
2818	* Remove __IDSTRING()
2819
2820	* Makefile.in (BMAKE_VERSION): bump to 20040508
2821	* Merge with NetBSD make, pick up:
2822	  o posix fixes
2823	    - remove '-e' from compat mode
2824	    - add support for '+' command-line prefix.
2825	  o fix for handling '--' on command-line.
2826	  o fix include in lst.lib/lstInt.h to simplify '-I's
2827	  o we also picked up replacement of MAKE_BOOTSTRAP
2828	    with !MAKE_NATIVE which is a noop, but possibly confusing.
2829
28302004-04-14  Simon J. Gerraty  <sjg@void.crufty.net>
2831
2832	* Makefile.in (BMAKE_VERSION): bump to 20040414
2833	* Merge with NetBSD make, pick up:
2834	  o allow quoted strings on lhs of conditionals
2835	  o issue warning when extra .else is seen
2836	  o print line numer when errors encountered during parsing from
2837	  string.
2838
28392004-02-20  Simon J. Gerraty  <sjg@void.crufty.net>
2840
2841	* Makefile.in (BMAKE_VERSION):  bump to 20040220
2842	* Merge with NetBSD make, pick up:
2843	  o fix for old :M parsing bug.
2844	  o re-jigged unit-tests
2845
28462004-02-15  Simon J. Gerraty  <sjg@void.crufty.net>
2847
2848	* Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
2849	so that './bmake -f Makefile test' works.
2850
28512004-02-14  Simon J. Gerraty  <sjg@void.crufty.net>
2852
2853	* Makefile.in: (BMAKE_VERSION): bump to 20040214
2854	* Merge with NetBSD make, pick up:
2855	  o search upwards for *.mk
2856	  o fix for double free of var substitution buffers
2857	  o use of getopt replaced with custom code, since the usage
2858	  (re-scanning) isn't posix compatible.
2859
28602004-02-12  Simon J. Gerraty  <sjg@void.crufty.net>
2861
2862	* arch.c: don't include ranlib.h on ELF systems
2863	(thanks to Chuck Cranor <chuck@ece.cmu.edu>).
2864
28652004-01-18  Simon J. Gerraty  <sjg@void.crufty.net>
2866
2867	* Makefile.in (BMAKE_VERSION): bump to 20040118
2868
2869	* boot-strap (while): export vars we assign to on cmdline
2870	* unit-test/Makefile.in: ternary is .PHONY
2871
28722004-01-08  Simon J. Gerraty  <sjg@void.crufty.net>
2873
2874	* Makefile.in (BMAKE_VERSION): bump version to 20040108
2875	* Merge with NetBSD make, pick up:
2876	  o fix for ternary modifier
2877
28782004-01-06  Simon J. Gerraty  <sjg@void.crufty.net>
2879
2880	* Makefile.in (BMAKE_VERSION): bump version to 20040105
2881	* Merge with NetBSD make, pick up:
2882	  o fix for cond.c to handle compound expressions better
2883	  o variable expansion within sysV style replacements
2884
28852003-12-22  Simon J. Gerraty  <sjg@void.crufty.net>
2886
2887	* Make portable snprintf safer - output to /dev/null first to
2888	check space needed.
2889
2890	* Makefile.in (BMAKE_VERSION): bump version to 20031222
2891	* Merge with NetBSD make, pick up:
2892	  o -dg3 to show input graph when things go wrong.
2893	  o explicitly look for makefiles in objdir if not found in curdir so
2894	    that errors in .depend etc will be reported accurarely.
2895	  o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
2896	    instead as it more accurately reflects the expected behavior and
2897	    is more consistently implemented.
2898	  o avoid use of asprintf.
2899
29002003-09-28  Simon J. Gerraty  <sjg@void.crufty.net>
2901
2902	* util.c: Add asprintf and vasprintf.
2903
2904	* Makefile.in (BMAKE_VERSION): bump version to 20030928
2905	* Merge with NetBSD make, pick up:
2906	:[] modifier - allows picking words from a variable.
2907	:tW modifier - allows treating value as one big word.
2908	W flag for :C and :S - allows treating value as one big word.
2909
29102003-09-12  Simon J. Gerraty  <sjg@void.crufty.net>
2911
2912	* Merge with NetBSD make
2913	pick up -de flag to enable printing failed command.
2914	don't skip 1st two dir entries (normally . and ..) since
2915	coda does not have them.
2916
29172003-09-09  Simon J. Gerraty  <sjg@void.crufty.net>
2918
2919	* Makefile.in (BMAKE_VERSION): bump version to 20030909
2920	* Merge with NetBSD make, pick up:
2921	- changes for -V '${VAR}' to print fully expanded value
2922	  cf. -V VAR
2923	- CompatRunCommand now prints the command that failed.
2924	- several files got updated 3 clause Berkeley license.
2925
29262003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
2927
2928	* boot-strap: Allow setting configure args on command line.
2929
29302003-07-31  Simon J. Gerraty  <sjg@void.crufty.net>
2931
2932	* configure.in: add --with-defshell to allow sh or ksh
2933	to be selected as default shell.
2934
2935	* Makefile.in: bump version to 20030731
2936
2937	* Merge with NetBSD make
2938	Pick up .SHELL spec for ksh and associate man page changes.
2939	Also compat mode now uses the same shell specs.
2940
29412003-07-29  Simon J. Gerraty  <sjg@void.crufty.net>
2942
2943	* var.c (Var_Parse): ensure delim is initialized.
2944
2945	* unit-tests/Makefile.in: use single quotes to avoid problems from
2946	some shells.
2947
2948	* makefile.boot.in:
2949	Run the unit-tests as part of the bootstrap procedure.
2950
29512003-07-28  Simon J. Gerraty  <sjg@void.crufty.net>
2952
2953	* unit-tests/Makefile.in: always force complaints from
2954	${TEST_MAKE} to be from 'make'.
2955
2956	* configure.in: add check for 'diff -u'
2957	also fix some old autoconf'isms
2958
2959	* Makefile.in (BMAKE_VERSION): bump version to 20030728.
2960	if using GCC add -Wno-cast-qual to CFLAGS for var.o
2961
2962	* Merge with NetBSD make
2963	Pick up fix for :ts parsing error in some cases.
2964	Pick unit-tests.
2965
29662003-07-23  Simon J. Gerraty  <sjg@void.crufty.net>
2967
2968	* Makefile.in (BMAKE_VERSION): bump version to 20030723.
2969
2970	* var.c (Var_Parse): fix bug in :ts modifier, after const
2971	correctness fixes, must pass nstr to VarModify.
2972
29732003-07-14  Simon J. Gerraty  <sjg@void.crufty.net>
2974
2975	* Makefile.in: BMAKE_VERSION switch to a date based version.
2976	We'll generally use the date of last import from NetBSD.
2977
2978	* Merge with NetBSD make
2979	Pick up fixes for const-correctness, now passes WARNS=3 on
2980	NetBSD.
2981	Pick up :ts modifier, allows controlling the separator used
2982	between words in variable expansion.
2983
29842003-07-11  Simon J. Gerraty  <sjg@void.crufty.net>
2985
2986	* FILES: include boot-strap and os.sh
2987
2988	* Makefile.in: only set WARNS if we are NetBSD, the effect on
2989	FreeBSD is known to be bad.
2990
2991	* makefile.boot.in (bootstrap): make this the default target.
2992
2993	* Makefile.in: bump version to 3.1.19
2994
2995	* machine.sh: avoid A-Z with tr as it is bound to lose.
2996
29972003-07-10  Simon J. Gerraty  <sjg@void.crufty.net>
2998
2999	* Merge with NetBSD make
3000	Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3001	Plus some doc fixes.
3002
30032003-04-27  Simon J. Gerraty  <sjg@void.crufty.net>
3004
3005	* Merge with NetBSD make
3006	Pick up fix for PR/1523 - don't count a library as built, if there
3007	is no way to build it
3008
3009	* Bump version to 3.1.18
3010
30112003-03-23  Simon J. Gerraty  <sjg@void.crufty.net>
3012
3013	* Merge with NetBSD make
3014	Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3015	appears in src list.
3016
30172003-03-21  Simon J. Gerraty  <sjg@void.crufty.net>
3018
3019	* Merge with NetBSD make (mmm 10th anniversary!)
3020	pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3021	pick up -X which tells us to not export VAR=val via setenv if
3022	we are already doing so via MAKEFLAGS.  This saves valuable env
3023	space on systems like Darwin.
3024	set MAKE_VERSION to 3.1.17
3025
3026	* parse.c: pix up fix for suffix rules
3027
30282003-03-06  Simon J. Gerraty  <sjg@void.crufty.net>
3029
3030	* Merge with NetBSD make.
3031	pick up fix for propagating -B via MAKEFLAGS.
3032	set MAKE_VERSION to 3.1.16
3033
3034	* Apply some patches from pkgsrc-bootstrap/bmake
3035	Originally by Grant Beattie <grant@netbsd.org>
3036	I may have missed some - since they are based on bmake-3.1.12
3037
30382002-12-03  Simon J. Gerraty  <sjg@void.crufty.net>
3039
3040	* makefile.boot.in (bmake): update install targets for those that
3041	use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3042	havoc from gmake -w.  Thanks to Harlan Stenn <hstenn@cisco.com>.
3043
3044	* bmake.cat1: update the pre-formatted man page!
3045
30462002-11-30  Simon J. Gerraty  <sjg@void.crufty.net>
3047
3048	* Merge with NetBSD make.
3049	pick up fix for premature free of pointer used in call
3050	to Dir_InitCur().
3051	set MAKE_VERSION to 3.1.15
3052
30532002-11-26  Simon J. Gerraty  <sjg@void.crufty.net>
3054
3055	* configure.in: determine suitable value for MKSRC.
3056	override using --with-mksrc=PATH.
3057
3058	* machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3059	configs(8) will use 'sun4' as an alias for 'sparc'.
3060
30612002-11-25  Simon J. Gerraty  <sjg@void.crufty.net>
3062
3063	* Merge with NetBSD make.
3064	pick up ${.PATH}
3065	pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3066	set MAKE_VERSION to 3.1.14
3067	add configure checks for killpg and sys/socket.h
3068
30692002-09-16  Simon J. Gerraty  <sjg@void.crufty.net>
3070
3071	* tag bmake-3-1-13
3072
3073	* makefile.boot.in (bmake): use install-mk
3074	Also setup ./mk before trying to invoke bmake.boot incase we
3075	needed install-mk to create a sys.mk for us.
3076
3077	* configure.in: If we need to add -I${srcdir}/missing, make it an
3078	absolute path so that it works for lst.lib too.
3079
3080	* make.h: always include sys/cdefs.h since we provide one if the
3081	host does not.
3082
3083	* Makefile.in (install-mk):
3084	use MKSRC/install-mk which will do the right thing.
3085	use uname -p for ARCH if possible.
3086	since install-mk will setup links bsd.prog.mk -> prog.mk if
3087	needed, just .include bsd.prog.mk
3088
3089	* Merge with NetBSD make (NetBSD-1.6)
3090	Code is ansi-C only now.
3091	Bug in handling of dotLast is fixed.
3092	Can now assign .OBJDIR and make will reset its notions of life.
3093	New modifiers :tu :tl for toUpper and toLower.
3094
3095Tue Oct 16 12:18:42 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3096
3097	* Merge with NetBSD make
3098	pick up fix for .END failure in compat mode.
3099	pick up fix for extra va_end() in ParseVErrorInternal.
3100
3101Thu Oct 11 13:20:06 2001  Simon J. Gerraty  <sjg@zen.crufty.net>
3102
3103	* configure.in: for systems that have sys/cdefs.h check if it is
3104	compatible.  If not, include the one under missing, but tell it to
3105	include the native one too - necessary on Linux.
3106
3107	* missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3108	include_next (for gcc) to get the native sys/cdefs.h
3109
3110Tue Aug 21 02:29:34 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3111
3112	* job.c (JobFinish): Fix an earlier merge bug that resulted in
3113	leaking descriptors when using -jN.
3114
3115	* job.c (JobPrintCommand): See if "curdir" exists before
3116	attempting to chdir().  Doing the chdir directly in make (when in
3117	compat mode) fails silently, so let the -jN version do the same.
3118	This can happen when building kernels in an object tree and
3119	playing clever games to reset .CURDIR.
3120
3121	* Merged with NetBSD make
3122	pick up .USEBEFORE
3123
3124Tue Jun 26 23:45:11 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3125
3126	* makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3127
3128Tue Jun 12 16:48:57 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3129
3130	* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3131	us not to export the iterator variable when using VAR_CMD context.
3132
3133Sun Jun 10 21:55:21 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3134
3135	* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3136	its the wrong "fix".
3137
3138Sat Jun  9 00:11:24 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3139
3140	* Redesigned export of VAR_CMD's via MAKEFLAGS.
3141	We now simply append the variable names to .MAKEOVERRIDES, and
3142	handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3143	${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3144	Apart from fixing quoting bugs in previous version, this allows us
3145	to export vars to the environment by simply doing:
3146	.MAKEOVERRIDES+= PATH
3147	Merged again with NetBSD make, but the above is the only change.
3148
3149	* configure.in: added
3150	--disable-pwd-override		disable $PWD overriding getcwd()
3151	--disable-check-make-chdir	disable make trying to guess
3152		when it should automatically cd ${.CURDIR}
3153
3154	* Merge with NetBSD make, changes include:
3155	parse.c (ParseDoDependency): Spot that the syntax error is
3156	caused by an unresolved cvs/rcs conflict and say so.
3157	var.c: most of Var* functions now take a ctxt as 1st arg.
3158	now does variable substituion on rhs of sysv style modifiers.
3159
3160	* var.c (Var_Set): exporting of command line variables (VAR_CMD)
3161	is now done here.  We append the name='value' to .MAKEOVERRIDES
3162	rather than directly into MAKEFLAGS as this allows a Makefile to
3163	use .MAKEOVERRIDES= to disable this behaviour.  GNU make uses a
3164	very similar mechanism.  Note that in adding name='value' to
3165	.MAKEOVERRIDES we do the moral equivalent of:
3166	.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3167
3168Fri Jun  1 14:08:02 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3169
3170	* make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3171
3172	* Merged with NetBSD make
3173	make -dx can now be used to run commands via sh -x
3174	better error messages on exec failures.
3175
3176Thu May 31 01:44:54 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3177
3178	* Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3179	MAKE_VERSION gets updated.  Also don't use ?= for MAKE_VERSION,
3180	MACHINE etc otherwise they propagate from the previous bmake.
3181
3182	* configure.in (machine): allow --with-machine=generic to make
3183	configure use machine.sh to set MACHINE.
3184
3185	* job.c (JobInterrupt): convert to using WAIT_T and friends.
3186
3187	* Makefile.in: mention in bmake.1 that we use autoconf.
3188
3189	* make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3190
3191Wed May 30 23:17:18 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3192
3193	* main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3194	as that rather defeats the usefulness of ${MAKEFILE}.
3195
3196	* main.c (MainParseArgs): append command line variable assignments
3197	to MAKEFLAGS so that they get propagated to child make's.
3198	Apparently this is required POSIX behaviour?  Its useful anyway.
3199
3200Tue May 29 02:20:07 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3201
3202	* compat.c (CompatRunCommand): don't use perror() since stdio may
3203	cause problems in child of vfork().
3204
3205	* compat.c, main.c: Call PrintOnError() when we are going to bail.
3206	This routine prints out the .curdir where we stopped and will also
3207	display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3208
3209	* main.c: add ${.newline} to hold a "\n" - sometimes handy in
3210	:@ expansion.
3211
3212	* var.c: VarLoopExpand: ignore addSpace if a \n is present.
3213
3214	* Added RCSid's for the files we've touched.
3215
3216Thu May 24 15:41:37 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3217
3218	* configure.in:	Thanks to some clues from mdb@juniper.net,
3219	added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3220	as well as what ends up in _PATH_DEFSYSPATH.  We now have:
3221
3222  --with-machine=MACHINE  explicitly set MACHINE
3223  --with-force-machine=MACHINE  set FORCE_MACHINE
3224  --with-machine_arch=MACHINE_ARCH  explicitly set MACHINE_ARCH
3225  --with-default-sys-path=PATH:DIR:LIST  use an explicit _PATH_DEFSYSPATH
3226  --with-prefix-sys-path=PATH:DIR:LIST  prefix _PATH_PREFIX_SYSPATH
3227  --with-path-objdirprefix=PATH  override _PATH_OBJDIRPREFIX
3228
3229	If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3230
3231	* makefile: added a pathetically simple makefile to drive
3232	bootstrapping.  Running configure by hand is more useful.
3233
3234	* Makefile.in: added MAKE_VERSION, and reworked things to be less
3235	dependent on NetBSD bsd.*.mk
3236
3237	* pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3238	_PATH_OBJDIRPREFIX for those that don't want a default.
3239	construct _PATH_DEFSYSPATH from the info we get from configure.
3240
3241	* main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3242	if MAKE_VERSION is defined.
3243
3244	* compat.c: when we bail, print out the .CURDIR we were in.
3245
3246Sat May 12 00:34:12 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3247
3248	* Merged with NetBSD make
3249
3250	* var.c: fixed a bug in the handling of the modifier :P
3251	if the node as found but the path was null, we segfault trying to
3252	duplicate it.
3253
3254Mon Mar  5 16:20:33 2001  Simon J. Gerraty  <sjg@zen.quick.com.au>
3255
3256	* Merged with NetBSD make
3257
3258	* make.c: Make_OODate's test for a library out of date was using
3259	cmtime where it should have used mtime (my bug).
3260
3261	* compat.c: Use perror() to tell us what really went wrong when we
3262	cannot exec a command.
3263
3264Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3265
3266	* Merged with NetBSD make
3267
3268Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3269
3270	* Merged with NetBSD make
3271
3272Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3273
3274	* Merged with NetBSD make
3275
3276Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3277
3278	* Merged with NetBSD make
3279
3280Thu Apr 27 00:07:47 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3281
3282	* util.c: don't provide signal() since we use sigcompat.c
3283
3284	* Makefile.in: added a build target.
3285
3286	* var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3287	These allow some quite clever magic.
3288
3289	* main.c (main): added support for getenv(MAKESYSPATH).
3290
3291Mon Apr  2 16:25:13 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3292
3293	* Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3294	This avoids objdir having a different value depending on how a
3295	directory was reached (via command line, or subdir.mk).
3296
3297	* If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3298
3299Mon Apr  2 23:15:31 2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3300
3301	* Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3302	MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3303	I've been testing this in NetBSD's make for some weeks.
3304
3305	* Turn Makefile into Makefile.in and make it useful.
3306
3307Tue Feb 29 22:08:00 2000 Simon J. Gerraty  <sjg@zen.quick.com.au>
3308
3309	* Imported NetBSD's -current make(1) and resolve conflicts.
3310
3311	* Applied autoconf patches from bmake v2
3312
3313	* Imported clean code base from NetBSD-1.0
3314