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