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