1 2023-05-10 Simon J Gerraty <sjg@beast.crufty.net>
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
8 2023-05-09 Simon J Gerraty <sjg@beast.crufty.net>
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.
17 2023-05-05 Simon J Gerraty <sjg@beast.crufty.net>
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
25 2023-04-14 Simon J Gerraty <sjg@beast.crufty.net>
27 * VERSION (_MAKE_VERSION): 20230414
28 Merge with NetBSD make, pick up
31 2023-03-25 Simon J Gerraty <sjg@beast.crufty.net>
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.
37 2023-03-22 Simon J Gerraty <sjg@beast.crufty.net>
39 * VERSION (_MAKE_VERSION): 20230321
40 Merge with NetBSD make, pick up
41 * make.1: document seemingly unexplained Error code 6.
43 2023-03-18 Simon J Gerraty <sjg@beast.crufty.net>
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
51 2023-03-04 Simon J Gerraty <sjg@beast.crufty.net>
53 * VERSION (_MAKE_VERSION): 20230303
54 Merge with NetBSD make, pick up
55 o several updated unit-tests
57 2023-02-22 Simon J Gerraty <sjg@beast.crufty.net>
59 * VERSION (_MAKE_VERSION): 20230222
60 Merge with NetBSD make, pick up
61 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
63 2023-02-20 Simon J Gerraty <sjg@beast.crufty.net>
65 * VERSION (_MAKE_VERSION): 20230218
66 Merge with NetBSD make, pick up
67 o var.c: fix parsing of unevaluated subexpressions with
70 2023-02-17 Simon J Gerraty <sjg@beast.crufty.net>
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
77 2023-02-08 Simon J Gerraty <sjg@beast.crufty.net>
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
84 2023-01-27 Simon J Gerraty <sjg@beast.crufty.net>
86 * VERSION (_MAKE_VERSION): 20230127
88 * install-sh: if making directories ensure umask is set
91 * Makefile: use DIRMODE for directories and
92 NONBINMODE for man pages and mk files
94 2023-01-26 Simon J Gerraty <sjg@beast.crufty.net>
96 * VERSION (_MAKE_VERSION): 20230126
97 Merge with NetBSD make, pick up
98 o variables like .newline and .MAKE.{GID,PID,PPID,UID}
101 2023-01-23 Simon J Gerraty <sjg@beast.crufty.net>
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
108 2023-01-20 Simon J Gerraty <sjg@beast.crufty.net>
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'
115 2023-01-12 Simon J Gerraty <sjg@beast.crufty.net>
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.
122 2023-01-02 Simon J Gerraty <sjg@beast.crufty.net>
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
135 2022-11-08 Simon J Gerraty <sjg@beast.crufty.net>
137 * VERSION (_MAKE_VERSION): 20221024
138 Merge with NetBSD make, pick up
139 o change return type of unlink_file back to int
141 2022-10-07 Simon J Gerraty <sjg@beast.crufty.net>
143 * Makefile: Darwin and Linux can handle MANTARGET=man
145 2022-09-28 Simon J Gerraty <sjg@beast.crufty.net>
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
152 2022-09-26 Simon J Gerraty <sjg@beast.crufty.net>
154 * main.c meta.c: do not ignore return from snprintf
156 * meta.c strlcpy.c: we need prototype for strlcpy
158 * sigcompat.c: fix unused function warnings
160 2022-09-24 Simon J Gerraty <sjg@beast.crufty.net>
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
167 2022-09-17 Simon J Gerraty <sjg@beast.crufty.net>
169 * VERSION (_MAKE_VERSION): 20220912
170 Merge with NetBSD make, pick up
173 2022-09-09 Simon J Gerraty <sjg@beast.crufty.net>
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
180 * configure.in: allow for deprecation of egrep
182 * Makefile: Linux can handle MANTARGET=man
184 2022-09-03 Simon J Gerraty <sjg@beast.crufty.net>
186 * VERSION (_MAKE_VERSION): 20220903
187 Merge with NetBSD make, pick up
188 o job.c: fix handling of null bytes in output
190 2022-09-02 Simon J Gerraty <sjg@beast.crufty.net>
192 * VERSION (_MAKE_VERSION): 20220902
193 Merge with NetBSD make, pick up
194 o Allow .break to terminate a .for loop early
196 2022-09-01 Simon J Gerraty <sjg@beast.crufty.net>
198 * VERSION (_MAKE_VERSION): 20220901
199 Merge with NetBSD make, pick up
200 o var.c: fix out-of-bounds errors when parsing
202 2022-08-24 Simon J Gerraty <sjg@beast.crufty.net>
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@'
210 2022-08-18 Simon J Gerraty <sjg@beast.crufty.net>
212 * VERSION (_MAKE_VERSION): 20220818
213 Merge with NetBSD make, pick up
214 o fix exit status for '-q' (since 1994)
216 2022-08-08 Simon J Gerraty <sjg@beast.crufty.net>
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
223 2022-07-26 Simon J Gerraty <sjg@beast.crufty.net>
225 * VERSION (_MAKE_VERSION): 20220726
227 * Auto-create objdir for bmake/unit-tests if appropriate
229 2022-07-24 Simon J Gerraty <sjg@beast.crufty.net>
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
237 2022-06-12 Simon J Gerraty <sjg@beast.crufty.net>
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
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
258 2022-04-18 Simon J Gerraty <sjg@beast.crufty.net>
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
268 2022-04-14 Simon J Gerraty <sjg@beast.crufty.net>
270 * VERSION (_MAKE_VERSION): 20220414
272 * unit-tests/Makefile: simplify checks for shells with
273 BROKEN_TESTS, this helps with other Linux distros that
276 2022-03-30 Simon J Gerraty <sjg@beast.crufty.net>
278 * VERSION (_MAKE_VERSION): 20220330
279 Merge with NetBSD make, pick up
280 o var.c: fix spacing, and a typo in a test
282 2022-03-26 Simon J Gerraty <sjg@beast.crufty.net>
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
292 2022-03-03 Simon J Gerraty <sjg@beast.crufty.net>
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
302 2022-02-14 Simon J Gerraty <sjg@beast.crufty.net>
304 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony
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
314 2022-02-08 Simon J Gerraty <sjg@beast.crufty.net>
316 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there
317 is any chance we have dash as .SHELL
319 * VERSION (_MAKE_VERSION): 20220208
320 Merge with NetBSD make, pick up
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.
325 2022-02-04 Simon J Gerraty <sjg@beast.crufty.net>
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
333 2022-02-02 Simon J Gerraty <sjg@beast.crufty.net>
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
340 2022-01-30 Simon J Gerraty <sjg@beast.crufty.net>
342 * cast gn->lineno to avoid %z
344 * VERSION (_MAKE_VERSION): 20220130
345 Merge with NetBSD make, pick up
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
352 2022-01-28 Simon J Gerraty <sjg@beast.crufty.net>
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
363 2022-01-26 Simon J Gerraty <sjg@beast.crufty.net>
365 * VERSION (_MAKE_VERSION): 20220126
366 Merge with NetBSD make, pick up
367 o allow setting target local variables
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
374 2022-01-16 Simon J Gerraty <sjg@beast.crufty.net>
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)
386 2022-01-12 Simon J Gerraty <sjg@beast.crufty.net>
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.
393 2022-01-10 Simon J Gerraty <sjg@beast.crufty.net>
395 * VERSION (_MAKE_VERSION): 20220110
396 Merge with NetBSD make, pick up
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'
422 2022-01-04 Simon J Gerraty <sjg@beast.crufty.net>
424 * parse.c: loadfile restore extra byte in buffer.
426 2022-01-01 Simon J Gerraty <sjg@beast.crufty.net>
428 * VERSION (_MAKE_VERSION): 20220101
429 Merge with NetBSD make, pick up
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
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
453 2021-12-21 Simon J Gerraty <sjg@beast.crufty.net>
455 * VERSION (_MAKE_VERSION): 20211221
456 Merge with NetBSD make, pick up
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
480 2021-12-15 Simon J Gerraty <sjg@beast.crufty.net>
482 * cond.c: fix mem leak in CondParser_Leaf
484 2021-12-12 Simon J Gerraty <sjg@beast.crufty.net>
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
500 2021-12-07 Simon J Gerraty <sjg@beast.crufty.net>
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
511 2021-12-06 Simon J Gerraty <sjg@beast.crufty.net>
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.
526 2021-12-04 Simon J Gerraty <sjg@beast.crufty.net>
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
534 2021-10-24 Simon J Gerraty <sjg@beast.crufty.net>
536 * VERSION (_MAKE_VERSION): 20211024
537 Merge with NetBSD make, pick up
538 o Punt on write errors - ENOSPC etc.
540 2021-10-22 Simon J Gerraty <sjg@beast.crufty.net>
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.
547 * configure.in compat.c: for SCO we need to force UseShell
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
553 Issue a warning about skipped tests.
555 * boot-strap: leave TOOL_DIFF to configure
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.
565 * configure.in: move getopt to AC_REPLACE_FUNCS
566 also add AC_C_INLINE - in an attempt to compile using
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.
573 * configure.in: we no longer need to worry about
574 sys/cdefs.h providing __RCSID which simplifies things quite a bit.
576 * make.h: make sure we have __RCSID
578 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure
581 2021-10-20 Simon J Gerraty <sjg@beast.crufty.net>
584 Merge with NetBSD make, pick up
585 o confirm sync of unit-tests
587 2021-10-18 Simon J Gerraty <sjg@beast.crufty.net>
589 * configure.in: check if timezone Europe/Berlin is supported
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
596 2021-10-16 Simon J Gerraty <sjg@beast.crufty.net>
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
608 2021-10-14 Simon J Gerraty <sjg@beast.crufty.net>
610 * configure.in: add sigaction to AC_REPLACE_FUNCS
611 we also need to check for sigaddset etc just for the benefit of
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.
619 2021-10-13 Simon J Gerraty <sjg@beast.crufty.net>
621 * VERSION (_MAKE_VERSION): 20211011
623 * Makefile: cleanup a little
625 * configure.in: check for sigsetmask
627 2021-10-01 Simon J Gerraty <sjg@beast.crufty.net>
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
638 2021-09-11 Simon J Gerraty <sjg@beast.crufty.net>
640 * VERSION (_MAKE_VERSION): 20210911
641 Merge with NetBSD make, pick up
642 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval
644 2021-09-08 Simon J Gerraty <sjg@beast.crufty.net>
646 * VERSION (_MAKE_VERSION): 20210906
647 Merge with NetBSD make, pick up
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
655 2021-08-11 Simon J Gerraty <sjg@beast.crufty.net>
657 * VERSION (_MAKE_VERSION): 20210808
658 Merge with NetBSD make, pick up
659 o var.c: remove redundant initialization in ApplyModifier_Order
661 * mk/options.mk: issue warning for incorrect usage
663 2021-08-03 Simon J Gerraty <sjg@beast.crufty.net>
665 * var.c: use long for :On if we don't have a 64bit int type
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
672 2021-07-31 Simon J Gerraty <sjg@beast.crufty.net>
674 * VERSION (_MAKE_VERSION): 20210731
675 Merge with NetBSD make, pick up
676 o fix some lint issues
678 o var.c: rework of ApplyModifier_Order
680 2021-07-30 Simon J Gerraty <sjg@beast.crufty.net>
682 * util.c: add strto*l if HAVE_STRTO*L not defined
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
690 2021-07-04 Simon J Gerraty <sjg@beast.crufty.net>
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
698 2021-07-01 Simon J Gerraty <sjg@beast.crufty.net>
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
709 extract RegexReplace from ModifyWord_SubstRegex
711 2021-06-21 Simon J Gerraty <sjg@beast.crufty.net>
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
721 2021-06-16 Simon J Gerraty <sjg@beast.crufty.net>
723 * VERSION (_MAKE_VERSION): 20210616
724 Merge with NetBSD make, pick up
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
731 2021-05-18 Simon J Gerraty <sjg@beast.crufty.net>
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
738 2021-04-20 Simon J Gerraty <sjg@beast.crufty.net>
740 * VERSION (_MAKE_VERSION): 20210420
741 Merge with NetBSD make, pick up
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
768 2021-03-30 Simon J Gerraty <sjg@beast.crufty.net>
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
778 2021-03-14 Simon J Gerraty <sjg@beast.crufty.net>
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.
787 2021-02-26 Simon J Gerraty <sjg@beast.crufty.net>
789 * VERSION (_MAKE_VERSION): 20210226
790 Merge with NetBSD make, pick up
791 o remove freestanding freeIt variables
793 o var.c: restructure code in ParseVarname to target human readers
794 improve error message for;
795 bad modifier in variable expression
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
824 2021-02-06 Simon J Gerraty <sjg@beast.crufty.net>
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
830 2021-02-05 Simon J Gerraty <sjg@beast.crufty.net>
832 * VERSION (_MAKE_VERSION): 20210205
833 Merge with NetBSD make, pick up
834 o avoid strdup in mkTempFile
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.
857 2021-02-01 Simon J Gerraty <sjg@beast.crufty.net>
859 * configure.in: check for sig_atomic_t and define it as 'int'
862 * VERSION (_MAKE_VERSION): 20210201
863 Merge with NetBSD make, pick up
864 o use sig_atomic_t for caught_sigchld
866 2021-01-30 Simon J Gerraty <sjg@beast.crufty.net>
868 * VERSION (_MAKE_VERSION): 20210130
869 Merge with NetBSD make, pick up
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
880 2021-01-23 Simon J Gerraty <sjg@beast.crufty.net>
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
889 2021-01-20 Simon J Gerraty <sjg@beast.crufty.net>
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
897 2021-01-10 Simon J Gerraty <sjg@beast.crufty.net>
899 * VERSION (_MAKE_VERSION): 20210110
900 Merge with NetBSD make, pick up
902 o consistently use boolean expressions in conditions
904 2021-01-08 Simon J Gerraty <sjg@beast.crufty.net>
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.
913 2021-01-01 Simon J Gerraty <sjg@beast.crufty.net>
915 * VERSION (_MAKE_VERSION): 20210101
916 Merge with NetBSD make, pick up
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
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
942 2020-12-25 Simon J Gerraty <sjg@beast.crufty.net>
944 * main.c: use .MAKE.DEPENDFILE as set by makefiles
946 2020-12-22 Simon J Gerraty <sjg@beast.crufty.net>
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
955 2020-12-21 Simon J Gerraty <sjg@beast.crufty.net>
957 * VERSION (_MAKE_VERSION): 20201221
958 Merge with NetBSD make, pick up
959 o some unit-test updates
961 2020-12-20 Simon J Gerraty <sjg@beast.crufty.net>
963 * VERSION (_MAKE_VERSION): 20201220
964 Merge with NetBSD make, pick up
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
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
1001 2020-12-12 Simon J Gerraty <sjg@beast.crufty.net>
1005 * lst.c: avoid anonymous union
1007 * VERSION (_MAKE_VERSION): 20201212
1008 Merge with NetBSD make, pick up
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
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
1050 2020-12-06 Simon J Gerraty <sjg@beast.crufty.net>
1052 * VERSION (_MAKE_VERSION): 20201206
1053 Merge with NetBSD make, pick up
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
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
1078 2020-11-30 Simon J Gerraty <sjg@beast.crufty.net>
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,
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
1106 o suff.c: reduce memory allocation in suffix handling
1108 2020-11-24 Simon J Gerraty <sjg@beast.crufty.net>
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
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
1124 2020-11-22 Simon J Gerraty <sjg@beast.crufty.net>
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
1134 o add debug logging for setting and resetting the main target
1136 2020-11-17 Simon J Gerraty <sjg@beast.crufty.net>
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
1147 2020-11-14 Simon J Gerraty <sjg@beast.crufty.net>
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
1161 replace macro DBPRINTF with JobPrintln
1162 rename JobState to JobStatus
1163 main.c: switch cache for realpath from GNode to HashTable
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
1172 2020-11-12 Simon J Gerraty <sjg@beast.crufty.net>
1174 * configure.in: fix --with-force-machine-arch
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
1183 2020-11-11 Simon J Gerraty <sjg@beast.crufty.net>
1185 * VERSION (_MAKE_VERSION): 20201111
1186 Merge with NetBSD make, pick up
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
1211 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
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
1223 2020-10-31 Simon J Gerraty <sjg@beast.crufty.net>
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
1231 reduce the scope where recursive expressions are detected
1232 remove redundant :tl from getBoolean
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
1249 2020-10-30 Simon J Gerraty <sjg@beast.crufty.net>
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
1274 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
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
1292 2020-10-26 Simon J Gerraty <sjg@beast.crufty.net>
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
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
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
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
1343 2020-10-22 Simon J Gerraty <sjg@beast.crufty.net>
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
1357 2020-10-19 Simon J Gerraty <sjg@beast.crufty.net>
1359 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
1361 2020-10-18 Simon J Gerraty <sjg@beast.crufty.net>
1363 * VERSION (_MAKE_VERSION): 20201018
1364 Merge with NetBSD make, pick up
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.
1376 2020-10-10 Simon J Gerraty <sjg@beast.crufty.net>
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
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
1405 2020-10-02 Simon J Gerraty <sjg@beast.crufty.net>
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
1416 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
1418 * VERSION (_MAKE_VERSION): 20201001
1419 Merge with NetBSD make, pick up
1420 o compat.c: comment about "..."
1422 2020-09-30 Simon J Gerraty <sjg@beast.crufty.net>
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
1434 2020-09-27 Simon J Gerraty <sjg@beast.crufty.net>
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
1455 2020-09-11 Simon J Gerraty <sjg@beast.crufty.net>
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
1471 2020-09-04 Simon J Gerraty <sjg@beast.crufty.net>
1473 * make-bootstrap.sh.in: adjust object list
1475 2020-09-02 Simon J Gerraty <sjg@beast.crufty.net>
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
1484 2020-09-01 Simon J Gerraty <sjg@beast.crufty.net>
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
1491 2020-08-31 Simon J Gerraty <sjg@beast.crufty.net>
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
1501 2020-08-30 Simon J Gerraty <sjg@beast.crufty.net>
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
1519 2020-08-28 Simon J Gerraty <sjg@beast.crufty.net>
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
1529 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
1531 * VERSION (_MAKE_VERSION): 20200826
1532 Merge with NetBSD make, pick up
1533 o enum.c: distinguish between bitsets containing flags and
1535 o var.c: fix error message for ::!= modifier with shell error
1536 o fix bugs in -DCLEANUP mode
1538 2020-08-24 Simon J Gerraty <sjg@beast.crufty.net>
1540 * VERSION (_MAKE_VERSION): 20200824
1541 Merge with NetBSD make, pick up
1542 o in debug mode, print GNode details in symbols
1544 2020-08-23 Simon J Gerraty <sjg@beast.crufty.net>
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
1555 2020-08-22 Simon J Gerraty <sjg@beast.crufty.net>
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
1564 o ensure unit-test/Makefile is run by TEST_MAKE
1565 o reduce duplication of header inclusion
1567 2020-08-21 Simon J Gerraty <sjg@beast.crufty.net>
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
1574 2020-08-20 Simon J Gerraty <sjg@beast.crufty.net>
1576 * lst.c: needs inttypes.h on Linux
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
1587 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
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
1594 2020-08-14 Simon J Gerraty <sjg@beast.crufty.net>
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
1602 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
1604 * VERSION (_MAKE_VERSION): 20200810
1605 Merge with NetBSD make, pick up
1607 o general comment and style cleanup
1609 2020-08-08 Simon J Gerraty <sjg@beast.crufty.net>
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
1615 o var.c: reduce duplicate code for modifiers
1616 debug logging for Var_Parse
1617 more detailed debug output
1620 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
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
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).
1631 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
1633 * VERSION (_MAKE_VERSION): 20200805
1634 Merge with NetBSD make, pick up
1635 o make.1: Rework the description of dependence operators
1637 2020-08-03 Simon J Gerraty <sjg@beast.crufty.net>
1639 * VERSION (_MAKE_VERSION): 20200803
1640 Merge with NetBSD make, pick up
1641 o revert some C99 usage, for max portability
1644 2020-08-02 Simon J Gerraty <sjg@beast.crufty.net>
1646 * VERSION (_MAKE_VERSION): 20200802
1647 Merge with NetBSD make, pick up
1650 2020-08-01 Simon J Gerraty <sjg@beast.crufty.net>
1652 * Remove NetBSD specific plumbing from unit-tests/Makefile
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
1660 2020-07-31 Simon J Gerraty <sjg@beast.crufty.net>
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
1672 2020-07-30 Simon J Gerraty <sjg@beast.crufty.net>
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
1679 2020-07-28 Simon J Gerraty <sjg@beast.crufty.net>
1681 * VERSION (_MAKE_VERSION): 20200728
1682 Merge with NetBSD make, pick up
1683 o var.c: more optimizations
1685 2020-07-26 Simon J Gerraty <sjg@beast.crufty.net>
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
1694 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
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
1705 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
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
1711 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
1713 * bsd.after-import.mk: make sure we update unit-tests/Makefile
1715 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
1717 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
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
1724 2020-07-09 Simon J Gerraty <sjg@beast.crufty.net>
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.
1732 2020-07-04 Simon J Gerraty <sjg@beast.crufty.net>
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
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
1755 2020-07-02 Simon J Gerraty <sjg@beast.crufty.net>
1757 * VERSION (_MAKE_VERSION): 20200702
1758 Merge with NetBSD make, pick up
1759 o var.c: more improvements to avoiding unnecessary evaluation
1761 o remove flags arg to Var_Set which outside of var.c is always 0
1763 2020-07-01 Simon J Gerraty <sjg@beast.crufty.net>
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
1771 2020-06-29 Simon J Gerraty <sjg@beast.crufty.net>
1773 * VERSION (_MAKE_VERSION): 20200629
1774 Merge with NetBSD make, pick up
1775 o cond.c: do not eval unnecessary terms of conditionals.
1777 2020-06-25 Simon J Gerraty <sjg@beast.crufty.net>
1779 * VERSION (_MAKE_VERSION): 20200625
1780 Merge with NetBSD make, pick up
1781 o meta.c: report error if lseek in filemon_read fails
1783 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
1785 * VERSION (_MAKE_VERSION): 20200622
1786 Merge with NetBSD make, pick up
1787 o dieQuietly: ignore OP_SUBMAKE as too aggressive
1789 2020-06-19 Simon J Gerraty <sjg@beast.crufty.net>
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
1799 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
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.
1806 * VERSION (_MAKE_VERSION): 20200610
1807 Merge with NetBSD make, pick up
1810 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
1812 * VERSION (_MAKE_VERSION): 20200606
1813 Merge with NetBSD make, pick up
1816 * Makefile: fix depends for main.o which broke MAKE_VERSION
1818 2020-06-05 Simon J Gerraty <sjg@beast.crufty.net>
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.
1825 2020-05-24 Simon J Gerraty <sjg@beast.crufty.net>
1827 * configure.in: add AC_PROG_CC_C99 for mipspro compiler
1828 also if --with-filemon= specifies path to filemon.h
1830 * dirname.c: remove include of namespace.h
1832 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
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
1839 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
1841 * unit-tests/dollar.mk: tweak '1 dollar literal' test
1842 to not depend so much on shell behavior
1844 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
1846 * VERSION (_MAKE_VERSION): 20200510
1847 Merge with NetBSD make, pick up
1848 o unit test for dollar handling
1850 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
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
1857 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
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
1866 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
1868 * VERSION (_MAKE_VERSION): 20200418
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.
1876 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
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.
1883 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
1885 * VERSION (_MAKE_VERSION): 20200330
1886 Merge with NetBSD make, pick up
1887 o make.h: extern debug_file
1889 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
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.
1896 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
1898 * VERSION (_MAKE_VERSION): 20200220
1900 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
1902 * boot-strap: unset MAKEFLAGS
1904 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
1906 * VERSION (_MAKE_VERSION): 20200212
1907 * meta.c: meta_compat_parent check for USE_FILEMON
1908 patch from Soeren Tempel
1910 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
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
1917 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
1920 Merge with NetBSD make, pick up
1921 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1924 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
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
1934 o meta.c: when target is out-of-date per normal make rules
1935 record value of .OODATE in meta file.
1937 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
1940 Merge with NetBSD make, pick up
1941 o parse.c: don't pass NULL to realpath(3)
1942 some versions cannot handle it.
1944 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
1947 Merge with NetBSD make, pick up
1948 o parse.c: ParseDoDependency: free paths rather than assert
1950 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
1954 * configure.in: add --without-makefile to avoid generating
1955 makefile and make-bootstrap.sh
1957 * include Makefile.inc if it exists
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.
1964 * tweak bsd.after-import.mk (captures Makefile.config etc
1965 after import to FreeBSD for example) to cope with all the above.
1967 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
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.
1975 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
1978 Merge with NetBSD make, pick up
1979 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1981 o var.c: avoid SEGFAULT in .unexport-env
1982 when MAKELEVEL is not set
1984 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
1987 Merge with NetBSD make, pick up
1988 o fix for unit-tests/varquote.mk on Debian
1990 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
1993 Merge with NetBSD make, pick up
1995 o dir.c: cleanup caching of stats
1997 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
1999 * Makefile.config.in: use += where it makes sense.
2001 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
2004 Merge with NetBSD make, pick up
2005 o job.c: skip polling job token pipe
2007 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
2010 Merge with NetBSD make, pick up
2011 o parse.c: be more cautious about detecting depenency line
2012 rather than sysV style include.
2014 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
2017 Merge with NetBSD make, pick up
2018 o parse.c: avoid calling sysconf for every call to loadfile
2020 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
2023 Merge with NetBSD make, pick up
2024 o var.c: Var_Set handle NULL value anytime.
2026 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
2029 Merge with NetBSD make, pick up
2030 o parse.c: do not treat .info as warning with -W
2032 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2040 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2042 * VERSION (_MAKE_VERSION): 20171126
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.
2048 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2055 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
2058 Merge with NetBSD make, pick up
2059 o main.c: ignore empty MAKEOBJDIR
2061 * Makefile.config.in:
2062 make @prefix@ @machine*@ and @default_sys_path@ defaults.
2064 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
2068 * unit-tests/dotwait.mk: redirect stderr through pipe for more
2069 consistent result on some platforms.
2071 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
2073 * machine.sh: entry for AIX
2075 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
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
2081 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
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
2088 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2095 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
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
2108 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
2110 * Makefile (_MAKE_VERSION): 20170510
2111 Merge with NetBSD make, pick up
2112 o main.c: Main_SetObjdir: ensure buf2 is in scope
2114 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
2116 * Makefile (_MAKE_VERSION): 20170505
2119 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2121 * parse.c: not everyone has stdint.h
2123 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
2125 * Makefile (_MAKE_VERSION): 20170501
2128 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2134 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
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
2141 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
2143 * Makefile (_MAKE_VERSION): 20170418
2144 Merge with NetBSD make, pick up
2145 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
2147 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
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()
2160 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
2162 * Makefile (_MAKE_VERSION): 20170413
2163 Merge with NetBSD make, pick up
2164 o main.c: when setting .OBJDIR ignore '$' in paths.
2166 * job.c: use MALLOC_OPTIONS to set malloc_options.
2168 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2174 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
2176 * Makefile (_MAKE_VERSION): 20170326
2177 Merge with NetBSD make, pick up
2178 o main.c: purge relative paths from realpath cache when .OBJDIR
2181 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
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 '/'.
2187 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
2195 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
2197 * Makefile (_MAKE_VERSION): 20170201
2198 Merge with NetBSD make, pick up
2199 o var.c: allow :_=var and avoid use of special context.
2201 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
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()
2208 If -V, skip Main_ExportMAKEFLAGS()
2210 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
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
2216 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
2218 * Makefile (_MAKE_VERSION): 20161212
2219 Merge with NetBSD make, pick up
2220 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
2222 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
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
2229 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
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
2235 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
2237 * Makefile (_MAKE_VERSION): 20160926
2238 Merge with NetBSD make, pick up
2239 o support for .DELETE_ON_ERROR: (remove targets that fail)
2241 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
2243 * Makefile MAN: tweak .Dt to match ${PROG}
2245 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
2247 * Makefile (_MAKE_VERSION): 20160818
2248 its a neater number; pick up whitespace fixes to man page.
2250 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2258 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2266 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
2268 * Makefile (_MAKE_VERSION): 20160812
2269 Merge with NetBSD make, pick up
2270 o meta.c: remove all missingFiles entries that match a deleted
2272 o main.c: set .ERROR_CMD if possible.
2274 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2276 * Makefile (_MAKE_VERSION): 20160606
2277 Merge with NetBSD make, pick up
2278 o dir.c: extend mtimes cache to others via cached_stat()
2280 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
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
2286 Also do not return oodate for a missing metafile if gn->path
2289 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2297 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
2299 * Makefile (_MAKE_VERSION): 20160528
2301 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
2303 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
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).
2311 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
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
2318 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
2320 * Makefile (_MAKE_VERSION): 20160404
2321 Merge with NetBSD make, pick up
2322 o allow makefile to set .MAKE.JOBS
2324 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
2326 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
2328 * Makefile (_MAKE_VERSION): 20160315
2329 Merge with NetBSD make, pick up
2330 o fix handling of archive members
2332 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
2334 * Makefile (_MAKE_VERSION): rename variable to avoid interference
2335 with checks for ${MAKE_VERSION}
2337 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2343 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2350 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2356 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
2358 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
2359 for backwards compatability.
2361 * Makefile (MAKE_VERSION): 20160220
2362 Merge with NetBSD make, pick up
2363 o var.c: add knob to control handling of '$$' in :=
2365 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
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 :=
2373 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
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
2381 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
2383 * Makefile (MAKE_VERSION): 20151220
2384 Merge with NetBSD make, pick up
2385 o suff.c: re-initialize suffNull when clearing suffixes.
2387 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
2397 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2399 * Makefile (MAKE_VERSION): 20151126
2400 Merge with NetBSD make, pick up
2401 o parse.c: ParseTrackInput don't access beyond
2404 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
2406 * Makefile (MAKE_VERSION): 20151022
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.
2412 * var.c: eliminate uint32_t and need for inttypes.h
2414 * main.c: PrintOnError flush stdout before run .ERROR
2416 * parse.c: cope with _SC_PAGESIZE not being defined.
2419 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
2421 * Makefile (MAKE_VERSION): 20151020
2422 Merge with NetBSD make, pick up
2423 o var.c: fix uninitialized var
2425 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
2427 * var.c: the conditional expressions used with ':?' can be
2428 expensive, if already discarding do not evaluate or expand
2431 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2439 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
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
2446 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
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
2452 o centralize shell metachar handling
2454 * FILES: add metachar.[ch]
2456 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2458 * Makefile (MAKE_VERSION): 20150606
2459 Merge with NetBSD make, pick up
2460 o make.1: document .OBJDIR target
2462 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
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
2470 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
2472 * machine.sh (MACHINE): Add Bitrig
2473 patch from joerg@netbsd.org
2475 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
2477 * Makefile (MAKE_VERSION): 20150418
2478 Merge with NetBSD make, pick up
2479 o job.c: use memmove() rather than memcpy()
2481 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
2484 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
2486 * Makefile (MAKE_VERSION): 20150411
2487 bump version - only mk/ changes.
2489 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
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)
2499 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
2501 * Makefile (MAKE_VERSION): 20150401
2502 Merge with NetBSD make, pick up
2503 o meta.c: close meta file in child
2505 * Makefile: use BINDIR.bmake if set.
2506 Same for MANDIR and SHAREDIR
2507 Handy for testing release candidates
2508 in various environments.
2510 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
2512 * move initialization of savederr to block where it is used
2513 to avoid spurious warning from gcc5
2515 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
2517 * Makefile (MAKE_VERSION): 20141111
2518 just a cooler number
2520 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2530 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
2532 * configure.in: test that result of getconf PATH_MAX is numeric
2533 and discard if not. Apparently needed for Hurd.
2535 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
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
2543 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
2545 * Makefile (MAKE_VERSION): 20140620
2546 Merge with NetBSD make, pick up
2547 o var.c return varNoError rather than var_Error for ::= modifiers.
2549 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
2551 * Makefile (MAKE_VERSION): 20140522
2552 Merge with NetBSD make, pick up
2553 o var.c detect some parse errors.
2555 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
2557 * Fix spelling errors - patch from Pedro Giffuni
2559 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
2561 * Makefile (MAKE_VERSION): 20140214
2562 Merge with NetBSD make, pick up
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__
2568 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
2570 * boot-strap: ignore mksrc=none
2572 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
2574 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
2576 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
2583 * configure.in: Add AC_PREREQ and check for
2584 sysctl; patch from Andrew Shadura andrewsh at debian.org
2586 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
2588 * Makefile (MAKE_VERSION): 20131010
2589 * lose the const from arg to systcl to avoid problems on older BSDs.
2591 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
2599 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
2600 provide __arraycount() if needed.
2602 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2609 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
2611 * Makefile (MAKE_VERSION): 20130902
2612 Merge with NetBSD make, pick up
2613 o CompatRunCommand: only apply shellErrFlag when errCheck is true
2615 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
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
2623 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2630 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
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
2642 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
2644 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
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
2656 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2663 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
2665 * Makefile (MAKE_VERSION): 20130528
2666 Merge with NetBSD make, pick up
2667 o var.c: cleanup some left-overs in VarHash()
2669 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2671 * Makefile (MAKE_VERSION): 20130520
2672 generate manifest from component FILES rather than have to
2673 update FILES when mk/FILES changes.
2675 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2683 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
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
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
2695 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2707 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
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
2714 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
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
2722 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
2724 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
2725 want to use MAKEOBJDIR
2727 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2733 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
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
2741 o remove Check_Cwd logic the makefiles have been fixed.
2743 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
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
2759 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
2761 * Makefile.in (MAKE_VERSION): 20121111
2762 fix generation of bmake.cat1
2764 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
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
2772 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2780 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
2782 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2784 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2791 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
2793 * Makefile.in: do not lose history from make.1 when generating bmake.1
2795 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
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
2802 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
2804 * Makefile.in (MAKE_VERSION): bump version to 20120911
2805 * bsd.after-import.mk: include Makefile.inc early and allow it to
2808 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
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
2815 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2822 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
2824 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2827 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
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
2833 * Makefile.in: set USE_META based on configure result.
2834 also .PARSEDIR is safer indicator of bmake.
2836 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
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
2843 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
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
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.
2855 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
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".
2864 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2873 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
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
2888 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
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
2894 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
2896 * Makefile.in (MAKE_VERSION): bump version to 20120530
2897 Merge with NetBSD make, pick up
2898 o compat.c: ignore empty command.
2900 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2906 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2908 * Makefile.in (MAKE_VERSION): bump version to 20120520
2909 Merge with NetBSD make, pick up
2910 o increased limit for nested conditionals.
2912 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2921 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
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.
2927 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
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%.
2936 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
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
2944 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
2946 * Makefile.in (MAKE_VERSION): bump version to 20120325
2947 Merge with NetBSD make, pick up
2948 o fix parsing of :[#] in conditionals.
2950 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
2952 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2953 since some systems cannot cope with .Nx <version>
2955 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
2957 * Makefile.in (MAKE_VERSION): bump version to 20111111
2958 Merge with NetBSD make, pick up
2959 o debug output for .PARSEDIR and .PARSEFILE
2961 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2963 * Makefile.in (MAKE_VERSION): bump version to 20111010
2965 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
2967 * boot-strap: check for an expected file in the dirs we look for.
2968 * make-bootstrap.sh: pass on LDSTATIC
2970 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
2978 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
2980 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2982 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
2984 * Makefile.in (MAKE_VERSION): bump version to 20110905
2985 Merge with NetBSD make, pick up
2986 o meta_oodate: ignore makeDependfile
2988 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
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
2995 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
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
3004 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
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
3010 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
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
3017 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
3019 * Merge with NetBSD make, pick up
3020 o unit-tests/modts now works on MirBSD
3022 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3031 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3040 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3047 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3054 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3065 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
3067 * unit-tests/modts: use printf if it is a builtin,
3068 to save us from MirBSD
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.
3075 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
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 "()"
3084 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
3086 * Makefile.in (MAKE_VERSION): bump version to 20110306
3087 Merge with NetBSD make, pick up
3088 o meta.c, only do getcwd() once
3090 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
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
3101 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3109 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
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
3116 * sigcompat.c: convert to ansi so we can use higher warning levels.
3119 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
3121 * Makefile.in (MAKE_VERSION): bump version to 20110207
3122 Merge with NetBSD make, pick up
3123 o fix for bug in meta mode.
3125 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
3127 * parse.c: SunOS 5.8 at least does not have MAP_FILE
3129 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
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
3135 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
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
3142 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
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
3151 o fix for parsing bug in var.c
3153 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
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
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
3165 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
3167 * Makefile.in (MAKE_VERSION): bump version to 20101101
3169 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
3171 * machine.sh: like os.sh,
3172 allow for uname -p producing useless drivel
3174 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
3176 * boot-strap: document configure knobs for meta and filemon.
3178 * Makefile.in (MAKE_VERSION): bump version to 20100911
3179 Merge with NetBSD make, pick up
3180 o meta.c - meta mode
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]
3187 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
3189 * boot-strap (TOOL_DIFF): set this to ensure tests use
3190 the same version of diff that configure tested
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.
3197 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3204 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
3206 * Makefile.in (MAKE_VERSION): bump version to 20100618
3207 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
3209 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
3211 * Makefile.in (MAKE_VERSION): bump version to 20100616
3212 Merge with NetBSD make, pick up
3214 o call PrintOnError from JobFinish when we detect an error we
3217 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
3219 * Makefile.in (MAKE_VERSION): bump version to 20100606
3220 Merge with NetBSD make, pick up
3223 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
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
3233 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3239 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
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 '/'.
3246 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
3248 * boot-strap: use absolute path for bmake when running tests.
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.
3256 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
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
3264 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
3266 * Makefile.in (MAKE_VERSION): bump version to 20100430
3267 Merge with NetBSD make, pick up
3268 o fflush stdout before writing to stdout
3270 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
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
3279 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3293 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
3295 * boot-strap: add FindHereOrAbove so we can use -m .../mk
3297 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
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
3305 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3313 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
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.
3320 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
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
3330 o .MAKE.DEPENDFILE to control the name of the depend file
3331 o .ERROR target - run on failure.
3333 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
3335 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
3337 * os.sh,arch.c: patch for Haiku from joerg at netbsd
3339 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
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
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.
3352 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
3354 * Makefile.in (MAKE_VERSION): bump version to 20100102
3355 * Merge with NetBSD make, pick up:
3358 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
3360 * Makefile.in (MAKE_VERSION): bump version to 20091118
3361 * Merge with NetBSD make, pick up:
3363 o report lines that start with '.' and should have ':'
3364 (catch typo's of .el*if).
3366 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
3368 * configure.in: Ensure that srcdir and mksrc are absolute paths.
3370 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
3372 * Makefile.in (MAKE_VERSION): fix version to 20091007
3374 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
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.
3381 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
3383 * Makefile.in (MAKE_VERSION): bump version to 20090909
3384 * Merge with NetBSD make, pick up:
3385 o fix for -C, .CURDIR and .OBJDIR
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
3392 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
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 \:
3399 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
3401 * configure.in: Don't -D__EXTENSIONS__ if
3402 AC_USE_SYSTEM_EXTENSIONS says "no".
3404 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
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.
3415 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
3417 * Appy some patches for MiNT from David Brownlee
3419 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
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.
3425 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
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
3436 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
3438 * Makefile.in (BMAKE_VERSION): bump version to 20081111
3439 Apply patch from Joerg Sonnenberge to
3441 o remove some redundant checks
3442 o check for emlloc etc only in libutil and require the whole family.
3444 o remove [v]asprintf which is no longer used.
3446 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
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
3452 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
3454 * Makefile.in (BMAKE_VERSION): bump version to 20081030
3455 pick up man page tweaks.
3457 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
3459 * Makefile.in: move processing of LIBOBJS to after is definition!
3460 thus we'll have getenv.c in SRCS only if needed.
3462 * make.1: add examples of how to use :?
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.
3473 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
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
3482 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
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.
3489 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
3491 * boot-strap (make_version): we may need to look in
3492 $prefix/share/mk for sys.mk
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.
3499 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
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.
3505 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
3507 * merge some patches from NetBSD pkgsrc.
3509 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
3510 the MAKSYSPATH used during bootstrap.
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.
3516 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
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
3524 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
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 ""
3530 * boot-strap: source default settings from .bmake-boot-strap.rc
3532 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
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
3539 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
3541 * boot-strap: make bmake.1 too, so maninstall works.
3543 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
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
3552 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
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.
3558 * sigcompat.c: some tweaks for HP-UX 11.x based on
3559 patch from Tobias Nygren
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.
3566 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
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
3576 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
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
3584 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
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
3594 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
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
3601 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
3602 setting ${MAKEFILE} - OBATA Akio
3604 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
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
3614 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
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
3622 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
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
3632 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
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.
3640 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
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'
3646 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
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
3653 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
3655 * Makefile.in (BMAKE_VERSION): bump to 20051031
3656 * ranlib.h: skip on OSF too.
3659 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
3661 * Makefile.in (BMAKE_VERSION): bump to 20051002
3664 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
3666 * Makefile.in (BMAKE_VERSION): bump to 20051001
3667 support for UnixWare and some other systems,
3668 based on patches from pkgsrc/bootstrap
3670 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
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.
3676 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
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.
3683 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
3685 * Makefile.in (BMAKE_VERSION): bump to 20050530
3686 * Merge with NetBSD make, pick up:
3687 o Handle dependencies for .BEGIN, .END and .INTERRUPT
3689 * README: was seriously out of date.
3691 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
3693 * Important to use .MAKE rather than MAKE.
3695 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
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
3703 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
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.
3712 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
3714 * Remove __IDSTRING()
3716 * Makefile.in (BMAKE_VERSION): bump to 20040508
3717 * Merge with NetBSD make, pick up:
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.
3726 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
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
3735 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
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
3742 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
3744 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
3745 so that './bmake -f Makefile test' works.
3747 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
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.
3756 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
3758 * arch.c: don't include ranlib.h on ELF systems
3759 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
3761 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
3763 * Makefile.in (BMAKE_VERSION): bump to 20040118
3765 * boot-strap (while): export vars we assign to on cmdline
3766 * unit-test/Makefile.in: ternary is .PHONY
3768 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
3770 * Makefile.in (BMAKE_VERSION): bump version to 20040108
3771 * Merge with NetBSD make, pick up:
3772 o fix for ternary modifier
3774 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
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
3781 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
3783 * Make portable snprintf safer - output to /dev/null first to
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.
3796 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
3798 * util.c: Add asprintf and vasprintf.
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.
3806 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
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.
3813 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
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
3819 - CompatRunCommand now prints the command that failed.
3820 - several files got updated 3 clause Berkeley license.
3822 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
3824 * boot-strap: Allow setting configure args on command line.
3826 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
3828 * configure.in: add --with-defshell to allow sh or ksh
3829 to be selected as default shell.
3831 * Makefile.in: bump version to 20030731
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.
3837 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
3839 * var.c (Var_Parse): ensure delim is initialized.
3841 * unit-tests/Makefile.in: use single quotes to avoid problems from
3845 Run the unit-tests as part of the bootstrap procedure.
3847 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
3849 * unit-tests/Makefile.in: always force complaints from
3850 ${TEST_MAKE} to be from 'make'.
3852 * configure.in: add check for 'diff -u'
3853 also fix some old autoconf'isms
3855 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
3856 if using GCC add -Wno-cast-qual to CFLAGS for var.o
3858 * Merge with NetBSD make
3859 Pick up fix for :ts parsing error in some cases.
3862 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
3864 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
3866 * var.c (Var_Parse): fix bug in :ts modifier, after const
3867 correctness fixes, must pass nstr to VarModify.
3869 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
3871 * Makefile.in: BMAKE_VERSION switch to a date based version.
3872 We'll generally use the date of last import from NetBSD.
3874 * Merge with NetBSD make
3875 Pick up fixes for const-correctness, now passes WARNS=3 on
3877 Pick up :ts modifier, allows controlling the separator used
3878 between words in variable expansion.
3880 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
3882 * FILES: include boot-strap and os.sh
3884 * Makefile.in: only set WARNS if we are NetBSD, the effect on
3885 FreeBSD is known to be bad.
3887 * makefile.boot.in (bootstrap): make this the default target.
3889 * Makefile.in: bump version to 3.1.19
3891 * machine.sh: avoid A-Z with tr as it is bound to lose.
3893 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
3895 * Merge with NetBSD make
3896 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3897 Plus some doc fixes.
3899 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
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
3905 * Bump version to 3.1.18
3907 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
3909 * Merge with NetBSD make
3910 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3911 appears in src list.
3913 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
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
3922 * parse.c: pix up fix for suffix rules
3924 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
3926 * Merge with NetBSD make.
3927 pick up fix for propagating -B via MAKEFLAGS.
3928 set MAKE_VERSION to 3.1.16
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
3934 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
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>.
3940 * bmake.cat1: update the pre-formatted man page!
3942 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
3944 * Merge with NetBSD make.
3945 pick up fix for premature free of pointer used in call
3947 set MAKE_VERSION to 3.1.15
3949 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
3951 * configure.in: determine suitable value for MKSRC.
3952 override using --with-mksrc=PATH.
3954 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3955 configs(8) will use 'sun4' as an alias for 'sparc'.
3957 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
3959 * Merge with NetBSD make.
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
3965 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
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.
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.
3976 * make.h: always include sys/cdefs.h since we provide one if the
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
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.
3991 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
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.
3997 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
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.
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
4006 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4008 * job.c (JobFinish): Fix an earlier merge bug that resulted in
4009 leaking descriptors when using -jN.
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.
4017 * Merged with NetBSD make
4020 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4022 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
4024 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
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.
4029 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4031 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
4032 its the wrong "fix".
4034 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
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.
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}
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.
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'
4064 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4066 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
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.
4072 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
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.
4078 * configure.in (machine): allow --with-machine=generic to make
4079 configure use machine.sh to set MACHINE.
4081 * job.c (JobInterrupt): convert to using WAIT_T and friends.
4083 * Makefile.in: mention in bmake.1 that we use autoconf.
4085 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
4087 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4089 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
4090 as that rather defeats the usefulness of ${MAKEFILE}.
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.
4096 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4098 * compat.c (CompatRunCommand): don't use perror() since stdio may
4099 cause problems in child of vfork().
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}.
4105 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
4108 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
4110 * Added RCSid's for the files we've touched.
4112 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
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:
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
4125 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
4127 * makefile: added a pathetically simple makefile to drive
4128 bootstrapping. Running configure by hand is more useful.
4130 * Makefile.in: added MAKE_VERSION, and reworked things to be less
4131 dependent on NetBSD bsd.*.mk
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.
4137 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
4138 if MAKE_VERSION is defined.
4140 * compat.c: when we bail, print out the .CURDIR we were in.
4142 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4144 * Merged with NetBSD make
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
4150 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
4152 * Merged with NetBSD make
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).
4157 * compat.c: Use perror() to tell us what really went wrong when we
4158 cannot exec a command.
4160 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4162 * Merged with NetBSD make
4164 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4166 * Merged with NetBSD make
4168 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4170 * Merged with NetBSD make
4172 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4174 * Merged with NetBSD make
4176 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4178 * util.c: don't provide signal() since we use sigcompat.c
4180 * Makefile.in: added a build target.
4182 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
4183 These allow some quite clever magic.
4185 * main.c (main): added support for getenv(MAKESYSPATH).
4187 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
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).
4193 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
4195 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
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.
4201 * Turn Makefile into Makefile.in and make it useful.
4203 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
4205 * Imported NetBSD's -current make(1) and resolve conflicts.
4207 * Applied autoconf patches from bmake v2
4209 * Imported clean code base from NetBSD-1.0