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