]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/ChangeLog
Add 'sys/contrib/device-tree/' from commit '5ee353c36d3c9c7f63df7c7671875e73fba70958'
[FreeBSD/FreeBSD.git] / contrib / bmake / ChangeLog
1 2021-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
8 2021-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
17 2021-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
46 2020-12-25  Simon J Gerraty  <sjg@beast.crufty.net>
47
48         * main.c: use .MAKE.DEPENDFILE as set by makefiles
49
50 2020-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
59 2020-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
65 2020-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
105 2020-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
154 2020-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
182 2020-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
212 2020-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
228 2020-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
240 2020-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
251 2020-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
276 2020-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
287 2020-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
315 2020-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
327 2020-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         
353 2020-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
378 2020-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
396 2020-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         
447 2020-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
461 2020-10-19  Simon J Gerraty  <sjg@beast.crufty.net>
462
463         * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
464
465 2020-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
480 2020-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
509 2020-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
520 2020-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
526 2020-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
538 2020-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
559 2020-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
575 2020-09-04  Simon J Gerraty  <sjg@beast.crufty.net>
576
577         * make-bootstrap.sh.in: adjust object list
578
579 2020-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
588 2020-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
595 2020-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
605 2020-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
623 2020-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
633 2020-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
642 2020-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
648 2020-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
659 2020-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
671 2020-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
678 2020-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
691 2020-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
698 2020-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
706 2020-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
713 2020-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
724 2020-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
735 2020-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
741 2020-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
748 2020-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
754 2020-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
764 2020-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
776 2020-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
783 2020-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
789 2020-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
798 2020-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
809 2020-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
815 2020-07-11  Simon J Gerraty  <sjg@beast.crufty.net>
816
817         * bsd.after-import.mk: make sure we update unit-tests/Makefile
818
819 2020-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
828 2020-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
836 2020-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
859 2020-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
867 2020-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
875 2020-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
881 2020-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
887 2020-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
893 2020-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
903 2020-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
914 2020-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
922 2020-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
929 2020-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
936 2020-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
943 2020-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
948 2020-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
954 2020-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
961 2020-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
970 2020-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
980 2020-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
987 2020-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
993 2020-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
1000 2020-02-20  Simon J Gerraty  <sjg@beast.crufty.net>
1001
1002         * VERSION (_MAKE_VERSION): 20200220
1003
1004 2020-02-19  Simon J Gerraty  <sjg@beast.crufty.net>
1005
1006         * boot-strap: unset MAKEFLAGS
1007
1008 2020-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
1014 2020-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
1021 2020-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
1028 2020-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
1041 2019-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
1048 2019-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
1054 2018-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
1071 2018-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
1079 2018-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
1088 2018-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
1094 2018-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
1101 2018-09-21  Simon J Gerraty  <sjg@beast.crufty.net>
1102
1103         * Makefile.config.in: use += where it makes sense.
1104
1105 2018-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
1111 2018-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
1118 2018-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
1124 2018-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
1130 2018-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
1136 2017-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
1144 2017-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
1152 2017-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
1159 2017-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
1168 2017-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
1175 2017-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
1176
1177         * machine.sh: entry for AIX
1178
1179 2017-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
1185 2017-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
1192 2017-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
1199 2017-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
1212 2017-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
1218 2017-05-08  Simon J. Gerraty  <sjg@bad.crufty.net>
1219
1220         * Makefile (_MAKE_VERSION): 20170505
1221           see mk/ChangeLog
1222
1223 2017-05-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1224
1225         * parse.c: not everyone has stdint.h
1226
1227 2017-05-01  Simon J. Gerraty  <sjg@bad.crufty.net>
1228
1229         * Makefile (_MAKE_VERSION): 20170501
1230           see mk/ChangeLog
1231
1232 2017-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
1238 2017-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
1245 2017-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
1251 2017-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
1264 2017-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
1272 2017-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
1278 2017-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
1285 2017-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
1291 2017-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
1299 2017-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
1305 2017-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
1314 2017-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
1320 2016-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
1326 2016-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
1333 2016-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
1339 2016-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         
1345 2016-09-26  Simon J. Gerraty  <sjg@bad.crufty.net>
1346
1347         * Makefile MAN: tweak .Dt to match ${PROG}
1348
1349 2016-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
1354 2016-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
1362 2016-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
1370 2016-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           
1378 2016-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
1384 2016-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         
1393 2016-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
1401 2016-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
1407 2016-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         
1415 2016-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
1422 2016-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
1430 2016-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
1436 2016-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
1441 2016-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
1447 2016-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
1454 2016-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
1460 2016-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
1469 2016-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
1477 2016-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
1485 2015-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
1491 2015-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         
1501 2015-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         
1508 2015-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         
1523 2015-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
1529 2015-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
1535 2015-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
1543 2015-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
1550 2015-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
1560 2015-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
1566 2015-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
1574 2015-05-04  Simon J. Gerraty  <sjg@bad.crufty.net>
1575
1576         * machine.sh (MACHINE): Add Bitrig 
1577           patch from joerg@netbsd.org
1578
1579 2015-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
1588 2015-04-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1589
1590         * Makefile (MAKE_VERSION): 20150411
1591           bump version - only mk/ changes.
1592         
1593 2015-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         
1603 2015-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         
1614 2015-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
1619 2014-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1620
1621         * Makefile (MAKE_VERSION): 20141111
1622           just a cooler number
1623
1624 2014-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
1634 2014-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
1639 2014-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
1647 2014-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
1653 2014-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
1659 2014-04-05  Simon J. Gerraty  <sjg@bad.crufty.net>
1660
1661         * Fix spelling errors - patch from Pedro Giffuni
1662
1663 2014-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
1672 2014-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
1673
1674         * boot-strap: ignore mksrc=none
1675
1676 2014-01-02  Simon J. Gerraty  <sjg@bad.crufty.net>
1677
1678         * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1679
1680 2014-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
1690 2013-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
1695 2013-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
1706 2013-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
1713 2013-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
1719 2013-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
1727 2013-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
1734 2013-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         
1746 2013-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
1760 2013-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
1767 2013-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
1773 2013-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
1779 2013-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
1787 2013-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
1799 2013-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
1811 2013-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
1818 2013-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
1826 2013-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
1831 2013-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
1837 2013-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         
1847 2012-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
1863 2012-11-11  Simon J. Gerraty  <sjg@bad.crufty.net>
1864
1865         * Makefile.in (MAKE_VERSION): 20121111
1866           fix generation of bmake.cat1
1867
1868 2012-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         
1876 2012-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         
1884 2012-10-25  Simon J. Gerraty  <sjg@bad.crufty.net>
1885
1886         * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
1887
1888 2012-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         
1895 2012-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
1899 2012-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
1906 2012-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
1912 2012-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
1919 2012-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         
1926 2012-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
1931 2012-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
1940 2012-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         
1947 2012-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
1959 2012-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         
1968 2012-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
1977 2012-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
1992 2012-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
1998 2012-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
2004 2012-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
2010 2012-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         
2016 2012-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
2025 2012-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
2031 2012-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
2040 2012-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         
2048 2012-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
2054 2012-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
2059 2011-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
2065 2011-10-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2066
2067         * Makefile.in (MAKE_VERSION):  bump version to 20111010
2068
2069 2011-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
2074 2011-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         
2082 2011-09-10  Simon J. Gerraty  <sjg@bad.crufty.net>
2083
2084         * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2085
2086 2011-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         
2092 2011-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
2099 2011-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         
2108 2011-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         
2114 2011-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         
2121 2011-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
2126 2011-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
2135 2011-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         
2144 2011-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         
2151 2011-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         
2158 2011-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         
2169 2011-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         
2179 2011-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
2188 2011-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         
2194 2011-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         
2205 2011-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         
2213 2011-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
2223 2011-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         
2229 2011-01-03  Simon J. Gerraty  <sjg@bad.crufty.net>
2230
2231         * parse.c: SunOS 5.8 at least does not have MAP_FILE
2232
2233 2011-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
2239 2010-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
2246 2010-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
2257 2010-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         
2269 2010-11-02  Simon J. Gerraty  <sjg@bad.crufty.net>
2270
2271         * Makefile.in (MAKE_VERSION): bump version to 20101101
2272
2273 2010-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
2278 2010-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
2291 2010-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         
2301 2010-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
2308 2010-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
2313 2010-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         
2321 2010-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
2327 2010-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         
2337 2010-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
2343 2010-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
2350 2010-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
2360 2010-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
2368 2010-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         
2374 2010-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         
2383 2010-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         
2397 2010-04-21  Simon J. Gerraty  <sjg@bad.crufty.net>
2398
2399         * boot-strap: add FindHereOrAbove so we can use -m .../mk
2400
2401 2010-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         
2409 2010-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
2417 2010-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
2424 2010-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         
2437 2010-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
2443 2010-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
2456 2010-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
2462 2009-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         
2470 2009-10-30  Simon J. Gerraty  <sjg@void.crufty.net>
2471
2472         * configure.in: Ensure that srcdir and mksrc are absolute paths.
2473
2474 2009-10-09  Simon J. Gerraty  <sjg@void.crufty.net>
2475
2476         * Makefile.in (MAKE_VERSION): fix version to 20091007
2477
2478 2009-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         
2485 2009-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
2496 2009-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
2503 2009-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
2508 2009-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
2519 2009-03-26  Simon J. Gerraty  <sjg@void.crufty.net>
2520
2521         * Appy some patches for MiNT from David Brownlee
2522
2523 2009-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
2529 2009-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
2540 2008-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         
2550 2008-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
2556 2008-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
2561 2008-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
2577 2008-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         
2586 2008-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
2593 2008-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
2603 2008-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
2609 2008-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
2620 2008-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
2628 2007-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
2636 2007-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
2643 2007-10-15  Simon J. Gerraty  <sjg@void.crufty.net>
2644
2645         * boot-strap: make bmake.1 too, so maninstall works.
2646
2647 2007-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
2656 2007-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
2670 2007-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         
2680 2006-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
2688 2006-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
2698 2006-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
2708 2006-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
2718 2006-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
2726 2006-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
2736 2005-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
2744 2005-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
2750 2005-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
2757 2005-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
2763 2005-10-10  Simon J. Gerraty  <sjg@void.crufty.net>
2764
2765         * Makefile.in (BMAKE_VERSION): bump to 20051002
2766           fix a silly typo
2767
2768 2005-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
2774 2005-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
2780 2005-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
2787 2005-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         
2795 2005-03-22  Simon J. Gerraty  <sjg@void.crufty.net>
2796
2797         * Important to use .MAKE rather than MAKE.
2798
2799 2005-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
2807 2004-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
2816 2004-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
2830 2004-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
2839 2004-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
2846 2004-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         
2851 2004-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
2860 2004-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
2865 2004-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
2872 2004-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
2878 2004-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           
2885 2003-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
2900 2003-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         
2910 2003-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
2917 2003-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         
2926 2003-08-02  Simon J. Gerraty  <sjg@void.crufty.net>
2927
2928         * boot-strap: Allow setting configure args on command line.
2929
2930 2003-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
2941 2003-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
2951 2003-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
2966 2003-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
2973 2003-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
2984 2003-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
2997 2003-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         
3003 2003-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
3011 2003-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
3017 2003-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
3028 2003-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         
3038 2002-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
3046 2002-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
3053 2002-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
3061 2002-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
3069 2002-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
3095 Tue 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
3101 Thu 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
3110 Tue 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
3124 Tue 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
3128 Tue 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
3133 Sun 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
3138 Sat 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
3168 Fri 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
3176 Thu 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
3191 Wed 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
3200 Tue 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         
3216 Thu 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         
3246 Sat 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
3254 Mon 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         
3264 Fri Dec 15 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3265
3266         * Merged with NetBSD make
3267         
3268 Sat Jun 10 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3269
3270         * Merged with NetBSD make
3271         
3272 Thu Jun  1 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3273
3274         * Merged with NetBSD make
3275         
3276 Tue May 30 10:11:08  2000  Simon J. Gerraty  <sjg@zen.quick.com.au>
3277
3278         * Merged with NetBSD make
3279         
3280 Thu 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
3291 Mon 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         
3299 Mon 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         
3307 Tue 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