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