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