12023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20230909 4 Merge with NetBSD make, pick up 5 o main.c: allow -j to compute a multiple of ncpu 6 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 7 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 8 _SC_NPROCESSORS_ONLN 9 .MAKE.JOBS.C will be "yes" if -jC is supported 10 112023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 12 13 * VERSION (_MAKE_VERSION): 20230820 14 Merge with NetBSD make, pick up 15 o make.1: note that :localtime is better for %s 16 o parse.c: improve error messages for invalid input. 17 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 18 correct result, it is still better to use %s:L:localtime. 19 202023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 21 22 * VERSION (_MAKE_VERSION): 20230818 23 Merge with NetBSD make, pick up 24 o meta.c: meta_ignore - check raw path against metaIgnorePaths 25 to potentially skip call to realpath. 26 o var.c: be strict when parsing the argument of the ':mtime' modifier 27 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 28 should be used to get an equivalent value to time(3). 29 302023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 31 32 * VERSION (_MAKE_VERSION): 20230816 33 Merge with NetBSD make, pick up 34 o cond.c: clean up multiple-inclusion guards 35 362023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 37 38 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 39 if configure cannot work out how to control TZ. 40 Remove varmod-localtime from BROKEN_TESTS for IRIX* 41 422023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 43 44 * VERSION (_MAKE_VERSION): 20230723 45 46 * configure.in: fix the test for wether TZ=Europe/Berlin works. 47 Depending on the time of year, if run between 22:00 and 00:00 UTC 48 the check in configure would fail incorrectly. 49 Take the day into account as well. 50 512023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 52 53 * VERSION (_MAKE_VERSION): 20230711 54 Merge with NetBSD make, pick up 55 o make.1: clean up wording, clarify scope of '!' in conditions 56 572023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * make-bootstrap.sh.in: set prefix 60 If configure is run using ksh we get unexpanded ${prefix} in 61 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 62 correct result. 63 642023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 65 66 * VERSION (_MAKE_VERSION): 20230711 67 bump version for IRIX tweaks 68 69 * make.h: undef OP_NONE if defined 70 71 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 72 73 * configure.in: override INSTALL on IRIX 74 752023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 76 77 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 78 792023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 80 81 * VERSION (_MAKE_VERSION): 20230622 82 Merge with NetBSD make, pick up 83 o optimize string matching for ':M' and ':N' 84 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 85 862023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 87 88 * VERSION (_MAKE_VERSION): 20230621 89 Merge with NetBSD make, pick up 90 o more extensive tests for include guards 91 o parse.c: if a guard is already defined a file that uses the same 92 guard is still guarded by it. 93 942023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 95 96 * VERSION (_MAKE_VERSION): 20230620 97 Merge with NetBSD make, pick up 98 o allow guards to be targets as well as variables 99 The guard targets may include variable references like 100 __${.PARSEDIR:tA}/${.PARSEFILE}__ 101 1022023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 103 104 * VERSION (_MAKE_VERSION): 20230619 105 Merge with NetBSD make, pick up 106 o unit test for .undef of readOnly vars 107 o optimization for makefiles protected from multiple-inclusion 108 skip even opening the file after first include. 109 Initially this only handles makefiles guarded by a variable 110 target guards are next. 111 1122023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 113 114 * VERSION (_MAKE_VERSION): 20230616 115 Merge with NetBSD make, pick up 116 o var.c: do not allow delete of readOnly variable 117 1182023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 119 120 * VERSION (_MAKE_VERSION): 20230601 121 Merge with NetBSD make, pick up 122 o parse.c: .break takes no args 123 o lots of unit test updates 124 1252023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 126 127 * unit-tests/Makefile: skip tests that require /dev/filemon 128 if it does not exists - issue a warning. 129 1302023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 131 132 * VERSION (_MAKE_VERSION): 20230522 133 Fix building on darwin ppc 134 135 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 136 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 137 1382023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 139 140 * VERSION (_MAKE_VERSION): 20230515 141 142 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 143 compile filemon_ktrace.c 144 1452023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 146 147 * VERSION (_MAKE_VERSION): 20230512 148 o sys.dirdeps.mk - broke after-import target 149 1502023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 151 152 * VERSION (_MAKE_VERSION): 20230510 153 Merge with NetBSD make, pick up 154 o parse.c: don't print null filename in stack traces 155 o var.c: :mtime operate on each word in variable value 156 1572023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 158 159 * VERSION (_MAKE_VERSION): 20230509 160 Merge with NetBSD make, pick up 161 o for.c: skip syntactically wrong .for loops 162 o var.c: allow for :gmtime=${mtime} 163 add :mtime[=timestamp] where timestamp is used if stat(2) 164 fails, if :mtime=error stat(2) failure causes error. 165 1662023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 167 168 * VERSION (_MAKE_VERSION): 20230504 169 Merge with NetBSD make, pick up 170 o compat.c: fix compile on NetBSD 7.2 171 o make.1: fix documentation of .PREFIX to match reality and POSIX 172 o unit-tests: improved var-scope-local 173 1742023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 175 176 * VERSION (_MAKE_VERSION): 20230414 177 Merge with NetBSD make, pick up 178 o minor cleanup 179 1802023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 181 182 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 183 unlimited results in an insane number (0x7fffffffffffffff). 184 If BMAKE_NOFILE_MAX is defined, use that instead. 185 1862023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 187 188 * VERSION (_MAKE_VERSION): 20230321 189 Merge with NetBSD make, pick up 190 * make.1: document seemingly unexplained Error code 6. 191 1922023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 193 194 * VERSION (_MAKE_VERSION): 20230317 195 Merge with NetBSD make, pick up 196 o compat.c: CompatDeleteTarget skip .PHONY targets to be 197 consistent with JobDeleteTarget. 198 o job.c: fix memory leak in handling sysv :from=to modifiers 199 2002023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 201 202 * VERSION (_MAKE_VERSION): 20230303 203 Merge with NetBSD make, pick up 204 o several updated unit-tests 205 2062023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 207 208 * VERSION (_MAKE_VERSION): 20230222 209 Merge with NetBSD make, pick up 210 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 211 2122023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 213 214 * VERSION (_MAKE_VERSION): 20230218 215 Merge with NetBSD make, pick up 216 o var.c: fix parsing of unevaluated subexpressions with 217 unbalanced '{}' 218 2192023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 220 221 * VERSION (_MAKE_VERSION): 20230215 222 Merge with NetBSD make, pick up 223 o inline macros for some variable names 224 o cond.c: reduce complexity of evaluating expressions 225 2262023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 227 228 * VERSION (_MAKE_VERSION): 20230208 229 Merge with NetBSD make, pick up 230 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 231 when it has been used within conditional expressions 232 2332023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 234 235 * VERSION (_MAKE_VERSION): 20230127 236 237 * install-sh: if making directories ensure umask is set 238 to match mode. 239 240 * Makefile: use DIRMODE for directories and 241 NONBINMODE for man pages and mk files 242 2432023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 244 245 * VERSION (_MAKE_VERSION): 20230126 246 Merge with NetBSD make, pick up 247 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 248 should be read-only. 249 2502023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 251 252 * VERSION (_MAKE_VERSION): 20230123 253 Merge with NetBSD make, pick up 254 o .[NO]READONLY: for control of read-only variables 255 o .SYSPATH: for controlling the path searched for makefiles 256 2572023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 258 259 * VERSION (_MAKE_VERSION): 20230120 260 Merge with NetBSD make, pick up 261 o allow for white-space between command specifiers @+- 262 o add more details to warning 'Extra targets ignored' 263 2642023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * machine.sh: leverage os.sh rather than duplicate 267 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 268 for that purpose for the past decade or so. 269 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 270 2712023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * VERSION (_MAKE_VERSION): 20230101 274 Merge with NetBSD make, pick up 275 o cleanup comments, inline some LazyBuf_ methods 276 o unit-tests/ add/improve comments in tests 277 o make.1: sync list of built-in variables with reality 278 sort list of built-in variables 279 reduce indentation of the long list of variable names 280 use consistent markup for boolean flags 281 move description of .MAKE.MODE below the .MAKE.META block 282 clarify in which case an expression may omit braces 283 2842022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 285 286 * VERSION (_MAKE_VERSION): 20221024 287 Merge with NetBSD make, pick up 288 o change return type of unlink_file back to int 289 2902022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 291 292 * Makefile: Darwin and Linux can handle MANTARGET=man 293 2942022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 295 296 * VERSION (_MAKE_VERSION): 20220928 297 Merge with NetBSD make, pick up 298 o fix more ignored returns from snprintf 299 o compile with higher warnings 300 3012022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 302 303 * main.c meta.c: do not ignore return from snprintf 304 305 * meta.c strlcpy.c: we need prototype for strlcpy 306 307 * sigcompat.c: fix unused function warnings 308 3092022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 310 311 * VERSION (_MAKE_VERSION): 20220924 312 Merge with NetBSD make, pick up 313 o fix bug in .break reset of conditional depth 314 o overhaul and simplify tracking of conditional depth 315 3162022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 317 318 * VERSION (_MAKE_VERSION): 20220912 319 Merge with NetBSD make, pick up 320 o man page updates 321 3222022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 323 324 * VERSION (_MAKE_VERSION): 20220909 325 Merge with NetBSD make, pick up 326 o update unit-tests to handle deprecation of egrep 327 o cond.c: add more details to error message for numeric comparison 328 329 * configure.in: allow for deprecation of egrep 330 331 * Makefile: Linux can handle MANTARGET=man 332 3332022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 334 335 * VERSION (_MAKE_VERSION): 20220903 336 Merge with NetBSD make, pick up 337 o job.c: fix handling of null bytes in output 338 3392022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 340 341 * VERSION (_MAKE_VERSION): 20220902 342 Merge with NetBSD make, pick up 343 o Allow .break to terminate a .for loop early 344 3452022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 346 347 * VERSION (_MAKE_VERSION): 20220901 348 Merge with NetBSD make, pick up 349 o var.c: fix out-of-bounds errors when parsing 350 3512022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * VERSION (_MAKE_VERSION): 20220824 354 Merge with NetBSD make, pick up 355 o var.c: revert change to modifier parsing that breaks 356 shell variable references within ':@var@body@' 357 o adjust unit-tests 358 3592022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 360 361 * VERSION (_MAKE_VERSION): 20220818 362 Merge with NetBSD make, pick up 363 o fix exit status for '-q' (since 1994) 364 3652022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 366 367 * VERSION (_MAKE_VERSION): 20220808 368 Merge with NetBSD make, pick up 369 o var.c: fix parsing of modifiers containing unbalanced subexpressions 370 extract parsing of ':D' and ':U' modifiers into separate function 371 3722022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 373 374 * VERSION (_MAKE_VERSION): 20220726 375 376 * Auto-create objdir for bmake/unit-tests if appropriate 377 3782022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 379 380 * VERSION (_MAKE_VERSION): 20220724 381 Merge with NetBSD make, pick up 382 o make.1: describe variable assignment and evaluation more precisely 383 o parse.c: fix out-of-bounds read when parsing an invalid line 384 o var.c: simplify return type of IsShortVarnameValid 385 3862022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 387 388 * VERSION (_MAKE_VERSION): 20220612 389 Merge with NetBSD make, pick up 390 o allow to randomize build order of targets 391 .MAKE.MODE += randomize-targets can help uncover dependency bugs 392 within a makefile. 393 o compat.c: rename Compat_Run to Compat_MakeAll 394 o make.c: inline MakeBuildParent 395 inline make_abort, improve error details 396 o parse.c: reorganize Parse_Error 397 fix memory leak in wildcard targets and sources 398 separate cases in HandleDependencyTargetMundane 399 extract HandleSingleDependencyTargetMundane 400 rename loadfile to LoadFile 401 split IncludeFile into separate functions 402 condense code for searching a file in the paths 403 fix off-by-one error in buffer for .WAIT nodes 404 o str.c: condense Str_Match 405 make code for string matching syntactically more consistent 406 4072022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 408 409 * VERSION (_MAKE_VERSION): 20220418 410 Merge with NetBSD make, pick up 411 o ignore '.POSIX:' if not in first non-comment line 412 of Makefile as specified by POSIX. 413 add unit-tests for above. 414 o meta.c: make it easier to find usage of identifiers 415 o targ.c: add .USEBEFORE to Targ_PrintType 416 4172022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 418 419 * VERSION (_MAKE_VERSION): 20220414 420 421 * unit-tests/Makefile: simplify checks for shells with 422 BROKEN_TESTS, this helps with other Linux distros that 423 use dash. 424 4252022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 426 427 * VERSION (_MAKE_VERSION): 20220330 428 Merge with NetBSD make, pick up 429 o var.c: fix spacing, and a typo in a test 430 4312022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 432 433 * VERSION (_MAKE_VERSION): 20220326 434 Merge with NetBSD make, pick up 435 o parse.c: try to include 'posix.mk' the first time 436 .POSIX: is encountered, to allow for beter POSIX compliance. 437 o var.c: make debug logs more readable 438 prefer 'long long' over 'long' on 32-bit C99 platforms 439 fix crash on .undef of an environment variable 440 4412022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 442 443 * VERSION (_MAKE_VERSION): 20220303 444 Merge with NetBSD make, pick up 445 o tell meta mode unit tests not to expect filemon 446 o cond.c: make debug logging for comparisons less technical 447 o lst.c: fix mem leak in Lst_Remove 448 o str.c: make code for string matching syntactically more consistent 449 o var.c: simplify ParseModifier_Match 450 4512022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 452 453 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 454 455 * VERSION (_MAKE_VERSION): 20220214 456 Merge with NetBSD make, pick up 457 o cond.c: simplify control flow in CondParser_Comparison 458 o job.c: fix echoing of command with '-' in silent target in jobs mode 459 o main.c: prefix the warning about read-only .OBJDIR with a colon 460 o parse.c: remove redundant conditions 461 o var.c: simplify control flow in ModifyWord_SysVSubst 462 4632022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 464 465 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 466 is any chance we have dash as .SHELL 467 468 * VERSION (_MAKE_VERSION): 20220208 469 Merge with NetBSD make, pick up 470 o more unit tests 471 o meta.c: use a variable to hold command line to be filtered 472 to avoid any side effects from content of command line. 473 4742022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 475 476 * VERSION (_MAKE_VERSION): 20220204 477 Merge with NetBSD make, pick up 478 o use unsigned consistently for line numbers, avoid the need for %z 479 o parse.c: do not step off end of input in Parse_IsVar 480 when checking for target local variable assignments 481 4822022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 483 484 * VERSION (_MAKE_VERSION): 20220202 485 Merge with NetBSD make, pick up 486 o remove redundant declaration of HashIter_Init 487 o make DEBUG0 simpler 488 4892022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 490 491 * cast gn->lineno to avoid %z 492 493 * VERSION (_MAKE_VERSION): 20220130 494 Merge with NetBSD make, pick up 495 o more unit tests 496 o make GNode lineno unsigned to please lint 497 o print location of recursive variable references in commands 498 o print "stack trace" (makefile includes) on fatal errors 499 o make.1: refine documentation for target local assignments 500 5012022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 502 503 * VERSION (_MAKE_VERSION): 20220128 504 Merge with NetBSD make, pick up 505 o inline functions called only once 506 o for.c: clean up AddEscape for building the body of a .for loop 507 o hash.c: merge duplicate code for finding an entry in a hash table 508 replace HashEntry_KeyEquals with strncmp 509 o make.1: document quirks of target local variable assignments. 510 o parse.c: cleanup white-space 511 5122022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 513 514 * VERSION (_MAKE_VERSION): 20220126 515 Merge with NetBSD make, pick up 516 o allow setting target local variables 517 o more unit tests 518 o add missing newline after "cannot continue" message 519 o meta.c: clean up eat_dots 520 o parse.c: fix filename in warning about duplicate script 521 o var.c: when expanding nested variables, check simple things first 522 5232022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 524 525 * VERSION (_MAKE_VERSION): 20220116 526 Merge with NetBSD make, pick up 527 o fix for unit-tests/varname-makeflags on non-BSD systems 528 o use Var_Exists rather than Var_Value where appropriate 529 o remove unnecessary functions for expanding variable names 530 o cond.c: inline EvalBare 531 o main.c: lint cleanup 532 o parse.c: condense code in Parse_IsVar 533 use islower for parsing directives (none have upper case) 534 5352022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20220112 538 Merge with NetBSD make, pick up 539 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 540 comparion, rarely needed but useful when it is. 541 5422022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 543 544 * VERSION (_MAKE_VERSION): 20220110 545 Merge with NetBSD make, pick up 546 o inline Buf_Clear 547 o remove redundant braces 548 o rename and inline Targ_Precious 549 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 550 o for.c: clean up handling of .for loops 551 fix reported line numbers of continuation lines 552 add details about .for loop variables to stack traces 553 o job.c: reduce code for initializing error handling in shell 554 o main.c: in Cmd_Exec, return error message instead of format string 555 have as few statements as possible between va_start and va_end 556 add debug logging for capturing the output of external commands 557 o make.c: use consistent variable names for varargs 558 o make_malloc.c: remove duplicate code from bmake_strdup 559 o parse.c: add missing printflike annotations 560 remove redundant lines from stack traces 561 fix stack traces in -dp mode 562 reduce confusing code in ParseForLoop 563 fix line number in debug log after returning from a file 564 rename IFile and its fields to match their actual content 565 clean up ParseDependencySources 566 o var.c: shorten ApplyModifier_Assign 567 rename is_shell_metachar, fix character conversion warning 568 merge calls to ApplyModifier_Time 569 merge duplicate code for modifiers 'gmtime' and 'localtime' 570 5712022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 572 573 * parse.c: loadfile restore extra byte in buffer. 574 5752022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 576 577 * VERSION (_MAKE_VERSION): 20220101 578 Merge with NetBSD make, pick up 579 o more unit-tests 580 o remove unnecessary words from command line options in CmdOpts 581 o rename eunlink to unlink_file 582 o cond.c: make ParseWord in condition parser simpler 583 internally return false for irrelevant leaves in conditions 584 replace table for function lookup in conditions with simple code 585 merge duplicate types CondEvalResult and CondResult 586 o for.c: clean up handling of .for loops and .include directives 587 o main.c: constify cached_realpath 588 clean up Cmd_Exec 589 o parse.c: sync API documentation 590 fix error message when reading more than 1 GB from stdin 591 clean up parsing of makefiles 592 fix line number in error message about open conditionals 593 unexport types VarAssignOp and VarAssign 594 clean up function names 595 remove redundant parameters in dependency parsing functions 596 reduce scope of the list of wildcard target names 597 extract OP_NOTARGET into separate function 598 clean up variable names for parsing dependency lines 599 make debug logging a bit more human-friendly 600 o var.c: condense code in ApplyModifier_Assign 601 6022021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 603 604 * VERSION (_MAKE_VERSION): 20211221 605 Merge with NetBSD make, pick up 606 o more unit-tests 607 o style cleanup 608 o in CLEANUP mode, free interned strings at the very end 609 o fix memory leak for filenames in .for loops 610 o buf.c: avoid memory leak 611 o cond.c: condense CondParser_ComparisonOp 612 o hash.c: change return type of HashTable_Set to void 613 o job.c: change return type of Compat_RunCommand from int to bool 614 o main.c: remove bmake_free 615 o parse.c: condense repetetive code in ParseDirective 616 remove dead code for handling traditional include directives 617 clean up parsing of variable assignments 618 remove unreachable code for parsing the dependency operator 619 clean up loading of files 620 fix memory leak in IncludeFile 621 o var.c: fix memory leak when parsing a variable name 622 fix memory leak from ${.SUFFIXES} 623 reduce memory allocation in modifier ':?' and ':C' 624 condense RegexReplace for the modifier ':C' and avoid strlen 625 merge duplicate code for memory handling in Var_Parse 626 distinguish between short-lived and environment variables 627 rename VarFreeEnv to VarFreeShortLived 628 6292021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 630 631 * cond.c: fix mem leak in CondParser_Leaf 632 6332021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 634 635 * VERSION (_MAKE_VERSION): 20211212 636 Merge with NetBSD make, pick up 637 o rename Parse_SetInput to Parse_PushInput 638 o remove remove period from end of error messages and warnings 639 to be more consistent 640 o arch.c: use simpler memory management for parsing archive members 641 o cond.c: rework and reduce recursion 642 o for.c: rename some functions to better reflect purpose 643 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 644 o var.c: in parse errors, mark whitespace more clearly 645 inline ParseEmptyArg into CondParser_FuncCallEmpty 646 minimize calls to LazyBuf_Get in ParseVarnameLong 647 treat .SUFFIXES as a read-only variable 648 6492021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 650 651 * VERSION (_MAKE_VERSION): 20211207 652 Merge with NetBSD make, pick up 653 o inline HashIter_Init 654 o parse.c: inline common subexpression in ParseRawLine 655 o var.c: merge branches for modifiers ':D' and ':U' 656 extract common code into Expr_Words 657 extract common code into Expr_Str 658 move low-level implementation details out of Var_Parse 659 6602021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 661 662 * VERSION (_MAKE_VERSION): 20211206 663 Merge with NetBSD make, pick up 664 o add unit-tests/varmod-loop-delete 665 o for.c: inline Str_Words - reduce memory allocation 666 o parse.c: do not try to expand fixed variable names 667 only allocate the name of an included file if necessary 668 clean up ParseInclude 669 o var.c: fix use-after-free in modifier ':@' 670 save a memory allocation in each modifier ':O' and ':u' 671 save a memory allocation in the modifier ':[...]' 672 in UnexportVars, replace Str_Words with Substring_Words to 673 reduce allocations and copying. 674 6752021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 676 677 * VERSION (_MAKE_VERSION): 20211204 678 Merge with NetBSD make, pick up 679 o flesh out a number of tests 680 o replace enums with bitfields, this simplifies a lot of code. 681 o var.c: refactor ParseModifierPartSubst 682 6832021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 684 685 * VERSION (_MAKE_VERSION): 20211024 686 Merge with NetBSD make, pick up 687 o Punt on write errors - ENOSPC etc. 688 6892021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 690 691 * configure.in: use_defshell, set both DEFSHELL_INDEX 692 and defshell_path if appropriate. 693 This makes it easier to use say the KSH specification with 694 and alternate path for the shell. 695 696 * configure.in compat.c: for SCO we need to force UseShell 697 698 * configure.in: SCO /bin/sh is not usable, provide a list of 699 alternatives for use as .SHELL. 700 We still have to mark some tests as broken, plus more if we end up 701 with ksh as .SHELL. 702 Issue a warning about skipped tests. 703 704 * boot-strap: leave TOOL_DIFF to configure 705 706 * configure.in: on SCO native cc is not usable, 707 gcc is to be found in /usr/gnu/bin 708 and while ancient is at least able to compile bmake. 709 Thus we add /usr/gnu/bin to PATH if it exists, and later 710 check if $CC would have been found via $PATH. 711 If not we set CC to the full path of $CC. 712 Also gnu diff is known to support -u, so if it exists use it. 713 714 * configure.in: move getopt to AC_REPLACE_FUNCS 715 also add AC_C_INLINE - in an attempt to compile using 716 native cc on SCO. 717 718 * configure.in: check for stresep as well as strsep, since we 719 define the later to the former if necessary, and if we have to 720 provide stresep we also need to provide a prototype. 721 722 * configure.in: we no longer need to worry about 723 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 724 725 * make.h: make sure we have __RCSID 726 727 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 728 can control it. 729 7302021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 731 732 * VERSION: 20211020 733 Merge with NetBSD make, pick up 734 o confirm sync of unit-tests 735 7362021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 737 738 * configure.in: check if timezone Europe/Berlin is supported 739 if not try UTC-1 740 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 741 symlink unit-tests -> ../unit-tests/obj so that 742 unit-tests/Makefile.config is put in the right place. 743 * refine filtering of .OBJDIR in unit-tests 744 7452021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 746 747 * Fix unit-tests on Minix 3.2.0 748 o job.c: do not punt if read of token pipe fails for EAGAIN. 749 On Minix at least, we are not ready to read the childExitJob pipe 750 when poll says we are. 751 There should actually be no reason for this pipe to be 752 non-blocking, but while that works fine on {Net,Free}BSD it 753 breaks another test case on Minix. 754 o unit-tests/Makefile: deal with variants of error messages 755 and use of obj as .OBJDIR 756 7572021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 758 759 * configure.in: add sigaction to AC_REPLACE_FUNCS 760 we also need to check for sigaddset etc just for the benefit of 761 sigact.c 762 763 * Add sigact.c as sigaction.c so this "just works". 764 This should have been done back when bmake_signal started using 765 sigaction (I only just noticed that sigact.c wasn't here ;-) 766 Note: I no longer have access to any system where this would matter. 767 7682021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 769 770 * VERSION (_MAKE_VERSION): 20211011 771 772 * Makefile: cleanup a little 773 774 * configure.in: check for sigsetmask 775 7762021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 777 778 * VERSION (_MAKE_VERSION): 20211001 779 Merge with NetBSD make, pick up 780 o reduce locations reducing text size 781 o remove unnecessary const 782 o cond.c: fix lint warning on i386 783 do not allow unquoted 'left == right' after modifier ':?' 784 o hash.c: fix build for DEBUG_HASH_LOOKUP 785 o var.c: fix memory leak in error case of the ':?' modifier 786 7872021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 788 789 * VERSION (_MAKE_VERSION): 20210911 790 Merge with NetBSD make, pick up 791 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 792 7932021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 794 795 * VERSION (_MAKE_VERSION): 20210906 796 Merge with NetBSD make, pick up 797 o more unit tests 798 o lint cleanup 799 o rename some functions to better fit purpose 800 o for.c: cleanup - remove unnecessary optimization 801 fix embedded newlines 802 o parse.c: correct case for CVS/RCS 803 8042021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 805 806 * VERSION (_MAKE_VERSION): 20210808 807 Merge with NetBSD make, pick up 808 o var.c: remove redundant initialization in ApplyModifier_Order 809 810 * mk/options.mk: issue warning for incorrect usage 811 8122021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 813 814 * var.c: use long for :On if we don't have a 64bit int type 815 816 * VERSION (_MAKE_VERSION): 20210803 817 Merge with NetBSD make, pick up 818 o rework varmod-order tests to avoid qsort instability 819 o make.1: clarify :On entry 820 8212021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 822 823 * VERSION (_MAKE_VERSION): 20210731 824 Merge with NetBSD make, pick up 825 o fix some lint issues 826 o more unit tests 827 o var.c: rework of ApplyModifier_Order 828 8292021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 830 831 * util.c: add strto*l if HAVE_STRTO*L not defined 832 833 * VERSION (_MAKE_VERSION): 20210730 834 Merge with NetBSD make, pick up 835 o var.c: add :On and :Orn for numeric sort 836 disabled if no 64bit type available. 837 o _strtol.h: to implement strto*l functions 838 8392021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 840 841 * VERSION (_MAKE_VERSION): 20210704 842 Merge with NetBSD make, pick up 843 o unit-tests: fix some tests to be more portable 844 - job-output-null not all shells do the same number of write calls 845 - objdir-writable if TMPDIR is set; /tmp may not be usable 846 8472021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 848 849 * VERSION (_MAKE_VERSION): 20210701 850 Merge with NetBSD make, pick up 851 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 852 some tests just cannot work in some environments. 853 o buf.c: simpler upper bound for length in Buf_AddInt 854 o cond.c: fix grammar in error message for malformed conditional 855 o for.c: prevent newline injection (from ${.newline}) in .for loops 856 o var.c: use more practical data type in RegexReplace 857 (avoid need for %zu) 858 extract RegexReplace from ModifyWord_SubstRegex 859 8602021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 861 862 * VERSION (_MAKE_VERSION): 20210621 863 Merge with NetBSD make, pick up 864 o var.c: only report error for unmatched regex subexpression 865 when linting (-dL) since we cannot tell when an unmatched 866 subexpression is an expected result. 867 o move unmatched regex subexpression tests to 868 varmod-subst-regex.mk and enable strict (lint) mode 869 8702021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 871 872 * VERSION (_MAKE_VERSION): 20210616 873 Merge with NetBSD make, pick up 874 o more unit tests 875 o cond.c: rename If_Eval to EvalBare 876 improve function names for parsing conditions 877 o job.c: fix error handling of targets that cannot be made 878 o var.c: uncompress code in ApplyModifier_Unique 879 8802021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 881 882 * VERSION (_MAKE_VERSION): 20210518 883 Merge with NetBSD make, pick up 884 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 885 o job.c: Print -de error information when running multiple jobs 886 8872021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 888 889 * VERSION (_MAKE_VERSION): 20210420 890 Merge with NetBSD make, pick up 891 o use C99 bool type 892 o convert VarEvalFlags back into an enum 893 o cond.c: do not complain when skipping the condition 'no >= 10' 894 o hash.c: avoid allocating memory for simple variable names 895 o job.c: use distinct wording for writing to the shell commands file 896 remove type name for the abort status in job handling 897 rename PrintOutput to PrintFilteredOutput to avoid confusion 898 o main.c: avoid double slash in name of temporary directory 899 o var.c: use straight quotes for error 'Bad conditional expression' 900 reduce memory allocations in the modifiers ':D' and ':U' 901 rename members of ModifyWord_LoopArgs 902 clean up pattern flags for the modifiers ':S' and ':C' 903 reduce memory allocation and strlen calls in modifier ':from=to' 904 in the ':Q' modifier, only allocate memory if necessary 905 improve performance for LazyBuf 906 remove redundant parameter from ParseVarnameLong 907 migrate ParseModifierPart to use Substring 908 avoid unnecessary calls to strlen when evaluating modifiers 909 migrate ModifyWord functions to use Substring 910 migrate handling of the modifier ':S,from,to,' to Substring 911 reduce debug logging and memory allocation for ${:U...} 912 reduce verbosity of the -dv debug logging for standard cases 913 clean up debug logging for ':M' and ':N' 914 disallow '$' in the variable name of the modifier ':@' 915 simplify access to the name of an expression during evaluation 916 9172021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 918 919 * VERSION (_MAKE_VERSION): 20210330 920 Merge with NetBSD make, pick up 921 o replace enum bit-field with struct bit-field for VarEvalFlags 922 o rename VARE_NONE to VARE_PARSE_ONLY 923 o var.c: rename ApplyModifiersState to ModChain 924 fix double varname expansion in the variable modifier '::=' 925 change debug log for variable evaluation flags to lowercase 926 9272021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 928 929 * VERSION (_MAKE_VERSION): 20210314 930 Merge with NetBSD make, pick up 931 o var.c: avoid evaluating many modifiers in parse only mode 932 in strict mode (-dL) many variable references are parsed twice, 933 the first time just to report parse errors early, so we want to 934 avoid side effects and wasted effort to the extent possible. 935 9362021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 937 938 * VERSION (_MAKE_VERSION): 20210226 939 Merge with NetBSD make, pick up 940 o remove freestanding freeIt variables 941 link via FStr 942 o var.c: restructure code in ParseVarname to target human readers 943 improve error message for; 944 bad modifier in variable expression 945 unclosed modifier 946 unknown modifier 947 remove redundant parameter of ApplySingleModifier 948 explain non-obvious code around indirect variable modifiers 949 quote ':S' in error message about missing delimiter 950 extract ParseModifier_Match into separate function 951 add context information to error message about ':range' modifier 952 add quotes around variable name in an error message 953 reorder code in ModifyWords 954 use more common parameter order for VarSelectWords 955 make ModifyWord_Subst a little easier to understand 956 do not expand variable name from the command line twice 957 extract ExistsInCmdline from Var_SetWithFlags 958 save a hash map lookup when defining a cmdline variable 959 clean up VarAdd, Var_Delete, Var_ReexportVars 960 use bit-shift expressions for VarFlags constants 961 rename constants for VarFlags 962 rename ExprDefined constants for debug logging 963 rename ExprStatus to ExprDefined 964 split parameters for evaluating variable expressions 965 reduce redundant code around ModifyWords 966 print error about failed shell command before overwriting variable 967 clean up ValidShortVarname, ParseVarnameShort 968 rename VarExprStatus to ExprStatus 969 add functions for assigning the value of an expression 970 rename ApplyModifiersState_Define to Expr_Define 971 condense the code for parsing :S and :C modifiers 972 9732021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 974 975 * VERSION (_MAKE_VERSION): 20210206 976 Merge with NetBSD make, pick up 977 o unit-tests: use private TMPDIR to avoid errors from other users 978 9792021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 980 981 * VERSION (_MAKE_VERSION): 20210205 982 Merge with NetBSD make, pick up 983 o avoid strdup in mkTempFile 984 o always use vfork 985 o rename context and ctxt to scope 986 o rename some VAR constants to SCOPE 987 o Var_ functions, move the scope to the front 988 o use shortcut functions Global_Set and Global_Append 989 o add shortcut Global_Delete for deleting a global variable 990 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 991 o compat.c: when exiting due to an error, print graph information 992 o enum.c: remove overengineered Enum_ValueToString 993 o make.c: remove unused INTERNAL flag 994 remove unused return type of MakeBuildParent 995 o parse.c: replace parse error "Need an operator" with better message 996 o var.c: improve documentation about variable scopes 997 rename Var_ValueDirect to GNode_ValueDirect 998 rename old Var_SetWithFlags to Var_SetExpandWithFlags 999 merge SetVar into Var_SetWithFlags 1000 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1001 split Var_Append into Var_Append and Var_AppendExpand 1002 replace enum bit-set with bit-field 1003 o unit-tests/var-op-shell: use kill rather than kill -14 1004 which broke on darwin with recent update. 1005 10062021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1007 1008 * configure.in: check for sig_atomic_t and define it as 'int' 1009 if missing. 1010 1011 * VERSION (_MAKE_VERSION): 20210201 1012 Merge with NetBSD make, pick up 1013 o use sig_atomic_t for caught_sigchld 1014 10152021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1016 1017 * VERSION (_MAKE_VERSION): 20210130 1018 Merge with NetBSD make, pick up 1019 o more unit tests 1020 o convert SearchPath to struct 1021 o split Buf_Destroy into Buf_Done and Buf_DoneData 1022 o for.c: split For_Eval into separate functions 1023 rename struct For to struct ForLoop 1024 o job.c: do not create empty shell files in jobs mode 1025 rename JobOpenTmpFile to JobWriteShellCommands 1026 reduce unnecessary calls to waitpid 1027 o parse.c: in -dp mode, print stack trace with each diagnostic 1028 10292021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1030 1031 * VERSION (_MAKE_VERSION): 20210123 1032 Merge with NetBSD make, pick up 1033 o rename Dir_Expand to SearchPath_Expand 1034 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1035 o cond.c: fix debug output for comparison operators in conditionals 1036 o dir.c: split Dir_FindFile into separate functions 1037 10382021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1039 1040 * VERSION (_MAKE_VERSION): 20210120 1041 Merge with NetBSD make, pick up 1042 o fix some more lint nits 1043 o refine some unit tests for portability 1044 o cond.c: rework parsing 1045 10462021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1047 1048 * VERSION (_MAKE_VERSION): 20210110 1049 Merge with NetBSD make, pick up 1050 o fix lint warnings 1051 o consistently use boolean expressions in conditions 1052 10532021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1054 1055 * VERSION (_MAKE_VERSION): 20210108 1056 Merge with NetBSD make, pick up 1057 o job.c: back to polling token pipe if we want a token 1058 o main.c: always print 'stopped in' on first call 1059 The execption is if we bail because of an abort token 1060 in which case just exit 6. 1061 10622021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1063 1064 * VERSION (_MAKE_VERSION): 20210101 1065 Merge with NetBSD make, pick up 1066 o Happy New Year! 1067 o rename CmdOpts.lint to strict 1068 o exit 2 on technical errors 1069 o replace pointers in controlling conditions with booleans 1070 o replace global preserveUndefined with VARE_KEEP_UNDEF 1071 o compat.c: re-export variables from the actual make process 1072 if using vfork this is the effect anyway 1073 o cond.c: clean up VarParseResult constants 1074 o for.c: fix undefined behavior in SubstVarLong 1075 make control flow in SubstVarLong of .for loops more obvious 1076 clean up SubstVarShort in .for loops 1077 extract ForSubstBody from ForReadMore 1078 clean up ForReadMore 1079 simplify termination condition for .for loop 1080 add error handling for .for loop items 1081 job.c: re-export variables from the actual make process 1082 parse.c: remove mmap for loading files, only allow files < 1 GiB 1083 fix edge case in := with undefined in variable name 1084 skip variable expansion in ParseDependencyTargetWord 1085 var.c: split ExportVar into separate functions 1086 clean up code in extracted ExportVar functions 1087 remove dead code from ApplyModifiersIndirect 1088 split Var_Subst into easily understandable functions 1089 clean up VarParseResult constants 1090 10912020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1092 1093 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1094 10952020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1096 1097 * VERSION (_MAKE_VERSION): 20201222 1098 Merge with NetBSD make, pick up 1099 o make DEBUG macro return boolean 1100 o parse.c: fix assertion failure for files without trailing newline 1101 o var.c: allow .undef to undefine multiple variables at once 1102 remove excess newline from parse errors 1103 11042020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1105 1106 * VERSION (_MAKE_VERSION): 20201221 1107 Merge with NetBSD make, pick up 1108 o some unit-test updates 1109 11102020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1111 1112 * VERSION (_MAKE_VERSION): 20201220 1113 Merge with NetBSD make, pick up 1114 o more unit tests 1115 o return FStr from Var_Parse and Var_Value 1116 o spell nonexistent consistently 1117 o add str_basename to reduce duplicate code 1118 o compat.c: fix .ERROR_TARGET in compat -k mode 1119 extract InitSignals from Compat_Run 1120 extract UseShell from Compat_RunCommand 1121 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1122 o for.c: rename ForIterate to ForReadMore 1123 o hash.c: clean up hash function for HashTable 1124 o lst.c: rename Vector.priv_cap to cap 1125 o main.c: remove constant parameter from MakeMode 1126 o make.c: use symbolic time for 0 in Make_Recheck 1127 extract MakeChildren from MakeStartJobs 1128 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1129 fix error message for .info/.warning/.error without argument 1130 extract Var_Undef from ParseDirective 1131 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1132 rename mode constants for ParseGetLine to be more expressive 1133 reduce debugging details in Parse_SetInput 1134 fix line numbers in .for loops 1135 split ParseGetLine into separate functions 1136 fix garbled output for failed shell command 1137 var.c: remove redundant assignment in ApplyModifier_SysV 1138 error out on unknown variable modifiers at parse time 1139 remove wrong error message for indirect modifier in lint mode 1140 extract ApplySingleModifier from ApplyModifiers 1141 use FStr for memory management in Var_SetWithFlags 1142 extract SetVar from Var_SetWithFlags 1143 use FStr in VarNew 1144 extract string functions from ApplyModifier_To 1145 error out if .undef has not exactly 1 argument 1146 extract Var_DeleteVar from Var_Delete 1147 extract Var_Undef from ParseDirective 1148 clean up memory management for expanding variable expressions 1149 11502020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1151 1152 * avoid %zu 1153 1154 * lst.c: avoid anonymous union 1155 1156 * VERSION (_MAKE_VERSION): 20201212 1157 Merge with NetBSD make, pick up 1158 o more unit tests 1159 o inline Targ_Ignore and Targ_Silent 1160 o split JobFlags into separate fields 1161 o remove const from function parameters (left overs from refactoring) 1162 o eliminate boolean argument of Var_Export 1163 o make API of Buf_Init simpler 1164 o rename ParseRunOptions to ParseCommandFlags 1165 o replace *line with line[0] 1166 o compat.c: fix wrong exit status for multiple failed main targets 1167 refactor Compat_Run to show the error condition more clearly 1168 don't make .END if the main targets already failed (-k mode) 1169 fix exit status in -k mode if a dependency fails 1170 o for.c: clean up Buf_AddEscaped in .for loops 1171 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1172 make Job_Touch simpler 1173 refactor JobFinish 1174 rename Shell.exitFlag to errFlag 1175 move Job.xtraced to ShellWriter 1176 make printing of shell commands independent from the job 1177 rename shell flags in struct Shell 1178 extract JobOpenTmpFile from JobStart 1179 rename RunFlags to CommandFlags 1180 split various Job.* into separate fields 1181 rename commandShell to shell 1182 extract InitShellNameAndPath from Shell_Init 1183 replace signal handling macros with local functions 1184 replace macro MESSAGE with local function 1185 parse.c: error out on null bytes in makefiles 1186 error out on misspelled directives 1187 rename IFile.nextbuf to readMore 1188 fix undefined behavior in ParseEOF 1189 str.c: remove redundant call to strlen in Str_Words 1190 var.c: error out on misspelled .unexport-env 1191 error out on misspelled .export directives 1192 extract ExportVars from Var_Export 1193 extract ExportVarsExpand from Var_Export 1194 eliminate boolean argument of Var_Export 1195 fix undefined behavior when exporting ${:U } 1196 rename Var_ExportVars to Var_ReexportVars 1197 rename Var_Export1 to ExportVar 1198 11992020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1200 1201 * VERSION (_MAKE_VERSION): 20201206 1202 Merge with NetBSD make, pick up 1203 o more unit tests 1204 o inline macros for debug logging 1205 o use consistent variable names for list nodes 1206 o define constants for enum zero-values 1207 o dir.c: use fixed format for debug output of the directory cache 1208 remove Dir_InitDir 1209 o lst.c: inline Lst_Enqueue, Vector_Done 1210 o meta.c: remove unused parameter from meta_needed 1211 o parse.c: rename parse functions 1212 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1213 o targ.c: don't concatenate identifiers in Targ_PrintType 1214 o var.c: remove comment decoration 1215 extract UnexportVars from Var_UnExport 1216 extract GetVarnamesToUnexport from Var_UnExport 1217 extract UnexportEnv from Var_UnExport 1218 extract UnexportVar from Var_UnExport 1219 move CleanEnv to UnexportVars 1220 replace pointer comparisons with enum 1221 add FStr to var.c to make memory handling simpler 1222 use FStr in Var_UnExport 1223 move type definitions in var.c to the top 1224 extract FreeEnvVar from Var_Parse 1225 extract ShuffleStrings from ApplyModifier_Order 1226 12272020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1228 1229 * VERSION (_MAKE_VERSION): 20201130 1230 Merge with NetBSD make, pick up 1231 o add unit tests for META MODE 1232 o reduce memory allocation for dirSearchPath, GNode.parents, 1233 GNode.children, OpenDirs 1234 o reduce pointer indirection for GNode.cohorts and 1235 GNode.implicitParents 1236 o remove pointer indirection from GNode.commands 1237 o inline Lst_ForEachUntil in meta mode 1238 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1239 clean up memory management for CachedDirs 1240 fix the reference count of dotLast going negative 1241 add debug logging for OpenDirs_Done 1242 extract CacheNewDir from Dir_AddDir 1243 add debug logging for reference counting of CachedDir 1244 rename some Dir functions to SearchPath 1245 o job.c: rename some global variables 1246 o main.c: reduce memory allocation in ReadBuiltinRules 1247 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1248 CmdOpts.makefiles 1249 Add .MAKE.UID and .MAKE.GID 1250 o make.c: reduce memory allocation for/in toBeMade, 1251 Make_ProcessWait, Make_ExpandUse 1252 o meta.c: reduce memory allocation in meta_oodate 1253 o parse.c: reduce memory allocations for parsing dependencies and 1254 targets 1255 o suff.c: reduce memory allocation in suffix handling 1256 12572020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1258 1259 * VERSION (_MAKE_VERSION): 20201124 1260 Merge with NetBSD make, pick up 1261 o .MAKE.{UID,GID} represent uid and gid running make. 1262 o fix error handling for .BEGIN and .END dependency in -k mode 1263 o fix missing "Stop." after failed .END node in -k mode 1264 o use properly typed comparisons in boolean contexts 1265 o replace a few HashTable_CreateEntry with HashTable_Set 1266 o add HashSet type 1267 o compat.c: split Compat_Make into smaller functions 1268 extract DebugFailedTarget from Compat_RunCommand 1269 o dir.c: refactor Dir_UpdateMTime 1270 migrate CachedDir.files from HashTable to HashSet 1271 o make.c: add high-level API for GNode.made 1272 12732020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1274 1275 * VERSION (_MAKE_VERSION): 20201122 1276 Merge with NetBSD make, pick up 1277 o rename GNode.context to vars 1278 o suff.c: cleanup and refactor 1279 rename some functions and vars to better reflect usage 1280 add high-level API for CandidateSearcher 1281 o targ.c: add more debug logging for suffix handling 1282 o more unit tests 1283 o add debug logging for setting and resetting the main target 1284 12852020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1286 1287 * VERSION (_MAKE_VERSION): 20201117 1288 Merge with NetBSD make, pick up 1289 o fix some unit-tests when .SHELL is dash 1290 o rename Targ_NewGN to GNode_New 1291 o make some GNode functions const 1292 o main.c: call Targ_Init before Var_Init 1293 cleanup PrintOnError, getTmpdir and ParseBoolean 1294 o var.c: fix error message of failed :!cmd! modifier 1295 12962020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1297 1298 * VERSION (_MAKE_VERSION): 20201114 1299 Merge with NetBSD make, pick up 1300 o replace a few HashTable_CreateEntry with HashTable_Set 1301 o clean up cached_stats 1302 o rename DEFAULT to defaultNode 1303 o remove redundant struct make_stat 1304 o cond.c: in lint mode, check for ".else <cond>" 1305 use bitset for IfState 1306 replace large switch with if-else in Cond_EvalLine 1307 o job.c: clean up JobExec, JobStart, JobDoOutput 1308 use stderr for error message about failed touch 1309 clean up Job_Touch 1310 replace macro DBPRINTF with JobPrintln 1311 rename JobState to JobStatus 1312 main.c: switch cache for realpath from GNode to HashTable 1313 clean up Fatal 1314 clean up InitDefSysIncPath 1315 use progname instead of hard-coded 'make' in warning 1316 rename Main_SetVarObjdir to SetVarObjdir 1317 make.1: document the -S option 1318 make.c: fix debug output for GNode details 1319 use symbolic names in debug output of GNodes 1320 13212020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1322 1323 * configure.in: fix --with-force-machine-arch 1324 1325 * VERSION (_MAKE_VERSION): 20201112 1326 Merge with NetBSD make, pick up 1327 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1328 checks in InitObjdir. Explicit .OBJDIR target always allows 1329 read-only directory. 1330 o cond.c: clean up Cond_EvalLine 1331 13322020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1333 1334 * VERSION (_MAKE_VERSION): 20201111 1335 Merge with NetBSD make, pick up 1336 o more unit-tests 1337 o style cleanup 1338 remove redundant parentheses from sizeof operator 1339 replace character literal 0 with '\0'. 1340 replace pointer literal 0 with NULL. 1341 remove redundant parentheses. 1342 replace (expr & mask) == 0 with !(expr & mask). 1343 use strict typing in conditions of the form !var 1344 o rename Make_OODate to GNode_IsOODate 1345 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1346 o rename Var_Set_with_flags to Var_SetWithFlags 1347 o rename dieQuietly to shouldDieQuietly 1348 o buf.c: make API of Buf_Init simpler 1349 o compat.c: clean up Compat_Make, Compat_RunCommand, 1350 CompatDeleteTarget and CompatInterrupt 1351 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1352 clean up CondParser_Comparison 1353 o main.c: rename getBoolean and s2Boolean 1354 rename MAKEFILE_PREFERENCE for consistency 1355 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1356 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1357 replace emptyString with allocated empty string 1358 error out on unclosed expressions after the colon 1359 13602020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1361 1362 * VERSION (_MAKE_VERSION): 20201101 1363 Merge with NetBSD make, pick up 1364 o negate NoExecute to GNode_ShouldExecute 1365 o job.c: rename JobMatchShell to FindShellByName 1366 extract EscapeShellDblQuot from JobPrintCommand 1367 extract ParseRunOptions from JobPrintCommand 1368 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1369 treat malformed :range, :ts and :[...] as errors 1370 add tests for the variable modifiers :[words] and :range 1371 13722020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1373 1374 * VERSION (_MAKE_VERSION): 20201031 1375 Merge with NetBSD make, pick up 1376 o format #include directives consistently 1377 o do not look up local variables like .TARGET anywhere else 1378 o main.c: Main_SetObjdir is first called for curdir which may be 1379 readonly 1380 reduce the scope where recursive expressions are detected 1381 remove redundant :tl from getBoolean 1382 clean up mkTempFile 1383 o meta.c: simplify memory allocation in meta_create and meta_oodate 1384 o parse.c: extract loadedfile_mmap from loadfile 1385 o trace.c: document possible undefined behavior with .CURDIR 1386 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1387 rename ismeta to is_shell_metachar 1388 remove debug logging for the :Q variable modifier 1389 rename VarIsDynamic to VarnameIsDynamic 1390 use consistent parameter order in varname parsing functions 1391 extract ParseVarnameLong from Var_Parse 1392 extract ParseVarnameShort from Var_Parse 1393 fix type of ParseModifierPart parameter delim 1394 extract IsEscapedModifierPart from ParseModifierPart 1395 clean up ModifyWords 1396 add test for combining the :@ and :? variable modifiers 1397 13982020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1399 1400 * VERSION (_MAKE_VERSION): 20201030 1401 Merge with NetBSD make, pick up 1402 o change char * to void * in Var_Value 1403 o make iterating over HashTable simpler 1404 o rename VAR_CMD to VAR_CMDLINE 1405 o cond.c: clean up is_separator 1406 fix parse error in string literal in conditional 1407 o main.c: do not use objdir that is not writable 1408 in lint mode, exit with error status on errors 1409 o parse.c: clean up StrContainsWord 1410 fix out-of-bounds pointer in ParseTrackInput 1411 o var.c: rename Str_SYSVMatch and its parameters 1412 remove unsatisfiable conditions in Var_Set_with_flags 1413 document where the variable name is expanded 1414 fix documentation for VARP_SUB_ONE 1415 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1416 document VAR_READONLY 1417 prevent appending to read-only variables 1418 extract MayExport from Var_Export1 1419 remove redundant evaluations in VarFind 1420 replace VarFindFlags with a simple Boolean 1421 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1422 14232020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1424 1425 * VERSION (_MAKE_VERSION): 20201028 1426 Merge with NetBSD make, pick up 1427 o rename defIncPath to defSysIncPath 1428 o initialize all CmdOpts fields 1429 o lst.c: inline Vector_Get 1430 o main.c: refactor main extract 1431 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1432 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1433 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1434 o parse.c: merge curFile into includes 1435 rename predecessor to order_pred 1436 sort ParseSpecial alphabetically 1437 remove unused, undocumented .NOEXPORT 1438 rename ParseSpecial enum values consistently 1439 rename some fields of struct IFile 1440 14412020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1442 1443 * VERSION (_MAKE_VERSION): 20201026 1444 Merge with NetBSD make, pick up 1445 o group the command line options and arguments into a struct 1446 o rename GNode.cmgn to youngestChild 1447 o rename hash functions to identify the type name 1448 o negate OP_NOP and rename it to GNode_IsTarget 1449 o add GNode_Path to access the path of a GNode 1450 o remove macros MIN and MAX 1451 o remove unused Lst_Find and Lst_FindFrom 1452 o arch.c: and make Arch_FindLib simpler 1453 clean up code layout 1454 make Arch_ParseArchive simpler 1455 o cond.c: inline CondFindStrMatch into FuncMake 1456 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1457 omit trailing space in debug output for expanding file patterns 1458 refactor DirMatchFiles 1459 document that the SearchPath of Dir_FindFile may be NULL 1460 remove UNCONST from Dir_Expand 1461 inline DirFindName 1462 o for.c: clean up code for handling .for loops 1463 o hash.c: print hash in debug log with fixed width 1464 clean up hash table functions 1465 reduce amount of string hashing 1466 o job.c: refactor JobDeleteTarget 1467 use proper enum constants for aborting 1468 convert result of JobStart from macros to enum 1469 convert abort reason macros to enum 1470 rework Job_CheckCommands to reduce indentation 1471 rename Shell fields 1472 add field names in declaration of DEFSHELL_CUSTOM 1473 convert JobState and JobFlags to enum types 1474 move handling of the "..." command to JobPrintCommands 1475 o lst.c: clean up 1476 refactor LstNodeNew 1477 remove Lst_Open, Lst_Next, Lst_Close 1478 remove code for circular lists from Lst_Next 1479 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1480 /dev/null or anything starting with "no" 1481 convert macros for debug flags into enum 1482 o make.c: inline Lst_Copy in Make_ExpandUse 1483 o meta.c: inline Lst_Find in meta_oodate 1484 make Lst_RemoveIf simpler in meta_oodate 1485 o parse.c: convert error level for Parse_Error to an enum 1486 o suff.c: properly terminate debug output with newline 1487 add more details to DEBUG_SRC log 1488 replace Dir_CopyDir with Dir_CopyDirSearchPath 1489 don't modify GNode name while rebuilding the suffix graph 1490 o var.c: reduce duplicate code in VarFind 1491 14922020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1493 1494 * VERSION (_MAKE_VERSION): 20201022 1495 Merge with NetBSD make, pick up 1496 o more refactoring and simplification to reduce code size 1497 o var.c: extract CanonicalVarname from VarFind 1498 o make.c: extract UpdateImplicitParentsVars from Make_Update 1499 o main.c: extract PrintVar from doPrintVars 1500 extract HandlePWD from main 1501 o lst.c: inline simple Lst getters 1502 remove unused Lst_ForEach 1503 o job.c: move struct Shell from job.h to job.c 1504 o more unit tests 1505 15062020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1507 1508 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1509 15102020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1511 1512 * VERSION (_MAKE_VERSION): 20201018 1513 Merge with NetBSD make, pick up 1514 o remove USE_IOVEC 1515 o rename some Hash_* apis to Hash* 1516 o replace execError with execDie 1517 o rename Lst_Init to Lst_New 1518 o add tags to enum types 1519 o rename Stack to Vector 1520 o parse.c: more refactoring 1521 o unit-tests: make some tests use line buffered stdout 1522 o unit-tests/Makefile: in meta mode do not make all tests depend on 1523 Makefile, it isn't necessary. 1524 15252020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1526 1527 * main.c: check for CTL_HW being defined. 1528 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1529 disable opt-debug-jobs test until it works on ubuntu 1530 1531 * VERSION (_MAKE_VERSION): 20201010 1532 Merge with NetBSD make, pick up 1533 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1534 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1535 o main.c: extract init_machine and init_machine_arch from main 1536 allow to disable debug logging options 1537 o parse.c: enable format string truncation warnings 1538 extract parsing of sources from ParseDoDependency 1539 split ParseDoSrc into smaller functions 1540 hide implementation details from Parse_DoVar 1541 clean up parsing of variable assignments 1542 split Parse_DoVar into manageable pieces 1543 don't modify the given line during Parse_DoVar 1544 fix out-of-bounds memory access in Parse_DoVar 1545 fix parsing of the :sh assignment modifier 1546 o var.c: rework memory allocation for the name of variables 1547 extract ApplyModifier_Literal into separate function 1548 in lint mode, reject modifiers without delimiter 1549 do not export variable names starting with '-' 1550 o fix double-free bug in -DCLEANUP mode 1551 o more cleanup to enable higher warnings level 1552 o more unit tests 1553 15542020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1555 1556 * VERSION (_MAKE_VERSION): 20201002 1557 Merge with NetBSD make, pick up 1558 o dir.c: use hash table for looking up open directories by name 1559 o main.c: clean up option handling 1560 o parse.c: add missing const for Parse_AddIncludeDir 1561 o var.c: ApplyModifier_To, update pp in each branch 1562 o remove redundant function prototypes 1563 o more unit tests 1564 15652020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1566 1567 * VERSION (_MAKE_VERSION): 20201001 1568 Merge with NetBSD make, pick up 1569 o compat.c: comment about "..." 1570 15712020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1572 1573 * VERSION (_MAKE_VERSION): 20200930 1574 Merge with NetBSD make, pick up 1575 o job.c: split Job.jobPipe into 2 separate fields 1576 replace Lst_Open with direct iteration 1577 o lst.c: remove redundant assertions 1578 o targ.c: replace Lst_Open with direct iteration 1579 o var.c: fix bug in evaluation of indirect variable modifiers 1580 extract ApplyModifier_Quote into separate function 1581 o make debug logging simpler 1582 15832020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1584 1585 * VERSION (_MAKE_VERSION): 20200927 1586 Merge with NetBSD make, pick up 1587 o parse.c: ensure parse errors result in 'stopped in' message. 1588 o compat.c: make parameter of Compat_RunCommand const 1589 o main.c: extract InitVarTarget from main 1590 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1591 refactor ParseDoDependency 1592 o var.c: Var_Subst no longer returns string result 1593 rename Var_ParsePP back to Var_Parse 1594 in lint mode, improve error handling for undefined variables 1595 extract ParseVarname from Var_Parse 1596 o rename Lst_ForEach to Lst_ForEachUntil 1597 o inline Lst_ForEachUntil in several cases 1598 o clean up API for finding and creating GNodes 1599 o fix assertion failure in -j mode with .END node 1600 o inline and remove LstNode_Prev and LstNode_Next 1601 o use fine-grained type names for lists and their nodes 1602 o more unit tests 1603 16042020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1605 1606 * VERSION (_MAKE_VERSION): 20200911 1607 Merge with NetBSD make, pick up 1608 o cond.c: split EvalComparison into smaller functions 1609 reorder parameters of condition parsing functions 1610 reduce code size in CondParser_Eval 1611 rename CondGetString to CondParser_String 1612 add CondLexer_SkipWhitespace 1613 group the condition parsing state into a struct 1614 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1615 o migrate Var_Parse to Var_ParsePP 1616 o add wrappers around ctype.h functions 1617 o lst.c: use a stack instead of a list for the nested include path 1618 o more unit tests 1619 16202020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1621 1622 * make-bootstrap.sh.in: adjust object list 1623 16242020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1625 1626 * VERSION (_MAKE_VERSION): 20200902 1627 Merge with NetBSD make, pick up 1628 o use make_stat to ensure no confusion over valid fields 1629 returned by cached_stat 1630 o var.c: make VarQuote const-correct 1631 o add unit tests for .for 1632 16332020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1634 1635 * VERSION (_MAKE_VERSION): 20200901 1636 Merge with NetBSD make, pick up 1637 o rename Hash_Table fields 1638 o make data types in Dir_HasWildcards more precise 1639 16402020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1641 1642 * VERSION (_MAKE_VERSION): 20200831 1643 Merge with NetBSD make, pick up 1644 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1645 o lst.c: Lst_Open renable assert that list isn't open 1646 o unit test for .TARGET dependent flags 1647 o var.c: fix aliasing bug in VarUniq 1648 o more unit tests for :u 1649 16502020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1651 1652 * VERSION (_MAKE_VERSION): 20200830 1653 Merge with NetBSD make, pick up 1654 o allow for strict type checking for Boolean 1655 o Var_Parse never returns NULL 1656 o Var_Subst never returns NULL 1657 o Lst_Find now takes boolean match function 1658 o rename Lst_Memeber to Lst_FindDatum 1659 o rename LstNode functions to match their type 1660 o rename GNode.iParents to implicitParents 1661 o fix assertion failure for .SUFFIXES in archives 1662 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1663 remove unreachable code from CompatRunCommand 1664 o main.c: simplify getBoolean 1665 o stc.c: replace brk_string with simpler Str_Words 1666 o suff.c: add debug macros 1667 16682020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1669 1670 * VERSION (_MAKE_VERSION): 20200828 1671 Merge with NetBSD make, pick up 1672 o lst.c: inline LstIsValid and LstNodeIsValid 1673 o remove trailing S from Lst function names after migration complete 1674 o more comment cleanup/clarification 1675 o suff.c: clean up suffix handling 1676 o more unit tests 1677 16782020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1679 1680 * VERSION (_MAKE_VERSION): 20200826 1681 Merge with NetBSD make, pick up 1682 o enum.c: distinguish between bitsets containing flags and 1683 ordinary enums 1684 o var.c: fix error message for ::!= modifier with shell error 1685 o fix bugs in -DCLEANUP mode 1686 16872020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1688 1689 * VERSION (_MAKE_VERSION): 20200824 1690 Merge with NetBSD make, pick up 1691 o in debug mode, print GNode details in symbols 1692 16932020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1694 1695 * VERSION (_MAKE_VERSION): 20200823 1696 Merge with NetBSD make, pick up 1697 o lst.c: more asserts, 1698 make args to Lst_Find match others. 1699 o var.c: pass flags to VarAdd 1700 o arch.c: use Buffer 1701 o str.c: brk_string return size_t for nwords 1702 o more unit tests 1703 17042020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1705 1706 * VERSION (_MAKE_VERSION): 1707 Merge with NetBSD make, pick up 1708 o var.c: support for read-only variables eg .SHELL 1709 being the shell used to run scripts. 1710 o lst.c: more simplification 1711 o more documentation and style cleanup 1712 o more unit tests 1713 o ensure unit-test/Makefile is run by TEST_MAKE 1714 o reduce duplication of header inclusion 1715 17162020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1717 1718 * VERSION (_MAKE_VERSION): 20200821 1719 Merge with NetBSD make, pick up 1720 o lst.c: revert invalid assertion - but document it 1721 o dir.c: split Dir_Init into two functions 1722 17232020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1724 1725 * lst.c: needs inttypes.h on Linux 1726 1727 * VERSION (_MAKE_VERSION): 20200820 1728 Merge with NetBSD make, pick up 1729 o make.1: clarify some passages 1730 o var.c: more cleanup, clarify comments 1731 o make_malloc.c: remove unreachable code 1732 o cond.c: make CondGetString easier to debug 1733 o simplify list usage 1734 o unit-tests: more 1735 17362020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1737 1738 * VERSION (_MAKE_VERSION): 20200816 1739 Merge with NetBSD make, pick up 1740 o refactor unit-tests to be more fine grained 1741 not all tests moved yet 1742 17432020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1744 1745 * VERSION (_MAKE_VERSION): 20200814 1746 Merge with NetBSD make, pick up 1747 o more str_concat variants 1748 o more enums for flags 1749 o var.c: cleanup for higher warnings level 1750 17512020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1752 1753 * VERSION (_MAKE_VERSION): 20200810 1754 Merge with NetBSD make, pick up 1755 o more unit tests 1756 o general comment and style cleanup 1757 17582020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1759 1760 * VERSION (_MAKE_VERSION): 20200808 1761 Merge with NetBSD make, pick up 1762 o enum.[ch]: streamline, enums for use in flags and debug output 1763 o cond.c: cleanup 1764 o var.c: reduce duplicate code for modifiers 1765 debug logging for Var_Parse 1766 more detailed debug output 1767 o more unit tests 1768 17692020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1770 1771 * unit-tests/Makefile: -r for recursive and include Makefile.inc 1772 so I can run tests in meta mode 1773 supress extra noise if in meta mode 1774 1775 * VERSION (_MAKE_VERSION): 20200806 1776 Merge with NetBSD make, pick up 1777 o parse.c: remove VARE_WANTRES for LINT 1778 we just want to check parsing (for now). 1779 17802020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1781 1782 * VERSION (_MAKE_VERSION): 20200805 1783 Merge with NetBSD make, pick up 1784 o make.1: Rework the description of dependence operators 1785 17862020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1787 1788 * VERSION (_MAKE_VERSION): 20200803 1789 Merge with NetBSD make, pick up 1790 o revert some C99 usage, for max portability 1791 o unit-tests/lint 1792 17932020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 1794 1795 * VERSION (_MAKE_VERSION): 20200802 1796 Merge with NetBSD make, pick up 1797 o more unit tests 1798 17992020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 1800 1801 * Remove NetBSD specific plumbing from unit-tests/Makefile 1802 1803 * VERSION (_MAKE_VERSION): 20200801 1804 Merge with NetBSD make, pick up 1805 o make Var_Value return const 1806 o size_t for buf sizes 1807 o optimize some buffer operations - avoid strlen 1808 18092020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1810 1811 * VERSION (_MAKE_VERSION): 20200731 1812 Merge with NetBSD make, pick up 1813 o var.c: fix undefinded behavior for incomplete :t modifier 1814 fixes unit-test/moderrs on Ubuntu 1815 o parse.c: When parsing variable assignments other than := 1816 if DEBUG(LINT) test substition of value, so we get a file and 1817 line number in the resulting error. 1818 o dir.c: fix parsing of nested braces in dependency lines 1819 add unit-tests 1820 18212020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1822 1823 * VERSION (_MAKE_VERSION): 20200730 1824 Merge with NetBSD make, pick up 1825 o var.c: minor cleanup 1826 o unit-tests: more tests to improve code coverage 1827 18282020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 1829 1830 * VERSION (_MAKE_VERSION): 20200728 1831 Merge with NetBSD make, pick up 1832 o var.c: more optimizations 1833 18342020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1835 1836 * VERSION (_MAKE_VERSION): 20200726 1837 Merge with NetBSD make, pick up 1838 o collapse lsd.lib into lst.c - reduce code size and allow inlining 1839 o lots of function comment updates 1840 o var.c: more optimizations 1841 o make return of Var_Parse const 1842 18432020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1844 1845 * VERSION (_MAKE_VERSION): 20200720 1846 Merge with NetBSD make, pick up 1847 o DEBUG_HASH report stats at end and tone down the noise 1848 o var.c: each flag type gets its own prefix. 1849 move SysV string matching to var.c 1850 make ampersand in ${VAR:from=to&} an ordinary character 1851 cleanup and simplify implementation of modifiers 1852 o make.1: move documentation for assignment modifiers 1853 18542020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1855 1856 * VERSION (_MAKE_VERSION): 20200718 1857 Merge with NetBSD make, pick up 1858 o DEBUG_HASH to see how well the hash tables are working 1859 18602020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1861 1862 * bsd.after-import.mk: make sure we update unit-tests/Makefile 1863 18642020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1865 1866 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 1867 1868 * VERSION (_MAKE_VERSION): 20200710 1869 Merge with NetBSD make, pick up 1870 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 1871 o meta.c: target flagged .META is out-of-date if meta file missing 1872 18732020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 1874 1875 * VERSION (_MAKE_VERSION): 20200709 1876 Merge with NetBSD make, pick up 1877 o cond.c: fix for compare_expression when doEval=0 1878 o unit-tests/Makefile: rework 1879 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 1880 18812020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1882 1883 * VERSION (_MAKE_VERSION): 20200704 1884 Merge with NetBSD make, pick up 1885 (most of this by rillig@) 1886 o lots of style and white-space cleanup 1887 o lots more unit tests for variable modifiers 1888 o simplified description of some functions 1889 o str.c: refactor Str_Match 1890 o var.c: debugging output for :@ 1891 constify VarModify parameter 1892 fix :hash modifier on 16-bit platforms 1893 remove unnecessary forward declarations 1894 refactor ApplyModifier_SysV to have less indentation 1895 simplify code for :E and :R 1896 clean up code for :H and :T 1897 refactor ApplyModifiers 1898 1899 * var.c: we need stdint.h on some platforms to get uint32_t 1900 * unit-test/Makefile: we need to supress the specific error 1901 for RE substitution error in modmisc, since it varies accross 1902 different OS. 1903 19042020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 1905 1906 * VERSION (_MAKE_VERSION): 20200702 1907 Merge with NetBSD make, pick up 1908 o var.c: more improvements to avoiding unnecessary evaluation 1909 use enums for flags 1910 o remove flags arg to Var_Set which outside of var.c is always 0 1911 19122020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1913 1914 * VERSION (_MAKE_VERSION): 20200701 1915 Merge with NetBSD make, pick up 1916 o var.c: with change to cond.c; ensure that nested variables 1917 within a variable name are expanded. 1918 o unit-tests/varmisc.mk: test for nested varname 1919 19202020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 1921 1922 * VERSION (_MAKE_VERSION): 20200629 1923 Merge with NetBSD make, pick up 1924 o cond.c: do not eval unnecessary terms of conditionals. 1925 19262020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 1927 1928 * VERSION (_MAKE_VERSION): 20200625 1929 Merge with NetBSD make, pick up 1930 o meta.c: report error if lseek in filemon_read fails 1931 19322020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1933 1934 * VERSION (_MAKE_VERSION): 20200622 1935 Merge with NetBSD make, pick up 1936 o dieQuietly: ignore OP_SUBMAKE as too aggressive 1937 19382020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 1939 1940 * VERSION (_MAKE_VERSION): 20200619 1941 Merge with NetBSD make, pick up 1942 o str.c: performance improvement for Str_Match for multiple '*' 1943 o dieQuietly: supress the failure output from make 1944 when failing node is a sub-make or a sibling failed. 1945 This cuts down greatly on unhelpful noise at the end of 1946 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 1947 19482020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1949 1950 * FILES: add LICENSE to appease some packagers. 1951 This is an attempt to fairly represent the license on almost 1952 200 files, which are almost all BSD-3-Clause 1953 The few exceptions being more liberal. 1954 1955 * VERSION (_MAKE_VERSION): 20200610 1956 Merge with NetBSD make, pick up 1957 o unit test for :Or 1958 19592020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1960 1961 * VERSION (_MAKE_VERSION): 20200606 1962 Merge with NetBSD make, pick up 1963 o make.1: cleanup 1964 1965 * Makefile: fix depends for main.o which broke MAKE_VERSION 1966 19672020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 1968 1969 * VERSION (_MAKE_VERSION): 20200605 1970 Merge with NetBSD make, pick up 1971 o dir.c: cached_stats - don't confuse stat and lstat results. 1972 o var.c: add :Or for reverse sort. 1973 19742020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1975 1976 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1977 also if --with-filemon= specifies path to filemon.h 1978 set use_filemon=dev 1979 * dirname.c: remove include of namespace.h 1980 19812020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1982 1983 * VERSION (_MAKE_VERSION): 20200517 1984 Merge with NetBSD make, pick up 1985 o modified dollar tests to avoid shell dependencies 1986 o new tests for .INCLUDEFROM 1987 19882020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1989 1990 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1991 to not depend so much on shell behavior 1992 19932020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1994 1995 * VERSION (_MAKE_VERSION): 20200510 1996 Merge with NetBSD make, pick up 1997 o unit test for dollar handling 1998 19992020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2000 2001 * VERSION (_MAKE_VERSION): 20200506 2002 Merge with NetBSD make, pick up 2003 o str.c: empty string does not match % pattern 2004 plus unit-test changes 2005 20062020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2007 2008 * VERSION (_MAKE_VERSION): 20200504 2009 May the 4th be with you 2010 Merge with NetBSD make, pick up 2011 o var.c: import handling of old sysV style modifier using '%' 2012 o str.c: refactor brk_string 2013 o unit-tests: add test case for lazy conditions 2014 20152020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2016 2017 * VERSION (_MAKE_VERSION): 20200418 2018 2019 * configure.in: use_makefile=no for cygwin et al. 2020 case insensitive filesystems just don't work if both 2021 makefile and Makefile exist. 2022 NOTE: bmake does not support cygwin and likely never will, 2023 but if brave souls want to try it - help them out. 2024 20252020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2026 2027 * VERSION (_MAKE_VERSION): 20200402 2028 Merge with NetBSD make, pick up 2029 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2030 a blank command is perfectly valid. 2031 20322020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2033 2034 * VERSION (_MAKE_VERSION): 20200330 2035 Merge with NetBSD make, pick up 2036 o make.h: extern debug_file 2037 20382020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2039 2040 * VERSION (_MAKE_VERSION): 20200318 2041 Merge with NetBSD make, pick up 2042 o meta.c: meta_oodate, check for corrupted meta file 2043 earlier and more often. 2044 20452020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2046 2047 * VERSION (_MAKE_VERSION): 20200220 2048 20492020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2050 2051 * boot-strap: unset MAKEFLAGS 2052 20532020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2054 2055 * VERSION (_MAKE_VERSION): 20200212 2056 * meta.c: meta_compat_parent check for USE_FILEMON 2057 patch from Soeren Tempel 2058 20592020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2060 2061 * VERSION: 20200205 2062 Merge with NetBSD make, pick up 2063 o meta.c: fix compat mode, need to call meta_job_output() 2064 o job.c: extra fds for meta mode not needed if using filemon_dev 2065 20662020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2067 2068 * VERSION: 20200122 2069 Merge with NetBSD make, pick up 2070 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2071 returns FALSE. 2072 20732020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2074 2075 * VERSION: 20200121 2076 Merge with NetBSD make, pick up 2077 o filemon/filemon_{dev,ktrace}.c: allow selection of 2078 filemon implementation. filemon_dev.c uses the kernel module 2079 while filemon_ktrace.c leverages the fktrace api available in 2080 NetBSD. filemon_ktrace.c can hopefully form the basis for 2081 adding support for other tracing mechanisms such as strace on 2082 Linux. 2083 o meta.c: when target is out-of-date per normal make rules 2084 record value of .OODATE in meta file. 2085 20862019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2087 2088 * VERSION: 20190926 2089 Merge with NetBSD make, pick up 2090 o parse.c: don't pass NULL to realpath(3) 2091 some versions cannot handle it. 2092 20932019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2094 2095 * VERSION: 20190409 2096 Merge with NetBSD make, pick up 2097 o parse.c: ParseDoDependency: free paths rather than assert 2098 20992018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2100 2101 * VERSION: 20181222 2102 2103 * configure.in: add --without-makefile to avoid generating 2104 makefile and make-bootstrap.sh 2105 2106 * include Makefile.inc if it exists 2107 2108 * Use Makefile and Makefile.config.in in unit-tests 2109 so we can use just: make obj && make && make test 2110 when bmake is already available. 2111 We add --without-makefile to CONFIGURE_ARGS in this case. 2112 2113 * tweak bsd.after-import.mk (captures Makefile.config etc 2114 after import to FreeBSD for example) to cope with all the above. 2115 21162018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2117 2118 * VERSION: 20181221 2119 Merge with NetBSD make, pick up 2120 o parse.c: ParseVErrorInternal use .PARSEDIR 2121 and apply if relative, and then use .PARSEFILE 2122 for consistent result. 2123 21242018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2125 2126 * VERSION: 20181220 2127 Merge with NetBSD make, pick up 2128 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2129 is relative 2130 o var.c: avoid SEGFAULT in .unexport-env 2131 when MAKELEVEL is not set 2132 21332018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2134 2135 * VERSION: 20181216 2136 Merge with NetBSD make, pick up 2137 o fix for unit-tests/varquote.mk on Debian 2138 21392018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2140 2141 * VERSION: 20180919 2142 Merge with NetBSD make, pick up 2143 o var.c: add :q 2144 o dir.c: cleanup caching of stats 2145 21462018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2147 2148 * Makefile.config.in: use += where it makes sense. 2149 21502018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2151 2152 * VERSION: 20180512 2153 Merge with NetBSD make, pick up 2154 o job.c: skip polling job token pipe 2155 21562018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2157 2158 * VERSION: 20180405 2159 Merge with NetBSD make, pick up 2160 o parse.c: be more cautious about detecting depenency line 2161 rather than sysV style include. 2162 21632018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2164 2165 * VERSION: 20180222 2166 Merge with NetBSD make, pick up 2167 o parse.c: avoid calling sysconf for every call to loadfile 2168 21692018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2170 2171 * VERSION: 20180218 2172 Merge with NetBSD make, pick up 2173 o var.c: Var_Set handle NULL value anytime. 2174 21752018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2176 2177 * VERSION: 20180212 2178 Merge with NetBSD make, pick up 2179 o parse.c: do not treat .info as warning with -W 2180 21812017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2182 2183 * VERSION: 20171207 2184 Merge with NetBSD make, pick up 2185 o var.c: Var_Append use Var_Set if var not previously set 2186 so that VAR_CMD is handled correctly. 2187 Add a suitable unit-test. 2188 21892017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2190 2191 * VERSION (_MAKE_VERSION): 20171126 2192 2193 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2194 since AC_TRY_COMPILE puts input inside main() 2195 which upsets modern compilers. 2196 21972017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2198 2199 * VERSION: 20171118 2200 Merge with NetBSD make, pick up 2201 o var.c: do not append to variable set on command line 2202 add unit-test to catch this. 2203 22042017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2205 2206 * VERSION: 20171028 2207 Merge with NetBSD make, pick up 2208 o main.c: ignore empty MAKEOBJDIR 2209 2210 * Makefile.config.in: 2211 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2212 22132017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2214 2215 * VERSION: 20171005 2216 2217 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2218 consistent result on some platforms. 2219 22202017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2221 2222 * machine.sh: entry for AIX 2223 22242017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2225 2226 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2227 to a file that can be included by configure as well as make. 2228 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2229 22302017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2231 2232 * Makefile (_MAKE_VERSION): 20170810 2233 Merge with NetBSD make, pick up 2234 o meta.c: if target is in subdir we only need subdir name in 2235 meta_name. 2236 22372017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2238 2239 * Makefile (_MAKE_VERSION): 20170720 2240 Merge with NetBSD make, pick up 2241 o compat.c: pass SIGINT etc onto child and wait for it to exit 2242 before we self-terminate. 2243 22442017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2245 2246 * Makefile (_MAKE_VERSION): 20170711 2247 forgot to update after merge on 20170708 ;-) 2248 o main.c: refactor to reduce size of main function. 2249 add -v option to always fully expand values. 2250 o meta.c: ensure command output in meta file has ending newline 2251 even when filemon not being used. 2252 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2253 pathname via ':L' since any ':' in pathname breaks that. 2254 Instead set a '${.p.}' to pathname in the target context and 2255 use that. 2256 22572017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2258 2259 * Makefile (_MAKE_VERSION): 20170510 2260 Merge with NetBSD make, pick up 2261 o main.c: Main_SetObjdir: ensure buf2 is in scope 2262 22632017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2264 2265 * Makefile (_MAKE_VERSION): 20170505 2266 see mk/ChangeLog 2267 22682017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2269 2270 * parse.c: not everyone has stdint.h 2271 22722017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2273 2274 * Makefile (_MAKE_VERSION): 20170501 2275 see mk/ChangeLog 2276 22772017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2278 2279 * Makefile (_MAKE_VERSION): 20170421 2280 Merge with NetBSD make, pick up 2281 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2282 22832017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2284 2285 * Makefile (_MAKE_VERSION): 20170420 2286 Merge with NetBSD make, pick up 2287 o main.c: only use -C arg "as is" if it contains no 2288 relative component. 2289 22902017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2291 2292 * Makefile (_MAKE_VERSION): 20170418 2293 Merge with NetBSD make, pick up 2294 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2295 22962017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2297 2298 * Makefile (_MAKE_VERSION): 20170417 2299 Merge with NetBSD make, pick up 2300 o fixes a number of coverity complaints 2301 - check return value of fseek, fcntl 2302 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2303 JobPrintCommand, ParseTraditionalInclude 2304 - use bmake_malloc() where NULL is not tollerated 2305 - use MAKE_ATTR_UNUSED rather that kludges like 2306 return(unused ? 0 : 0) 2307 - use purge_cached_realpaths() rather than abuse cached_realpath() 2308 23092017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2310 2311 * Makefile (_MAKE_VERSION): 20170413 2312 Merge with NetBSD make, pick up 2313 o main.c: when setting .OBJDIR ignore '$' in paths. 2314 2315 * job.c: use MALLOC_OPTIONS to set malloc_options. 2316 23172017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2318 2319 * Makefile (_MAKE_VERSION): 20170411 2320 Merge with NetBSD make, pick up 2321 o str.c: Str_Match: allow [^a-z] to behave as expected. 2322 23232017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2324 2325 * Makefile (_MAKE_VERSION): 20170326 2326 Merge with NetBSD make, pick up 2327 o main.c: purge relative paths from realpath cache when .OBJDIR 2328 is changed. 2329 23302017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2331 2332 * Makefile (_MAKE_VERSION): 20170311 2333 Merge with NetBSD make, pick up 2334 o main.c: only use -C arg "as is" if it starts with '/'. 2335 23362017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2337 2338 * Makefile (_MAKE_VERSION): 20170301 2339 Merge with NetBSD make, pick up 2340 o main.c: use -C arg "as is" rather than getcwd() 2341 if they identify the same directory. 2342 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2343 23442017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2345 2346 * Makefile (_MAKE_VERSION): 20170201 2347 Merge with NetBSD make, pick up 2348 o var.c: allow :_=var and avoid use of special context. 2349 23502017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2351 2352 * Makefile (_MAKE_VERSION): 20170130 2353 Merge with NetBSD make, pick up 2354 o var.c: add :range and :_ 2355 o main.c: partially initialize Dir_* before MainParseArgs() 2356 can be called. 2357 If -V, skip Main_ExportMAKEFLAGS() 2358 23592017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2360 2361 * Makefile (_MAKE_VERSION): 20170114 2362 Merge with NetBSD make, pick up 2363 o var.c: allow specifying the utc value used by :{gm,local}time 2364 23652016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2366 2367 * Makefile (_MAKE_VERSION): 20161212 2368 Merge with NetBSD make, pick up 2369 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2370 23712016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2372 2373 * Makefile (_MAKE_VERSION): 20161209 2374 Merge with NetBSD make, pick up 2375 o main.c: cleanup setting of .OBJDIR 2376 o parse.c: avoid coredump from (var)=val 2377 23782016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2379 2380 * Makefile (_MAKE_VERSION): 20161126 2381 Merge with NetBSD make, pick up 2382 o make.c: Make_OODate: report src node name if path not set 2383 23842016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2385 2386 * Makefile (_MAKE_VERSION): 20160926 2387 Merge with NetBSD make, pick up 2388 o support for .DELETE_ON_ERROR: (remove targets that fail) 2389 23902016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2391 2392 * Makefile MAN: tweak .Dt to match ${PROG} 2393 23942016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2395 2396 * Makefile (_MAKE_VERSION): 20160818 2397 its a neater number; pick up whitespace fixes to man page. 2398 23992016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2400 2401 * Makefile (_MAKE_VERSION): 20160817 2402 Merge with NetBSD make, pick up 2403 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2404 so we can call it before adding entries to missingFiles. 2405 Thus we do not track files we have been told to ignore. 2406 24072016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2408 2409 * Makefile (_MAKE_VERSION): 20160815 2410 Merge with NetBSD make, pick up 2411 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2412 pathnames, and skip if the expansion is empty. 2413 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2414 24152016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2416 2417 * Makefile (_MAKE_VERSION): 20160812 2418 Merge with NetBSD make, pick up 2419 o meta.c: remove all missingFiles entries that match a deleted 2420 dir. 2421 o main.c: set .ERROR_CMD if possible. 2422 24232016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2424 2425 * Makefile (_MAKE_VERSION): 20160606 2426 Merge with NetBSD make, pick up 2427 o dir.c: extend mtimes cache to others via cached_stat() 2428 24292016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2430 2431 * Makefile (_MAKE_VERSION): 20160604 2432 Merge with NetBSD make, pick up 2433 o meta.c: missing filemon data is only relevant if we read a 2434 meta file. 2435 Also do not return oodate for a missing metafile if gn->path 2436 points to .CURDIR 2437 24382016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2439 2440 * Makefile (_MAKE_VERSION): 20160602 2441 Merge with NetBSD make, pick up 2442 o cached_realpath(): avoid hitting filesystem more than necessary. 2443 o meta.c: refactor need_meta decision, add knobs for 2444 missing meta file and filemon data wrt out-of-datedness. 2445 24462016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2447 2448 * Makefile (_MAKE_VERSION): 20160528 2449 2450 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2451 24522016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2453 2454 * Makefile (_MAKE_VERSION): 20160512 2455 Merge with NetBSD make, pick up 2456 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2457 this is useful for gcov builds. 2458 o propagate errors from filemon(4). 2459 24602016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2461 2462 * Makefile (_MAKE_VERSION): 20160509 2463 Merge with NetBSD make, pick up 2464 o remove use of non-standard types u_int etc. 2465 o meta.c: apply realpath() before matching against metaIgnorePaths 2466 24672016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2468 2469 * Makefile (_MAKE_VERSION): 20160404 2470 Merge with NetBSD make, pick up 2471 o allow makefile to set .MAKE.JOBS 2472 2473 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2474 24752016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2476 2477 * Makefile (_MAKE_VERSION): 20160315 2478 Merge with NetBSD make, pick up 2479 o fix handling of archive members 2480 24812016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2482 2483 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2484 with checks for ${MAKE_VERSION} 2485 24862016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2487 2488 * Makefile (MAKE_VERSION): 20160310 2489 Merge with NetBSD make, pick up 2490 o meta.c: treat missing Read file same as Write, incase we Delete it. 2491 24922016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2493 2494 * Makefile (MAKE_VERSION): 20160307 2495 Merge with NetBSD make, pick up 2496 o var.c: fix :ts\nnn to be octal by default. 2497 o meta.c: meta_finish() to cleanup memory. 2498 24992016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2500 2501 * Makefile (MAKE_VERSION): 20160226 2502 Merge with NetBSD make, pick up 2503 o meta.c: allow meta file for makeDepend if makefiles want it. 2504 25052016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2506 2507 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2508 for backwards compatability. 2509 2510 * Makefile (MAKE_VERSION): 20160220 2511 Merge with NetBSD make, pick up 2512 o var.c: add knob to control handling of '$$' in := 2513 25142016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2515 2516 * Makefile (MAKE_VERSION): 20160218 2517 Merge with NetBSD make, pick up 2518 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2519 post the changes to Var_Subst. 2520 Var_Subst now takes flags, and does not consume '$$' in := 2521 25222016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2523 2524 * Makefile (MAKE_VERSION): 20160217 2525 Merge with NetBSD make, pick up 2526 o var.c: preserve '$$' in := 2527 o parse.c: add .dinclude for handling included 2528 makefile like .depend 2529 25302015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2531 2532 * Makefile (MAKE_VERSION): 20151220 2533 Merge with NetBSD make, pick up 2534 o suff.c: re-initialize suffNull when clearing suffixes. 2535 25362015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2537 2538 * Makefile (MAKE_VERSION): 20151201 2539 Merge with NetBSD make, pick up 2540 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2541 o meta.c: meta_oodate: use lstat(2) for checking link target 2542 in case it is a symlink. 2543 o var.c: avoid calling brk_string and Var_Export1 with empty 2544 strings. 2545 25462015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2547 2548 * Makefile (MAKE_VERSION): 20151126 2549 Merge with NetBSD make, pick up 2550 o parse.c: ParseTrackInput don't access beyond 2551 end of old value. 2552 25532015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2554 2555 * Makefile (MAKE_VERSION): 20151022 2556 2557 * Add support for BSD/OS which lacks inttypes.h 2558 and really needs sys/param.h for sys/sysctl.h 2559 also 'type' is not a shell builtin. 2560 2561 * var.c: eliminate uint32_t and need for inttypes.h 2562 2563 * main.c: PrintOnError flush stdout before run .ERROR 2564 2565 * parse.c: cope with _SC_PAGESIZE not being defined. 2566 2567 25682015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2569 2570 * Makefile (MAKE_VERSION): 20151020 2571 Merge with NetBSD make, pick up 2572 o var.c: fix uninitialized var 2573 25742015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2575 2576 * var.c: the conditional expressions used with ':?' can be 2577 expensive, if already discarding do not evaluate or expand 2578 anything. 2579 25802015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2581 2582 * Makefile (MAKE_VERSION): 20151010 2583 Merge with NetBSD make, pick up 2584 o Add Boolean wantit flag to Var_Subst and Var_Parse 2585 when FALSE we know we are discarding the result and can 2586 skip operations like Cmd_Exec. 2587 25882015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2589 2590 * Makefile (MAKE_VERSION): 20151009 2591 Merge with NetBSD make, pick up 2592 o var.c: don't check for NULL before free() 2593 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2594 25952015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2596 2597 * Makefile (MAKE_VERSION): 20150910 2598 Merge with NetBSD make, pick up 2599 o main.c: with -w print Enter/Leaving messages for objdir too 2600 if necessary. 2601 o centralize shell metachar handling 2602 2603 * FILES: add metachar.[ch] 2604 26052015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2606 2607 * Makefile (MAKE_VERSION): 20150606 2608 Merge with NetBSD make, pick up 2609 o make.1: document .OBJDIR target 2610 26112015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2612 2613 * Makefile (MAKE_VERSION): 20150505 2614 Merge with NetBSD make, pick up 2615 o cond.c: be strict about lhs of comparison when evaluating .if 2616 but less so when called from variable expansion. 2617 o unit-tests/cond2.mk: test various error conditions 2618 26192015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2620 2621 * machine.sh (MACHINE): Add Bitrig 2622 patch from joerg@netbsd.org 2623 26242015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2625 2626 * Makefile (MAKE_VERSION): 20150418 2627 Merge with NetBSD make, pick up 2628 o job.c: use memmove() rather than memcpy() 2629 2630 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2631 case, so skip it. 2632 26332015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2634 2635 * Makefile (MAKE_VERSION): 20150411 2636 bump version - only mk/ changes. 2637 26382015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2639 2640 * Makefile (MAKE_VERSION): 20150410 2641 Merge with NetBSD make, pick up 2642 o document different handling of '-' in jobs mode vs compat 2643 o fix jobs mode so that '-' only applies to whole job 2644 when shell lacks hasErrCtl 2645 o meta.c: use separate vars to track lcwd and latestdir (read) 2646 per process 2647 26482015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2649 2650 * Makefile (MAKE_VERSION): 20150401 2651 Merge with NetBSD make, pick up 2652 o meta.c: close meta file in child 2653 2654 * Makefile: use BINDIR.bmake if set. 2655 Same for MANDIR and SHAREDIR 2656 Handy for testing release candidates 2657 in various environments. 2658 26592015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2660 2661 * move initialization of savederr to block where it is used 2662 to avoid spurious warning from gcc5 2663 26642014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2665 2666 * Makefile (MAKE_VERSION): 20141111 2667 just a cooler number 2668 26692014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2670 2671 * Makefile (MAKE_VERSION): 20141105 2672 Merge with NetBSD make, pick up 2673 o revert major overhaul of suffix handling 2674 and POSIX compliance - too much breakage 2675 and impossible to make backwards compatible. 2676 o we still have the new unit test structure which is ok. 2677 o meta.c ensure "-- filemon" is at start of line. 2678 26792014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2680 2681 * configure.in: test that result of getconf PATH_MAX is numeric 2682 and discard if not. Apparently needed for Hurd. 2683 26842014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2685 2686 * Makefile (MAKE_VERSION): 20140830 2687 Merge with NetBSD make, pick up 2688 o major overhaul of suffix handling 2689 o improved POSIX compliance 2690 o overhauled unit-tests 2691 26922014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2693 2694 * Makefile (MAKE_VERSION): 20140620 2695 Merge with NetBSD make, pick up 2696 o var.c return varNoError rather than var_Error for ::= modifiers. 2697 26982014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2699 2700 * Makefile (MAKE_VERSION): 20140522 2701 Merge with NetBSD make, pick up 2702 o var.c detect some parse errors. 2703 27042014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2705 2706 * Fix spelling errors - patch from Pedro Giffuni 2707 27082014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2709 2710 * Makefile (MAKE_VERSION): 20140214 2711 Merge with NetBSD make, pick up 2712 o .INCLUDEFROM* 2713 o use Var_Value to get MAKEOBJDIR[PREFIX] 2714 o reduced realloc'ign in brk_string. 2715 * configure.in: add a check for compiler supporting __func__ 2716 27172014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2718 2719 * boot-strap: ignore mksrc=none 2720 27212014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2722 2723 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2724 27252014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2726 2727 * Makefile (MAKE_VERSION): 20140101 2728 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2729 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2730 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2731 Hurd) 2732 * configure.in: Add AC_PREREQ and check for 2733 sysctl; patch from Andrew Shadura andrewsh at debian.org 2734 27352013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2736 2737 * Makefile (MAKE_VERSION): 20131010 2738 * lose the const from arg to systcl to avoid problems on older BSDs. 2739 27402013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2741 2742 * Makefile (MAKE_VERSION): 20131001 2743 Merge with NetBSD make, pick up 2744 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2745 hw.machine_arch if necessary. 2746 o meta.c: meta_oodate - need to look at src of Link and target 2747 of Move as well. 2748 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 2749 provide __arraycount() if needed. 2750 27512013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 2752 2753 * Makefile (MAKE_VERSION): 20130904 2754 Merge with NetBSD make, pick up 2755 o Add VAR_INTERNAL context, so that internal setting of 2756 MAKEFILE does not override value set by makefiles. 2757 27582013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 2759 2760 * Makefile (MAKE_VERSION): 20130902 2761 Merge with NetBSD make, pick up 2762 o CompatRunCommand: only apply shellErrFlag when errCheck is true 2763 27642013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2765 2766 * Makefile (MAKE_VERSION): 20130828 2767 Merge with NetBSD make, pick up 2768 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 2769 o Call Job_SetPrefix() from Job_Init() so makefiles have 2770 opportunity to set .MAKE.JOB.PREFIX 2771 27722013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 2773 2774 * Makefile (MAKE_VERSION): 20130730 2775 Merge with NetBSD make, pick up 2776 o Allow suppression of --- job -- tokens by setting 2777 .MAKE.JOB.PREFIX empty. 2778 27792013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2780 2781 * Makefile (MAKE_VERSION): 20130716 2782 Merge with NetBSD make, pick up 2783 o number of gmake compatibility tweaks 2784 -w for gmake style entering/leaving messages 2785 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 2786 handle MAKEFLAGS containing only letters. 2787 o when overriding a GLOBAL variable on the command line, 2788 delete it from GLOBAL context so -V doesn't show the wrong 2789 value. 2790 27912013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 2792 2793 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 2794 2795 * Makefile (MAKE_VERSION): 20130706 2796 Merge with NetBSD make, pick up 2797 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 2798 true so that CompatRunCommand() can use it, to ensure 2799 consistent behavior with jobs mode. 2800 o use MAKE_LEVEL_ENV to define the variable to propagate 2801 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 2802 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 2803 paths to ignore. 2804 28052013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2806 2807 * Makefile (MAKE_VERSION): 20130604 2808 Merge with NetBSD make, pick up 2809 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 2810 to avoid leaking descriptors. 2811 28122013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2813 2814 * Makefile (MAKE_VERSION): 20130528 2815 Merge with NetBSD make, pick up 2816 o var.c: cleanup some left-overs in VarHash() 2817 28182013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2819 2820 * Makefile (MAKE_VERSION): 20130520 2821 generate manifest from component FILES rather than have to 2822 update FILES when mk/FILES changes. 2823 28242013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2825 2826 * Makefile (MAKE_VERSION): 20130518 2827 Merge with NetBSD make, pick up 2828 o suff.c: don't skip all processsing for .PHONY targets 2829 else wildcard srcs do not get expanded. 2830 o var.c: expand name of variable to delete if necessary. 2831 28322013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2833 2834 * Makefile (MAKE_VERSION): 20130330 2835 Merge with NetBSD make, pick up 2836 o meta.c: refine the handling of .OODATE in commands. 2837 Rather than suppress command comparison for the entire script 2838 as though .NOMETA_CMP had been used, only suppress it for the 2839 one command line. 2840 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 2841 suppress comparison of a command without otherwise affecting it. 2842 o make.1: document that 2843 28442013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 2845 2846 * Makefile (MAKE_VERSION): 20130321 2847 yes, not quite right but its a cooler number. 2848 Merge with NetBSD make, pick up 2849 o parse.c: fix ParseGmakeExport to be portable 2850 and add a unit-test. 2851 * meta.c: call meta_init() before makefiles are read and if built 2852 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 2853 this let's makefiles test for support. 2854 Call meta_mode_init() to process .MAKE.MODE. 2855 28562013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2857 2858 * Makefile (MAKE_VERSION): 20130305 2859 Merge with NetBSD make, pick up 2860 o run .STALE: target when a dependency from .depend is missing. 2861 o job.c: add Job_RunTarget() for the above and .BEGIN 2862 28632013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2864 2865 * Makefile (MAKE_VERSION): 20130303 2866 Merge with NetBSD make, pick up 2867 o main.c: set .MAKE.OS to utsname.sysname 2868 o job.c: more checks for read and poll errors 2869 o var.c: lose VarChangeCase() saves 4% time 2870 28712013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 2872 2873 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 2874 want to use MAKEOBJDIR 2875 28762013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 2877 2878 * Merge with NetBSD make, pick up 2879 o make.1: more info on how shell commands are handled. 2880 o job.c,main.c: detect write errors to job pipes. 2881 28822013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 2883 2884 * Makefile (MAKE_VERSION): 20130123 2885 Merge with NetBSD make, pick up 2886 o meta.c: if script uses .OODATE and meta_oodate() decides 2887 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 2888 o var.c: in debug output indicate which variabale modifiers 2889 apply to. 2890 o remove Check_Cwd logic the makefiles have been fixed. 2891 28922012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2893 2894 * makefile.in: add a simple makefile for folk who insist on 2895 ./configure; make; make install 2896 it just runs boot-strap 2897 * include mk/* to accommodate the above 2898 * boot-strap: re-work to accommodate the above 2899 mksrc defaults to $Mydir/mk 2900 allow op={configure,build,install,clean,all} 2901 add options to facilitate install 2902 * Makefile.config.in: just the bits set by configure 2903 * Makefile: bump version to 20121212 2904 abandon Makefile.in (NetBSD Makefile) 2905 leverage mk/* instead 2906 * configure.in: ensure srcdir is absolute 2907 29082012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2909 2910 * Makefile.in (MAKE_VERSION): 20121111 2911 fix generation of bmake.cat1 2912 29132012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 2914 2915 * Makefile.in (MAKE_VERSION): 20121109 2916 Merge with NetBSD make, pick up 2917 o make.c: MakeBuildChild: return 0 so search continues if a 2918 .ORDER dependency is detected. 2919 o unit-tests/order: test the above 2920 29212012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2922 2923 * Makefile.in (MAKE_VERSION): 20121102 2924 Merge with NetBSD make, pick up 2925 o cond.c: allow cond_state[] to grow. 2926 In meta mode with a very large tree, we can hit the limit 2927 while processing dirdeps. 2928 29292012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 2930 2931 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 2932 29332012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2934 2935 * Makefile.in (MAKE_VERSION): 20121010 2936 o protect syntax that only bmake parses correctly. 2937 o remove auto setting of FORCE_MACHINE, use configure's 2938 --with-force-machine=whatever if that is desired. 2939 29402012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 2941 2942 * Makefile.in: do not lose history from make.1 when generating bmake.1 2943 29442012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 2945 2946 * Makefile.in (MAKE_VERSION): 20121007 2947 Merge with NetBSD make, pick up 2948 o compat.c: ignore empty commands - same as jobs mode. 2949 o make.1: document meta chars that cause use of shell 2950 29512012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 2952 2953 * Makefile.in (MAKE_VERSION): bump version to 20120911 2954 * bsd.after-import.mk: include Makefile.inc early and allow it to 2955 override PROG 2956 29572012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 2958 2959 * Makefile.in (MAKE_VERSION): bump version to 20120831 2960 Merge with NetBSD make, pick up 2961 o cast sizeof() to int for comparison 2962 o minor make.1 tweak 2963 29642012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2965 2966 * Makefile.in (MAKE_VERSION): bump version to 20120830 2967 Merge with NetBSD make, pick up 2968 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 2969 o debug flag -dV causes -V to show raw value regardless. 2970 29712012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2972 2973 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2974 gets SRCTOP set. 2975 29762012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2977 2978 * Makefile.in (MAKE_VERSION): bump version to 20120704 2979 Merge with NetBSD make, pick up 2980 o Job_ParseShell should call Shell_Init if it has been 2981 previously called. 2982 * Makefile.in: set USE_META based on configure result. 2983 also .PARSEDIR is safer indicator of bmake. 2984 29852012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2986 2987 * Makefile.in: bump version to 20120626 2988 ensure CPPFLAGS is in CFLAGS 2989 * meta.c: avoid nested externs 2990 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2991 29922012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2993 2994 * Makefile.in (MAKE_VERSION): bump version to 20120620 2995 Merge with NetBSD make, pick up 2996 o make_malloc.c: avoid including make_malloc.h again 2997 2998 * Makefile.in: avoid bmake only syntax or protect with 2999 .if defined(.MAKE.LEVEL) 3000 * bsd.after-import.mk: replace .-include with .sinclude 3001 ensure? SRCTOP gets a value 3002 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3003 30042012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3005 3006 * Makefile.in (MAKE_VERSION): bump version to 20120612 3007 Merge with NetBSD make, pick up 3008 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3009 for greater portability. 3010 o unit-tests/forloop: check that .for works as expected wrt 3011 number of times and with "quoted strings". 3012 30132012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3014 3015 * Makefile.in (MAKE_VERSION): bump version to 20120606 3016 Merge with NetBSD make, pick up 3017 o compat.c: use kill(2) rather than raise(3). 3018 * configure.in: look for sys/dev/filemon 3019 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3020 and pass BOOTSTRAP_XTRAS to boot-strap. 3021 30222012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3023 3024 * Makefile.in (MAKE_VERSION): bump version to 20120604 3025 Merge with NetBSD make, pick up 3026 o util.c and var.c share same var for tracking if environ 3027 has been reallocated. 3028 o util.c provide getenv with setenv. 3029 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3030 when the shell actively strips .MAKE.* from the environment. 3031 We still refer to the variable always as .MAKE.LEVEL 3032 * util.c fix bug in findenv() was finding prefix of name. 3033 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3034 results in more reliable termination of all activity on many 3035 platforms. 3036 30372012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3038 3039 * Makefile.in (MAKE_VERSION): bump version to 20120602 3040 Merge with NetBSD make, pick up 3041 o for.c: handle quoted items in .for list 3042 30432012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3044 3045 * Makefile.in (MAKE_VERSION): bump version to 20120530 3046 Merge with NetBSD make, pick up 3047 o compat.c: ignore empty command. 3048 30492012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3050 3051 * Makefile.in (MAKE_VERSION): bump version to 20120524 3052 * FILES: add bsd.after-import.mk: 3053 A simple means of integrating bmake into a BSD build system. 3054 30552012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3056 3057 * Makefile.in (MAKE_VERSION): bump version to 20120520 3058 Merge with NetBSD make, pick up 3059 o increased limit for nested conditionals. 3060 30612012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3062 3063 * Makefile.in (MAKE_VERSION): bump version to 20120518 3064 Merge with NetBSD make, pick up 3065 o use _exit(2) in signal hanlder 3066 o Don't use the [dir] cache when building nodes that might have 3067 changed since the last exec. 3068 o Avoid nested extern declaration warnings. 3069 30702012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3071 3072 * meta.c (fgetLine): avoid %z - not portable. 3073 * parse.c: Since we moved include of sys/mman.h 3074 and def's of MAP_COPY etc. we got dups from a merge. 3075 30762012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3077 3078 * Makefile.in (MAKE_VERSION): bump version to 20120420 3079 Merge with NetBSD make, pick up 3080 o restore duplicate supression in .MAKE.MAKEFILES 3081 runtime saving can be significant. 3082 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3083 consumption up to 20%. 3084 30852012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3086 3087 * Makefile.in (MAKE_VERSION): bump version to 20120420 3088 Merge with NetBSD make, pick up 3089 o remove duplicate supression in .MAKE.MAKEFILES 3090 o improved dir cache behavior 3091 o gmake'ish export command 3092 30932012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3094 3095 * Makefile.in (MAKE_VERSION): bump version to 20120325 3096 Merge with NetBSD make, pick up 3097 o fix parsing of :[#] in conditionals. 3098 30992012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3100 3101 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3102 since some systems cannot cope with .Nx <version> 3103 31042011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3105 3106 * Makefile.in (MAKE_VERSION): bump version to 20111111 3107 Merge with NetBSD make, pick up 3108 o debug output for .PARSEDIR and .PARSEFILE 3109 31102011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3111 3112 * Makefile.in (MAKE_VERSION): bump version to 20111010 3113 31142011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3115 3116 * boot-strap: check for an expected file in the dirs we look for. 3117 * make-bootstrap.sh: pass on LDSTATIC 3118 31192011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3120 3121 * Makefile.in (MAKE_VERSION): bump version to 20111001 3122 Merge with NetBSD make, pick up 3123 o ensure .PREFIX is set for .PHONY 3124 and .TARGET set for .PHONY run via .END 3125 o __dead used consistently 3126 31272011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3128 3129 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3130 31312011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3132 3133 * Makefile.in (MAKE_VERSION): bump version to 20110905 3134 Merge with NetBSD make, pick up 3135 o meta_oodate: ignore makeDependfile 3136 31372011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3138 3139 * Makefile.in (MAKE_VERSION): bump version to 20110828 3140 Merge with NetBSD make, pick up 3141 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3142 as SILENT if a .meta file is created 3143 31442011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3145 3146 * Makefile.in (MAKE_VERSION): bump version to 20110818 3147 Merge with NetBSD make, pick up 3148 o in meta mode, if target flagged .META a missing .meta file 3149 means target is out-of-date 3150 o fixes for gcc 4.5 warnings 3151 o simplify job printing code 3152 31532011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3154 3155 * Makefile.in (MAKE_VERSION): bump version to 20110808 3156 Merge with NetBSD make, pick up 3157 o do not touch OP_SPECIAL targets when doing make -t 3158 31592011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3160 3161 * Makefile.in (MAKE_VERSION): bump version to 20110622 3162 Merge with NetBSD make, pick up 3163 o meta_oodate detect corrupted .meta file and declare oodate. 3164 * configure.in: add check for setsid 3165 31662011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3167 3168 * Merge with NetBSD make, pick up 3169 o unit-tests/modts now works on MirBSD 3170 31712011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3172 3173 * Makefile.in (MAKE_VERSION): bump version to 20110606 3174 Merge with NetBSD make, pick up 3175 o ApplyModifiers: when we parse a variable which is not 3176 the entire modifier string, or not followed by ':', do not 3177 consider it as containing modifiers. 3178 o loadfile: ensure newline at end of mapped file. 3179 31802011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3181 3182 * Makefile.in (MAKE_VERSION): bump version to 20110505 3183 Merge with NetBSD make, pick up 3184 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3185 of make's control. In meta mode, any generated file within 3186 said bailiwick, which is found to be missing, causes current 3187 target to be out-of-date. 3188 31892011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3190 3191 * Makefile.in (MAKE_VERSION): bump version to 20110411 3192 Merge with NetBSD make, pick up 3193 o when long modifiers fail to match, check sysV style. 3194 - add a test case 3195 31962011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3197 3198 * Makefile.in (MAKE_VERSION): bump version to 20110410 3199 Merge with NetBSD make, pick up 3200 o :hash - cheap 32bit hash of value 3201 o :localtime, :gmtime - use value as format string for strftime. 3202 32032011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3204 3205 * Makefile.in (MAKE_VERSION): bump version to 20110330 3206 mostly because its a cooler version. 3207 Merge with NetBSD make, pick up 3208 o NetBSD tags for meta.[ch] 3209 o job.c call meta_job_finish() after meta_job_error(). 3210 o meta_job_error() should call meta_job_finish() to ensure 3211 .meta file is closed, and safe to copy - if .ERROR target wants. 3212 meta_job_finish() is safe to call repeatedly. 3213 32142011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3215 3216 * unit-tests/modts: use printf if it is a builtin, 3217 to save us from MirBSD 3218 3219 * Makefile.in (MAKE_VERSION): bump version to 20110329 3220 Merge with NetBSD make, pick up 3221 o fix for use after free() in CondDoExists(). 3222 o meta_oodate() report extra commands and return earlier. 3223 32242011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3225 3226 * Makefile.in (MAKE_VERSION): bump version to 20110327 3227 Merge with NetBSD make, pick up 3228 o meta.c, if .MAKE.MODE contains curdirOk=yes 3229 allow creating .meta files in .CURDIR 3230 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3231 formats the output of 'type' differently - so eat any "()" 3232 32332011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3234 3235 * Makefile.in (MAKE_VERSION): bump version to 20110306 3236 Merge with NetBSD make, pick up 3237 o meta.c, only do getcwd() once 3238 32392011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3240 3241 * Makefile.in (MAKE_VERSION): bump version to 20110305 3242 Merge with NetBSD make, pick up 3243 o correct sysV substitution handling of empty lhs and variable 3244 o correct exists() check for dir with trailing / 3245 o correct handling of modifiers for non-existant variables 3246 during evaluation of conditionals. 3247 o ensure MAP_FILE is defined. 3248 o meta.c use curdir[] now exported by main.c 3249 32502011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3251 3252 * Makefile.in (MAKE_VERSION): bump version to 20110225 3253 Merge with NetBSD make, pick up 3254 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3255 makefiles have been read. 3256 o fix example of :? modifier in man page. 3257 32582011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3259 3260 * Makefile.in (MAKE_VERSION): bump version to 20110214 3261 Merge with NetBSD make, pick up 3262 o meta.c handle realpath() failing when generating meta file 3263 name. 3264 3265 * sigcompat.c: convert to ansi so we can use higher warning levels. 3266 3267 32682011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3269 3270 * Makefile.in (MAKE_VERSION): bump version to 20110207 3271 Merge with NetBSD make, pick up 3272 o fix for bug in meta mode. 3273 32742011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3275 3276 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3277 32782011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3279 3280 * Makefile.in (MAKE_VERSION): bump version to 20110101 3281 Merge with NetBSD make, pick up 3282 o use mmap(2) if available, for reading makefiles 3283 32842010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3285 3286 * Makefile.in (MAKE_VERSION): bump version to 20101215 3287 Merge with NetBSD make, pick up 3288 o ensure meta_job_error() does not report a previous .meta file 3289 as being culprit. 3290 32912010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3292 3293 * Makefile.in (MAKE_VERSION): bump version to 20101210 3294 Merge with NetBSD make, pick up 3295 o meta_oodate: track cwd per process, and only consider target 3296 out-of-date if missing file is outside make's CWD. 3297 Ignore files in /tmp/ etc. 3298 o to ensure unit-tests results match, need to control LC_ALL 3299 as well as LANG. 3300 o fix for parsing bug in var.c 3301 33022010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3303 3304 * Makefile.in (MAKE_VERSION): bump version to 20101126 3305 Merge with NetBSD make, pick up 3306 o if stale dependency is an IMPSRC, search via .PATH 3307 o meta_oodate: if a referenced file is missing, target is 3308 out-of-date. 3309 o meta_oodate: if a target uses .OODATE in its commands, 3310 it (.OODATE) needs to be recomputed. 3311 o keep a pointer to youngest child node, rather than just its 3312 mtime. 3313 33142010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3315 3316 * Makefile.in (MAKE_VERSION): bump version to 20101101 3317 33182010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3319 3320 * machine.sh: like os.sh, 3321 allow for uname -p producing useless drivel 3322 33232010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3324 3325 * boot-strap: document configure knobs for meta and filemon. 3326 3327 * Makefile.in (MAKE_VERSION): bump version to 20100911 3328 Merge with NetBSD make, pick up 3329 o meta.c - meta mode 3330 3331 * make-bootstrap.sh.in: handle meta.c 3332 * configure.in: add knobs for use_meta and filemon_h 3333 also, look for dirname, str[e]sep and strlcpy 3334 * util.c: add simple err[x] and warn[x] 3335 33362010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3337 3338 * boot-strap (TOOL_DIFF): set this to ensure tests use 3339 the same version of diff that configure tested 3340 3341 * Makefile.in (MAKE_VERSION): bump version to 20100808 3342 Merge with NetBSD make, pick up 3343 o in jobs mode, when we discover we cannot make something, 3344 call PrintOnError before exit. 3345 33462010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3347 3348 * Makefile.in (MAKE_VERSION): bump version to 20100806 3349 Merge with NetBSD make, pick up 3350 o formatting fixes for ignored errors 3351 o ensure jobs are cleaned up regardless of where wait() was called. 3352 33532010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3354 3355 * Makefile.in (MAKE_VERSION): bump version to 20100618 3356 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3357 33582010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3359 3360 * Makefile.in (MAKE_VERSION): bump version to 20100616 3361 Merge with NetBSD make, pick up 3362 o man page update 3363 o call PrintOnError from JobFinish when we detect an error we 3364 are not ignoring. 3365 33662010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3367 3368 * Makefile.in (MAKE_VERSION): bump version to 20100606 3369 Merge with NetBSD make, pick up 3370 o man page update 3371 33722010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3373 3374 * Makefile.in (MAKE_VERSION): bump version to 20100605 3375 Merge with NetBSD make, pick up 3376 o use bmake_signal() which is a wrapper around sigaction() 3377 in place of signal() 3378 o add .export-env to allow exporting variables to environment 3379 without tracking (so no re-export when the internal value is 3380 changed). 3381 33822010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3383 3384 * Makefile.in (MAKE_VERSION): bump version to 20100524 3385 Merge with NetBSD make, pick up 3386 o fix for .info et al being greedy. 3387 33882010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3389 3390 * Makefile.in (MAKE_VERSION): bump version to 20100520 3391 Merge with NetBSD make, pick up 3392 o back to using realpath on argv[0] 3393 but only if contains '/' and does not start with '/'. 3394 33952010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3396 3397 * boot-strap: use absolute path for bmake when running tests. 3398 3399 * Makefile.in (MAKE_VERSION): bump version to 20100510 3400 Merge with NetBSD make, pick up 3401 o revert use of realpath on argv[0] 3402 too many corner cases. 3403 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3404 34052010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3406 3407 * Makefile.in (MAKE_VERSION): bump version to 20100505 3408 Merge with NetBSD make, pick up 3409 o fix for missed SIGCHLD when compiled with SunPRO 3410 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3411 done the job. 3412 34132010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3414 3415 * Makefile.in (MAKE_VERSION): bump version to 20100430 3416 Merge with NetBSD make, pick up 3417 o fflush stdout before writing to stdout 3418 34192010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3420 3421 * Makefile.in (MAKE_VERSION): bump version to 20100423 3422 Merge with NetBSD make, pick up 3423 o updated unit tests for Haiku (this time for sure). 3424 * boot-strap: based on patch from joerg 3425 honor --with-default-sys-path better. 3426 * boot-strap: remove mention of --with-prefix-sys-path 3427 34282010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3429 3430 * Makefile.in (MAKE_VERSION): bump version to 20100422 3431 * Merge with NetBSD make, pick up 3432 o fix for vfork() on Darwin. 3433 o fix for bogus $TMPDIR. 3434 o set .MAKE.MODE=compat for -B 3435 o set .MAKE.JOBS=max_jobs for -j max_jobs 3436 o allow unit-tests to run without any *.mk 3437 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3438 * boot-strap: ignore /usr/share/mk except on NetBSD. 3439 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3440 ensure sort(1) behaves as expected. 3441 34422010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3443 3444 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3445 34462010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3447 3448 * Makefile.in (MAKE_VERSION): bump version to 20100420 3449 * Merge with NetBSD make, pick up 3450 o fix for variable realpath() behavior. 3451 we have to stat(2) the result to be sure. 3452 o fix for .export (all) when nested vars use :sh 3453 34542010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3455 3456 * Makefile.in (MAKE_VERSION): bump version to 20100414 3457 * Merge with NetBSD make, pick up 3458 o use realpath to resolve argv[0] (for .MAKE) if needed. 3459 o add realpath from libc. 3460 o add :tA to resolve variable via realpath(3) if possible. 3461 34622010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3463 3464 * Makefile.in (MAKE_VERSION): bump version to 20100408 3465 * Merge with NetBSD make, pick up 3466 o unit tests for .ERROR, .error 3467 o fix for .ERROR to ensure it cannot be default target. 3468 34692010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3470 3471 * Makefile.in (MAKE_VERSION): bump version to 20100406 3472 * Merge with NetBSD make, pick up 3473 o fix for compat mode "Error code" going to debug_file. 3474 o fix for .ALLSRC being populated twice. 3475 o support for .info, .warning and .error directives 3476 o .MAKE.MODE to control make's operational mode 3477 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3478 name(s). 3479 o .MAKE.DEPENDFILE to control the name of the depend file 3480 o .ERROR target - run on failure. 3481 34822010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3483 3484 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3485 3486 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3487 34882010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3489 3490 * Makefile.in (MAKE_VERSION): bump version to 20100222 3491 * Merge with NetBSD make, pick up 3492 o better error msg for .for with mutiple inter vars 3493 3494 * boot-strap: 3495 o use make-bootstrap.sh from joerg at netbsd 3496 to avoid the need for a native make when bootstrapping. 3497 o add "" everywhere ;-) 3498 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3499 otherwise the pre-formated version. 3500 35012010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3502 3503 * Makefile.in (MAKE_VERSION): bump version to 20100102 3504 * Merge with NetBSD make, pick up: 3505 o fix for -m .../ 3506 35072009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3508 3509 * Makefile.in (MAKE_VERSION): bump version to 20091118 3510 * Merge with NetBSD make, pick up: 3511 o .unexport 3512 o report lines that start with '.' and should have ':' 3513 (catch typo's of .el*if). 3514 35152009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3516 3517 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3518 35192009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3520 3521 * Makefile.in (MAKE_VERSION): fix version to 20091007 3522 35232009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3524 3525 * Makefile.in (MAKE_VERSION): bump version to 200910007 3526 * Merge with NetBSD make, pick up: 3527 o fix for parsing of :S;...;...; applied to .for loop iterator 3528 appearing in a dependency line. 3529 35302009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3531 3532 * Makefile.in (MAKE_VERSION): bump version to 20090909 3533 * Merge with NetBSD make, pick up: 3534 o fix for -C, .CURDIR and .OBJDIR 3535 * boot-strap: 3536 o allow share_dir to be set independent of prefix. 3537 o select default share_dir better when prefix ends in $HOST_TARGET 3538 o if FORCE_BSD_MK etc were set, include them in the suggested 3539 install-mk command. 3540 35412009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3542 3543 * Makefile.in (MAKE_VERSION): bump version to 20090908 3544 * Merge with NetBSD make, pick up: 3545 o .MAKE.LEVEL for recursion tracking 3546 o fix for :M scanning \: 3547 35482009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3549 3550 * configure.in: Don't -D__EXTENSIONS__ if 3551 AC_USE_SYSTEM_EXTENSIONS says "no". 3552 35532009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3554 3555 * Makefile.in (MAKE_VERSION): bump version to 20090826 3556 Simplify MAKE_VERSION to just the bare date. 3557 * Merge with NetBSD make, pick up: 3558 o -C directory support. 3559 o support for SIGINFO 3560 o use $TMPDIR for temp files. 3561 o child of vfork should be careful about modifying parent's state. 3562 3563 35642009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3565 3566 * Appy some patches for MiNT from David Brownlee 3567 35682009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3569 3570 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3571 * Merge with NetBSD make, pick up: 3572 o Possible null pointer de-ref in Var_Set. 3573 35742009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3575 3576 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3577 * Merge with NetBSD make, pick up: 3578 o bmake_malloc et al moved to their own .c 3579 o Count both () and {} when looking for the end of a :M pattern 3580 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3581 o strlist.c - functions for processing extendable arrays of pointers to strings. 3582 o ClientData replaced with void *, so const void * can be used. 3583 o New debug flag C for DEBUG_CWD 3584 35852008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3586 3587 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3588 Apply patch from Joerg Sonnenberge to 3589 configure.in: 3590 o remove some redundant checks 3591 o check for emlloc etc only in libutil and require the whole family. 3592 util.c: 3593 o remove [v]asprintf which is no longer used. 3594 35952008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3596 3597 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3598 * Merge with NetBSD make, pick up: 3599 o util.c: avoid use of putenv() - christos 3600 36012008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3602 3603 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3604 pick up man page tweaks. 3605 36062008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3607 3608 * Makefile.in: move processing of LIBOBJS to after is definition! 3609 thus we'll have getenv.c in SRCS only if needed. 3610 3611 * make.1: add examples of how to use :? 3612 3613 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3614 * Merge with NetBSD make, pick up: 3615 o fix for .END processing with -j 3616 o segfault from Parse_Error when no makefile is open 3617 o handle numeric expressions in any variable expansion 3618 o debug output now defaults to stderr, -dF to change it - apb 3619 o make now uses bmake_malloc etc so that it can build natively 3620 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3621 36222008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3623 3624 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3625 * Merge with NetBSD make, pick up: 3626 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3627 long lines in Makefiles 3628 o optimizations for VarQuote by joerg 3629 o fix for PR/38756: dominik: make dumps core on invalid makefile 3630 36312008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3632 3633 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3634 * Merge with NetBSD make, pick up: 3635 o fix skip setting vars in VAR_GLOBAL context, to handle 3636 cases where VAR_CMD is used for other than command line vars. 3637 36382008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3639 3640 * boot-strap (make_version): we may need to look in 3641 $prefix/share/mk for sys.mk 3642 3643 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3644 * Merge with NetBSD make, pick up: 3645 o skip setting vars in VAR_GLOBAL context, when already set in 3646 VAR_CMD which takes precedence. 3647 36482008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3649 3650 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3651 * Merge with NetBSD make, pick up: 3652 o fix for ?= when LHS contains variable reference. 3653 36542008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3655 3656 * merge some patches from NetBSD pkgsrc. 3657 3658 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3659 the MAKSYSPATH used during bootstrap. 3660 3661 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3662 * Merge with NetBSD make, pick up: 3663 o warn if non-space chars follow 'empty' in a conditional. 3664 36652008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3666 3667 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3668 * Merge with NetBSD make, pick up: 3669 o consider dependencies read from .depend as optional - dsl 3670 o remember when buffer for reading makefile grows - dsl 3671 o add -dl (aka LOUD) - David O'Brien 3672 36732007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3674 3675 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3676 * Merge with NetBSD make, pick up: 3677 o Allow .PATH<suffix> to be used for .include "" 3678 3679 * boot-strap: source default settings from .bmake-boot-strap.rc 3680 36812007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3682 3683 * Makefile.in: fix maninstall on various systems 3684 provided that our man.mk is used. 3685 For non-BSD systems we install the preformatted page 3686 into $MANDIR/cat1 3687 36882007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3689 3690 * boot-strap: make bmake.1 too, so maninstall works. 3691 36922007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3693 3694 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3695 * Merge with NetBSD make, pick up: 3696 o revamped handling of defshell - configure no longer needs to 3697 know the content of the shells array - apb 3698 o stop Var_Subst modifying its input - apb 3699 o avoid calling ParseTrackInput too often - dsl 3700 37012007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3702 3703 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3704 * Merge with NetBSD make, pick up: 3705 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3706 3707 * sigcompat.c: some tweaks for HP-UX 11.x based on 3708 patch from Tobias Nygren 3709 3710 * configure.in: update handling of --with-defshell to match 3711 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3712 will now do what one might hope - provided the chosen shell 3713 behaves enough like sh. 3714 37152007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3716 3717 * Makefile.in (BMAKE_VERSION): bump to 20071008 3718 * Merge with NetBSD make, pick up: 3719 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3720 o .export/.MAKE.EXPORTED - export of variables - sjg 3721 o .MAKE.MAKEFILES - track all makefiles read - sjg 3722 o performance improvements - dsl 3723 o revamp parallel job scheduling - dsl 3724 37252006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3726 3727 * Makefile.in (BMAKE_VERSION): bump to 20060728 3728 * Merge with NetBSD make, pick up: 3729 o extra debug info during variable and cond processing - sjg 3730 o shell definition now covers newline - rillig 3731 o minor mem leak in PrintOnError - sjg 3732 37332006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3734 3735 * Makefile.in (BMAKE_VERSION): bump to 20060511 3736 * Merge with NetBSD make, pick up: 3737 o more memory leaks - coverity 3738 o possible overflow in ArchFindMember - coverity 3739 o extract variable modifier code out of Var_Parse() 3740 so it can be called recursively - sjg 3741 o unit-tests/moderrs - sjg 3742 37432006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3744 3745 * Makefile.in (BMAKE_VERSION): bump to 20060412 3746 * Merge with NetBSD make, pick up: 3747 o fixes for some memory leaks - coverity 3748 o only read first sys.mk etc when searching sysIncPath - sjg 3749 3750 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 3751 setting ${MAKEFILE} - OBATA Akio 3752 37532006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 3754 3755 * Makefile.in (BMAKE_VERSION): bump to 20060318 3756 * Merge with NetBSD make, pick up: 3757 o cleanup of job.c to remove remote handling, distcc is more 3758 useful and this code was likely bit-rotting - dsl 3759 o fix for :P modifier - sjg 3760 * boot-strap: set default prefix to something reasonable 3761 (for me anyway). 3762 37632006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 3764 3765 * Makefile.in (BMAKE_VERSION): bump to 20060301 3766 * Merge with NetBSD make, pick up: 3767 o make .WAIT apply recursively, document and test case - apb 3768 o allow variable modifiers in a variable appear anywhere in 3769 modifier list, document and test case - sjg 3770 37712006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 3772 3773 * Makefile.in (BMAKE_VERSION): bump to 20060222 3774 * Merge with NetBSD make, pick up: 3775 o improved job token handling - dsl 3776 o SIG_DFL the correct signal before exec - dsl 3777 o more debug info during parsing - dsl 3778 o allow variable modifiers to be specified via variable - sjg 3779 * boot-strap: explain why we died if no mksrc 3780 37812005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 3782 3783 * Makefile.in (BMAKE_VERSION): bump to 20051105 3784 * configure.in: always set default_sys_path 3785 default is ${prefix}/share/mk 3786 - remove prefix_sys_path, anyone wanting more than above 3787 needs to set it manually. 3788 37892005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3790 3791 * boot-strap: make this a bit easier for pkgsrc folk. 3792 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 3793 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 3794 37952005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 3796 3797 * Makefile.in (BMAKE_VERSION): bump to 20051102 3798 * job.c (JobFinish): fix likely ancient merge lossage 3799 fix from Todd Vierling. 3800 * boot-strap (srcdir): allow setting mksrc=none 3801 38022005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 3803 3804 * Makefile.in (BMAKE_VERSION): bump to 20051031 3805 * ranlib.h: skip on OSF too. 3806 (NetBSD PR 31864) 3807 38082005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 3809 3810 * Makefile.in (BMAKE_VERSION): bump to 20051002 3811 fix a silly typo 3812 38132005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3814 3815 * Makefile.in (BMAKE_VERSION): bump to 20051001 3816 support for UnixWare and some other systems, 3817 based on patches from pkgsrc/bootstrap 3818 38192005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3820 3821 * Makefile.in (BMAKE_VERSION): bump to 20050901 3822 * Merge with NetBSD make, pick up: 3823 o possible parse error causing us to wander off. 3824 38252005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 3826 3827 * Makefile.in (BMAKE_VERSION): bump to 20050606 3828 * Merge with NetBSD make, pick up: 3829 o :0x modifier for randomizing a list 3830 o fixes for a number of -Wuninitialized issues. 3831 38322005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 3833 3834 * Makefile.in (BMAKE_VERSION): bump to 20050530 3835 * Merge with NetBSD make, pick up: 3836 o Handle dependencies for .BEGIN, .END and .INTERRUPT 3837 3838 * README: was seriously out of date. 3839 38402005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 3841 3842 * Important to use .MAKE rather than MAKE. 3843 38442005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 3845 3846 * Makefile.in (BMAKE_VERSION): bump to 20050315 3847 * Merge with NetBSD make, pick up: 3848 o don't mistake .elsefoo for .else 3849 o use suffix-specific search path correctly 3850 o bunch of style nits 3851 38522004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3853 3854 * boot-strap: 3855 o ensure that args to --src and --with-mksrc 3856 are resolved before giving them to configure. 3857 o add -o "objdir" so that builder can control it, 3858 default is $OS as determined by os.sh 3859 o add -q to suppress all the install instructions. 3860 38612004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 3862 3863 * Remove __IDSTRING() 3864 3865 * Makefile.in (BMAKE_VERSION): bump to 20040508 3866 * Merge with NetBSD make, pick up: 3867 o posix fixes 3868 - remove '-e' from compat mode 3869 - add support for '+' command-line prefix. 3870 o fix for handling '--' on command-line. 3871 o fix include in lst.lib/lstInt.h to simplify '-I's 3872 o we also picked up replacement of MAKE_BOOTSTRAP 3873 with !MAKE_NATIVE which is a noop, but possibly confusing. 3874 38752004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 3876 3877 * Makefile.in (BMAKE_VERSION): bump to 20040414 3878 * Merge with NetBSD make, pick up: 3879 o allow quoted strings on lhs of conditionals 3880 o issue warning when extra .else is seen 3881 o print line numer when errors encountered during parsing from 3882 string. 3883 38842004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 3885 3886 * Makefile.in (BMAKE_VERSION): bump to 20040220 3887 * Merge with NetBSD make, pick up: 3888 o fix for old :M parsing bug. 3889 o re-jigged unit-tests 3890 38912004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3892 3893 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 3894 so that './bmake -f Makefile test' works. 3895 38962004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 3897 3898 * Makefile.in: (BMAKE_VERSION): bump to 20040214 3899 * Merge with NetBSD make, pick up: 3900 o search upwards for *.mk 3901 o fix for double free of var substitution buffers 3902 o use of getopt replaced with custom code, since the usage 3903 (re-scanning) isn't posix compatible. 3904 39052004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 3906 3907 * arch.c: don't include ranlib.h on ELF systems 3908 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 3909 39102004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3911 3912 * Makefile.in (BMAKE_VERSION): bump to 20040118 3913 3914 * boot-strap (while): export vars we assign to on cmdline 3915 * unit-test/Makefile.in: ternary is .PHONY 3916 39172004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 3918 3919 * Makefile.in (BMAKE_VERSION): bump version to 20040108 3920 * Merge with NetBSD make, pick up: 3921 o fix for ternary modifier 3922 39232004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 3924 3925 * Makefile.in (BMAKE_VERSION): bump version to 20040105 3926 * Merge with NetBSD make, pick up: 3927 o fix for cond.c to handle compound expressions better 3928 o variable expansion within sysV style replacements 3929 39302003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 3931 3932 * Make portable snprintf safer - output to /dev/null first to 3933 check space needed. 3934 3935 * Makefile.in (BMAKE_VERSION): bump version to 20031222 3936 * Merge with NetBSD make, pick up: 3937 o -dg3 to show input graph when things go wrong. 3938 o explicitly look for makefiles in objdir if not found in curdir so 3939 that errors in .depend etc will be reported accurarely. 3940 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 3941 instead as it more accurately reflects the expected behavior and 3942 is more consistently implemented. 3943 o avoid use of asprintf. 3944 39452003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 3946 3947 * util.c: Add asprintf and vasprintf. 3948 3949 * Makefile.in (BMAKE_VERSION): bump version to 20030928 3950 * Merge with NetBSD make, pick up: 3951 :[] modifier - allows picking words from a variable. 3952 :tW modifier - allows treating value as one big word. 3953 W flag for :C and :S - allows treating value as one big word. 3954 39552003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 3956 3957 * Merge with NetBSD make 3958 pick up -de flag to enable printing failed command. 3959 don't skip 1st two dir entries (normally . and ..) since 3960 coda does not have them. 3961 39622003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3963 3964 * Makefile.in (BMAKE_VERSION): bump version to 20030909 3965 * Merge with NetBSD make, pick up: 3966 - changes for -V '${VAR}' to print fully expanded value 3967 cf. -V VAR 3968 - CompatRunCommand now prints the command that failed. 3969 - several files got updated 3 clause Berkeley license. 3970 39712003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3972 3973 * boot-strap: Allow setting configure args on command line. 3974 39752003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3976 3977 * configure.in: add --with-defshell to allow sh or ksh 3978 to be selected as default shell. 3979 3980 * Makefile.in: bump version to 20030731 3981 3982 * Merge with NetBSD make 3983 Pick up .SHELL spec for ksh and associate man page changes. 3984 Also compat mode now uses the same shell specs. 3985 39862003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3987 3988 * var.c (Var_Parse): ensure delim is initialized. 3989 3990 * unit-tests/Makefile.in: use single quotes to avoid problems from 3991 some shells. 3992 3993 * makefile.boot.in: 3994 Run the unit-tests as part of the bootstrap procedure. 3995 39962003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3997 3998 * unit-tests/Makefile.in: always force complaints from 3999 ${TEST_MAKE} to be from 'make'. 4000 4001 * configure.in: add check for 'diff -u' 4002 also fix some old autoconf'isms 4003 4004 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4005 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4006 4007 * Merge with NetBSD make 4008 Pick up fix for :ts parsing error in some cases. 4009 Pick unit-tests. 4010 40112003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4012 4013 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4014 4015 * var.c (Var_Parse): fix bug in :ts modifier, after const 4016 correctness fixes, must pass nstr to VarModify. 4017 40182003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4019 4020 * Makefile.in: BMAKE_VERSION switch to a date based version. 4021 We'll generally use the date of last import from NetBSD. 4022 4023 * Merge with NetBSD make 4024 Pick up fixes for const-correctness, now passes WARNS=3 on 4025 NetBSD. 4026 Pick up :ts modifier, allows controlling the separator used 4027 between words in variable expansion. 4028 40292003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4030 4031 * FILES: include boot-strap and os.sh 4032 4033 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4034 FreeBSD is known to be bad. 4035 4036 * makefile.boot.in (bootstrap): make this the default target. 4037 4038 * Makefile.in: bump version to 3.1.19 4039 4040 * machine.sh: avoid A-Z with tr as it is bound to lose. 4041 40422003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4043 4044 * Merge with NetBSD make 4045 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4046 Plus some doc fixes. 4047 40482003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4049 4050 * Merge with NetBSD make 4051 Pick up fix for PR/1523 - don't count a library as built, if there 4052 is no way to build it 4053 4054 * Bump version to 3.1.18 4055 40562003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4057 4058 * Merge with NetBSD make 4059 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4060 appears in src list. 4061 40622003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4063 4064 * Merge with NetBSD make (mmm 10th anniversary!) 4065 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4066 pick up -X which tells us to not export VAR=val via setenv if 4067 we are already doing so via MAKEFLAGS. This saves valuable env 4068 space on systems like Darwin. 4069 set MAKE_VERSION to 3.1.17 4070 4071 * parse.c: pix up fix for suffix rules 4072 40732003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4074 4075 * Merge with NetBSD make. 4076 pick up fix for propagating -B via MAKEFLAGS. 4077 set MAKE_VERSION to 3.1.16 4078 4079 * Apply some patches from pkgsrc-bootstrap/bmake 4080 Originally by Grant Beattie <grant@netbsd.org> 4081 I may have missed some - since they are based on bmake-3.1.12 4082 40832002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4084 4085 * makefile.boot.in (bmake): update install targets for those that 4086 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4087 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4088 4089 * bmake.cat1: update the pre-formatted man page! 4090 40912002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4092 4093 * Merge with NetBSD make. 4094 pick up fix for premature free of pointer used in call 4095 to Dir_InitCur(). 4096 set MAKE_VERSION to 3.1.15 4097 40982002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4099 4100 * configure.in: determine suitable value for MKSRC. 4101 override using --with-mksrc=PATH. 4102 4103 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4104 configs(8) will use 'sun4' as an alias for 'sparc'. 4105 41062002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4107 4108 * Merge with NetBSD make. 4109 pick up ${.PATH} 4110 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4111 set MAKE_VERSION to 3.1.14 4112 add configure checks for killpg and sys/socket.h 4113 41142002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4115 4116 * tag bmake-3-1-13 4117 4118 * makefile.boot.in (bmake): use install-mk 4119 Also setup ./mk before trying to invoke bmake.boot incase we 4120 needed install-mk to create a sys.mk for us. 4121 4122 * configure.in: If we need to add -I${srcdir}/missing, make it an 4123 absolute path so that it works for lst.lib too. 4124 4125 * make.h: always include sys/cdefs.h since we provide one if the 4126 host does not. 4127 4128 * Makefile.in (install-mk): 4129 use MKSRC/install-mk which will do the right thing. 4130 use uname -p for ARCH if possible. 4131 since install-mk will setup links bsd.prog.mk -> prog.mk if 4132 needed, just .include bsd.prog.mk 4133 4134 * Merge with NetBSD make (NetBSD-1.6) 4135 Code is ansi-C only now. 4136 Bug in handling of dotLast is fixed. 4137 Can now assign .OBJDIR and make will reset its notions of life. 4138 New modifiers :tu :tl for toUpper and toLower. 4139 4140Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4141 4142 * Merge with NetBSD make 4143 pick up fix for .END failure in compat mode. 4144 pick up fix for extra va_end() in ParseVErrorInternal. 4145 4146Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4147 4148 * configure.in: for systems that have sys/cdefs.h check if it is 4149 compatible. If not, include the one under missing, but tell it to 4150 include the native one too - necessary on Linux. 4151 4152 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4153 include_next (for gcc) to get the native sys/cdefs.h 4154 4155Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4156 4157 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4158 leaking descriptors when using -jN. 4159 4160 * job.c (JobPrintCommand): See if "curdir" exists before 4161 attempting to chdir(). Doing the chdir directly in make (when in 4162 compat mode) fails silently, so let the -jN version do the same. 4163 This can happen when building kernels in an object tree and 4164 playing clever games to reset .CURDIR. 4165 4166 * Merged with NetBSD make 4167 pick up .USEBEFORE 4168 4169Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4170 4171 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4172 4173Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4174 4175 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4176 us not to export the iterator variable when using VAR_CMD context. 4177 4178Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4179 4180 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4181 its the wrong "fix". 4182 4183Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4184 4185 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4186 We now simply append the variable names to .MAKEOVERRIDES, and 4187 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4188 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4189 Apart from fixing quoting bugs in previous version, this allows us 4190 to export vars to the environment by simply doing: 4191 .MAKEOVERRIDES+= PATH 4192 Merged again with NetBSD make, but the above is the only change. 4193 4194 * configure.in: added 4195 --disable-pwd-override disable $PWD overriding getcwd() 4196 --disable-check-make-chdir disable make trying to guess 4197 when it should automatically cd ${.CURDIR} 4198 4199 * Merge with NetBSD make, changes include: 4200 parse.c (ParseDoDependency): Spot that the syntax error is 4201 caused by an unresolved cvs/rcs conflict and say so. 4202 var.c: most of Var* functions now take a ctxt as 1st arg. 4203 now does variable substituion on rhs of sysv style modifiers. 4204 4205 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4206 is now done here. We append the name='value' to .MAKEOVERRIDES 4207 rather than directly into MAKEFLAGS as this allows a Makefile to 4208 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4209 very similar mechanism. Note that in adding name='value' to 4210 .MAKEOVERRIDES we do the moral equivalent of: 4211 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4212 4213Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4214 4215 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4216 4217 * Merged with NetBSD make 4218 make -dx can now be used to run commands via sh -x 4219 better error messages on exec failures. 4220 4221Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4222 4223 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4224 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4225 MACHINE etc otherwise they propagate from the previous bmake. 4226 4227 * configure.in (machine): allow --with-machine=generic to make 4228 configure use machine.sh to set MACHINE. 4229 4230 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4231 4232 * Makefile.in: mention in bmake.1 that we use autoconf. 4233 4234 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4235 4236Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4237 4238 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4239 as that rather defeats the usefulness of ${MAKEFILE}. 4240 4241 * main.c (MainParseArgs): append command line variable assignments 4242 to MAKEFLAGS so that they get propagated to child make's. 4243 Apparently this is required POSIX behaviour? Its useful anyway. 4244 4245Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4246 4247 * compat.c (CompatRunCommand): don't use perror() since stdio may 4248 cause problems in child of vfork(). 4249 4250 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4251 This routine prints out the .curdir where we stopped and will also 4252 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4253 4254 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4255 :@ expansion. 4256 4257 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4258 4259 * Added RCSid's for the files we've touched. 4260 4261Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4262 4263 * configure.in: Thanks to some clues from mdb@juniper.net, 4264 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4265 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4266 4267 --with-machine=MACHINE explicitly set MACHINE 4268 --with-force-machine=MACHINE set FORCE_MACHINE 4269 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4270 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4271 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4272 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4273 4274 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4275 4276 * makefile: added a pathetically simple makefile to drive 4277 bootstrapping. Running configure by hand is more useful. 4278 4279 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4280 dependent on NetBSD bsd.*.mk 4281 4282 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4283 _PATH_OBJDIRPREFIX for those that don't want a default. 4284 construct _PATH_DEFSYSPATH from the info we get from configure. 4285 4286 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4287 if MAKE_VERSION is defined. 4288 4289 * compat.c: when we bail, print out the .CURDIR we were in. 4290 4291Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4292 4293 * Merged with NetBSD make 4294 4295 * var.c: fixed a bug in the handling of the modifier :P 4296 if the node as found but the path was null, we segfault trying to 4297 duplicate it. 4298 4299Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4300 4301 * Merged with NetBSD make 4302 4303 * make.c: Make_OODate's test for a library out of date was using 4304 cmtime where it should have used mtime (my bug). 4305 4306 * compat.c: Use perror() to tell us what really went wrong when we 4307 cannot exec a command. 4308 4309Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4310 4311 * Merged with NetBSD make 4312 4313Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4314 4315 * Merged with NetBSD make 4316 4317Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4318 4319 * Merged with NetBSD make 4320 4321Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4322 4323 * Merged with NetBSD make 4324 4325Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4326 4327 * util.c: don't provide signal() since we use sigcompat.c 4328 4329 * Makefile.in: added a build target. 4330 4331 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4332 These allow some quite clever magic. 4333 4334 * main.c (main): added support for getenv(MAKESYSPATH). 4335 4336Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4337 4338 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4339 This avoids objdir having a different value depending on how a 4340 directory was reached (via command line, or subdir.mk). 4341 4342 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4343 4344Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4345 4346 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4347 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4348 I've been testing this in NetBSD's make for some weeks. 4349 4350 * Turn Makefile into Makefile.in and make it useful. 4351 4352Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4353 4354 * Imported NetBSD's -current make(1) and resolve conflicts. 4355 4356 * Applied autoconf patches from bmake v2 4357 4358 * Imported clean code base from NetBSD-1.0 4359