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