12024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 4 Merge with NetBSD make, pick up 5 o dir.c: in FindFile restore last search of .CURDIR even for 6 includes, as a number of existing makefiles are broken otherwise. 7 82024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20240519 11 Merge with NetBSD make, pick up 12 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 13 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 14 o main.c: no need to set .DOTLAST in sysIncPath 15 162024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * VERSION (_MAKE_VERSION): 20240508 19 Merge with NetBSD make, pick up 20 o make: ensure variables set on command line get added to 21 .MAKEOVERRIDES (even if they start with '.') so they are passed to 22 sub-makes. 23 242024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 25 26 * VERSION (_MAKE_VERSION): 20240430 27 Merge with NetBSD make, pick up 28 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 29 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 30 312024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 32 33 * VERSION (_MAKE_VERSION): 20240428 34 Merge with NetBSD make, pick up 35 o simplify freeing of lists 36 o arch.c: trim pointless comments 37 o var.c: delay variable assignments until actually needed 38 don't reallocate memory after evaluating an expression, result is 39 almost always short-lived. 40 412024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 42 43 * VERSION (_MAKE_VERSION): 20240426 44 Merge with NetBSD make, pick up 45 o job.c: in debug output, print the directory in which a job 46 failed at same time as failed target so it is more easily found in 47 build log. 48 492024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 50 51 * VERSION (_MAKE_VERSION): 20240424 52 Merge with NetBSD make, pick up 53 o clean up comments, code and tests 54 552024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 56 57 * VERSION (_MAKE_VERSION): 20240422 58 Merge with NetBSD make, pick up 59 o var.c: avoid LazyBuf for :*time modifiers. 60 LazyBuf's are not nul terminated so not suitable for passing to 61 functions that expect that. These modifiers are used sparingly so 62 an extra allocation is not a problem. 63 642024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 65 66 * VERSION (_MAKE_VERSION): 20240420 67 Merge with NetBSD make, pick up 68 o provide more context information for parse/evaluate errors 69 702024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 71 72 * VERSION (_MAKE_VERSION): 20240414 73 Merge with NetBSD make, pick up 74 o parse.c: print -dp debug info earlier so we see which 75 .if or .for line is being parsed. 76 772024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * VERSION (_MAKE_VERSION): 20240404 80 Merge with NetBSD make, pick up 81 o fix some unit tests for Cygwin 82 o parse.c: exit immediately after reading a null byte from a makefile 83 84 * fix generation of bmake.cat1 85 862024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 87 88 * VERSION (_MAKE_VERSION): 20240314 89 Add/Improve support for Cygwin 90 o uname -s output isn't useful so allow configure to 91 set FORCE_MAKE_OS - to force the value of .MAKE.OS 92 and use Cygwin which matches uname -o 93 o fix some unit-tests for Cygwin 94 952024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 96 97 * boot-strap: tests can take a long time; use a cookie to 98 skip them if bmake has not been updated since tests last 99 ran successfully. 100 101 * Makefile: Cygwin handles MANTARGET man 102 103 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 104 1052024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 106 107 * VERSION (_MAKE_VERSION): 20240309 108 Merge with NetBSD make, pick up 109 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 110 this allows a .ERROR target to ignore the case of 111 .ERROR_EXIT==6 which just means that the build actually 112 failed somewhere else. 113 1142024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 115 116 * VERSION (_MAKE_VERSION): 20240303 117 118 * var.c: on IRIX we need both inttypes.h and stdint.h 119 1202024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 121 122 * VERSION (_MAKE_VERSION): 20240301 123 Merge with NetBSD make, pick up 124 o export variables with value from target scope 125 when appropriate. 126 1272024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 128 129 * VERSION (_MAKE_VERSION): 20240212 130 Merge with NetBSD make, pick up 131 o remove unneeded conditional-compilation toggles 132 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 133 GMAKEEXPORT NO_REGEX and SUNSHCMD 134 135 * configure.in: add check for regex.h 136 137 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 138 1392024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 140 141 * VERSION (_MAKE_VERSION): 20240204 142 Merge with NetBSD make, pick up 143 o var.c: fix some lint (-dL) mode parsing issues 144 1452024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 146 147 * VERSION: (_MAKE_VERSION): 20240202 148 Merge with NetBSD make, pick up 149 o make.1: note that arg to :D and :U can be empty 150 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 151 1522024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 153 154 * VERSION (_MAKE_VERSION): 20240108 155 Merge with NetBSD make, pick up 156 o miscellaneous cleanups 157 1582024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 159 160 * VERSION (_MAKE_VERSION): 20240106 161 Merge with NetBSD make, pick up 162 o fix duplicate progname when reporting an unknown target 163 o unit tests for Cmd_Exec using temp file 164 1652024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 166 167 * VERSION (_MAKE_VERSION): 20240105 168 Merge with NetBSD make, pick up 169 o main.c: Cmd_Exec write cmd to a file if too big 170 avoid blowing commandline/env limits 171 1722024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 173 174 * VERSION (_MAKE_VERSION): 20240101 175 o util.c: flesh out more of strftime 176 * configure.in: add --with-bmake-strftime 177 it is not a full implementation but enough to pass all 178 the unit-tests. 179 * parse.c: LoadFile do not append \n to empty buffer. 180 1812023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * VERSION (_MAKE_VERSION): 20231230 184 Merge with NetBSD make, pick up 185 o simplify memory allocation for string buffers 186 o fix declared types of list nodes 187 o suff.c: clean up freeing of suffixes 188 o var.c: simplify debug message for the ':@var@...@' modifier 189 clean up variable handling 190 1912023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 192 193 * VERSION (_MAKE_VERSION): 20231226 194 Merge with NetBSD make, pick up 195 o compat.c: ensure make's output is correctly ordered with that of 196 the target when not going to a tty 197 o main.c: check for shellPath whether to call Shell_Init() 198 1992023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 200 201 * VERSION (_MAKE_VERSION): 20231224 202 Merge with NetBSD make, pick up 203 o compat.c: check for shellPath whether to call Shell_Init() 204 tweak the unit test to detect the bug thus fixed. 205 o make.1: do not claim .SHELL is only used by jobs mode. 206 2072023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 208 209 * VERSION (_MAKE_VERSION): 20231220 210 Merge with NetBSD make, pick up 211 o str.c: speed up pattern matching in the ':M' modifier 212 o var.c: fix confusing debug logging when deleting a variable 213 use consistent debug messages style when ignoring variables 214 2152023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 216 217 * VERSION (_MAKE_VERSION): 20231210 218 Merge with NetBSD make, pick up 219 o var.c: avoid segfault on empty :C match expression 220 explain in debug log why variable assignment is ignored. 221 2222023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 223 224 * VERSION (_MAKE_VERSION): 20231208 225 Merge with NetBSD make, pick up 226 o var.c: ensure fromCmd is set correctly for variables set on 227 command line. 228 2292023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 230 231 * configure.in: disable generation of 'makefile' for 232 Darwin by default. 233 234 * boot-strap: docuement --without-makefile 235 2362023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 237 238 * VERSION (_MAKE_VERSION): 20231124 239 Merge with NetBSD make, pick up 240 o main.c: cleanup processing of -j 241 fix lint warning about strchr 242 o var.c: more accurate error message for invalid ':mtime' argument 243 cleanup :[...] modifier 244 avoid reading beyond substring when comparing 245 o unit-tests cover all cases of :mtime, test and explain exporting 246 of variables 247 o cleanup comments 248 2492023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 250 251 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 252 $FreeBSD$ tag, so avoid adding it. 253 2542023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 255 256 * VERSION (_MAKE_VERSION): 20230909 257 Merge with NetBSD make, pick up 258 o main.c: allow -j to compute a multiple of ncpu 259 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 260 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 261 _SC_NPROCESSORS_ONLN 262 .MAKE.JOBS.C will be "yes" if -jC is supported 263 2642023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * VERSION (_MAKE_VERSION): 20230820 267 Merge with NetBSD make, pick up 268 o make.1: note that :localtime is better for %s 269 o parse.c: improve error messages for invalid input. 270 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 271 correct result, it is still better to use %s:L:localtime. 272 2732023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 274 275 * VERSION (_MAKE_VERSION): 20230818 276 Merge with NetBSD make, pick up 277 o meta.c: meta_ignore - check raw path against metaIgnorePaths 278 to potentially skip call to realpath. 279 o var.c: be strict when parsing the argument of the ':mtime' modifier 280 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 281 should be used to get an equivalent value to time(3). 282 2832023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 284 285 * VERSION (_MAKE_VERSION): 20230816 286 Merge with NetBSD make, pick up 287 o cond.c: clean up multiple-inclusion guards 288 2892023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 290 291 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 292 if configure cannot work out how to control TZ. 293 Remove varmod-localtime from BROKEN_TESTS for IRIX* 294 2952023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 296 297 * VERSION (_MAKE_VERSION): 20230723 298 299 * configure.in: fix the test for wether TZ=Europe/Berlin works. 300 Depending on the time of year, if run between 22:00 and 00:00 UTC 301 the check in configure would fail incorrectly. 302 Take the day into account as well. 303 3042023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 305 306 * VERSION (_MAKE_VERSION): 20230711 307 Merge with NetBSD make, pick up 308 o make.1: clean up wording, clarify scope of '!' in conditions 309 3102023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 311 312 * make-bootstrap.sh.in: set prefix 313 If configure is run using ksh we get unexpanded ${prefix} in 314 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 315 correct result. 316 3172023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 318 319 * VERSION (_MAKE_VERSION): 20230711 320 bump version for IRIX tweaks 321 322 * make.h: undef OP_NONE if defined 323 324 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 325 326 * configure.in: override INSTALL on IRIX 327 3282023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 329 330 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 331 3322023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 333 334 * VERSION (_MAKE_VERSION): 20230622 335 Merge with NetBSD make, pick up 336 o optimize string matching for ':M' and ':N' 337 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 338 3392023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 340 341 * VERSION (_MAKE_VERSION): 20230621 342 Merge with NetBSD make, pick up 343 o more extensive tests for include guards 344 o parse.c: if a guard is already defined a file that uses the same 345 guard is still guarded by it. 346 3472023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 348 349 * VERSION (_MAKE_VERSION): 20230620 350 Merge with NetBSD make, pick up 351 o allow guards to be targets as well as variables 352 The guard targets may include variable references like 353 __${.PARSEDIR:tA}/${.PARSEFILE}__ 354 3552023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 356 357 * VERSION (_MAKE_VERSION): 20230619 358 Merge with NetBSD make, pick up 359 o unit test for .undef of readOnly vars 360 o optimization for makefiles protected from multiple-inclusion 361 skip even opening the file after first include. 362 Initially this only handles makefiles guarded by a variable 363 target guards are next. 364 3652023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 366 367 * VERSION (_MAKE_VERSION): 20230616 368 Merge with NetBSD make, pick up 369 o var.c: do not allow delete of readOnly variable 370 3712023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 372 373 * VERSION (_MAKE_VERSION): 20230601 374 Merge with NetBSD make, pick up 375 o parse.c: .break takes no args 376 o lots of unit test updates 377 3782023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 379 380 * unit-tests/Makefile: skip tests that require /dev/filemon 381 if it does not exists - issue a warning. 382 3832023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 384 385 * VERSION (_MAKE_VERSION): 20230522 386 Fix building on darwin ppc 387 388 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 389 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 390 3912023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 392 393 * VERSION (_MAKE_VERSION): 20230515 394 395 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 396 compile filemon_ktrace.c 397 3982023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 399 400 * VERSION (_MAKE_VERSION): 20230512 401 o sys.dirdeps.mk - broke after-import target 402 4032023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 404 405 * VERSION (_MAKE_VERSION): 20230510 406 Merge with NetBSD make, pick up 407 o parse.c: don't print null filename in stack traces 408 o var.c: :mtime operate on each word in variable value 409 4102023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 411 412 * VERSION (_MAKE_VERSION): 20230509 413 Merge with NetBSD make, pick up 414 o for.c: skip syntactically wrong .for loops 415 o var.c: allow for :gmtime=${mtime} 416 add :mtime[=timestamp] where timestamp is used if stat(2) 417 fails, if :mtime=error stat(2) failure causes error. 418 4192023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 420 421 * VERSION (_MAKE_VERSION): 20230504 422 Merge with NetBSD make, pick up 423 o compat.c: fix compile on NetBSD 7.2 424 o make.1: fix documentation of .PREFIX to match reality and POSIX 425 o unit-tests: improved var-scope-local 426 4272023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 428 429 * VERSION (_MAKE_VERSION): 20230414 430 Merge with NetBSD make, pick up 431 o minor cleanup 432 4332023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 434 435 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 436 unlimited results in an insane number (0x7fffffffffffffff). 437 If BMAKE_NOFILE_MAX is defined, use that instead. 438 4392023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 440 441 * VERSION (_MAKE_VERSION): 20230321 442 Merge with NetBSD make, pick up 443 * make.1: document seemingly unexplained Error code 6. 444 4452023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 446 447 * VERSION (_MAKE_VERSION): 20230317 448 Merge with NetBSD make, pick up 449 o compat.c: CompatDeleteTarget skip .PHONY targets to be 450 consistent with JobDeleteTarget. 451 o job.c: fix memory leak in handling sysv :from=to modifiers 452 4532023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 454 455 * VERSION (_MAKE_VERSION): 20230303 456 Merge with NetBSD make, pick up 457 o several updated unit-tests 458 4592023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 460 461 * VERSION (_MAKE_VERSION): 20230222 462 Merge with NetBSD make, pick up 463 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 464 4652023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 466 467 * VERSION (_MAKE_VERSION): 20230218 468 Merge with NetBSD make, pick up 469 o var.c: fix parsing of unevaluated subexpressions with 470 unbalanced '{}' 471 4722023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 473 474 * VERSION (_MAKE_VERSION): 20230215 475 Merge with NetBSD make, pick up 476 o inline macros for some variable names 477 o cond.c: reduce complexity of evaluating expressions 478 4792023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 480 481 * VERSION (_MAKE_VERSION): 20230208 482 Merge with NetBSD make, pick up 483 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 484 when it has been used within conditional expressions 485 4862023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 487 488 * VERSION (_MAKE_VERSION): 20230127 489 490 * install-sh: if making directories ensure umask is set 491 to match mode. 492 493 * Makefile: use DIRMODE for directories and 494 NONBINMODE for man pages and mk files 495 4962023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 497 498 * VERSION (_MAKE_VERSION): 20230126 499 Merge with NetBSD make, pick up 500 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 501 should be read-only. 502 5032023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 504 505 * VERSION (_MAKE_VERSION): 20230123 506 Merge with NetBSD make, pick up 507 o .[NO]READONLY: for control of read-only variables 508 o .SYSPATH: for controlling the path searched for makefiles 509 5102023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 511 512 * VERSION (_MAKE_VERSION): 20230120 513 Merge with NetBSD make, pick up 514 o allow for white-space between command specifiers @+- 515 o add more details to warning 'Extra targets ignored' 516 5172023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 518 519 * machine.sh: leverage os.sh rather than duplicate 520 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 521 for that purpose for the past decade or so. 522 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 523 5242023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 525 526 * VERSION (_MAKE_VERSION): 20230101 527 Merge with NetBSD make, pick up 528 o cleanup comments, inline some LazyBuf_ methods 529 o unit-tests/ add/improve comments in tests 530 o make.1: sync list of built-in variables with reality 531 sort list of built-in variables 532 reduce indentation of the long list of variable names 533 use consistent markup for boolean flags 534 move description of .MAKE.MODE below the .MAKE.META block 535 clarify in which case an expression may omit braces 536 5372022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 538 539 * VERSION (_MAKE_VERSION): 20221024 540 Merge with NetBSD make, pick up 541 o change return type of unlink_file back to int 542 5432022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 544 545 * Makefile: Darwin and Linux can handle MANTARGET=man 546 5472022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 548 549 * VERSION (_MAKE_VERSION): 20220928 550 Merge with NetBSD make, pick up 551 o fix more ignored returns from snprintf 552 o compile with higher warnings 553 5542022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 555 556 * main.c meta.c: do not ignore return from snprintf 557 558 * meta.c strlcpy.c: we need prototype for strlcpy 559 560 * sigcompat.c: fix unused function warnings 561 5622022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 563 564 * VERSION (_MAKE_VERSION): 20220924 565 Merge with NetBSD make, pick up 566 o fix bug in .break reset of conditional depth 567 o overhaul and simplify tracking of conditional depth 568 5692022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 570 571 * VERSION (_MAKE_VERSION): 20220912 572 Merge with NetBSD make, pick up 573 o man page updates 574 5752022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 576 577 * VERSION (_MAKE_VERSION): 20220909 578 Merge with NetBSD make, pick up 579 o update unit-tests to handle deprecation of egrep 580 o cond.c: add more details to error message for numeric comparison 581 582 * configure.in: allow for deprecation of egrep 583 584 * Makefile: Linux can handle MANTARGET=man 585 5862022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 587 588 * VERSION (_MAKE_VERSION): 20220903 589 Merge with NetBSD make, pick up 590 o job.c: fix handling of null bytes in output 591 5922022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 593 594 * VERSION (_MAKE_VERSION): 20220902 595 Merge with NetBSD make, pick up 596 o Allow .break to terminate a .for loop early 597 5982022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 599 600 * VERSION (_MAKE_VERSION): 20220901 601 Merge with NetBSD make, pick up 602 o var.c: fix out-of-bounds errors when parsing 603 6042022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 605 606 * VERSION (_MAKE_VERSION): 20220824 607 Merge with NetBSD make, pick up 608 o var.c: revert change to modifier parsing that breaks 609 shell variable references within ':@var@body@' 610 o adjust unit-tests 611 6122022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 613 614 * VERSION (_MAKE_VERSION): 20220818 615 Merge with NetBSD make, pick up 616 o fix exit status for '-q' (since 1994) 617 6182022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20220808 621 Merge with NetBSD make, pick up 622 o var.c: fix parsing of modifiers containing unbalanced subexpressions 623 extract parsing of ':D' and ':U' modifiers into separate function 624 6252022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 626 627 * VERSION (_MAKE_VERSION): 20220726 628 629 * Auto-create objdir for bmake/unit-tests if appropriate 630 6312022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 632 633 * VERSION (_MAKE_VERSION): 20220724 634 Merge with NetBSD make, pick up 635 o make.1: describe variable assignment and evaluation more precisely 636 o parse.c: fix out-of-bounds read when parsing an invalid line 637 o var.c: simplify return type of IsShortVarnameValid 638 6392022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 640 641 * VERSION (_MAKE_VERSION): 20220612 642 Merge with NetBSD make, pick up 643 o allow to randomize build order of targets 644 .MAKE.MODE += randomize-targets can help uncover dependency bugs 645 within a makefile. 646 o compat.c: rename Compat_Run to Compat_MakeAll 647 o make.c: inline MakeBuildParent 648 inline make_abort, improve error details 649 o parse.c: reorganize Parse_Error 650 fix memory leak in wildcard targets and sources 651 separate cases in HandleDependencyTargetMundane 652 extract HandleSingleDependencyTargetMundane 653 rename loadfile to LoadFile 654 split IncludeFile into separate functions 655 condense code for searching a file in the paths 656 fix off-by-one error in buffer for .WAIT nodes 657 o str.c: condense Str_Match 658 make code for string matching syntactically more consistent 659 6602022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 661 662 * VERSION (_MAKE_VERSION): 20220418 663 Merge with NetBSD make, pick up 664 o ignore '.POSIX:' if not in first non-comment line 665 of Makefile as specified by POSIX. 666 add unit-tests for above. 667 o meta.c: make it easier to find usage of identifiers 668 o targ.c: add .USEBEFORE to Targ_PrintType 669 6702022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 671 672 * VERSION (_MAKE_VERSION): 20220414 673 674 * unit-tests/Makefile: simplify checks for shells with 675 BROKEN_TESTS, this helps with other Linux distros that 676 use dash. 677 6782022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 679 680 * VERSION (_MAKE_VERSION): 20220330 681 Merge with NetBSD make, pick up 682 o var.c: fix spacing, and a typo in a test 683 6842022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 685 686 * VERSION (_MAKE_VERSION): 20220326 687 Merge with NetBSD make, pick up 688 o parse.c: try to include 'posix.mk' the first time 689 .POSIX: is encountered, to allow for beter POSIX compliance. 690 o var.c: make debug logs more readable 691 prefer 'long long' over 'long' on 32-bit C99 platforms 692 fix crash on .undef of an environment variable 693 6942022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 695 696 * VERSION (_MAKE_VERSION): 20220303 697 Merge with NetBSD make, pick up 698 o tell meta mode unit tests not to expect filemon 699 o cond.c: make debug logging for comparisons less technical 700 o lst.c: fix mem leak in Lst_Remove 701 o str.c: make code for string matching syntactically more consistent 702 o var.c: simplify ParseModifier_Match 703 7042022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 707 708 * VERSION (_MAKE_VERSION): 20220214 709 Merge with NetBSD make, pick up 710 o cond.c: simplify control flow in CondParser_Comparison 711 o job.c: fix echoing of command with '-' in silent target in jobs mode 712 o main.c: prefix the warning about read-only .OBJDIR with a colon 713 o parse.c: remove redundant conditions 714 o var.c: simplify control flow in ModifyWord_SysVSubst 715 7162022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 717 718 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 719 is any chance we have dash as .SHELL 720 721 * VERSION (_MAKE_VERSION): 20220208 722 Merge with NetBSD make, pick up 723 o more unit tests 724 o meta.c: use a variable to hold command line to be filtered 725 to avoid any side effects from content of command line. 726 7272022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 728 729 * VERSION (_MAKE_VERSION): 20220204 730 Merge with NetBSD make, pick up 731 o use unsigned consistently for line numbers, avoid the need for %z 732 o parse.c: do not step off end of input in Parse_IsVar 733 when checking for target local variable assignments 734 7352022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 736 737 * VERSION (_MAKE_VERSION): 20220202 738 Merge with NetBSD make, pick up 739 o remove redundant declaration of HashIter_Init 740 o make DEBUG0 simpler 741 7422022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 743 744 * cast gn->lineno to avoid %z 745 746 * VERSION (_MAKE_VERSION): 20220130 747 Merge with NetBSD make, pick up 748 o more unit tests 749 o make GNode lineno unsigned to please lint 750 o print location of recursive variable references in commands 751 o print "stack trace" (makefile includes) on fatal errors 752 o make.1: refine documentation for target local assignments 753 7542022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 755 756 * VERSION (_MAKE_VERSION): 20220128 757 Merge with NetBSD make, pick up 758 o inline functions called only once 759 o for.c: clean up AddEscape for building the body of a .for loop 760 o hash.c: merge duplicate code for finding an entry in a hash table 761 replace HashEntry_KeyEquals with strncmp 762 o make.1: document quirks of target local variable assignments. 763 o parse.c: cleanup white-space 764 7652022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 766 767 * VERSION (_MAKE_VERSION): 20220126 768 Merge with NetBSD make, pick up 769 o allow setting target local variables 770 o more unit tests 771 o add missing newline after "cannot continue" message 772 o meta.c: clean up eat_dots 773 o parse.c: fix filename in warning about duplicate script 774 o var.c: when expanding nested variables, check simple things first 775 7762022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 777 778 * VERSION (_MAKE_VERSION): 20220116 779 Merge with NetBSD make, pick up 780 o fix for unit-tests/varname-makeflags on non-BSD systems 781 o use Var_Exists rather than Var_Value where appropriate 782 o remove unnecessary functions for expanding variable names 783 o cond.c: inline EvalBare 784 o main.c: lint cleanup 785 o parse.c: condense code in Parse_IsVar 786 use islower for parsing directives (none have upper case) 787 7882022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 789 790 * VERSION (_MAKE_VERSION): 20220112 791 Merge with NetBSD make, pick up 792 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 793 comparion, rarely needed but useful when it is. 794 7952022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 796 797 * VERSION (_MAKE_VERSION): 20220110 798 Merge with NetBSD make, pick up 799 o inline Buf_Clear 800 o remove redundant braces 801 o rename and inline Targ_Precious 802 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 803 o for.c: clean up handling of .for loops 804 fix reported line numbers of continuation lines 805 add details about .for loop variables to stack traces 806 o job.c: reduce code for initializing error handling in shell 807 o main.c: in Cmd_Exec, return error message instead of format string 808 have as few statements as possible between va_start and va_end 809 add debug logging for capturing the output of external commands 810 o make.c: use consistent variable names for varargs 811 o make_malloc.c: remove duplicate code from bmake_strdup 812 o parse.c: add missing printflike annotations 813 remove redundant lines from stack traces 814 fix stack traces in -dp mode 815 reduce confusing code in ParseForLoop 816 fix line number in debug log after returning from a file 817 rename IFile and its fields to match their actual content 818 clean up ParseDependencySources 819 o var.c: shorten ApplyModifier_Assign 820 rename is_shell_metachar, fix character conversion warning 821 merge calls to ApplyModifier_Time 822 merge duplicate code for modifiers 'gmtime' and 'localtime' 823 8242022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 825 826 * parse.c: loadfile restore extra byte in buffer. 827 8282022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 829 830 * VERSION (_MAKE_VERSION): 20220101 831 Merge with NetBSD make, pick up 832 o more unit-tests 833 o remove unnecessary words from command line options in CmdOpts 834 o rename eunlink to unlink_file 835 o cond.c: make ParseWord in condition parser simpler 836 internally return false for irrelevant leaves in conditions 837 replace table for function lookup in conditions with simple code 838 merge duplicate types CondEvalResult and CondResult 839 o for.c: clean up handling of .for loops and .include directives 840 o main.c: constify cached_realpath 841 clean up Cmd_Exec 842 o parse.c: sync API documentation 843 fix error message when reading more than 1 GB from stdin 844 clean up parsing of makefiles 845 fix line number in error message about open conditionals 846 unexport types VarAssignOp and VarAssign 847 clean up function names 848 remove redundant parameters in dependency parsing functions 849 reduce scope of the list of wildcard target names 850 extract OP_NOTARGET into separate function 851 clean up variable names for parsing dependency lines 852 make debug logging a bit more human-friendly 853 o var.c: condense code in ApplyModifier_Assign 854 8552021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 856 857 * VERSION (_MAKE_VERSION): 20211221 858 Merge with NetBSD make, pick up 859 o more unit-tests 860 o style cleanup 861 o in CLEANUP mode, free interned strings at the very end 862 o fix memory leak for filenames in .for loops 863 o buf.c: avoid memory leak 864 o cond.c: condense CondParser_ComparisonOp 865 o hash.c: change return type of HashTable_Set to void 866 o job.c: change return type of Compat_RunCommand from int to bool 867 o main.c: remove bmake_free 868 o parse.c: condense repetetive code in ParseDirective 869 remove dead code for handling traditional include directives 870 clean up parsing of variable assignments 871 remove unreachable code for parsing the dependency operator 872 clean up loading of files 873 fix memory leak in IncludeFile 874 o var.c: fix memory leak when parsing a variable name 875 fix memory leak from ${.SUFFIXES} 876 reduce memory allocation in modifier ':?' and ':C' 877 condense RegexReplace for the modifier ':C' and avoid strlen 878 merge duplicate code for memory handling in Var_Parse 879 distinguish between short-lived and environment variables 880 rename VarFreeEnv to VarFreeShortLived 881 8822021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * cond.c: fix mem leak in CondParser_Leaf 885 8862021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 887 888 * VERSION (_MAKE_VERSION): 20211212 889 Merge with NetBSD make, pick up 890 o rename Parse_SetInput to Parse_PushInput 891 o remove remove period from end of error messages and warnings 892 to be more consistent 893 o arch.c: use simpler memory management for parsing archive members 894 o cond.c: rework and reduce recursion 895 o for.c: rename some functions to better reflect purpose 896 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 897 o var.c: in parse errors, mark whitespace more clearly 898 inline ParseEmptyArg into CondParser_FuncCallEmpty 899 minimize calls to LazyBuf_Get in ParseVarnameLong 900 treat .SUFFIXES as a read-only variable 901 9022021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 903 904 * VERSION (_MAKE_VERSION): 20211207 905 Merge with NetBSD make, pick up 906 o inline HashIter_Init 907 o parse.c: inline common subexpression in ParseRawLine 908 o var.c: merge branches for modifiers ':D' and ':U' 909 extract common code into Expr_Words 910 extract common code into Expr_Str 911 move low-level implementation details out of Var_Parse 912 9132021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 914 915 * VERSION (_MAKE_VERSION): 20211206 916 Merge with NetBSD make, pick up 917 o add unit-tests/varmod-loop-delete 918 o for.c: inline Str_Words - reduce memory allocation 919 o parse.c: do not try to expand fixed variable names 920 only allocate the name of an included file if necessary 921 clean up ParseInclude 922 o var.c: fix use-after-free in modifier ':@' 923 save a memory allocation in each modifier ':O' and ':u' 924 save a memory allocation in the modifier ':[...]' 925 in UnexportVars, replace Str_Words with Substring_Words to 926 reduce allocations and copying. 927 9282021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 929 930 * VERSION (_MAKE_VERSION): 20211204 931 Merge with NetBSD make, pick up 932 o flesh out a number of tests 933 o replace enums with bitfields, this simplifies a lot of code. 934 o var.c: refactor ParseModifierPartSubst 935 9362021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 937 938 * VERSION (_MAKE_VERSION): 20211024 939 Merge with NetBSD make, pick up 940 o Punt on write errors - ENOSPC etc. 941 9422021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 943 944 * configure.in: use_defshell, set both DEFSHELL_INDEX 945 and defshell_path if appropriate. 946 This makes it easier to use say the KSH specification with 947 and alternate path for the shell. 948 949 * configure.in compat.c: for SCO we need to force UseShell 950 951 * configure.in: SCO /bin/sh is not usable, provide a list of 952 alternatives for use as .SHELL. 953 We still have to mark some tests as broken, plus more if we end up 954 with ksh as .SHELL. 955 Issue a warning about skipped tests. 956 957 * boot-strap: leave TOOL_DIFF to configure 958 959 * configure.in: on SCO native cc is not usable, 960 gcc is to be found in /usr/gnu/bin 961 and while ancient is at least able to compile bmake. 962 Thus we add /usr/gnu/bin to PATH if it exists, and later 963 check if $CC would have been found via $PATH. 964 If not we set CC to the full path of $CC. 965 Also gnu diff is known to support -u, so if it exists use it. 966 967 * configure.in: move getopt to AC_REPLACE_FUNCS 968 also add AC_C_INLINE - in an attempt to compile using 969 native cc on SCO. 970 971 * configure.in: check for stresep as well as strsep, since we 972 define the later to the former if necessary, and if we have to 973 provide stresep we also need to provide a prototype. 974 975 * configure.in: we no longer need to worry about 976 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 977 978 * make.h: make sure we have __RCSID 979 980 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 981 can control it. 982 9832021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 984 985 * VERSION: 20211020 986 Merge with NetBSD make, pick up 987 o confirm sync of unit-tests 988 9892021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 990 991 * configure.in: check if timezone Europe/Berlin is supported 992 if not try UTC-1 993 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 994 symlink unit-tests -> ../unit-tests/obj so that 995 unit-tests/Makefile.config is put in the right place. 996 * refine filtering of .OBJDIR in unit-tests 997 9982021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 999 1000 * Fix unit-tests on Minix 3.2.0 1001 o job.c: do not punt if read of token pipe fails for EAGAIN. 1002 On Minix at least, we are not ready to read the childExitJob pipe 1003 when poll says we are. 1004 There should actually be no reason for this pipe to be 1005 non-blocking, but while that works fine on {Net,Free}BSD it 1006 breaks another test case on Minix. 1007 o unit-tests/Makefile: deal with variants of error messages 1008 and use of obj as .OBJDIR 1009 10102021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1011 1012 * configure.in: add sigaction to AC_REPLACE_FUNCS 1013 we also need to check for sigaddset etc just for the benefit of 1014 sigact.c 1015 1016 * Add sigact.c as sigaction.c so this "just works". 1017 This should have been done back when bmake_signal started using 1018 sigaction (I only just noticed that sigact.c wasn't here ;-) 1019 Note: I no longer have access to any system where this would matter. 1020 10212021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1022 1023 * VERSION (_MAKE_VERSION): 20211011 1024 1025 * Makefile: cleanup a little 1026 1027 * configure.in: check for sigsetmask 1028 10292021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1030 1031 * VERSION (_MAKE_VERSION): 20211001 1032 Merge with NetBSD make, pick up 1033 o reduce locations reducing text size 1034 o remove unnecessary const 1035 o cond.c: fix lint warning on i386 1036 do not allow unquoted 'left == right' after modifier ':?' 1037 o hash.c: fix build for DEBUG_HASH_LOOKUP 1038 o var.c: fix memory leak in error case of the ':?' modifier 1039 10402021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1041 1042 * VERSION (_MAKE_VERSION): 20210911 1043 Merge with NetBSD make, pick up 1044 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1045 10462021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1047 1048 * VERSION (_MAKE_VERSION): 20210906 1049 Merge with NetBSD make, pick up 1050 o more unit tests 1051 o lint cleanup 1052 o rename some functions to better fit purpose 1053 o for.c: cleanup - remove unnecessary optimization 1054 fix embedded newlines 1055 o parse.c: correct case for CVS/RCS 1056 10572021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1058 1059 * VERSION (_MAKE_VERSION): 20210808 1060 Merge with NetBSD make, pick up 1061 o var.c: remove redundant initialization in ApplyModifier_Order 1062 1063 * mk/options.mk: issue warning for incorrect usage 1064 10652021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1066 1067 * var.c: use long for :On if we don't have a 64bit int type 1068 1069 * VERSION (_MAKE_VERSION): 20210803 1070 Merge with NetBSD make, pick up 1071 o rework varmod-order tests to avoid qsort instability 1072 o make.1: clarify :On entry 1073 10742021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1075 1076 * VERSION (_MAKE_VERSION): 20210731 1077 Merge with NetBSD make, pick up 1078 o fix some lint issues 1079 o more unit tests 1080 o var.c: rework of ApplyModifier_Order 1081 10822021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1083 1084 * util.c: add strto*l if HAVE_STRTO*L not defined 1085 1086 * VERSION (_MAKE_VERSION): 20210730 1087 Merge with NetBSD make, pick up 1088 o var.c: add :On and :Orn for numeric sort 1089 disabled if no 64bit type available. 1090 o _strtol.h: to implement strto*l functions 1091 10922021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1093 1094 * VERSION (_MAKE_VERSION): 20210704 1095 Merge with NetBSD make, pick up 1096 o unit-tests: fix some tests to be more portable 1097 - job-output-null not all shells do the same number of write calls 1098 - objdir-writable if TMPDIR is set; /tmp may not be usable 1099 11002021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1101 1102 * VERSION (_MAKE_VERSION): 20210701 1103 Merge with NetBSD make, pick up 1104 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1105 some tests just cannot work in some environments. 1106 o buf.c: simpler upper bound for length in Buf_AddInt 1107 o cond.c: fix grammar in error message for malformed conditional 1108 o for.c: prevent newline injection (from ${.newline}) in .for loops 1109 o var.c: use more practical data type in RegexReplace 1110 (avoid need for %zu) 1111 extract RegexReplace from ModifyWord_SubstRegex 1112 11132021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1114 1115 * VERSION (_MAKE_VERSION): 20210621 1116 Merge with NetBSD make, pick up 1117 o var.c: only report error for unmatched regex subexpression 1118 when linting (-dL) since we cannot tell when an unmatched 1119 subexpression is an expected result. 1120 o move unmatched regex subexpression tests to 1121 varmod-subst-regex.mk and enable strict (lint) mode 1122 11232021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1124 1125 * VERSION (_MAKE_VERSION): 20210616 1126 Merge with NetBSD make, pick up 1127 o more unit tests 1128 o cond.c: rename If_Eval to EvalBare 1129 improve function names for parsing conditions 1130 o job.c: fix error handling of targets that cannot be made 1131 o var.c: uncompress code in ApplyModifier_Unique 1132 11332021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1134 1135 * VERSION (_MAKE_VERSION): 20210518 1136 Merge with NetBSD make, pick up 1137 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1138 o job.c: Print -de error information when running multiple jobs 1139 11402021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1141 1142 * VERSION (_MAKE_VERSION): 20210420 1143 Merge with NetBSD make, pick up 1144 o use C99 bool type 1145 o convert VarEvalFlags back into an enum 1146 o cond.c: do not complain when skipping the condition 'no >= 10' 1147 o hash.c: avoid allocating memory for simple variable names 1148 o job.c: use distinct wording for writing to the shell commands file 1149 remove type name for the abort status in job handling 1150 rename PrintOutput to PrintFilteredOutput to avoid confusion 1151 o main.c: avoid double slash in name of temporary directory 1152 o var.c: use straight quotes for error 'Bad conditional expression' 1153 reduce memory allocations in the modifiers ':D' and ':U' 1154 rename members of ModifyWord_LoopArgs 1155 clean up pattern flags for the modifiers ':S' and ':C' 1156 reduce memory allocation and strlen calls in modifier ':from=to' 1157 in the ':Q' modifier, only allocate memory if necessary 1158 improve performance for LazyBuf 1159 remove redundant parameter from ParseVarnameLong 1160 migrate ParseModifierPart to use Substring 1161 avoid unnecessary calls to strlen when evaluating modifiers 1162 migrate ModifyWord functions to use Substring 1163 migrate handling of the modifier ':S,from,to,' to Substring 1164 reduce debug logging and memory allocation for ${:U...} 1165 reduce verbosity of the -dv debug logging for standard cases 1166 clean up debug logging for ':M' and ':N' 1167 disallow '$' in the variable name of the modifier ':@' 1168 simplify access to the name of an expression during evaluation 1169 11702021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1171 1172 * VERSION (_MAKE_VERSION): 20210330 1173 Merge with NetBSD make, pick up 1174 o replace enum bit-field with struct bit-field for VarEvalFlags 1175 o rename VARE_NONE to VARE_PARSE_ONLY 1176 o var.c: rename ApplyModifiersState to ModChain 1177 fix double varname expansion in the variable modifier '::=' 1178 change debug log for variable evaluation flags to lowercase 1179 11802021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1181 1182 * VERSION (_MAKE_VERSION): 20210314 1183 Merge with NetBSD make, pick up 1184 o var.c: avoid evaluating many modifiers in parse only mode 1185 in strict mode (-dL) many variable references are parsed twice, 1186 the first time just to report parse errors early, so we want to 1187 avoid side effects and wasted effort to the extent possible. 1188 11892021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1190 1191 * VERSION (_MAKE_VERSION): 20210226 1192 Merge with NetBSD make, pick up 1193 o remove freestanding freeIt variables 1194 link via FStr 1195 o var.c: restructure code in ParseVarname to target human readers 1196 improve error message for; 1197 bad modifier in variable expression 1198 unclosed modifier 1199 unknown modifier 1200 remove redundant parameter of ApplySingleModifier 1201 explain non-obvious code around indirect variable modifiers 1202 quote ':S' in error message about missing delimiter 1203 extract ParseModifier_Match into separate function 1204 add context information to error message about ':range' modifier 1205 add quotes around variable name in an error message 1206 reorder code in ModifyWords 1207 use more common parameter order for VarSelectWords 1208 make ModifyWord_Subst a little easier to understand 1209 do not expand variable name from the command line twice 1210 extract ExistsInCmdline from Var_SetWithFlags 1211 save a hash map lookup when defining a cmdline variable 1212 clean up VarAdd, Var_Delete, Var_ReexportVars 1213 use bit-shift expressions for VarFlags constants 1214 rename constants for VarFlags 1215 rename ExprDefined constants for debug logging 1216 rename ExprStatus to ExprDefined 1217 split parameters for evaluating variable expressions 1218 reduce redundant code around ModifyWords 1219 print error about failed shell command before overwriting variable 1220 clean up ValidShortVarname, ParseVarnameShort 1221 rename VarExprStatus to ExprStatus 1222 add functions for assigning the value of an expression 1223 rename ApplyModifiersState_Define to Expr_Define 1224 condense the code for parsing :S and :C modifiers 1225 12262021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1227 1228 * VERSION (_MAKE_VERSION): 20210206 1229 Merge with NetBSD make, pick up 1230 o unit-tests: use private TMPDIR to avoid errors from other users 1231 12322021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1233 1234 * VERSION (_MAKE_VERSION): 20210205 1235 Merge with NetBSD make, pick up 1236 o avoid strdup in mkTempFile 1237 o always use vfork 1238 o rename context and ctxt to scope 1239 o rename some VAR constants to SCOPE 1240 o Var_ functions, move the scope to the front 1241 o use shortcut functions Global_Set and Global_Append 1242 o add shortcut Global_Delete for deleting a global variable 1243 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1244 o compat.c: when exiting due to an error, print graph information 1245 o enum.c: remove overengineered Enum_ValueToString 1246 o make.c: remove unused INTERNAL flag 1247 remove unused return type of MakeBuildParent 1248 o parse.c: replace parse error "Need an operator" with better message 1249 o var.c: improve documentation about variable scopes 1250 rename Var_ValueDirect to GNode_ValueDirect 1251 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1252 merge SetVar into Var_SetWithFlags 1253 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1254 split Var_Append into Var_Append and Var_AppendExpand 1255 replace enum bit-set with bit-field 1256 o unit-tests/var-op-shell: use kill rather than kill -14 1257 which broke on darwin with recent update. 1258 12592021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1260 1261 * configure.in: check for sig_atomic_t and define it as 'int' 1262 if missing. 1263 1264 * VERSION (_MAKE_VERSION): 20210201 1265 Merge with NetBSD make, pick up 1266 o use sig_atomic_t for caught_sigchld 1267 12682021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1269 1270 * VERSION (_MAKE_VERSION): 20210130 1271 Merge with NetBSD make, pick up 1272 o more unit tests 1273 o convert SearchPath to struct 1274 o split Buf_Destroy into Buf_Done and Buf_DoneData 1275 o for.c: split For_Eval into separate functions 1276 rename struct For to struct ForLoop 1277 o job.c: do not create empty shell files in jobs mode 1278 rename JobOpenTmpFile to JobWriteShellCommands 1279 reduce unnecessary calls to waitpid 1280 o parse.c: in -dp mode, print stack trace with each diagnostic 1281 12822021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1283 1284 * VERSION (_MAKE_VERSION): 20210123 1285 Merge with NetBSD make, pick up 1286 o rename Dir_Expand to SearchPath_Expand 1287 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1288 o cond.c: fix debug output for comparison operators in conditionals 1289 o dir.c: split Dir_FindFile into separate functions 1290 12912021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1292 1293 * VERSION (_MAKE_VERSION): 20210120 1294 Merge with NetBSD make, pick up 1295 o fix some more lint nits 1296 o refine some unit tests for portability 1297 o cond.c: rework parsing 1298 12992021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1300 1301 * VERSION (_MAKE_VERSION): 20210110 1302 Merge with NetBSD make, pick up 1303 o fix lint warnings 1304 o consistently use boolean expressions in conditions 1305 13062021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1307 1308 * VERSION (_MAKE_VERSION): 20210108 1309 Merge with NetBSD make, pick up 1310 o job.c: back to polling token pipe if we want a token 1311 o main.c: always print 'stopped in' on first call 1312 The execption is if we bail because of an abort token 1313 in which case just exit 6. 1314 13152021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1316 1317 * VERSION (_MAKE_VERSION): 20210101 1318 Merge with NetBSD make, pick up 1319 o Happy New Year! 1320 o rename CmdOpts.lint to strict 1321 o exit 2 on technical errors 1322 o replace pointers in controlling conditions with booleans 1323 o replace global preserveUndefined with VARE_KEEP_UNDEF 1324 o compat.c: re-export variables from the actual make process 1325 if using vfork this is the effect anyway 1326 o cond.c: clean up VarParseResult constants 1327 o for.c: fix undefined behavior in SubstVarLong 1328 make control flow in SubstVarLong of .for loops more obvious 1329 clean up SubstVarShort in .for loops 1330 extract ForSubstBody from ForReadMore 1331 clean up ForReadMore 1332 simplify termination condition for .for loop 1333 add error handling for .for loop items 1334 job.c: re-export variables from the actual make process 1335 parse.c: remove mmap for loading files, only allow files < 1 GiB 1336 fix edge case in := with undefined in variable name 1337 skip variable expansion in ParseDependencyTargetWord 1338 var.c: split ExportVar into separate functions 1339 clean up code in extracted ExportVar functions 1340 remove dead code from ApplyModifiersIndirect 1341 split Var_Subst into easily understandable functions 1342 clean up VarParseResult constants 1343 13442020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1345 1346 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1347 13482020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1349 1350 * VERSION (_MAKE_VERSION): 20201222 1351 Merge with NetBSD make, pick up 1352 o make DEBUG macro return boolean 1353 o parse.c: fix assertion failure for files without trailing newline 1354 o var.c: allow .undef to undefine multiple variables at once 1355 remove excess newline from parse errors 1356 13572020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1358 1359 * VERSION (_MAKE_VERSION): 20201221 1360 Merge with NetBSD make, pick up 1361 o some unit-test updates 1362 13632020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1364 1365 * VERSION (_MAKE_VERSION): 20201220 1366 Merge with NetBSD make, pick up 1367 o more unit tests 1368 o return FStr from Var_Parse and Var_Value 1369 o spell nonexistent consistently 1370 o add str_basename to reduce duplicate code 1371 o compat.c: fix .ERROR_TARGET in compat -k mode 1372 extract InitSignals from Compat_Run 1373 extract UseShell from Compat_RunCommand 1374 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1375 o for.c: rename ForIterate to ForReadMore 1376 o hash.c: clean up hash function for HashTable 1377 o lst.c: rename Vector.priv_cap to cap 1378 o main.c: remove constant parameter from MakeMode 1379 o make.c: use symbolic time for 0 in Make_Recheck 1380 extract MakeChildren from MakeStartJobs 1381 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1382 fix error message for .info/.warning/.error without argument 1383 extract Var_Undef from ParseDirective 1384 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1385 rename mode constants for ParseGetLine to be more expressive 1386 reduce debugging details in Parse_SetInput 1387 fix line numbers in .for loops 1388 split ParseGetLine into separate functions 1389 fix garbled output for failed shell command 1390 var.c: remove redundant assignment in ApplyModifier_SysV 1391 error out on unknown variable modifiers at parse time 1392 remove wrong error message for indirect modifier in lint mode 1393 extract ApplySingleModifier from ApplyModifiers 1394 use FStr for memory management in Var_SetWithFlags 1395 extract SetVar from Var_SetWithFlags 1396 use FStr in VarNew 1397 extract string functions from ApplyModifier_To 1398 error out if .undef has not exactly 1 argument 1399 extract Var_DeleteVar from Var_Delete 1400 extract Var_Undef from ParseDirective 1401 clean up memory management for expanding variable expressions 1402 14032020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1404 1405 * avoid %zu 1406 1407 * lst.c: avoid anonymous union 1408 1409 * VERSION (_MAKE_VERSION): 20201212 1410 Merge with NetBSD make, pick up 1411 o more unit tests 1412 o inline Targ_Ignore and Targ_Silent 1413 o split JobFlags into separate fields 1414 o remove const from function parameters (left overs from refactoring) 1415 o eliminate boolean argument of Var_Export 1416 o make API of Buf_Init simpler 1417 o rename ParseRunOptions to ParseCommandFlags 1418 o replace *line with line[0] 1419 o compat.c: fix wrong exit status for multiple failed main targets 1420 refactor Compat_Run to show the error condition more clearly 1421 don't make .END if the main targets already failed (-k mode) 1422 fix exit status in -k mode if a dependency fails 1423 o for.c: clean up Buf_AddEscaped in .for loops 1424 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1425 make Job_Touch simpler 1426 refactor JobFinish 1427 rename Shell.exitFlag to errFlag 1428 move Job.xtraced to ShellWriter 1429 make printing of shell commands independent from the job 1430 rename shell flags in struct Shell 1431 extract JobOpenTmpFile from JobStart 1432 rename RunFlags to CommandFlags 1433 split various Job.* into separate fields 1434 rename commandShell to shell 1435 extract InitShellNameAndPath from Shell_Init 1436 replace signal handling macros with local functions 1437 replace macro MESSAGE with local function 1438 parse.c: error out on null bytes in makefiles 1439 error out on misspelled directives 1440 rename IFile.nextbuf to readMore 1441 fix undefined behavior in ParseEOF 1442 str.c: remove redundant call to strlen in Str_Words 1443 var.c: error out on misspelled .unexport-env 1444 error out on misspelled .export directives 1445 extract ExportVars from Var_Export 1446 extract ExportVarsExpand from Var_Export 1447 eliminate boolean argument of Var_Export 1448 fix undefined behavior when exporting ${:U } 1449 rename Var_ExportVars to Var_ReexportVars 1450 rename Var_Export1 to ExportVar 1451 14522020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1453 1454 * VERSION (_MAKE_VERSION): 20201206 1455 Merge with NetBSD make, pick up 1456 o more unit tests 1457 o inline macros for debug logging 1458 o use consistent variable names for list nodes 1459 o define constants for enum zero-values 1460 o dir.c: use fixed format for debug output of the directory cache 1461 remove Dir_InitDir 1462 o lst.c: inline Lst_Enqueue, Vector_Done 1463 o meta.c: remove unused parameter from meta_needed 1464 o parse.c: rename parse functions 1465 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1466 o targ.c: don't concatenate identifiers in Targ_PrintType 1467 o var.c: remove comment decoration 1468 extract UnexportVars from Var_UnExport 1469 extract GetVarnamesToUnexport from Var_UnExport 1470 extract UnexportEnv from Var_UnExport 1471 extract UnexportVar from Var_UnExport 1472 move CleanEnv to UnexportVars 1473 replace pointer comparisons with enum 1474 add FStr to var.c to make memory handling simpler 1475 use FStr in Var_UnExport 1476 move type definitions in var.c to the top 1477 extract FreeEnvVar from Var_Parse 1478 extract ShuffleStrings from ApplyModifier_Order 1479 14802020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1481 1482 * VERSION (_MAKE_VERSION): 20201130 1483 Merge with NetBSD make, pick up 1484 o add unit tests for META MODE 1485 o reduce memory allocation for dirSearchPath, GNode.parents, 1486 GNode.children, OpenDirs 1487 o reduce pointer indirection for GNode.cohorts and 1488 GNode.implicitParents 1489 o remove pointer indirection from GNode.commands 1490 o inline Lst_ForEachUntil in meta mode 1491 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1492 clean up memory management for CachedDirs 1493 fix the reference count of dotLast going negative 1494 add debug logging for OpenDirs_Done 1495 extract CacheNewDir from Dir_AddDir 1496 add debug logging for reference counting of CachedDir 1497 rename some Dir functions to SearchPath 1498 o job.c: rename some global variables 1499 o main.c: reduce memory allocation in ReadBuiltinRules 1500 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1501 CmdOpts.makefiles 1502 Add .MAKE.UID and .MAKE.GID 1503 o make.c: reduce memory allocation for/in toBeMade, 1504 Make_ProcessWait, Make_ExpandUse 1505 o meta.c: reduce memory allocation in meta_oodate 1506 o parse.c: reduce memory allocations for parsing dependencies and 1507 targets 1508 o suff.c: reduce memory allocation in suffix handling 1509 15102020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1511 1512 * VERSION (_MAKE_VERSION): 20201124 1513 Merge with NetBSD make, pick up 1514 o .MAKE.{UID,GID} represent uid and gid running make. 1515 o fix error handling for .BEGIN and .END dependency in -k mode 1516 o fix missing "Stop." after failed .END node in -k mode 1517 o use properly typed comparisons in boolean contexts 1518 o replace a few HashTable_CreateEntry with HashTable_Set 1519 o add HashSet type 1520 o compat.c: split Compat_Make into smaller functions 1521 extract DebugFailedTarget from Compat_RunCommand 1522 o dir.c: refactor Dir_UpdateMTime 1523 migrate CachedDir.files from HashTable to HashSet 1524 o make.c: add high-level API for GNode.made 1525 15262020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1527 1528 * VERSION (_MAKE_VERSION): 20201122 1529 Merge with NetBSD make, pick up 1530 o rename GNode.context to vars 1531 o suff.c: cleanup and refactor 1532 rename some functions and vars to better reflect usage 1533 add high-level API for CandidateSearcher 1534 o targ.c: add more debug logging for suffix handling 1535 o more unit tests 1536 o add debug logging for setting and resetting the main target 1537 15382020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1539 1540 * VERSION (_MAKE_VERSION): 20201117 1541 Merge with NetBSD make, pick up 1542 o fix some unit-tests when .SHELL is dash 1543 o rename Targ_NewGN to GNode_New 1544 o make some GNode functions const 1545 o main.c: call Targ_Init before Var_Init 1546 cleanup PrintOnError, getTmpdir and ParseBoolean 1547 o var.c: fix error message of failed :!cmd! modifier 1548 15492020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1550 1551 * VERSION (_MAKE_VERSION): 20201114 1552 Merge with NetBSD make, pick up 1553 o replace a few HashTable_CreateEntry with HashTable_Set 1554 o clean up cached_stats 1555 o rename DEFAULT to defaultNode 1556 o remove redundant struct make_stat 1557 o cond.c: in lint mode, check for ".else <cond>" 1558 use bitset for IfState 1559 replace large switch with if-else in Cond_EvalLine 1560 o job.c: clean up JobExec, JobStart, JobDoOutput 1561 use stderr for error message about failed touch 1562 clean up Job_Touch 1563 replace macro DBPRINTF with JobPrintln 1564 rename JobState to JobStatus 1565 main.c: switch cache for realpath from GNode to HashTable 1566 clean up Fatal 1567 clean up InitDefSysIncPath 1568 use progname instead of hard-coded 'make' in warning 1569 rename Main_SetVarObjdir to SetVarObjdir 1570 make.1: document the -S option 1571 make.c: fix debug output for GNode details 1572 use symbolic names in debug output of GNodes 1573 15742020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1575 1576 * configure.in: fix --with-force-machine-arch 1577 1578 * VERSION (_MAKE_VERSION): 20201112 1579 Merge with NetBSD make, pick up 1580 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1581 checks in InitObjdir. Explicit .OBJDIR target always allows 1582 read-only directory. 1583 o cond.c: clean up Cond_EvalLine 1584 15852020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1586 1587 * VERSION (_MAKE_VERSION): 20201111 1588 Merge with NetBSD make, pick up 1589 o more unit-tests 1590 o style cleanup 1591 remove redundant parentheses from sizeof operator 1592 replace character literal 0 with '\0'. 1593 replace pointer literal 0 with NULL. 1594 remove redundant parentheses. 1595 replace (expr & mask) == 0 with !(expr & mask). 1596 use strict typing in conditions of the form !var 1597 o rename Make_OODate to GNode_IsOODate 1598 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1599 o rename Var_Set_with_flags to Var_SetWithFlags 1600 o rename dieQuietly to shouldDieQuietly 1601 o buf.c: make API of Buf_Init simpler 1602 o compat.c: clean up Compat_Make, Compat_RunCommand, 1603 CompatDeleteTarget and CompatInterrupt 1604 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1605 clean up CondParser_Comparison 1606 o main.c: rename getBoolean and s2Boolean 1607 rename MAKEFILE_PREFERENCE for consistency 1608 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1609 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1610 replace emptyString with allocated empty string 1611 error out on unclosed expressions after the colon 1612 16132020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1614 1615 * VERSION (_MAKE_VERSION): 20201101 1616 Merge with NetBSD make, pick up 1617 o negate NoExecute to GNode_ShouldExecute 1618 o job.c: rename JobMatchShell to FindShellByName 1619 extract EscapeShellDblQuot from JobPrintCommand 1620 extract ParseRunOptions from JobPrintCommand 1621 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1622 treat malformed :range, :ts and :[...] as errors 1623 add tests for the variable modifiers :[words] and :range 1624 16252020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1626 1627 * VERSION (_MAKE_VERSION): 20201031 1628 Merge with NetBSD make, pick up 1629 o format #include directives consistently 1630 o do not look up local variables like .TARGET anywhere else 1631 o main.c: Main_SetObjdir is first called for curdir which may be 1632 readonly 1633 reduce the scope where recursive expressions are detected 1634 remove redundant :tl from getBoolean 1635 clean up mkTempFile 1636 o meta.c: simplify memory allocation in meta_create and meta_oodate 1637 o parse.c: extract loadedfile_mmap from loadfile 1638 o trace.c: document possible undefined behavior with .CURDIR 1639 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1640 rename ismeta to is_shell_metachar 1641 remove debug logging for the :Q variable modifier 1642 rename VarIsDynamic to VarnameIsDynamic 1643 use consistent parameter order in varname parsing functions 1644 extract ParseVarnameLong from Var_Parse 1645 extract ParseVarnameShort from Var_Parse 1646 fix type of ParseModifierPart parameter delim 1647 extract IsEscapedModifierPart from ParseModifierPart 1648 clean up ModifyWords 1649 add test for combining the :@ and :? variable modifiers 1650 16512020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1652 1653 * VERSION (_MAKE_VERSION): 20201030 1654 Merge with NetBSD make, pick up 1655 o change char * to void * in Var_Value 1656 o make iterating over HashTable simpler 1657 o rename VAR_CMD to VAR_CMDLINE 1658 o cond.c: clean up is_separator 1659 fix parse error in string literal in conditional 1660 o main.c: do not use objdir that is not writable 1661 in lint mode, exit with error status on errors 1662 o parse.c: clean up StrContainsWord 1663 fix out-of-bounds pointer in ParseTrackInput 1664 o var.c: rename Str_SYSVMatch and its parameters 1665 remove unsatisfiable conditions in Var_Set_with_flags 1666 document where the variable name is expanded 1667 fix documentation for VARP_SUB_ONE 1668 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1669 document VAR_READONLY 1670 prevent appending to read-only variables 1671 extract MayExport from Var_Export1 1672 remove redundant evaluations in VarFind 1673 replace VarFindFlags with a simple Boolean 1674 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1675 16762020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1677 1678 * VERSION (_MAKE_VERSION): 20201028 1679 Merge with NetBSD make, pick up 1680 o rename defIncPath to defSysIncPath 1681 o initialize all CmdOpts fields 1682 o lst.c: inline Vector_Get 1683 o main.c: refactor main extract 1684 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1685 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1686 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1687 o parse.c: merge curFile into includes 1688 rename predecessor to order_pred 1689 sort ParseSpecial alphabetically 1690 remove unused, undocumented .NOEXPORT 1691 rename ParseSpecial enum values consistently 1692 rename some fields of struct IFile 1693 16942020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1695 1696 * VERSION (_MAKE_VERSION): 20201026 1697 Merge with NetBSD make, pick up 1698 o group the command line options and arguments into a struct 1699 o rename GNode.cmgn to youngestChild 1700 o rename hash functions to identify the type name 1701 o negate OP_NOP and rename it to GNode_IsTarget 1702 o add GNode_Path to access the path of a GNode 1703 o remove macros MIN and MAX 1704 o remove unused Lst_Find and Lst_FindFrom 1705 o arch.c: and make Arch_FindLib simpler 1706 clean up code layout 1707 make Arch_ParseArchive simpler 1708 o cond.c: inline CondFindStrMatch into FuncMake 1709 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1710 omit trailing space in debug output for expanding file patterns 1711 refactor DirMatchFiles 1712 document that the SearchPath of Dir_FindFile may be NULL 1713 remove UNCONST from Dir_Expand 1714 inline DirFindName 1715 o for.c: clean up code for handling .for loops 1716 o hash.c: print hash in debug log with fixed width 1717 clean up hash table functions 1718 reduce amount of string hashing 1719 o job.c: refactor JobDeleteTarget 1720 use proper enum constants for aborting 1721 convert result of JobStart from macros to enum 1722 convert abort reason macros to enum 1723 rework Job_CheckCommands to reduce indentation 1724 rename Shell fields 1725 add field names in declaration of DEFSHELL_CUSTOM 1726 convert JobState and JobFlags to enum types 1727 move handling of the "..." command to JobPrintCommands 1728 o lst.c: clean up 1729 refactor LstNodeNew 1730 remove Lst_Open, Lst_Next, Lst_Close 1731 remove code for circular lists from Lst_Next 1732 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1733 /dev/null or anything starting with "no" 1734 convert macros for debug flags into enum 1735 o make.c: inline Lst_Copy in Make_ExpandUse 1736 o meta.c: inline Lst_Find in meta_oodate 1737 make Lst_RemoveIf simpler in meta_oodate 1738 o parse.c: convert error level for Parse_Error to an enum 1739 o suff.c: properly terminate debug output with newline 1740 add more details to DEBUG_SRC log 1741 replace Dir_CopyDir with Dir_CopyDirSearchPath 1742 don't modify GNode name while rebuilding the suffix graph 1743 o var.c: reduce duplicate code in VarFind 1744 17452020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1746 1747 * VERSION (_MAKE_VERSION): 20201022 1748 Merge with NetBSD make, pick up 1749 o more refactoring and simplification to reduce code size 1750 o var.c: extract CanonicalVarname from VarFind 1751 o make.c: extract UpdateImplicitParentsVars from Make_Update 1752 o main.c: extract PrintVar from doPrintVars 1753 extract HandlePWD from main 1754 o lst.c: inline simple Lst getters 1755 remove unused Lst_ForEach 1756 o job.c: move struct Shell from job.h to job.c 1757 o more unit tests 1758 17592020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1760 1761 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1762 17632020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1764 1765 * VERSION (_MAKE_VERSION): 20201018 1766 Merge with NetBSD make, pick up 1767 o remove USE_IOVEC 1768 o rename some Hash_* apis to Hash* 1769 o replace execError with execDie 1770 o rename Lst_Init to Lst_New 1771 o add tags to enum types 1772 o rename Stack to Vector 1773 o parse.c: more refactoring 1774 o unit-tests: make some tests use line buffered stdout 1775 o unit-tests/Makefile: in meta mode do not make all tests depend on 1776 Makefile, it isn't necessary. 1777 17782020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1779 1780 * main.c: check for CTL_HW being defined. 1781 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1782 disable opt-debug-jobs test until it works on ubuntu 1783 1784 * VERSION (_MAKE_VERSION): 20201010 1785 Merge with NetBSD make, pick up 1786 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1787 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1788 o main.c: extract init_machine and init_machine_arch from main 1789 allow to disable debug logging options 1790 o parse.c: enable format string truncation warnings 1791 extract parsing of sources from ParseDoDependency 1792 split ParseDoSrc into smaller functions 1793 hide implementation details from Parse_DoVar 1794 clean up parsing of variable assignments 1795 split Parse_DoVar into manageable pieces 1796 don't modify the given line during Parse_DoVar 1797 fix out-of-bounds memory access in Parse_DoVar 1798 fix parsing of the :sh assignment modifier 1799 o var.c: rework memory allocation for the name of variables 1800 extract ApplyModifier_Literal into separate function 1801 in lint mode, reject modifiers without delimiter 1802 do not export variable names starting with '-' 1803 o fix double-free bug in -DCLEANUP mode 1804 o more cleanup to enable higher warnings level 1805 o more unit tests 1806 18072020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1808 1809 * VERSION (_MAKE_VERSION): 20201002 1810 Merge with NetBSD make, pick up 1811 o dir.c: use hash table for looking up open directories by name 1812 o main.c: clean up option handling 1813 o parse.c: add missing const for Parse_AddIncludeDir 1814 o var.c: ApplyModifier_To, update pp in each branch 1815 o remove redundant function prototypes 1816 o more unit tests 1817 18182020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1819 1820 * VERSION (_MAKE_VERSION): 20201001 1821 Merge with NetBSD make, pick up 1822 o compat.c: comment about "..." 1823 18242020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1825 1826 * VERSION (_MAKE_VERSION): 20200930 1827 Merge with NetBSD make, pick up 1828 o job.c: split Job.jobPipe into 2 separate fields 1829 replace Lst_Open with direct iteration 1830 o lst.c: remove redundant assertions 1831 o targ.c: replace Lst_Open with direct iteration 1832 o var.c: fix bug in evaluation of indirect variable modifiers 1833 extract ApplyModifier_Quote into separate function 1834 o make debug logging simpler 1835 18362020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1837 1838 * VERSION (_MAKE_VERSION): 20200927 1839 Merge with NetBSD make, pick up 1840 o parse.c: ensure parse errors result in 'stopped in' message. 1841 o compat.c: make parameter of Compat_RunCommand const 1842 o main.c: extract InitVarTarget from main 1843 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1844 refactor ParseDoDependency 1845 o var.c: Var_Subst no longer returns string result 1846 rename Var_ParsePP back to Var_Parse 1847 in lint mode, improve error handling for undefined variables 1848 extract ParseVarname from Var_Parse 1849 o rename Lst_ForEach to Lst_ForEachUntil 1850 o inline Lst_ForEachUntil in several cases 1851 o clean up API for finding and creating GNodes 1852 o fix assertion failure in -j mode with .END node 1853 o inline and remove LstNode_Prev and LstNode_Next 1854 o use fine-grained type names for lists and their nodes 1855 o more unit tests 1856 18572020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1858 1859 * VERSION (_MAKE_VERSION): 20200911 1860 Merge with NetBSD make, pick up 1861 o cond.c: split EvalComparison into smaller functions 1862 reorder parameters of condition parsing functions 1863 reduce code size in CondParser_Eval 1864 rename CondGetString to CondParser_String 1865 add CondLexer_SkipWhitespace 1866 group the condition parsing state into a struct 1867 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1868 o migrate Var_Parse to Var_ParsePP 1869 o add wrappers around ctype.h functions 1870 o lst.c: use a stack instead of a list for the nested include path 1871 o more unit tests 1872 18732020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1874 1875 * make-bootstrap.sh.in: adjust object list 1876 18772020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1878 1879 * VERSION (_MAKE_VERSION): 20200902 1880 Merge with NetBSD make, pick up 1881 o use make_stat to ensure no confusion over valid fields 1882 returned by cached_stat 1883 o var.c: make VarQuote const-correct 1884 o add unit tests for .for 1885 18862020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1887 1888 * VERSION (_MAKE_VERSION): 20200901 1889 Merge with NetBSD make, pick up 1890 o rename Hash_Table fields 1891 o make data types in Dir_HasWildcards more precise 1892 18932020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1894 1895 * VERSION (_MAKE_VERSION): 20200831 1896 Merge with NetBSD make, pick up 1897 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1898 o lst.c: Lst_Open renable assert that list isn't open 1899 o unit test for .TARGET dependent flags 1900 o var.c: fix aliasing bug in VarUniq 1901 o more unit tests for :u 1902 19032020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1904 1905 * VERSION (_MAKE_VERSION): 20200830 1906 Merge with NetBSD make, pick up 1907 o allow for strict type checking for Boolean 1908 o Var_Parse never returns NULL 1909 o Var_Subst never returns NULL 1910 o Lst_Find now takes boolean match function 1911 o rename Lst_Memeber to Lst_FindDatum 1912 o rename LstNode functions to match their type 1913 o rename GNode.iParents to implicitParents 1914 o fix assertion failure for .SUFFIXES in archives 1915 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1916 remove unreachable code from CompatRunCommand 1917 o main.c: simplify getBoolean 1918 o stc.c: replace brk_string with simpler Str_Words 1919 o suff.c: add debug macros 1920 19212020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1922 1923 * VERSION (_MAKE_VERSION): 20200828 1924 Merge with NetBSD make, pick up 1925 o lst.c: inline LstIsValid and LstNodeIsValid 1926 o remove trailing S from Lst function names after migration complete 1927 o more comment cleanup/clarification 1928 o suff.c: clean up suffix handling 1929 o more unit tests 1930 19312020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1932 1933 * VERSION (_MAKE_VERSION): 20200826 1934 Merge with NetBSD make, pick up 1935 o enum.c: distinguish between bitsets containing flags and 1936 ordinary enums 1937 o var.c: fix error message for ::!= modifier with shell error 1938 o fix bugs in -DCLEANUP mode 1939 19402020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1941 1942 * VERSION (_MAKE_VERSION): 20200824 1943 Merge with NetBSD make, pick up 1944 o in debug mode, print GNode details in symbols 1945 19462020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1947 1948 * VERSION (_MAKE_VERSION): 20200823 1949 Merge with NetBSD make, pick up 1950 o lst.c: more asserts, 1951 make args to Lst_Find match others. 1952 o var.c: pass flags to VarAdd 1953 o arch.c: use Buffer 1954 o str.c: brk_string return size_t for nwords 1955 o more unit tests 1956 19572020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1958 1959 * VERSION (_MAKE_VERSION): 1960 Merge with NetBSD make, pick up 1961 o var.c: support for read-only variables eg .SHELL 1962 being the shell used to run scripts. 1963 o lst.c: more simplification 1964 o more documentation and style cleanup 1965 o more unit tests 1966 o ensure unit-test/Makefile is run by TEST_MAKE 1967 o reduce duplication of header inclusion 1968 19692020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1970 1971 * VERSION (_MAKE_VERSION): 20200821 1972 Merge with NetBSD make, pick up 1973 o lst.c: revert invalid assertion - but document it 1974 o dir.c: split Dir_Init into two functions 1975 19762020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1977 1978 * lst.c: needs inttypes.h on Linux 1979 1980 * VERSION (_MAKE_VERSION): 20200820 1981 Merge with NetBSD make, pick up 1982 o make.1: clarify some passages 1983 o var.c: more cleanup, clarify comments 1984 o make_malloc.c: remove unreachable code 1985 o cond.c: make CondGetString easier to debug 1986 o simplify list usage 1987 o unit-tests: more 1988 19892020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1990 1991 * VERSION (_MAKE_VERSION): 20200816 1992 Merge with NetBSD make, pick up 1993 o refactor unit-tests to be more fine grained 1994 not all tests moved yet 1995 19962020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1997 1998 * VERSION (_MAKE_VERSION): 20200814 1999 Merge with NetBSD make, pick up 2000 o more str_concat variants 2001 o more enums for flags 2002 o var.c: cleanup for higher warnings level 2003 20042020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2005 2006 * VERSION (_MAKE_VERSION): 20200810 2007 Merge with NetBSD make, pick up 2008 o more unit tests 2009 o general comment and style cleanup 2010 20112020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2012 2013 * VERSION (_MAKE_VERSION): 20200808 2014 Merge with NetBSD make, pick up 2015 o enum.[ch]: streamline, enums for use in flags and debug output 2016 o cond.c: cleanup 2017 o var.c: reduce duplicate code for modifiers 2018 debug logging for Var_Parse 2019 more detailed debug output 2020 o more unit tests 2021 20222020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2023 2024 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2025 so I can run tests in meta mode 2026 supress extra noise if in meta mode 2027 2028 * VERSION (_MAKE_VERSION): 20200806 2029 Merge with NetBSD make, pick up 2030 o parse.c: remove VARE_WANTRES for LINT 2031 we just want to check parsing (for now). 2032 20332020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2034 2035 * VERSION (_MAKE_VERSION): 20200805 2036 Merge with NetBSD make, pick up 2037 o make.1: Rework the description of dependence operators 2038 20392020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2040 2041 * VERSION (_MAKE_VERSION): 20200803 2042 Merge with NetBSD make, pick up 2043 o revert some C99 usage, for max portability 2044 o unit-tests/lint 2045 20462020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2047 2048 * VERSION (_MAKE_VERSION): 20200802 2049 Merge with NetBSD make, pick up 2050 o more unit tests 2051 20522020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2053 2054 * Remove NetBSD specific plumbing from unit-tests/Makefile 2055 2056 * VERSION (_MAKE_VERSION): 20200801 2057 Merge with NetBSD make, pick up 2058 o make Var_Value return const 2059 o size_t for buf sizes 2060 o optimize some buffer operations - avoid strlen 2061 20622020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2063 2064 * VERSION (_MAKE_VERSION): 20200731 2065 Merge with NetBSD make, pick up 2066 o var.c: fix undefinded behavior for incomplete :t modifier 2067 fixes unit-test/moderrs on Ubuntu 2068 o parse.c: When parsing variable assignments other than := 2069 if DEBUG(LINT) test substition of value, so we get a file and 2070 line number in the resulting error. 2071 o dir.c: fix parsing of nested braces in dependency lines 2072 add unit-tests 2073 20742020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2075 2076 * VERSION (_MAKE_VERSION): 20200730 2077 Merge with NetBSD make, pick up 2078 o var.c: minor cleanup 2079 o unit-tests: more tests to improve code coverage 2080 20812020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2082 2083 * VERSION (_MAKE_VERSION): 20200728 2084 Merge with NetBSD make, pick up 2085 o var.c: more optimizations 2086 20872020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2088 2089 * VERSION (_MAKE_VERSION): 20200726 2090 Merge with NetBSD make, pick up 2091 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2092 o lots of function comment updates 2093 o var.c: more optimizations 2094 o make return of Var_Parse const 2095 20962020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2097 2098 * VERSION (_MAKE_VERSION): 20200720 2099 Merge with NetBSD make, pick up 2100 o DEBUG_HASH report stats at end and tone down the noise 2101 o var.c: each flag type gets its own prefix. 2102 move SysV string matching to var.c 2103 make ampersand in ${VAR:from=to&} an ordinary character 2104 cleanup and simplify implementation of modifiers 2105 o make.1: move documentation for assignment modifiers 2106 21072020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2108 2109 * VERSION (_MAKE_VERSION): 20200718 2110 Merge with NetBSD make, pick up 2111 o DEBUG_HASH to see how well the hash tables are working 2112 21132020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2114 2115 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2116 21172020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2118 2119 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2120 2121 * VERSION (_MAKE_VERSION): 20200710 2122 Merge with NetBSD make, pick up 2123 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2124 o meta.c: target flagged .META is out-of-date if meta file missing 2125 21262020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2127 2128 * VERSION (_MAKE_VERSION): 20200709 2129 Merge with NetBSD make, pick up 2130 o cond.c: fix for compare_expression when doEval=0 2131 o unit-tests/Makefile: rework 2132 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2133 21342020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2135 2136 * VERSION (_MAKE_VERSION): 20200704 2137 Merge with NetBSD make, pick up 2138 (most of this by rillig@) 2139 o lots of style and white-space cleanup 2140 o lots more unit tests for variable modifiers 2141 o simplified description of some functions 2142 o str.c: refactor Str_Match 2143 o var.c: debugging output for :@ 2144 constify VarModify parameter 2145 fix :hash modifier on 16-bit platforms 2146 remove unnecessary forward declarations 2147 refactor ApplyModifier_SysV to have less indentation 2148 simplify code for :E and :R 2149 clean up code for :H and :T 2150 refactor ApplyModifiers 2151 2152 * var.c: we need stdint.h on some platforms to get uint32_t 2153 * unit-test/Makefile: we need to supress the specific error 2154 for RE substitution error in modmisc, since it varies accross 2155 different OS. 2156 21572020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2158 2159 * VERSION (_MAKE_VERSION): 20200702 2160 Merge with NetBSD make, pick up 2161 o var.c: more improvements to avoiding unnecessary evaluation 2162 use enums for flags 2163 o remove flags arg to Var_Set which outside of var.c is always 0 2164 21652020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2166 2167 * VERSION (_MAKE_VERSION): 20200701 2168 Merge with NetBSD make, pick up 2169 o var.c: with change to cond.c; ensure that nested variables 2170 within a variable name are expanded. 2171 o unit-tests/varmisc.mk: test for nested varname 2172 21732020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2174 2175 * VERSION (_MAKE_VERSION): 20200629 2176 Merge with NetBSD make, pick up 2177 o cond.c: do not eval unnecessary terms of conditionals. 2178 21792020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2180 2181 * VERSION (_MAKE_VERSION): 20200625 2182 Merge with NetBSD make, pick up 2183 o meta.c: report error if lseek in filemon_read fails 2184 21852020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2186 2187 * VERSION (_MAKE_VERSION): 20200622 2188 Merge with NetBSD make, pick up 2189 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2190 21912020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2192 2193 * VERSION (_MAKE_VERSION): 20200619 2194 Merge with NetBSD make, pick up 2195 o str.c: performance improvement for Str_Match for multiple '*' 2196 o dieQuietly: supress the failure output from make 2197 when failing node is a sub-make or a sibling failed. 2198 This cuts down greatly on unhelpful noise at the end of 2199 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2200 22012020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2202 2203 * FILES: add LICENSE to appease some packagers. 2204 This is an attempt to fairly represent the license on almost 2205 200 files, which are almost all BSD-3-Clause 2206 The few exceptions being more liberal. 2207 2208 * VERSION (_MAKE_VERSION): 20200610 2209 Merge with NetBSD make, pick up 2210 o unit test for :Or 2211 22122020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2213 2214 * VERSION (_MAKE_VERSION): 20200606 2215 Merge with NetBSD make, pick up 2216 o make.1: cleanup 2217 2218 * Makefile: fix depends for main.o which broke MAKE_VERSION 2219 22202020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2221 2222 * VERSION (_MAKE_VERSION): 20200605 2223 Merge with NetBSD make, pick up 2224 o dir.c: cached_stats - don't confuse stat and lstat results. 2225 o var.c: add :Or for reverse sort. 2226 22272020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2228 2229 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2230 also if --with-filemon= specifies path to filemon.h 2231 set use_filemon=dev 2232 * dirname.c: remove include of namespace.h 2233 22342020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2235 2236 * VERSION (_MAKE_VERSION): 20200517 2237 Merge with NetBSD make, pick up 2238 o modified dollar tests to avoid shell dependencies 2239 o new tests for .INCLUDEFROM 2240 22412020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2242 2243 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2244 to not depend so much on shell behavior 2245 22462020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2247 2248 * VERSION (_MAKE_VERSION): 20200510 2249 Merge with NetBSD make, pick up 2250 o unit test for dollar handling 2251 22522020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2253 2254 * VERSION (_MAKE_VERSION): 20200506 2255 Merge with NetBSD make, pick up 2256 o str.c: empty string does not match % pattern 2257 plus unit-test changes 2258 22592020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2260 2261 * VERSION (_MAKE_VERSION): 20200504 2262 May the 4th be with you 2263 Merge with NetBSD make, pick up 2264 o var.c: import handling of old sysV style modifier using '%' 2265 o str.c: refactor brk_string 2266 o unit-tests: add test case for lazy conditions 2267 22682020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2269 2270 * VERSION (_MAKE_VERSION): 20200418 2271 2272 * configure.in: use_makefile=no for Cygwin et al. 2273 case insensitive filesystems just don't work if both 2274 makefile and Makefile exist. 2275 NOTE: bmake does not support Cygwin and likely never will, 2276 but if brave souls want to try it - help them out. 2277 22782020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2279 2280 * VERSION (_MAKE_VERSION): 20200402 2281 Merge with NetBSD make, pick up 2282 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2283 a blank command is perfectly valid. 2284 22852020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2286 2287 * VERSION (_MAKE_VERSION): 20200330 2288 Merge with NetBSD make, pick up 2289 o make.h: extern debug_file 2290 22912020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2292 2293 * VERSION (_MAKE_VERSION): 20200318 2294 Merge with NetBSD make, pick up 2295 o meta.c: meta_oodate, check for corrupted meta file 2296 earlier and more often. 2297 22982020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2299 2300 * VERSION (_MAKE_VERSION): 20200220 2301 23022020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2303 2304 * boot-strap: unset MAKEFLAGS 2305 23062020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2307 2308 * VERSION (_MAKE_VERSION): 20200212 2309 * meta.c: meta_compat_parent check for USE_FILEMON 2310 patch from Soeren Tempel 2311 23122020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2313 2314 * VERSION: 20200205 2315 Merge with NetBSD make, pick up 2316 o meta.c: fix compat mode, need to call meta_job_output() 2317 o job.c: extra fds for meta mode not needed if using filemon_dev 2318 23192020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2320 2321 * VERSION: 20200122 2322 Merge with NetBSD make, pick up 2323 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2324 returns FALSE. 2325 23262020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2327 2328 * VERSION: 20200121 2329 Merge with NetBSD make, pick up 2330 o filemon/filemon_{dev,ktrace}.c: allow selection of 2331 filemon implementation. filemon_dev.c uses the kernel module 2332 while filemon_ktrace.c leverages the fktrace api available in 2333 NetBSD. filemon_ktrace.c can hopefully form the basis for 2334 adding support for other tracing mechanisms such as strace on 2335 Linux. 2336 o meta.c: when target is out-of-date per normal make rules 2337 record value of .OODATE in meta file. 2338 23392019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2340 2341 * VERSION: 20190926 2342 Merge with NetBSD make, pick up 2343 o parse.c: don't pass NULL to realpath(3) 2344 some versions cannot handle it. 2345 23462019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2347 2348 * VERSION: 20190409 2349 Merge with NetBSD make, pick up 2350 o parse.c: ParseDoDependency: free paths rather than assert 2351 23522018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2353 2354 * VERSION: 20181222 2355 2356 * configure.in: add --without-makefile to avoid generating 2357 makefile and make-bootstrap.sh 2358 2359 * include Makefile.inc if it exists 2360 2361 * Use Makefile and Makefile.config.in in unit-tests 2362 so we can use just: make obj && make && make test 2363 when bmake is already available. 2364 We add --without-makefile to CONFIGURE_ARGS in this case. 2365 2366 * tweak bsd.after-import.mk (captures Makefile.config etc 2367 after import to FreeBSD for example) to cope with all the above. 2368 23692018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2370 2371 * VERSION: 20181221 2372 Merge with NetBSD make, pick up 2373 o parse.c: ParseVErrorInternal use .PARSEDIR 2374 and apply if relative, and then use .PARSEFILE 2375 for consistent result. 2376 23772018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2378 2379 * VERSION: 20181220 2380 Merge with NetBSD make, pick up 2381 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2382 is relative 2383 o var.c: avoid SEGFAULT in .unexport-env 2384 when MAKELEVEL is not set 2385 23862018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2387 2388 * VERSION: 20181216 2389 Merge with NetBSD make, pick up 2390 o fix for unit-tests/varquote.mk on Debian 2391 23922018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2393 2394 * VERSION: 20180919 2395 Merge with NetBSD make, pick up 2396 o var.c: add :q 2397 o dir.c: cleanup caching of stats 2398 23992018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2400 2401 * Makefile.config.in: use += where it makes sense. 2402 24032018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2404 2405 * VERSION: 20180512 2406 Merge with NetBSD make, pick up 2407 o job.c: skip polling job token pipe 2408 24092018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2410 2411 * VERSION: 20180405 2412 Merge with NetBSD make, pick up 2413 o parse.c: be more cautious about detecting depenency line 2414 rather than sysV style include. 2415 24162018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2417 2418 * VERSION: 20180222 2419 Merge with NetBSD make, pick up 2420 o parse.c: avoid calling sysconf for every call to loadfile 2421 24222018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2423 2424 * VERSION: 20180218 2425 Merge with NetBSD make, pick up 2426 o var.c: Var_Set handle NULL value anytime. 2427 24282018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2429 2430 * VERSION: 20180212 2431 Merge with NetBSD make, pick up 2432 o parse.c: do not treat .info as warning with -W 2433 24342017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2435 2436 * VERSION: 20171207 2437 Merge with NetBSD make, pick up 2438 o var.c: Var_Append use Var_Set if var not previously set 2439 so that VAR_CMD is handled correctly. 2440 Add a suitable unit-test. 2441 24422017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2443 2444 * VERSION (_MAKE_VERSION): 20171126 2445 2446 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2447 since AC_TRY_COMPILE puts input inside main() 2448 which upsets modern compilers. 2449 24502017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2451 2452 * VERSION: 20171118 2453 Merge with NetBSD make, pick up 2454 o var.c: do not append to variable set on command line 2455 add unit-test to catch this. 2456 24572017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2458 2459 * VERSION: 20171028 2460 Merge with NetBSD make, pick up 2461 o main.c: ignore empty MAKEOBJDIR 2462 2463 * Makefile.config.in: 2464 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2465 24662017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2467 2468 * VERSION: 20171005 2469 2470 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2471 consistent result on some platforms. 2472 24732017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2474 2475 * machine.sh: entry for AIX 2476 24772017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2478 2479 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2480 to a file that can be included by configure as well as make. 2481 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2482 24832017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2484 2485 * Makefile (_MAKE_VERSION): 20170810 2486 Merge with NetBSD make, pick up 2487 o meta.c: if target is in subdir we only need subdir name in 2488 meta_name. 2489 24902017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2491 2492 * Makefile (_MAKE_VERSION): 20170720 2493 Merge with NetBSD make, pick up 2494 o compat.c: pass SIGINT etc onto child and wait for it to exit 2495 before we self-terminate. 2496 24972017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2498 2499 * Makefile (_MAKE_VERSION): 20170711 2500 forgot to update after merge on 20170708 ;-) 2501 o main.c: refactor to reduce size of main function. 2502 add -v option to always fully expand values. 2503 o meta.c: ensure command output in meta file has ending newline 2504 even when filemon not being used. 2505 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2506 pathname via ':L' since any ':' in pathname breaks that. 2507 Instead set a '${.p.}' to pathname in the target context and 2508 use that. 2509 25102017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2511 2512 * Makefile (_MAKE_VERSION): 20170510 2513 Merge with NetBSD make, pick up 2514 o main.c: Main_SetObjdir: ensure buf2 is in scope 2515 25162017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2517 2518 * Makefile (_MAKE_VERSION): 20170505 2519 see mk/ChangeLog 2520 25212017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2522 2523 * parse.c: not everyone has stdint.h 2524 25252017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2526 2527 * Makefile (_MAKE_VERSION): 20170501 2528 see mk/ChangeLog 2529 25302017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2531 2532 * Makefile (_MAKE_VERSION): 20170421 2533 Merge with NetBSD make, pick up 2534 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2535 25362017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2537 2538 * Makefile (_MAKE_VERSION): 20170420 2539 Merge with NetBSD make, pick up 2540 o main.c: only use -C arg "as is" if it contains no 2541 relative component. 2542 25432017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2544 2545 * Makefile (_MAKE_VERSION): 20170418 2546 Merge with NetBSD make, pick up 2547 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2548 25492017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2550 2551 * Makefile (_MAKE_VERSION): 20170417 2552 Merge with NetBSD make, pick up 2553 o fixes a number of coverity complaints 2554 - check return value of fseek, fcntl 2555 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2556 JobPrintCommand, ParseTraditionalInclude 2557 - use bmake_malloc() where NULL is not tollerated 2558 - use MAKE_ATTR_UNUSED rather that kludges like 2559 return(unused ? 0 : 0) 2560 - use purge_cached_realpaths() rather than abuse cached_realpath() 2561 25622017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2563 2564 * Makefile (_MAKE_VERSION): 20170413 2565 Merge with NetBSD make, pick up 2566 o main.c: when setting .OBJDIR ignore '$' in paths. 2567 2568 * job.c: use MALLOC_OPTIONS to set malloc_options. 2569 25702017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2571 2572 * Makefile (_MAKE_VERSION): 20170411 2573 Merge with NetBSD make, pick up 2574 o str.c: Str_Match: allow [^a-z] to behave as expected. 2575 25762017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2577 2578 * Makefile (_MAKE_VERSION): 20170326 2579 Merge with NetBSD make, pick up 2580 o main.c: purge relative paths from realpath cache when .OBJDIR 2581 is changed. 2582 25832017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2584 2585 * Makefile (_MAKE_VERSION): 20170311 2586 Merge with NetBSD make, pick up 2587 o main.c: only use -C arg "as is" if it starts with '/'. 2588 25892017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2590 2591 * Makefile (_MAKE_VERSION): 20170301 2592 Merge with NetBSD make, pick up 2593 o main.c: use -C arg "as is" rather than getcwd() 2594 if they identify the same directory. 2595 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2596 25972017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2598 2599 * Makefile (_MAKE_VERSION): 20170201 2600 Merge with NetBSD make, pick up 2601 o var.c: allow :_=var and avoid use of special context. 2602 26032017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2604 2605 * Makefile (_MAKE_VERSION): 20170130 2606 Merge with NetBSD make, pick up 2607 o var.c: add :range and :_ 2608 o main.c: partially initialize Dir_* before MainParseArgs() 2609 can be called. 2610 If -V, skip Main_ExportMAKEFLAGS() 2611 26122017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2613 2614 * Makefile (_MAKE_VERSION): 20170114 2615 Merge with NetBSD make, pick up 2616 o var.c: allow specifying the utc value used by :{gm,local}time 2617 26182016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2619 2620 * Makefile (_MAKE_VERSION): 20161212 2621 Merge with NetBSD make, pick up 2622 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2623 26242016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2625 2626 * Makefile (_MAKE_VERSION): 20161209 2627 Merge with NetBSD make, pick up 2628 o main.c: cleanup setting of .OBJDIR 2629 o parse.c: avoid coredump from (var)=val 2630 26312016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2632 2633 * Makefile (_MAKE_VERSION): 20161126 2634 Merge with NetBSD make, pick up 2635 o make.c: Make_OODate: report src node name if path not set 2636 26372016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2638 2639 * Makefile (_MAKE_VERSION): 20160926 2640 Merge with NetBSD make, pick up 2641 o support for .DELETE_ON_ERROR: (remove targets that fail) 2642 26432016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2644 2645 * Makefile MAN: tweak .Dt to match ${PROG} 2646 26472016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2648 2649 * Makefile (_MAKE_VERSION): 20160818 2650 its a neater number; pick up whitespace fixes to man page. 2651 26522016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2653 2654 * Makefile (_MAKE_VERSION): 20160817 2655 Merge with NetBSD make, pick up 2656 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2657 so we can call it before adding entries to missingFiles. 2658 Thus we do not track files we have been told to ignore. 2659 26602016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2661 2662 * Makefile (_MAKE_VERSION): 20160815 2663 Merge with NetBSD make, pick up 2664 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2665 pathnames, and skip if the expansion is empty. 2666 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2667 26682016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2669 2670 * Makefile (_MAKE_VERSION): 20160812 2671 Merge with NetBSD make, pick up 2672 o meta.c: remove all missingFiles entries that match a deleted 2673 dir. 2674 o main.c: set .ERROR_CMD if possible. 2675 26762016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2677 2678 * Makefile (_MAKE_VERSION): 20160606 2679 Merge with NetBSD make, pick up 2680 o dir.c: extend mtimes cache to others via cached_stat() 2681 26822016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2683 2684 * Makefile (_MAKE_VERSION): 20160604 2685 Merge with NetBSD make, pick up 2686 o meta.c: missing filemon data is only relevant if we read a 2687 meta file. 2688 Also do not return oodate for a missing metafile if gn->path 2689 points to .CURDIR 2690 26912016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2692 2693 * Makefile (_MAKE_VERSION): 20160602 2694 Merge with NetBSD make, pick up 2695 o cached_realpath(): avoid hitting filesystem more than necessary. 2696 o meta.c: refactor need_meta decision, add knobs for 2697 missing meta file and filemon data wrt out-of-datedness. 2698 26992016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2700 2701 * Makefile (_MAKE_VERSION): 20160528 2702 2703 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2704 27052016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2706 2707 * Makefile (_MAKE_VERSION): 20160512 2708 Merge with NetBSD make, pick up 2709 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2710 this is useful for gcov builds. 2711 o propagate errors from filemon(4). 2712 27132016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2714 2715 * Makefile (_MAKE_VERSION): 20160509 2716 Merge with NetBSD make, pick up 2717 o remove use of non-standard types u_int etc. 2718 o meta.c: apply realpath() before matching against metaIgnorePaths 2719 27202016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2721 2722 * Makefile (_MAKE_VERSION): 20160404 2723 Merge with NetBSD make, pick up 2724 o allow makefile to set .MAKE.JOBS 2725 2726 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2727 27282016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2729 2730 * Makefile (_MAKE_VERSION): 20160315 2731 Merge with NetBSD make, pick up 2732 o fix handling of archive members 2733 27342016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2735 2736 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2737 with checks for ${MAKE_VERSION} 2738 27392016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2740 2741 * Makefile (MAKE_VERSION): 20160310 2742 Merge with NetBSD make, pick up 2743 o meta.c: treat missing Read file same as Write, incase we Delete it. 2744 27452016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2746 2747 * Makefile (MAKE_VERSION): 20160307 2748 Merge with NetBSD make, pick up 2749 o var.c: fix :ts\nnn to be octal by default. 2750 o meta.c: meta_finish() to cleanup memory. 2751 27522016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2753 2754 * Makefile (MAKE_VERSION): 20160226 2755 Merge with NetBSD make, pick up 2756 o meta.c: allow meta file for makeDepend if makefiles want it. 2757 27582016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2759 2760 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2761 for backwards compatability. 2762 2763 * Makefile (MAKE_VERSION): 20160220 2764 Merge with NetBSD make, pick up 2765 o var.c: add knob to control handling of '$$' in := 2766 27672016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2768 2769 * Makefile (MAKE_VERSION): 20160218 2770 Merge with NetBSD make, pick up 2771 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2772 post the changes to Var_Subst. 2773 Var_Subst now takes flags, and does not consume '$$' in := 2774 27752016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2776 2777 * Makefile (MAKE_VERSION): 20160217 2778 Merge with NetBSD make, pick up 2779 o var.c: preserve '$$' in := 2780 o parse.c: add .dinclude for handling included 2781 makefile like .depend 2782 27832015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2784 2785 * Makefile (MAKE_VERSION): 20151220 2786 Merge with NetBSD make, pick up 2787 o suff.c: re-initialize suffNull when clearing suffixes. 2788 27892015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2790 2791 * Makefile (MAKE_VERSION): 20151201 2792 Merge with NetBSD make, pick up 2793 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2794 o meta.c: meta_oodate: use lstat(2) for checking link target 2795 in case it is a symlink. 2796 o var.c: avoid calling brk_string and Var_Export1 with empty 2797 strings. 2798 27992015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2800 2801 * Makefile (MAKE_VERSION): 20151126 2802 Merge with NetBSD make, pick up 2803 o parse.c: ParseTrackInput don't access beyond 2804 end of old value. 2805 28062015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2807 2808 * Makefile (MAKE_VERSION): 20151022 2809 2810 * Add support for BSD/OS which lacks inttypes.h 2811 and really needs sys/param.h for sys/sysctl.h 2812 also 'type' is not a shell builtin. 2813 2814 * var.c: eliminate uint32_t and need for inttypes.h 2815 2816 * main.c: PrintOnError flush stdout before run .ERROR 2817 2818 * parse.c: cope with _SC_PAGESIZE not being defined. 2819 2820 28212015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2822 2823 * Makefile (MAKE_VERSION): 20151020 2824 Merge with NetBSD make, pick up 2825 o var.c: fix uninitialized var 2826 28272015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2828 2829 * var.c: the conditional expressions used with ':?' can be 2830 expensive, if already discarding do not evaluate or expand 2831 anything. 2832 28332015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2834 2835 * Makefile (MAKE_VERSION): 20151010 2836 Merge with NetBSD make, pick up 2837 o Add Boolean wantit flag to Var_Subst and Var_Parse 2838 when FALSE we know we are discarding the result and can 2839 skip operations like Cmd_Exec. 2840 28412015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2842 2843 * Makefile (MAKE_VERSION): 20151009 2844 Merge with NetBSD make, pick up 2845 o var.c: don't check for NULL before free() 2846 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2847 28482015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2849 2850 * Makefile (MAKE_VERSION): 20150910 2851 Merge with NetBSD make, pick up 2852 o main.c: with -w print Enter/Leaving messages for objdir too 2853 if necessary. 2854 o centralize shell metachar handling 2855 2856 * FILES: add metachar.[ch] 2857 28582015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2859 2860 * Makefile (MAKE_VERSION): 20150606 2861 Merge with NetBSD make, pick up 2862 o make.1: document .OBJDIR target 2863 28642015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2865 2866 * Makefile (MAKE_VERSION): 20150505 2867 Merge with NetBSD make, pick up 2868 o cond.c: be strict about lhs of comparison when evaluating .if 2869 but less so when called from variable expansion. 2870 o unit-tests/cond2.mk: test various error conditions 2871 28722015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2873 2874 * machine.sh (MACHINE): Add Bitrig 2875 patch from joerg@netbsd.org 2876 28772015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2878 2879 * Makefile (MAKE_VERSION): 20150418 2880 Merge with NetBSD make, pick up 2881 o job.c: use memmove() rather than memcpy() 2882 2883 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2884 case, so skip it. 2885 28862015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2887 2888 * Makefile (MAKE_VERSION): 20150411 2889 bump version - only mk/ changes. 2890 28912015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2892 2893 * Makefile (MAKE_VERSION): 20150410 2894 Merge with NetBSD make, pick up 2895 o document different handling of '-' in jobs mode vs compat 2896 o fix jobs mode so that '-' only applies to whole job 2897 when shell lacks hasErrCtl 2898 o meta.c: use separate vars to track lcwd and latestdir (read) 2899 per process 2900 29012015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2902 2903 * Makefile (MAKE_VERSION): 20150401 2904 Merge with NetBSD make, pick up 2905 o meta.c: close meta file in child 2906 2907 * Makefile: use BINDIR.bmake if set. 2908 Same for MANDIR and SHAREDIR 2909 Handy for testing release candidates 2910 in various environments. 2911 29122015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2913 2914 * move initialization of savederr to block where it is used 2915 to avoid spurious warning from gcc5 2916 29172014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2918 2919 * Makefile (MAKE_VERSION): 20141111 2920 just a cooler number 2921 29222014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2923 2924 * Makefile (MAKE_VERSION): 20141105 2925 Merge with NetBSD make, pick up 2926 o revert major overhaul of suffix handling 2927 and POSIX compliance - too much breakage 2928 and impossible to make backwards compatible. 2929 o we still have the new unit test structure which is ok. 2930 o meta.c ensure "-- filemon" is at start of line. 2931 29322014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2933 2934 * configure.in: test that result of getconf PATH_MAX is numeric 2935 and discard if not. Apparently needed for Hurd. 2936 29372014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2938 2939 * Makefile (MAKE_VERSION): 20140830 2940 Merge with NetBSD make, pick up 2941 o major overhaul of suffix handling 2942 o improved POSIX compliance 2943 o overhauled unit-tests 2944 29452014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2946 2947 * Makefile (MAKE_VERSION): 20140620 2948 Merge with NetBSD make, pick up 2949 o var.c return varNoError rather than var_Error for ::= modifiers. 2950 29512014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2952 2953 * Makefile (MAKE_VERSION): 20140522 2954 Merge with NetBSD make, pick up 2955 o var.c detect some parse errors. 2956 29572014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2958 2959 * Fix spelling errors - patch from Pedro Giffuni 2960 29612014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2962 2963 * Makefile (MAKE_VERSION): 20140214 2964 Merge with NetBSD make, pick up 2965 o .INCLUDEFROM* 2966 o use Var_Value to get MAKEOBJDIR[PREFIX] 2967 o reduced realloc'ign in brk_string. 2968 * configure.in: add a check for compiler supporting __func__ 2969 29702014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2971 2972 * boot-strap: ignore mksrc=none 2973 29742014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2975 2976 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2977 29782014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2979 2980 * Makefile (MAKE_VERSION): 20140101 2981 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2982 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2983 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2984 Hurd) 2985 * configure.in: Add AC_PREREQ and check for 2986 sysctl; patch from Andrew Shadura andrewsh at debian.org 2987 29882013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2989 2990 * Makefile (MAKE_VERSION): 20131010 2991 * lose the const from arg to systcl to avoid problems on older BSDs. 2992 29932013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2994 2995 * Makefile (MAKE_VERSION): 20131001 2996 Merge with NetBSD make, pick up 2997 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2998 hw.machine_arch if necessary. 2999 o meta.c: meta_oodate - need to look at src of Link and target 3000 of Move as well. 3001 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3002 provide __arraycount() if needed. 3003 30042013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3005 3006 * Makefile (MAKE_VERSION): 20130904 3007 Merge with NetBSD make, pick up 3008 o Add VAR_INTERNAL context, so that internal setting of 3009 MAKEFILE does not override value set by makefiles. 3010 30112013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3012 3013 * Makefile (MAKE_VERSION): 20130902 3014 Merge with NetBSD make, pick up 3015 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3016 30172013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3018 3019 * Makefile (MAKE_VERSION): 20130828 3020 Merge with NetBSD make, pick up 3021 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3022 o Call Job_SetPrefix() from Job_Init() so makefiles have 3023 opportunity to set .MAKE.JOB.PREFIX 3024 30252013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3026 3027 * Makefile (MAKE_VERSION): 20130730 3028 Merge with NetBSD make, pick up 3029 o Allow suppression of --- job -- tokens by setting 3030 .MAKE.JOB.PREFIX empty. 3031 30322013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3033 3034 * Makefile (MAKE_VERSION): 20130716 3035 Merge with NetBSD make, pick up 3036 o number of gmake compatibility tweaks 3037 -w for gmake style entering/leaving messages 3038 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3039 handle MAKEFLAGS containing only letters. 3040 o when overriding a GLOBAL variable on the command line, 3041 delete it from GLOBAL context so -V doesn't show the wrong 3042 value. 3043 30442013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3045 3046 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3047 3048 * Makefile (MAKE_VERSION): 20130706 3049 Merge with NetBSD make, pick up 3050 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3051 true so that CompatRunCommand() can use it, to ensure 3052 consistent behavior with jobs mode. 3053 o use MAKE_LEVEL_ENV to define the variable to propagate 3054 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3055 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3056 paths to ignore. 3057 30582013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3059 3060 * Makefile (MAKE_VERSION): 20130604 3061 Merge with NetBSD make, pick up 3062 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3063 to avoid leaking descriptors. 3064 30652013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3066 3067 * Makefile (MAKE_VERSION): 20130528 3068 Merge with NetBSD make, pick up 3069 o var.c: cleanup some left-overs in VarHash() 3070 30712013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3072 3073 * Makefile (MAKE_VERSION): 20130520 3074 generate manifest from component FILES rather than have to 3075 update FILES when mk/FILES changes. 3076 30772013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3078 3079 * Makefile (MAKE_VERSION): 20130518 3080 Merge with NetBSD make, pick up 3081 o suff.c: don't skip all processsing for .PHONY targets 3082 else wildcard srcs do not get expanded. 3083 o var.c: expand name of variable to delete if necessary. 3084 30852013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3086 3087 * Makefile (MAKE_VERSION): 20130330 3088 Merge with NetBSD make, pick up 3089 o meta.c: refine the handling of .OODATE in commands. 3090 Rather than suppress command comparison for the entire script 3091 as though .NOMETA_CMP had been used, only suppress it for the 3092 one command line. 3093 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3094 suppress comparison of a command without otherwise affecting it. 3095 o make.1: document that 3096 30972013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3098 3099 * Makefile (MAKE_VERSION): 20130321 3100 yes, not quite right but its a cooler number. 3101 Merge with NetBSD make, pick up 3102 o parse.c: fix ParseGmakeExport to be portable 3103 and add a unit-test. 3104 * meta.c: call meta_init() before makefiles are read and if built 3105 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3106 this let's makefiles test for support. 3107 Call meta_mode_init() to process .MAKE.MODE. 3108 31092013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3110 3111 * Makefile (MAKE_VERSION): 20130305 3112 Merge with NetBSD make, pick up 3113 o run .STALE: target when a dependency from .depend is missing. 3114 o job.c: add Job_RunTarget() for the above and .BEGIN 3115 31162013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3117 3118 * Makefile (MAKE_VERSION): 20130303 3119 Merge with NetBSD make, pick up 3120 o main.c: set .MAKE.OS to utsname.sysname 3121 o job.c: more checks for read and poll errors 3122 o var.c: lose VarChangeCase() saves 4% time 3123 31242013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3125 3126 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3127 want to use MAKEOBJDIR 3128 31292013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3130 3131 * Merge with NetBSD make, pick up 3132 o make.1: more info on how shell commands are handled. 3133 o job.c,main.c: detect write errors to job pipes. 3134 31352013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3136 3137 * Makefile (MAKE_VERSION): 20130123 3138 Merge with NetBSD make, pick up 3139 o meta.c: if script uses .OODATE and meta_oodate() decides 3140 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3141 o var.c: in debug output indicate which variabale modifiers 3142 apply to. 3143 o remove Check_Cwd logic the makefiles have been fixed. 3144 31452012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3146 3147 * makefile.in: add a simple makefile for folk who insist on 3148 ./configure; make; make install 3149 it just runs boot-strap 3150 * include mk/* to accommodate the above 3151 * boot-strap: re-work to accommodate the above 3152 mksrc defaults to $Mydir/mk 3153 allow op={configure,build,install,clean,all} 3154 add options to facilitate install 3155 * Makefile.config.in: just the bits set by configure 3156 * Makefile: bump version to 20121212 3157 abandon Makefile.in (NetBSD Makefile) 3158 leverage mk/* instead 3159 * configure.in: ensure srcdir is absolute 3160 31612012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3162 3163 * Makefile.in (MAKE_VERSION): 20121111 3164 fix generation of bmake.cat1 3165 31662012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3167 3168 * Makefile.in (MAKE_VERSION): 20121109 3169 Merge with NetBSD make, pick up 3170 o make.c: MakeBuildChild: return 0 so search continues if a 3171 .ORDER dependency is detected. 3172 o unit-tests/order: test the above 3173 31742012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3175 3176 * Makefile.in (MAKE_VERSION): 20121102 3177 Merge with NetBSD make, pick up 3178 o cond.c: allow cond_state[] to grow. 3179 In meta mode with a very large tree, we can hit the limit 3180 while processing dirdeps. 3181 31822012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3183 3184 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3185 31862012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3187 3188 * Makefile.in (MAKE_VERSION): 20121010 3189 o protect syntax that only bmake parses correctly. 3190 o remove auto setting of FORCE_MACHINE, use configure's 3191 --with-force-machine=whatever if that is desired. 3192 31932012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3194 3195 * Makefile.in: do not lose history from make.1 when generating bmake.1 3196 31972012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3198 3199 * Makefile.in (MAKE_VERSION): 20121007 3200 Merge with NetBSD make, pick up 3201 o compat.c: ignore empty commands - same as jobs mode. 3202 o make.1: document meta chars that cause use of shell 3203 32042012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3205 3206 * Makefile.in (MAKE_VERSION): bump version to 20120911 3207 * bsd.after-import.mk: include Makefile.inc early and allow it to 3208 override PROG 3209 32102012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3211 3212 * Makefile.in (MAKE_VERSION): bump version to 20120831 3213 Merge with NetBSD make, pick up 3214 o cast sizeof() to int for comparison 3215 o minor make.1 tweak 3216 32172012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3218 3219 * Makefile.in (MAKE_VERSION): bump version to 20120830 3220 Merge with NetBSD make, pick up 3221 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3222 o debug flag -dV causes -V to show raw value regardless. 3223 32242012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3225 3226 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3227 gets SRCTOP set. 3228 32292012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3230 3231 * Makefile.in (MAKE_VERSION): bump version to 20120704 3232 Merge with NetBSD make, pick up 3233 o Job_ParseShell should call Shell_Init if it has been 3234 previously called. 3235 * Makefile.in: set USE_META based on configure result. 3236 also .PARSEDIR is safer indicator of bmake. 3237 32382012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3239 3240 * Makefile.in: bump version to 20120626 3241 ensure CPPFLAGS is in CFLAGS 3242 * meta.c: avoid nested externs 3243 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3244 32452012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3246 3247 * Makefile.in (MAKE_VERSION): bump version to 20120620 3248 Merge with NetBSD make, pick up 3249 o make_malloc.c: avoid including make_malloc.h again 3250 3251 * Makefile.in: avoid bmake only syntax or protect with 3252 .if defined(.MAKE.LEVEL) 3253 * bsd.after-import.mk: replace .-include with .sinclude 3254 ensure? SRCTOP gets a value 3255 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3256 32572012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3258 3259 * Makefile.in (MAKE_VERSION): bump version to 20120612 3260 Merge with NetBSD make, pick up 3261 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3262 for greater portability. 3263 o unit-tests/forloop: check that .for works as expected wrt 3264 number of times and with "quoted strings". 3265 32662012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3267 3268 * Makefile.in (MAKE_VERSION): bump version to 20120606 3269 Merge with NetBSD make, pick up 3270 o compat.c: use kill(2) rather than raise(3). 3271 * configure.in: look for sys/dev/filemon 3272 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3273 and pass BOOTSTRAP_XTRAS to boot-strap. 3274 32752012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3276 3277 * Makefile.in (MAKE_VERSION): bump version to 20120604 3278 Merge with NetBSD make, pick up 3279 o util.c and var.c share same var for tracking if environ 3280 has been reallocated. 3281 o util.c provide getenv with setenv. 3282 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3283 when the shell actively strips .MAKE.* from the environment. 3284 We still refer to the variable always as .MAKE.LEVEL 3285 * util.c fix bug in findenv() was finding prefix of name. 3286 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3287 results in more reliable termination of all activity on many 3288 platforms. 3289 32902012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3291 3292 * Makefile.in (MAKE_VERSION): bump version to 20120602 3293 Merge with NetBSD make, pick up 3294 o for.c: handle quoted items in .for list 3295 32962012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3297 3298 * Makefile.in (MAKE_VERSION): bump version to 20120530 3299 Merge with NetBSD make, pick up 3300 o compat.c: ignore empty command. 3301 33022012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3303 3304 * Makefile.in (MAKE_VERSION): bump version to 20120524 3305 * FILES: add bsd.after-import.mk: 3306 A simple means of integrating bmake into a BSD build system. 3307 33082012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3309 3310 * Makefile.in (MAKE_VERSION): bump version to 20120520 3311 Merge with NetBSD make, pick up 3312 o increased limit for nested conditionals. 3313 33142012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3315 3316 * Makefile.in (MAKE_VERSION): bump version to 20120518 3317 Merge with NetBSD make, pick up 3318 o use _exit(2) in signal hanlder 3319 o Don't use the [dir] cache when building nodes that might have 3320 changed since the last exec. 3321 o Avoid nested extern declaration warnings. 3322 33232012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3324 3325 * meta.c (fgetLine): avoid %z - not portable. 3326 * parse.c: Since we moved include of sys/mman.h 3327 and def's of MAP_COPY etc. we got dups from a merge. 3328 33292012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3330 3331 * Makefile.in (MAKE_VERSION): bump version to 20120420 3332 Merge with NetBSD make, pick up 3333 o restore duplicate supression in .MAKE.MAKEFILES 3334 runtime saving can be significant. 3335 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3336 consumption up to 20%. 3337 33382012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3339 3340 * Makefile.in (MAKE_VERSION): bump version to 20120420 3341 Merge with NetBSD make, pick up 3342 o remove duplicate supression in .MAKE.MAKEFILES 3343 o improved dir cache behavior 3344 o gmake'ish export command 3345 33462012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3347 3348 * Makefile.in (MAKE_VERSION): bump version to 20120325 3349 Merge with NetBSD make, pick up 3350 o fix parsing of :[#] in conditionals. 3351 33522012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3353 3354 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3355 since some systems cannot cope with .Nx <version> 3356 33572011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3358 3359 * Makefile.in (MAKE_VERSION): bump version to 20111111 3360 Merge with NetBSD make, pick up 3361 o debug output for .PARSEDIR and .PARSEFILE 3362 33632011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3364 3365 * Makefile.in (MAKE_VERSION): bump version to 20111010 3366 33672011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3368 3369 * boot-strap: check for an expected file in the dirs we look for. 3370 * make-bootstrap.sh: pass on LDSTATIC 3371 33722011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3373 3374 * Makefile.in (MAKE_VERSION): bump version to 20111001 3375 Merge with NetBSD make, pick up 3376 o ensure .PREFIX is set for .PHONY 3377 and .TARGET set for .PHONY run via .END 3378 o __dead used consistently 3379 33802011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3381 3382 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3383 33842011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3385 3386 * Makefile.in (MAKE_VERSION): bump version to 20110905 3387 Merge with NetBSD make, pick up 3388 o meta_oodate: ignore makeDependfile 3389 33902011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3391 3392 * Makefile.in (MAKE_VERSION): bump version to 20110828 3393 Merge with NetBSD make, pick up 3394 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3395 as SILENT if a .meta file is created 3396 33972011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3398 3399 * Makefile.in (MAKE_VERSION): bump version to 20110818 3400 Merge with NetBSD make, pick up 3401 o in meta mode, if target flagged .META a missing .meta file 3402 means target is out-of-date 3403 o fixes for gcc 4.5 warnings 3404 o simplify job printing code 3405 34062011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3407 3408 * Makefile.in (MAKE_VERSION): bump version to 20110808 3409 Merge with NetBSD make, pick up 3410 o do not touch OP_SPECIAL targets when doing make -t 3411 34122011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3413 3414 * Makefile.in (MAKE_VERSION): bump version to 20110622 3415 Merge with NetBSD make, pick up 3416 o meta_oodate detect corrupted .meta file and declare oodate. 3417 * configure.in: add check for setsid 3418 34192011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3420 3421 * Merge with NetBSD make, pick up 3422 o unit-tests/modts now works on MirBSD 3423 34242011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3425 3426 * Makefile.in (MAKE_VERSION): bump version to 20110606 3427 Merge with NetBSD make, pick up 3428 o ApplyModifiers: when we parse a variable which is not 3429 the entire modifier string, or not followed by ':', do not 3430 consider it as containing modifiers. 3431 o loadfile: ensure newline at end of mapped file. 3432 34332011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3434 3435 * Makefile.in (MAKE_VERSION): bump version to 20110505 3436 Merge with NetBSD make, pick up 3437 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3438 of make's control. In meta mode, any generated file within 3439 said bailiwick, which is found to be missing, causes current 3440 target to be out-of-date. 3441 34422011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3443 3444 * Makefile.in (MAKE_VERSION): bump version to 20110411 3445 Merge with NetBSD make, pick up 3446 o when long modifiers fail to match, check sysV style. 3447 - add a test case 3448 34492011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3450 3451 * Makefile.in (MAKE_VERSION): bump version to 20110410 3452 Merge with NetBSD make, pick up 3453 o :hash - cheap 32bit hash of value 3454 o :localtime, :gmtime - use value as format string for strftime. 3455 34562011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3457 3458 * Makefile.in (MAKE_VERSION): bump version to 20110330 3459 mostly because its a cooler version. 3460 Merge with NetBSD make, pick up 3461 o NetBSD tags for meta.[ch] 3462 o job.c call meta_job_finish() after meta_job_error(). 3463 o meta_job_error() should call meta_job_finish() to ensure 3464 .meta file is closed, and safe to copy - if .ERROR target wants. 3465 meta_job_finish() is safe to call repeatedly. 3466 34672011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3468 3469 * unit-tests/modts: use printf if it is a builtin, 3470 to save us from MirBSD 3471 3472 * Makefile.in (MAKE_VERSION): bump version to 20110329 3473 Merge with NetBSD make, pick up 3474 o fix for use after free() in CondDoExists(). 3475 o meta_oodate() report extra commands and return earlier. 3476 34772011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3478 3479 * Makefile.in (MAKE_VERSION): bump version to 20110327 3480 Merge with NetBSD make, pick up 3481 o meta.c, if .MAKE.MODE contains curdirOk=yes 3482 allow creating .meta files in .CURDIR 3483 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3484 formats the output of 'type' differently - so eat any "()" 3485 34862011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3487 3488 * Makefile.in (MAKE_VERSION): bump version to 20110306 3489 Merge with NetBSD make, pick up 3490 o meta.c, only do getcwd() once 3491 34922011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3493 3494 * Makefile.in (MAKE_VERSION): bump version to 20110305 3495 Merge with NetBSD make, pick up 3496 o correct sysV substitution handling of empty lhs and variable 3497 o correct exists() check for dir with trailing / 3498 o correct handling of modifiers for non-existant variables 3499 during evaluation of conditionals. 3500 o ensure MAP_FILE is defined. 3501 o meta.c use curdir[] now exported by main.c 3502 35032011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3504 3505 * Makefile.in (MAKE_VERSION): bump version to 20110225 3506 Merge with NetBSD make, pick up 3507 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3508 makefiles have been read. 3509 o fix example of :? modifier in man page. 3510 35112011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3512 3513 * Makefile.in (MAKE_VERSION): bump version to 20110214 3514 Merge with NetBSD make, pick up 3515 o meta.c handle realpath() failing when generating meta file 3516 name. 3517 3518 * sigcompat.c: convert to ansi so we can use higher warning levels. 3519 3520 35212011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3522 3523 * Makefile.in (MAKE_VERSION): bump version to 20110207 3524 Merge with NetBSD make, pick up 3525 o fix for bug in meta mode. 3526 35272011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3528 3529 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3530 35312011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3532 3533 * Makefile.in (MAKE_VERSION): bump version to 20110101 3534 Merge with NetBSD make, pick up 3535 o use mmap(2) if available, for reading makefiles 3536 35372010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3538 3539 * Makefile.in (MAKE_VERSION): bump version to 20101215 3540 Merge with NetBSD make, pick up 3541 o ensure meta_job_error() does not report a previous .meta file 3542 as being culprit. 3543 35442010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3545 3546 * Makefile.in (MAKE_VERSION): bump version to 20101210 3547 Merge with NetBSD make, pick up 3548 o meta_oodate: track cwd per process, and only consider target 3549 out-of-date if missing file is outside make's CWD. 3550 Ignore files in /tmp/ etc. 3551 o to ensure unit-tests results match, need to control LC_ALL 3552 as well as LANG. 3553 o fix for parsing bug in var.c 3554 35552010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3556 3557 * Makefile.in (MAKE_VERSION): bump version to 20101126 3558 Merge with NetBSD make, pick up 3559 o if stale dependency is an IMPSRC, search via .PATH 3560 o meta_oodate: if a referenced file is missing, target is 3561 out-of-date. 3562 o meta_oodate: if a target uses .OODATE in its commands, 3563 it (.OODATE) needs to be recomputed. 3564 o keep a pointer to youngest child node, rather than just its 3565 mtime. 3566 35672010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3568 3569 * Makefile.in (MAKE_VERSION): bump version to 20101101 3570 35712010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3572 3573 * machine.sh: like os.sh, 3574 allow for uname -p producing useless drivel 3575 35762010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3577 3578 * boot-strap: document configure knobs for meta and filemon. 3579 3580 * Makefile.in (MAKE_VERSION): bump version to 20100911 3581 Merge with NetBSD make, pick up 3582 o meta.c - meta mode 3583 3584 * make-bootstrap.sh.in: handle meta.c 3585 * configure.in: add knobs for use_meta and filemon_h 3586 also, look for dirname, str[e]sep and strlcpy 3587 * util.c: add simple err[x] and warn[x] 3588 35892010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3590 3591 * boot-strap (TOOL_DIFF): set this to ensure tests use 3592 the same version of diff that configure tested 3593 3594 * Makefile.in (MAKE_VERSION): bump version to 20100808 3595 Merge with NetBSD make, pick up 3596 o in jobs mode, when we discover we cannot make something, 3597 call PrintOnError before exit. 3598 35992010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3600 3601 * Makefile.in (MAKE_VERSION): bump version to 20100806 3602 Merge with NetBSD make, pick up 3603 o formatting fixes for ignored errors 3604 o ensure jobs are cleaned up regardless of where wait() was called. 3605 36062010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3607 3608 * Makefile.in (MAKE_VERSION): bump version to 20100618 3609 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3610 36112010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3612 3613 * Makefile.in (MAKE_VERSION): bump version to 20100616 3614 Merge with NetBSD make, pick up 3615 o man page update 3616 o call PrintOnError from JobFinish when we detect an error we 3617 are not ignoring. 3618 36192010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3620 3621 * Makefile.in (MAKE_VERSION): bump version to 20100606 3622 Merge with NetBSD make, pick up 3623 o man page update 3624 36252010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3626 3627 * Makefile.in (MAKE_VERSION): bump version to 20100605 3628 Merge with NetBSD make, pick up 3629 o use bmake_signal() which is a wrapper around sigaction() 3630 in place of signal() 3631 o add .export-env to allow exporting variables to environment 3632 without tracking (so no re-export when the internal value is 3633 changed). 3634 36352010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3636 3637 * Makefile.in (MAKE_VERSION): bump version to 20100524 3638 Merge with NetBSD make, pick up 3639 o fix for .info et al being greedy. 3640 36412010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3642 3643 * Makefile.in (MAKE_VERSION): bump version to 20100520 3644 Merge with NetBSD make, pick up 3645 o back to using realpath on argv[0] 3646 but only if contains '/' and does not start with '/'. 3647 36482010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3649 3650 * boot-strap: use absolute path for bmake when running tests. 3651 3652 * Makefile.in (MAKE_VERSION): bump version to 20100510 3653 Merge with NetBSD make, pick up 3654 o revert use of realpath on argv[0] 3655 too many corner cases. 3656 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3657 36582010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3659 3660 * Makefile.in (MAKE_VERSION): bump version to 20100505 3661 Merge with NetBSD make, pick up 3662 o fix for missed SIGCHLD when compiled with SunPRO 3663 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3664 done the job. 3665 36662010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3667 3668 * Makefile.in (MAKE_VERSION): bump version to 20100430 3669 Merge with NetBSD make, pick up 3670 o fflush stdout before writing to stdout 3671 36722010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3673 3674 * Makefile.in (MAKE_VERSION): bump version to 20100423 3675 Merge with NetBSD make, pick up 3676 o updated unit tests for Haiku (this time for sure). 3677 * boot-strap: based on patch from joerg 3678 honor --with-default-sys-path better. 3679 * boot-strap: remove mention of --with-prefix-sys-path 3680 36812010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3682 3683 * Makefile.in (MAKE_VERSION): bump version to 20100422 3684 * Merge with NetBSD make, pick up 3685 o fix for vfork() on Darwin. 3686 o fix for bogus $TMPDIR. 3687 o set .MAKE.MODE=compat for -B 3688 o set .MAKE.JOBS=max_jobs for -j max_jobs 3689 o allow unit-tests to run without any *.mk 3690 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3691 * boot-strap: ignore /usr/share/mk except on NetBSD. 3692 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3693 ensure sort(1) behaves as expected. 3694 36952010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3696 3697 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3698 36992010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3700 3701 * Makefile.in (MAKE_VERSION): bump version to 20100420 3702 * Merge with NetBSD make, pick up 3703 o fix for variable realpath() behavior. 3704 we have to stat(2) the result to be sure. 3705 o fix for .export (all) when nested vars use :sh 3706 37072010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3708 3709 * Makefile.in (MAKE_VERSION): bump version to 20100414 3710 * Merge with NetBSD make, pick up 3711 o use realpath to resolve argv[0] (for .MAKE) if needed. 3712 o add realpath from libc. 3713 o add :tA to resolve variable via realpath(3) if possible. 3714 37152010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3716 3717 * Makefile.in (MAKE_VERSION): bump version to 20100408 3718 * Merge with NetBSD make, pick up 3719 o unit tests for .ERROR, .error 3720 o fix for .ERROR to ensure it cannot be default target. 3721 37222010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3723 3724 * Makefile.in (MAKE_VERSION): bump version to 20100406 3725 * Merge with NetBSD make, pick up 3726 o fix for compat mode "Error code" going to debug_file. 3727 o fix for .ALLSRC being populated twice. 3728 o support for .info, .warning and .error directives 3729 o .MAKE.MODE to control make's operational mode 3730 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3731 name(s). 3732 o .MAKE.DEPENDFILE to control the name of the depend file 3733 o .ERROR target - run on failure. 3734 37352010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3736 3737 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3738 3739 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3740 37412010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3742 3743 * Makefile.in (MAKE_VERSION): bump version to 20100222 3744 * Merge with NetBSD make, pick up 3745 o better error msg for .for with mutiple inter vars 3746 3747 * boot-strap: 3748 o use make-bootstrap.sh from joerg at netbsd 3749 to avoid the need for a native make when bootstrapping. 3750 o add "" everywhere ;-) 3751 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3752 otherwise the pre-formated version. 3753 37542010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3755 3756 * Makefile.in (MAKE_VERSION): bump version to 20100102 3757 * Merge with NetBSD make, pick up: 3758 o fix for -m .../ 3759 37602009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3761 3762 * Makefile.in (MAKE_VERSION): bump version to 20091118 3763 * Merge with NetBSD make, pick up: 3764 o .unexport 3765 o report lines that start with '.' and should have ':' 3766 (catch typo's of .el*if). 3767 37682009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3769 3770 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3771 37722009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3773 3774 * Makefile.in (MAKE_VERSION): fix version to 20091007 3775 37762009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3777 3778 * Makefile.in (MAKE_VERSION): bump version to 200910007 3779 * Merge with NetBSD make, pick up: 3780 o fix for parsing of :S;...;...; applied to .for loop iterator 3781 appearing in a dependency line. 3782 37832009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3784 3785 * Makefile.in (MAKE_VERSION): bump version to 20090909 3786 * Merge with NetBSD make, pick up: 3787 o fix for -C, .CURDIR and .OBJDIR 3788 * boot-strap: 3789 o allow share_dir to be set independent of prefix. 3790 o select default share_dir better when prefix ends in $HOST_TARGET 3791 o if FORCE_BSD_MK etc were set, include them in the suggested 3792 install-mk command. 3793 37942009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3795 3796 * Makefile.in (MAKE_VERSION): bump version to 20090908 3797 * Merge with NetBSD make, pick up: 3798 o .MAKE.LEVEL for recursion tracking 3799 o fix for :M scanning \: 3800 38012009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3802 3803 * configure.in: Don't -D__EXTENSIONS__ if 3804 AC_USE_SYSTEM_EXTENSIONS says "no". 3805 38062009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3807 3808 * Makefile.in (MAKE_VERSION): bump version to 20090826 3809 Simplify MAKE_VERSION to just the bare date. 3810 * Merge with NetBSD make, pick up: 3811 o -C directory support. 3812 o support for SIGINFO 3813 o use $TMPDIR for temp files. 3814 o child of vfork should be careful about modifying parent's state. 3815 3816 38172009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3818 3819 * Appy some patches for MiNT from David Brownlee 3820 38212009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3822 3823 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3824 * Merge with NetBSD make, pick up: 3825 o Possible null pointer de-ref in Var_Set. 3826 38272009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3828 3829 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3830 * Merge with NetBSD make, pick up: 3831 o bmake_malloc et al moved to their own .c 3832 o Count both () and {} when looking for the end of a :M pattern 3833 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3834 o strlist.c - functions for processing extendable arrays of pointers to strings. 3835 o ClientData replaced with void *, so const void * can be used. 3836 o New debug flag C for DEBUG_CWD 3837 38382008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3839 3840 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3841 Apply patch from Joerg Sonnenberge to 3842 configure.in: 3843 o remove some redundant checks 3844 o check for emlloc etc only in libutil and require the whole family. 3845 util.c: 3846 o remove [v]asprintf which is no longer used. 3847 38482008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3849 3850 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3851 * Merge with NetBSD make, pick up: 3852 o util.c: avoid use of putenv() - christos 3853 38542008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3855 3856 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3857 pick up man page tweaks. 3858 38592008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3860 3861 * Makefile.in: move processing of LIBOBJS to after is definition! 3862 thus we'll have getenv.c in SRCS only if needed. 3863 3864 * make.1: add examples of how to use :? 3865 3866 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3867 * Merge with NetBSD make, pick up: 3868 o fix for .END processing with -j 3869 o segfault from Parse_Error when no makefile is open 3870 o handle numeric expressions in any variable expansion 3871 o debug output now defaults to stderr, -dF to change it - apb 3872 o make now uses bmake_malloc etc so that it can build natively 3873 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3874 38752008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3876 3877 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3878 * Merge with NetBSD make, pick up: 3879 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3880 long lines in Makefiles 3881 o optimizations for VarQuote by joerg 3882 o fix for PR/38756: dominik: make dumps core on invalid makefile 3883 38842008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3885 3886 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3887 * Merge with NetBSD make, pick up: 3888 o fix skip setting vars in VAR_GLOBAL context, to handle 3889 cases where VAR_CMD is used for other than command line vars. 3890 38912008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3892 3893 * boot-strap (make_version): we may need to look in 3894 $prefix/share/mk for sys.mk 3895 3896 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3897 * Merge with NetBSD make, pick up: 3898 o skip setting vars in VAR_GLOBAL context, when already set in 3899 VAR_CMD which takes precedence. 3900 39012008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3902 3903 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3904 * Merge with NetBSD make, pick up: 3905 o fix for ?= when LHS contains variable reference. 3906 39072008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3908 3909 * merge some patches from NetBSD pkgsrc. 3910 3911 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3912 the MAKSYSPATH used during bootstrap. 3913 3914 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3915 * Merge with NetBSD make, pick up: 3916 o warn if non-space chars follow 'empty' in a conditional. 3917 39182008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3919 3920 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3921 * Merge with NetBSD make, pick up: 3922 o consider dependencies read from .depend as optional - dsl 3923 o remember when buffer for reading makefile grows - dsl 3924 o add -dl (aka LOUD) - David O'Brien 3925 39262007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3927 3928 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3929 * Merge with NetBSD make, pick up: 3930 o Allow .PATH<suffix> to be used for .include "" 3931 3932 * boot-strap: source default settings from .bmake-boot-strap.rc 3933 39342007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3935 3936 * Makefile.in: fix maninstall on various systems 3937 provided that our man.mk is used. 3938 For non-BSD systems we install the preformatted page 3939 into $MANDIR/cat1 3940 39412007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3942 3943 * boot-strap: make bmake.1 too, so maninstall works. 3944 39452007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3946 3947 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3948 * Merge with NetBSD make, pick up: 3949 o revamped handling of defshell - configure no longer needs to 3950 know the content of the shells array - apb 3951 o stop Var_Subst modifying its input - apb 3952 o avoid calling ParseTrackInput too often - dsl 3953 39542007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3955 3956 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3957 * Merge with NetBSD make, pick up: 3958 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3959 3960 * sigcompat.c: some tweaks for HP-UX 11.x based on 3961 patch from Tobias Nygren 3962 3963 * configure.in: update handling of --with-defshell to match 3964 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3965 will now do what one might hope - provided the chosen shell 3966 behaves enough like sh. 3967 39682007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3969 3970 * Makefile.in (BMAKE_VERSION): bump to 20071008 3971 * Merge with NetBSD make, pick up: 3972 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3973 o .export/.MAKE.EXPORTED - export of variables - sjg 3974 o .MAKE.MAKEFILES - track all makefiles read - sjg 3975 o performance improvements - dsl 3976 o revamp parallel job scheduling - dsl 3977 39782006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3979 3980 * Makefile.in (BMAKE_VERSION): bump to 20060728 3981 * Merge with NetBSD make, pick up: 3982 o extra debug info during variable and cond processing - sjg 3983 o shell definition now covers newline - rillig 3984 o minor mem leak in PrintOnError - sjg 3985 39862006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3987 3988 * Makefile.in (BMAKE_VERSION): bump to 20060511 3989 * Merge with NetBSD make, pick up: 3990 o more memory leaks - coverity 3991 o possible overflow in ArchFindMember - coverity 3992 o extract variable modifier code out of Var_Parse() 3993 so it can be called recursively - sjg 3994 o unit-tests/moderrs - sjg 3995 39962006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3997 3998 * Makefile.in (BMAKE_VERSION): bump to 20060412 3999 * Merge with NetBSD make, pick up: 4000 o fixes for some memory leaks - coverity 4001 o only read first sys.mk etc when searching sysIncPath - sjg 4002 4003 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4004 setting ${MAKEFILE} - OBATA Akio 4005 40062006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4007 4008 * Makefile.in (BMAKE_VERSION): bump to 20060318 4009 * Merge with NetBSD make, pick up: 4010 o cleanup of job.c to remove remote handling, distcc is more 4011 useful and this code was likely bit-rotting - dsl 4012 o fix for :P modifier - sjg 4013 * boot-strap: set default prefix to something reasonable 4014 (for me anyway). 4015 40162006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4017 4018 * Makefile.in (BMAKE_VERSION): bump to 20060301 4019 * Merge with NetBSD make, pick up: 4020 o make .WAIT apply recursively, document and test case - apb 4021 o allow variable modifiers in a variable appear anywhere in 4022 modifier list, document and test case - sjg 4023 40242006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4025 4026 * Makefile.in (BMAKE_VERSION): bump to 20060222 4027 * Merge with NetBSD make, pick up: 4028 o improved job token handling - dsl 4029 o SIG_DFL the correct signal before exec - dsl 4030 o more debug info during parsing - dsl 4031 o allow variable modifiers to be specified via variable - sjg 4032 * boot-strap: explain why we died if no mksrc 4033 40342005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4035 4036 * Makefile.in (BMAKE_VERSION): bump to 20051105 4037 * configure.in: always set default_sys_path 4038 default is ${prefix}/share/mk 4039 - remove prefix_sys_path, anyone wanting more than above 4040 needs to set it manually. 4041 40422005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4043 4044 * boot-strap: make this a bit easier for pkgsrc folk. 4045 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4046 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4047 40482005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4049 4050 * Makefile.in (BMAKE_VERSION): bump to 20051102 4051 * job.c (JobFinish): fix likely ancient merge lossage 4052 fix from Todd Vierling. 4053 * boot-strap (srcdir): allow setting mksrc=none 4054 40552005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4056 4057 * Makefile.in (BMAKE_VERSION): bump to 20051031 4058 * ranlib.h: skip on OSF too. 4059 (NetBSD PR 31864) 4060 40612005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4062 4063 * Makefile.in (BMAKE_VERSION): bump to 20051002 4064 fix a silly typo 4065 40662005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4067 4068 * Makefile.in (BMAKE_VERSION): bump to 20051001 4069 support for UnixWare and some other systems, 4070 based on patches from pkgsrc/bootstrap 4071 40722005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4073 4074 * Makefile.in (BMAKE_VERSION): bump to 20050901 4075 * Merge with NetBSD make, pick up: 4076 o possible parse error causing us to wander off. 4077 40782005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4079 4080 * Makefile.in (BMAKE_VERSION): bump to 20050606 4081 * Merge with NetBSD make, pick up: 4082 o :0x modifier for randomizing a list 4083 o fixes for a number of -Wuninitialized issues. 4084 40852005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4086 4087 * Makefile.in (BMAKE_VERSION): bump to 20050530 4088 * Merge with NetBSD make, pick up: 4089 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4090 4091 * README: was seriously out of date. 4092 40932005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4094 4095 * Important to use .MAKE rather than MAKE. 4096 40972005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4098 4099 * Makefile.in (BMAKE_VERSION): bump to 20050315 4100 * Merge with NetBSD make, pick up: 4101 o don't mistake .elsefoo for .else 4102 o use suffix-specific search path correctly 4103 o bunch of style nits 4104 41052004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4106 4107 * boot-strap: 4108 o ensure that args to --src and --with-mksrc 4109 are resolved before giving them to configure. 4110 o add -o "objdir" so that builder can control it, 4111 default is $OS as determined by os.sh 4112 o add -q to suppress all the install instructions. 4113 41142004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4115 4116 * Remove __IDSTRING() 4117 4118 * Makefile.in (BMAKE_VERSION): bump to 20040508 4119 * Merge with NetBSD make, pick up: 4120 o posix fixes 4121 - remove '-e' from compat mode 4122 - add support for '+' command-line prefix. 4123 o fix for handling '--' on command-line. 4124 o fix include in lst.lib/lstInt.h to simplify '-I's 4125 o we also picked up replacement of MAKE_BOOTSTRAP 4126 with !MAKE_NATIVE which is a noop, but possibly confusing. 4127 41282004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4129 4130 * Makefile.in (BMAKE_VERSION): bump to 20040414 4131 * Merge with NetBSD make, pick up: 4132 o allow quoted strings on lhs of conditionals 4133 o issue warning when extra .else is seen 4134 o print line numer when errors encountered during parsing from 4135 string. 4136 41372004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4138 4139 * Makefile.in (BMAKE_VERSION): bump to 20040220 4140 * Merge with NetBSD make, pick up: 4141 o fix for old :M parsing bug. 4142 o re-jigged unit-tests 4143 41442004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4145 4146 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4147 so that './bmake -f Makefile test' works. 4148 41492004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4150 4151 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4152 * Merge with NetBSD make, pick up: 4153 o search upwards for *.mk 4154 o fix for double free of var substitution buffers 4155 o use of getopt replaced with custom code, since the usage 4156 (re-scanning) isn't posix compatible. 4157 41582004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4159 4160 * arch.c: don't include ranlib.h on ELF systems 4161 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4162 41632004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4164 4165 * Makefile.in (BMAKE_VERSION): bump to 20040118 4166 4167 * boot-strap (while): export vars we assign to on cmdline 4168 * unit-test/Makefile.in: ternary is .PHONY 4169 41702004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4171 4172 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4173 * Merge with NetBSD make, pick up: 4174 o fix for ternary modifier 4175 41762004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4177 4178 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4179 * Merge with NetBSD make, pick up: 4180 o fix for cond.c to handle compound expressions better 4181 o variable expansion within sysV style replacements 4182 41832003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4184 4185 * Make portable snprintf safer - output to /dev/null first to 4186 check space needed. 4187 4188 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4189 * Merge with NetBSD make, pick up: 4190 o -dg3 to show input graph when things go wrong. 4191 o explicitly look for makefiles in objdir if not found in curdir so 4192 that errors in .depend etc will be reported accurarely. 4193 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4194 instead as it more accurately reflects the expected behavior and 4195 is more consistently implemented. 4196 o avoid use of asprintf. 4197 41982003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4199 4200 * util.c: Add asprintf and vasprintf. 4201 4202 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4203 * Merge with NetBSD make, pick up: 4204 :[] modifier - allows picking words from a variable. 4205 :tW modifier - allows treating value as one big word. 4206 W flag for :C and :S - allows treating value as one big word. 4207 42082003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4209 4210 * Merge with NetBSD make 4211 pick up -de flag to enable printing failed command. 4212 don't skip 1st two dir entries (normally . and ..) since 4213 coda does not have them. 4214 42152003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4216 4217 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4218 * Merge with NetBSD make, pick up: 4219 - changes for -V '${VAR}' to print fully expanded value 4220 cf. -V VAR 4221 - CompatRunCommand now prints the command that failed. 4222 - several files got updated 3 clause Berkeley license. 4223 42242003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4225 4226 * boot-strap: Allow setting configure args on command line. 4227 42282003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4229 4230 * configure.in: add --with-defshell to allow sh or ksh 4231 to be selected as default shell. 4232 4233 * Makefile.in: bump version to 20030731 4234 4235 * Merge with NetBSD make 4236 Pick up .SHELL spec for ksh and associate man page changes. 4237 Also compat mode now uses the same shell specs. 4238 42392003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4240 4241 * var.c (Var_Parse): ensure delim is initialized. 4242 4243 * unit-tests/Makefile.in: use single quotes to avoid problems from 4244 some shells. 4245 4246 * makefile.boot.in: 4247 Run the unit-tests as part of the bootstrap procedure. 4248 42492003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4250 4251 * unit-tests/Makefile.in: always force complaints from 4252 ${TEST_MAKE} to be from 'make'. 4253 4254 * configure.in: add check for 'diff -u' 4255 also fix some old autoconf'isms 4256 4257 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4258 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4259 4260 * Merge with NetBSD make 4261 Pick up fix for :ts parsing error in some cases. 4262 Pick unit-tests. 4263 42642003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4265 4266 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4267 4268 * var.c (Var_Parse): fix bug in :ts modifier, after const 4269 correctness fixes, must pass nstr to VarModify. 4270 42712003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4272 4273 * Makefile.in: BMAKE_VERSION switch to a date based version. 4274 We'll generally use the date of last import from NetBSD. 4275 4276 * Merge with NetBSD make 4277 Pick up fixes for const-correctness, now passes WARNS=3 on 4278 NetBSD. 4279 Pick up :ts modifier, allows controlling the separator used 4280 between words in variable expansion. 4281 42822003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4283 4284 * FILES: include boot-strap and os.sh 4285 4286 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4287 FreeBSD is known to be bad. 4288 4289 * makefile.boot.in (bootstrap): make this the default target. 4290 4291 * Makefile.in: bump version to 3.1.19 4292 4293 * machine.sh: avoid A-Z with tr as it is bound to lose. 4294 42952003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4296 4297 * Merge with NetBSD make 4298 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4299 Plus some doc fixes. 4300 43012003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4302 4303 * Merge with NetBSD make 4304 Pick up fix for PR/1523 - don't count a library as built, if there 4305 is no way to build it 4306 4307 * Bump version to 3.1.18 4308 43092003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4310 4311 * Merge with NetBSD make 4312 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4313 appears in src list. 4314 43152003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4316 4317 * Merge with NetBSD make (mmm 10th anniversary!) 4318 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4319 pick up -X which tells us to not export VAR=val via setenv if 4320 we are already doing so via MAKEFLAGS. This saves valuable env 4321 space on systems like Darwin. 4322 set MAKE_VERSION to 3.1.17 4323 4324 * parse.c: pix up fix for suffix rules 4325 43262003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4327 4328 * Merge with NetBSD make. 4329 pick up fix for propagating -B via MAKEFLAGS. 4330 set MAKE_VERSION to 3.1.16 4331 4332 * Apply some patches from pkgsrc-bootstrap/bmake 4333 Originally by Grant Beattie <grant@netbsd.org> 4334 I may have missed some - since they are based on bmake-3.1.12 4335 43362002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4337 4338 * makefile.boot.in (bmake): update install targets for those that 4339 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4340 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4341 4342 * bmake.cat1: update the pre-formatted man page! 4343 43442002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4345 4346 * Merge with NetBSD make. 4347 pick up fix for premature free of pointer used in call 4348 to Dir_InitCur(). 4349 set MAKE_VERSION to 3.1.15 4350 43512002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4352 4353 * configure.in: determine suitable value for MKSRC. 4354 override using --with-mksrc=PATH. 4355 4356 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4357 configs(8) will use 'sun4' as an alias for 'sparc'. 4358 43592002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4360 4361 * Merge with NetBSD make. 4362 pick up ${.PATH} 4363 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4364 set MAKE_VERSION to 3.1.14 4365 add configure checks for killpg and sys/socket.h 4366 43672002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4368 4369 * tag bmake-3-1-13 4370 4371 * makefile.boot.in (bmake): use install-mk 4372 Also setup ./mk before trying to invoke bmake.boot incase we 4373 needed install-mk to create a sys.mk for us. 4374 4375 * configure.in: If we need to add -I${srcdir}/missing, make it an 4376 absolute path so that it works for lst.lib too. 4377 4378 * make.h: always include sys/cdefs.h since we provide one if the 4379 host does not. 4380 4381 * Makefile.in (install-mk): 4382 use MKSRC/install-mk which will do the right thing. 4383 use uname -p for ARCH if possible. 4384 since install-mk will setup links bsd.prog.mk -> prog.mk if 4385 needed, just .include bsd.prog.mk 4386 4387 * Merge with NetBSD make (NetBSD-1.6) 4388 Code is ansi-C only now. 4389 Bug in handling of dotLast is fixed. 4390 Can now assign .OBJDIR and make will reset its notions of life. 4391 New modifiers :tu :tl for toUpper and toLower. 4392 4393Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4394 4395 * Merge with NetBSD make 4396 pick up fix for .END failure in compat mode. 4397 pick up fix for extra va_end() in ParseVErrorInternal. 4398 4399Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4400 4401 * configure.in: for systems that have sys/cdefs.h check if it is 4402 compatible. If not, include the one under missing, but tell it to 4403 include the native one too - necessary on Linux. 4404 4405 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4406 include_next (for gcc) to get the native sys/cdefs.h 4407 4408Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4409 4410 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4411 leaking descriptors when using -jN. 4412 4413 * job.c (JobPrintCommand): See if "curdir" exists before 4414 attempting to chdir(). Doing the chdir directly in make (when in 4415 compat mode) fails silently, so let the -jN version do the same. 4416 This can happen when building kernels in an object tree and 4417 playing clever games to reset .CURDIR. 4418 4419 * Merged with NetBSD make 4420 pick up .USEBEFORE 4421 4422Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4423 4424 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4425 4426Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4427 4428 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4429 us not to export the iterator variable when using VAR_CMD context. 4430 4431Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4432 4433 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4434 its the wrong "fix". 4435 4436Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4437 4438 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4439 We now simply append the variable names to .MAKEOVERRIDES, and 4440 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4441 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4442 Apart from fixing quoting bugs in previous version, this allows us 4443 to export vars to the environment by simply doing: 4444 .MAKEOVERRIDES+= PATH 4445 Merged again with NetBSD make, but the above is the only change. 4446 4447 * configure.in: added 4448 --disable-pwd-override disable $PWD overriding getcwd() 4449 --disable-check-make-chdir disable make trying to guess 4450 when it should automatically cd ${.CURDIR} 4451 4452 * Merge with NetBSD make, changes include: 4453 parse.c (ParseDoDependency): Spot that the syntax error is 4454 caused by an unresolved cvs/rcs conflict and say so. 4455 var.c: most of Var* functions now take a ctxt as 1st arg. 4456 now does variable substituion on rhs of sysv style modifiers. 4457 4458 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4459 is now done here. We append the name='value' to .MAKEOVERRIDES 4460 rather than directly into MAKEFLAGS as this allows a Makefile to 4461 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4462 very similar mechanism. Note that in adding name='value' to 4463 .MAKEOVERRIDES we do the moral equivalent of: 4464 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4465 4466Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4467 4468 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4469 4470 * Merged with NetBSD make 4471 make -dx can now be used to run commands via sh -x 4472 better error messages on exec failures. 4473 4474Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4475 4476 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4477 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4478 MACHINE etc otherwise they propagate from the previous bmake. 4479 4480 * configure.in (machine): allow --with-machine=generic to make 4481 configure use machine.sh to set MACHINE. 4482 4483 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4484 4485 * Makefile.in: mention in bmake.1 that we use autoconf. 4486 4487 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4488 4489Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4490 4491 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4492 as that rather defeats the usefulness of ${MAKEFILE}. 4493 4494 * main.c (MainParseArgs): append command line variable assignments 4495 to MAKEFLAGS so that they get propagated to child make's. 4496 Apparently this is required POSIX behaviour? Its useful anyway. 4497 4498Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4499 4500 * compat.c (CompatRunCommand): don't use perror() since stdio may 4501 cause problems in child of vfork(). 4502 4503 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4504 This routine prints out the .curdir where we stopped and will also 4505 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4506 4507 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4508 :@ expansion. 4509 4510 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4511 4512 * Added RCSid's for the files we've touched. 4513 4514Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4515 4516 * configure.in: Thanks to some clues from mdb@juniper.net, 4517 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4518 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4519 4520 --with-machine=MACHINE explicitly set MACHINE 4521 --with-force-machine=MACHINE set FORCE_MACHINE 4522 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4523 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4524 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4525 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4526 4527 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4528 4529 * makefile: added a pathetically simple makefile to drive 4530 bootstrapping. Running configure by hand is more useful. 4531 4532 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4533 dependent on NetBSD bsd.*.mk 4534 4535 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4536 _PATH_OBJDIRPREFIX for those that don't want a default. 4537 construct _PATH_DEFSYSPATH from the info we get from configure. 4538 4539 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4540 if MAKE_VERSION is defined. 4541 4542 * compat.c: when we bail, print out the .CURDIR we were in. 4543 4544Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4545 4546 * Merged with NetBSD make 4547 4548 * var.c: fixed a bug in the handling of the modifier :P 4549 if the node as found but the path was null, we segfault trying to 4550 duplicate it. 4551 4552Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4553 4554 * Merged with NetBSD make 4555 4556 * make.c: Make_OODate's test for a library out of date was using 4557 cmtime where it should have used mtime (my bug). 4558 4559 * compat.c: Use perror() to tell us what really went wrong when we 4560 cannot exec a command. 4561 4562Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4563 4564 * Merged with NetBSD make 4565 4566Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4567 4568 * Merged with NetBSD make 4569 4570Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4571 4572 * Merged with NetBSD make 4573 4574Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4575 4576 * Merged with NetBSD make 4577 4578Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4579 4580 * util.c: don't provide signal() since we use sigcompat.c 4581 4582 * Makefile.in: added a build target. 4583 4584 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4585 These allow some quite clever magic. 4586 4587 * main.c (main): added support for getenv(MAKESYSPATH). 4588 4589Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4590 4591 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4592 This avoids objdir having a different value depending on how a 4593 directory was reached (via command line, or subdir.mk). 4594 4595 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4596 4597Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4598 4599 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4600 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4601 I've been testing this in NetBSD's make for some weeks. 4602 4603 * Turn Makefile into Makefile.in and make it useful. 4604 4605Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4606 4607 * Imported NetBSD's -current make(1) and resolve conflicts. 4608 4609 * Applied autoconf patches from bmake v2 4610 4611 * Imported clean code base from NetBSD-1.0 4612