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