12024-07-13 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * cleanup redundant differences from NetBSD make 4 o parse.c: no longer uses mmap 5 o var.c: check __STDC_VERSION__ not __STDC__ 6 72024-07-12 Simon J Gerraty <sjg@beast.crufty.net> 8 9 * Apply some patches from NetBSD pkgsrc to reduce divergence 10 o meta.c: requires sys/select.h if available 11 o var.c: ensure SIZE_MAX has a value 12 o util.c: ensure SA_RESTART is defined 13 14 * configure.in: use *ksh* rather than just *ksh to match 15 ksh shell specification. 16 17 * unit-tests/Makefile: expand BROKEN_TESTS for ksh and 18 mksh in particular 19 202024-07-11 Simon J Gerraty <sjg@beast.crufty.net> 21 22 * VERSION (_MAKE_VERSION): 20240711 23 Merge with NetBSD make, pick up 24 o compat.c: allow Compat_RunCommand to also handle very long 25 commands by writing to a temp file when needed. 26 o main.c: extract the temp file logic recently added to Cmd_Exec 27 to Cmd_Argv so it can be leveraged by Compat_RunCommand. 28 292024-07-09 Simon J Gerraty <sjg@beast.crufty.net> 30 31 * VERSION (_MAKE_VERSION): 20240709 32 Merge with NetBSD make, pick up 33 o error out on parse/evaluation errors in shell commands 34 o var.c: error out on syntax errors in ':M' and ':N' modifiers 35 362024-07-07 Simon J Gerraty <sjg@beast.crufty.net> 37 38 * VERSION (_MAKE_VERSION): 20240707 39 Merge with NetBSD make, pick up 40 o only generate code for cleanup functions in CLEANUP mode 41 o hash.c: don't track hash table chain lengths during lookup 42 unless debugging 43 o main.c: move initialization of variable scopes to targ.c 44 o var.c: remove Var_End as it is now unnecessary 45 462024-07-06 Simon J Gerraty <sjg@beast.crufty.net> 47 48 * VERSION (_MAKE_VERSION): 20240706 49 Merge with NetBSD make, pick up 50 o reduce lint comments about ARGSUSED 51 o cond.c: error out on conditions containing the operators '&' and '|' 52 o str.c: error out on a matching malformed matching pattern '[[' 53 o var.c: in error messages, distinguish parsing from evaluating 54 in error messages for anonymous variables, log the value 55 error out on unclosed expressions during parse time 56 572024-07-04 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * VERSION (_MAKE_VERSION): 20240704 60 Merge with NetBSD make, pick up 61 o add more context information to error messages 62 o main.c: on error, print the targets to be made 63 add detailed exit status to message for failed sub-commands 64 o var.c: error out on the "Bad modifier" error message 65 662024-07-01 Simon J Gerraty <sjg@beast.crufty.net> 67 68 * VERSION (_MAKE_VERSION): 20240701 69 Merge with NetBSD make, pick up 70 o var.c: add :tt for Title case 71 722024-06-30 Simon J Gerraty <sjg@beast.crufty.net> 73 74 * configure.in: 20240630 further refine check for whether 75 TZ=Europe/Berlin works 76 77 * VERSION (_MAKE_VERSION): 20240630 78 Merge with NetBSD make, pick up 79 o job.c: reduce use of UNCONST 80 o main.c: add detailed exit status to message for failed sub-commands 81 o var.c: error out on some more syntax errors 82 add more context to "returned non-zero status" message 83 842024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 85 86 * VERSION (_MAKE_VERSION): 20240625 87 Merge with NetBSD make, pick up 88 o job.c: ensure shellPath is always duped, avoid upsetting free() 89 902024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 91 92 * VERSION (_MAKE_VERSION): 20240616 93 Merge with NetBSD make, pick up 94 o clean up collection of context information for error messages 95 o in warnings, move the word "warning" to the front 96 o var.c: throw an error on attempt to override an internal 97 read-only variable 98 992024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 100 101 * VERSION (_MAKE_VERSION): 20240610 102 Merge with NetBSD make, pick up 103 o for.c: remove redundant shortcut for building the .for loop body 104 1052024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 106 107 * VERSION (_MAKE_VERSION): 20240602 108 Merge with NetBSD make, pick up 109 o rename some VarEvalMode constants to better match debug names. 110 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 111 1122024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 113 114 * VERSION (_MAKE_VERSION): 20240601 115 Merge with NetBSD make, pick up 116 o add .export-all rather than allow .export with no argument 117 which can happen accidentally. 118 o if lua is available, run check-expect.lua after unit-tests 119 o main.c: use snprintf rather than strncpy 120 fix memory leak when purging realpath cache. 121 1222024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 123 124 * VERSION (_MAKE_VERSION): 20240528 125 Merge with NetBSD make, pick up 126 o fix a number of memory leaks 127 o replace magic numbers with POSIX FILENO constants 128 o hash.c: remove dead code from HashTable_DeleteEntry 129 o main.c: when complaining about unusable .OBJDIR 130 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 131 o parse.c: use fewer technical terms in debug message for dependency 132 1332024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 134 135 * VERSION (_MAKE_VERSION): 136 Merge with NetBSD make, pick up 137 o dir.c: in FindFile restore last search of .CURDIR even for 138 includes, as a number of existing makefiles are broken otherwise. 139 1402024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 141 142 * VERSION (_MAKE_VERSION): 20240519 143 Merge with NetBSD make, pick up 144 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 145 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 146 o main.c: no need to set .DOTLAST in sysIncPath 147 1482024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 149 150 * VERSION (_MAKE_VERSION): 20240508 151 Merge with NetBSD make, pick up 152 o make: ensure variables set on command line get added to 153 .MAKEOVERRIDES (even if they start with '.') so they are passed to 154 sub-makes. 155 1562024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 157 158 * VERSION (_MAKE_VERSION): 20240430 159 Merge with NetBSD make, pick up 160 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 161 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 162 1632024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 164 165 * VERSION (_MAKE_VERSION): 20240428 166 Merge with NetBSD make, pick up 167 o simplify freeing of lists 168 o arch.c: trim pointless comments 169 o var.c: delay variable assignments until actually needed 170 don't reallocate memory after evaluating an expression, result is 171 almost always short-lived. 172 1732024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 174 175 * VERSION (_MAKE_VERSION): 20240426 176 Merge with NetBSD make, pick up 177 o job.c: in debug output, print the directory in which a job 178 failed at same time as failed target so it is more easily found in 179 build log. 180 1812024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 182 183 * VERSION (_MAKE_VERSION): 20240424 184 Merge with NetBSD make, pick up 185 o clean up comments, code and tests 186 1872024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 188 189 * VERSION (_MAKE_VERSION): 20240422 190 Merge with NetBSD make, pick up 191 o var.c: avoid LazyBuf for :*time modifiers. 192 LazyBuf's are not nul terminated so not suitable for passing to 193 functions that expect that. These modifiers are used sparingly so 194 an extra allocation is not a problem. 195 1962024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 197 198 * VERSION (_MAKE_VERSION): 20240420 199 Merge with NetBSD make, pick up 200 o provide more context information for parse/evaluate errors 201 2022024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 203 204 * VERSION (_MAKE_VERSION): 20240414 205 Merge with NetBSD make, pick up 206 o parse.c: print -dp debug info earlier so we see which 207 .if or .for line is being parsed. 208 2092024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * VERSION (_MAKE_VERSION): 20240404 212 Merge with NetBSD make, pick up 213 o fix some unit tests for Cygwin 214 o parse.c: exit immediately after reading a null byte from a makefile 215 216 * fix generation of bmake.cat1 217 2182024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 219 220 * VERSION (_MAKE_VERSION): 20240314 221 Add/Improve support for Cygwin 222 o uname -s output isn't useful so allow configure to 223 set FORCE_MAKE_OS - to force the value of .MAKE.OS 224 and use Cygwin which matches uname -o 225 o fix some unit-tests for Cygwin 226 2272024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * boot-strap: tests can take a long time; use a cookie to 230 skip them if bmake has not been updated since tests last 231 ran successfully. 232 233 * Makefile: Cygwin handles MANTARGET man 234 235 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 236 2372024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 238 239 * VERSION (_MAKE_VERSION): 20240309 240 Merge with NetBSD make, pick up 241 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 242 this allows a .ERROR target to ignore the case of 243 .ERROR_EXIT==6 which just means that the build actually 244 failed somewhere else. 245 2462024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 247 248 * VERSION (_MAKE_VERSION): 20240303 249 250 * var.c: on IRIX we need both inttypes.h and stdint.h 251 2522024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 253 254 * VERSION (_MAKE_VERSION): 20240301 255 Merge with NetBSD make, pick up 256 o export variables with value from target scope 257 when appropriate. 258 2592024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 260 261 * VERSION (_MAKE_VERSION): 20240212 262 Merge with NetBSD make, pick up 263 o remove unneeded conditional-compilation toggles 264 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 265 GMAKEEXPORT NO_REGEX and SUNSHCMD 266 267 * configure.in: add check for regex.h 268 269 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 270 2712024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * VERSION (_MAKE_VERSION): 20240204 274 Merge with NetBSD make, pick up 275 o var.c: fix some lint (-dL) mode parsing issues 276 2772024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 278 279 * VERSION: (_MAKE_VERSION): 20240202 280 Merge with NetBSD make, pick up 281 o make.1: note that arg to :D and :U can be empty 282 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 283 2842024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 285 286 * VERSION (_MAKE_VERSION): 20240108 287 Merge with NetBSD make, pick up 288 o miscellaneous cleanups 289 2902024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 291 292 * VERSION (_MAKE_VERSION): 20240106 293 Merge with NetBSD make, pick up 294 o fix duplicate progname when reporting an unknown target 295 o unit tests for Cmd_Exec using temp file 296 2972024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 298 299 * VERSION (_MAKE_VERSION): 20240105 300 Merge with NetBSD make, pick up 301 o main.c: Cmd_Exec write cmd to a file if too big 302 avoid blowing commandline/env limits 303 3042024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 305 306 * VERSION (_MAKE_VERSION): 20240101 307 o util.c: flesh out more of strftime 308 * configure.in: add --with-bmake-strftime 309 it is not a full implementation but enough to pass all 310 the unit-tests. 311 * parse.c: LoadFile do not append \n to empty buffer. 312 3132023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 314 315 * VERSION (_MAKE_VERSION): 20231230 316 Merge with NetBSD make, pick up 317 o simplify memory allocation for string buffers 318 o fix declared types of list nodes 319 o suff.c: clean up freeing of suffixes 320 o var.c: simplify debug message for the ':@var@...@' modifier 321 clean up variable handling 322 3232023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 324 325 * VERSION (_MAKE_VERSION): 20231226 326 Merge with NetBSD make, pick up 327 o compat.c: ensure make's output is correctly ordered with that of 328 the target when not going to a tty 329 o main.c: check for shellPath whether to call Shell_Init() 330 3312023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 332 333 * VERSION (_MAKE_VERSION): 20231224 334 Merge with NetBSD make, pick up 335 o compat.c: check for shellPath whether to call Shell_Init() 336 tweak the unit test to detect the bug thus fixed. 337 o make.1: do not claim .SHELL is only used by jobs mode. 338 3392023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 340 341 * VERSION (_MAKE_VERSION): 20231220 342 Merge with NetBSD make, pick up 343 o str.c: speed up pattern matching in the ':M' modifier 344 o var.c: fix confusing debug logging when deleting a variable 345 use consistent debug messages style when ignoring variables 346 3472023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 348 349 * VERSION (_MAKE_VERSION): 20231210 350 Merge with NetBSD make, pick up 351 o var.c: avoid segfault on empty :C match expression 352 explain in debug log why variable assignment is ignored. 353 3542023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 355 356 * VERSION (_MAKE_VERSION): 20231208 357 Merge with NetBSD make, pick up 358 o var.c: ensure fromCmd is set correctly for variables set on 359 command line. 360 3612023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 362 363 * configure.in: disable generation of 'makefile' for 364 Darwin by default. 365 366 * boot-strap: docuement --without-makefile 367 3682023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 369 370 * VERSION (_MAKE_VERSION): 20231124 371 Merge with NetBSD make, pick up 372 o main.c: cleanup processing of -j 373 fix lint warning about strchr 374 o var.c: more accurate error message for invalid ':mtime' argument 375 cleanup :[...] modifier 376 avoid reading beyond substring when comparing 377 o unit-tests cover all cases of :mtime, test and explain exporting 378 of variables 379 o cleanup comments 380 3812023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 382 383 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 384 $FreeBSD$ tag, so avoid adding it. 385 3862023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 387 388 * VERSION (_MAKE_VERSION): 20230909 389 Merge with NetBSD make, pick up 390 o main.c: allow -j to compute a multiple of ncpu 391 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 392 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 393 _SC_NPROCESSORS_ONLN 394 .MAKE.JOBS.C will be "yes" if -jC is supported 395 3962023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 397 398 * VERSION (_MAKE_VERSION): 20230820 399 Merge with NetBSD make, pick up 400 o make.1: note that :localtime is better for %s 401 o parse.c: improve error messages for invalid input. 402 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 403 correct result, it is still better to use %s:L:localtime. 404 4052023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 406 407 * VERSION (_MAKE_VERSION): 20230818 408 Merge with NetBSD make, pick up 409 o meta.c: meta_ignore - check raw path against metaIgnorePaths 410 to potentially skip call to realpath. 411 o var.c: be strict when parsing the argument of the ':mtime' modifier 412 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 413 should be used to get an equivalent value to time(3). 414 4152023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 416 417 * VERSION (_MAKE_VERSION): 20230816 418 Merge with NetBSD make, pick up 419 o cond.c: clean up multiple-inclusion guards 420 4212023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 422 423 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 424 if configure cannot work out how to control TZ. 425 Remove varmod-localtime from BROKEN_TESTS for IRIX* 426 4272023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 428 429 * VERSION (_MAKE_VERSION): 20230723 430 431 * configure.in: fix the test for wether TZ=Europe/Berlin works. 432 Depending on the time of year, if run between 22:00 and 00:00 UTC 433 the check in configure would fail incorrectly. 434 Take the day into account as well. 435 4362023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 437 438 * VERSION (_MAKE_VERSION): 20230711 439 Merge with NetBSD make, pick up 440 o make.1: clean up wording, clarify scope of '!' in conditions 441 4422023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 443 444 * make-bootstrap.sh.in: set prefix 445 If configure is run using ksh we get unexpanded ${prefix} in 446 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 447 correct result. 448 4492023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 450 451 * VERSION (_MAKE_VERSION): 20230711 452 bump version for IRIX tweaks 453 454 * make.h: undef OP_NONE if defined 455 456 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 457 458 * configure.in: override INSTALL on IRIX 459 4602023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 461 462 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 463 4642023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 465 466 * VERSION (_MAKE_VERSION): 20230622 467 Merge with NetBSD make, pick up 468 o optimize string matching for ':M' and ':N' 469 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 470 4712023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 472 473 * VERSION (_MAKE_VERSION): 20230621 474 Merge with NetBSD make, pick up 475 o more extensive tests for include guards 476 o parse.c: if a guard is already defined a file that uses the same 477 guard is still guarded by it. 478 4792023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 480 481 * VERSION (_MAKE_VERSION): 20230620 482 Merge with NetBSD make, pick up 483 o allow guards to be targets as well as variables 484 The guard targets may include variable references like 485 __${.PARSEDIR:tA}/${.PARSEFILE}__ 486 4872023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 488 489 * VERSION (_MAKE_VERSION): 20230619 490 Merge with NetBSD make, pick up 491 o unit test for .undef of readOnly vars 492 o optimization for makefiles protected from multiple-inclusion 493 skip even opening the file after first include. 494 Initially this only handles makefiles guarded by a variable 495 target guards are next. 496 4972023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 498 499 * VERSION (_MAKE_VERSION): 20230616 500 Merge with NetBSD make, pick up 501 o var.c: do not allow delete of readOnly variable 502 5032023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 504 505 * VERSION (_MAKE_VERSION): 20230601 506 Merge with NetBSD make, pick up 507 o parse.c: .break takes no args 508 o lots of unit test updates 509 5102023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 511 512 * unit-tests/Makefile: skip tests that require /dev/filemon 513 if it does not exists - issue a warning. 514 5152023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 516 517 * VERSION (_MAKE_VERSION): 20230522 518 Fix building on darwin ppc 519 520 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 521 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 522 5232023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 524 525 * VERSION (_MAKE_VERSION): 20230515 526 527 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 528 compile filemon_ktrace.c 529 5302023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 531 532 * VERSION (_MAKE_VERSION): 20230512 533 o sys.dirdeps.mk - broke after-import target 534 5352023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20230510 538 Merge with NetBSD make, pick up 539 o parse.c: don't print null filename in stack traces 540 o var.c: :mtime operate on each word in variable value 541 5422023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 543 544 * VERSION (_MAKE_VERSION): 20230509 545 Merge with NetBSD make, pick up 546 o for.c: skip syntactically wrong .for loops 547 o var.c: allow for :gmtime=${mtime} 548 add :mtime[=timestamp] where timestamp is used if stat(2) 549 fails, if :mtime=error stat(2) failure causes error. 550 5512023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 552 553 * VERSION (_MAKE_VERSION): 20230504 554 Merge with NetBSD make, pick up 555 o compat.c: fix compile on NetBSD 7.2 556 o make.1: fix documentation of .PREFIX to match reality and POSIX 557 o unit-tests: improved var-scope-local 558 5592023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 560 561 * VERSION (_MAKE_VERSION): 20230414 562 Merge with NetBSD make, pick up 563 o minor cleanup 564 5652023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 566 567 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 568 unlimited results in an insane number (0x7fffffffffffffff). 569 If BMAKE_NOFILE_MAX is defined, use that instead. 570 5712023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 572 573 * VERSION (_MAKE_VERSION): 20230321 574 Merge with NetBSD make, pick up 575 * make.1: document seemingly unexplained Error code 6. 576 5772023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 578 579 * VERSION (_MAKE_VERSION): 20230317 580 Merge with NetBSD make, pick up 581 o compat.c: CompatDeleteTarget skip .PHONY targets to be 582 consistent with JobDeleteTarget. 583 o job.c: fix memory leak in handling sysv :from=to modifiers 584 5852023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 586 587 * VERSION (_MAKE_VERSION): 20230303 588 Merge with NetBSD make, pick up 589 o several updated unit-tests 590 5912023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 592 593 * VERSION (_MAKE_VERSION): 20230222 594 Merge with NetBSD make, pick up 595 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 596 5972023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 598 599 * VERSION (_MAKE_VERSION): 20230218 600 Merge with NetBSD make, pick up 601 o var.c: fix parsing of unevaluated subexpressions with 602 unbalanced '{}' 603 6042023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 605 606 * VERSION (_MAKE_VERSION): 20230215 607 Merge with NetBSD make, pick up 608 o inline macros for some variable names 609 o cond.c: reduce complexity of evaluating expressions 610 6112023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 612 613 * VERSION (_MAKE_VERSION): 20230208 614 Merge with NetBSD make, pick up 615 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 616 when it has been used within conditional expressions 617 6182023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20230127 621 622 * install-sh: if making directories ensure umask is set 623 to match mode. 624 625 * Makefile: use DIRMODE for directories and 626 NONBINMODE for man pages and mk files 627 6282023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 629 630 * VERSION (_MAKE_VERSION): 20230126 631 Merge with NetBSD make, pick up 632 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 633 should be read-only. 634 6352023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 636 637 * VERSION (_MAKE_VERSION): 20230123 638 Merge with NetBSD make, pick up 639 o .[NO]READONLY: for control of read-only variables 640 o .SYSPATH: for controlling the path searched for makefiles 641 6422023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 643 644 * VERSION (_MAKE_VERSION): 20230120 645 Merge with NetBSD make, pick up 646 o allow for white-space between command specifiers @+- 647 o add more details to warning 'Extra targets ignored' 648 6492023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 650 651 * machine.sh: leverage os.sh rather than duplicate 652 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 653 for that purpose for the past decade or so. 654 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 655 6562023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 657 658 * VERSION (_MAKE_VERSION): 20230101 659 Merge with NetBSD make, pick up 660 o cleanup comments, inline some LazyBuf_ methods 661 o unit-tests/ add/improve comments in tests 662 o make.1: sync list of built-in variables with reality 663 sort list of built-in variables 664 reduce indentation of the long list of variable names 665 use consistent markup for boolean flags 666 move description of .MAKE.MODE below the .MAKE.META block 667 clarify in which case an expression may omit braces 668 6692022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 670 671 * VERSION (_MAKE_VERSION): 20221024 672 Merge with NetBSD make, pick up 673 o change return type of unlink_file back to int 674 6752022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 676 677 * Makefile: Darwin and Linux can handle MANTARGET=man 678 6792022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 680 681 * VERSION (_MAKE_VERSION): 20220928 682 Merge with NetBSD make, pick up 683 o fix more ignored returns from snprintf 684 o compile with higher warnings 685 6862022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 687 688 * main.c meta.c: do not ignore return from snprintf 689 690 * meta.c strlcpy.c: we need prototype for strlcpy 691 692 * sigcompat.c: fix unused function warnings 693 6942022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 695 696 * VERSION (_MAKE_VERSION): 20220924 697 Merge with NetBSD make, pick up 698 o fix bug in .break reset of conditional depth 699 o overhaul and simplify tracking of conditional depth 700 7012022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 702 703 * VERSION (_MAKE_VERSION): 20220912 704 Merge with NetBSD make, pick up 705 o man page updates 706 7072022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 708 709 * VERSION (_MAKE_VERSION): 20220909 710 Merge with NetBSD make, pick up 711 o update unit-tests to handle deprecation of egrep 712 o cond.c: add more details to error message for numeric comparison 713 714 * configure.in: allow for deprecation of egrep 715 716 * Makefile: Linux can handle MANTARGET=man 717 7182022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 719 720 * VERSION (_MAKE_VERSION): 20220903 721 Merge with NetBSD make, pick up 722 o job.c: fix handling of null bytes in output 723 7242022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 725 726 * VERSION (_MAKE_VERSION): 20220902 727 Merge with NetBSD make, pick up 728 o Allow .break to terminate a .for loop early 729 7302022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 731 732 * VERSION (_MAKE_VERSION): 20220901 733 Merge with NetBSD make, pick up 734 o var.c: fix out-of-bounds errors when parsing 735 7362022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 737 738 * VERSION (_MAKE_VERSION): 20220824 739 Merge with NetBSD make, pick up 740 o var.c: revert change to modifier parsing that breaks 741 shell variable references within ':@var@body@' 742 o adjust unit-tests 743 7442022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * VERSION (_MAKE_VERSION): 20220818 747 Merge with NetBSD make, pick up 748 o fix exit status for '-q' (since 1994) 749 7502022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 751 752 * VERSION (_MAKE_VERSION): 20220808 753 Merge with NetBSD make, pick up 754 o var.c: fix parsing of modifiers containing unbalanced subexpressions 755 extract parsing of ':D' and ':U' modifiers into separate function 756 7572022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 758 759 * VERSION (_MAKE_VERSION): 20220726 760 761 * Auto-create objdir for bmake/unit-tests if appropriate 762 7632022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 764 765 * VERSION (_MAKE_VERSION): 20220724 766 Merge with NetBSD make, pick up 767 o make.1: describe variable assignment and evaluation more precisely 768 o parse.c: fix out-of-bounds read when parsing an invalid line 769 o var.c: simplify return type of IsShortVarnameValid 770 7712022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 772 773 * VERSION (_MAKE_VERSION): 20220612 774 Merge with NetBSD make, pick up 775 o allow to randomize build order of targets 776 .MAKE.MODE += randomize-targets can help uncover dependency bugs 777 within a makefile. 778 o compat.c: rename Compat_Run to Compat_MakeAll 779 o make.c: inline MakeBuildParent 780 inline make_abort, improve error details 781 o parse.c: reorganize Parse_Error 782 fix memory leak in wildcard targets and sources 783 separate cases in HandleDependencyTargetMundane 784 extract HandleSingleDependencyTargetMundane 785 rename loadfile to LoadFile 786 split IncludeFile into separate functions 787 condense code for searching a file in the paths 788 fix off-by-one error in buffer for .WAIT nodes 789 o str.c: condense Str_Match 790 make code for string matching syntactically more consistent 791 7922022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 793 794 * VERSION (_MAKE_VERSION): 20220418 795 Merge with NetBSD make, pick up 796 o ignore '.POSIX:' if not in first non-comment line 797 of Makefile as specified by POSIX. 798 add unit-tests for above. 799 o meta.c: make it easier to find usage of identifiers 800 o targ.c: add .USEBEFORE to Targ_PrintType 801 8022022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 803 804 * VERSION (_MAKE_VERSION): 20220414 805 806 * unit-tests/Makefile: simplify checks for shells with 807 BROKEN_TESTS, this helps with other Linux distros that 808 use dash. 809 8102022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 811 812 * VERSION (_MAKE_VERSION): 20220330 813 Merge with NetBSD make, pick up 814 o var.c: fix spacing, and a typo in a test 815 8162022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 817 818 * VERSION (_MAKE_VERSION): 20220326 819 Merge with NetBSD make, pick up 820 o parse.c: try to include 'posix.mk' the first time 821 .POSIX: is encountered, to allow for beter POSIX compliance. 822 o var.c: make debug logs more readable 823 prefer 'long long' over 'long' on 32-bit C99 platforms 824 fix crash on .undef of an environment variable 825 8262022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 827 828 * VERSION (_MAKE_VERSION): 20220303 829 Merge with NetBSD make, pick up 830 o tell meta mode unit tests not to expect filemon 831 o cond.c: make debug logging for comparisons less technical 832 o lst.c: fix mem leak in Lst_Remove 833 o str.c: make code for string matching syntactically more consistent 834 o var.c: simplify ParseModifier_Match 835 8362022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 837 838 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 839 840 * VERSION (_MAKE_VERSION): 20220214 841 Merge with NetBSD make, pick up 842 o cond.c: simplify control flow in CondParser_Comparison 843 o job.c: fix echoing of command with '-' in silent target in jobs mode 844 o main.c: prefix the warning about read-only .OBJDIR with a colon 845 o parse.c: remove redundant conditions 846 o var.c: simplify control flow in ModifyWord_SysVSubst 847 8482022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 849 850 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 851 is any chance we have dash as .SHELL 852 853 * VERSION (_MAKE_VERSION): 20220208 854 Merge with NetBSD make, pick up 855 o more unit tests 856 o meta.c: use a variable to hold command line to be filtered 857 to avoid any side effects from content of command line. 858 8592022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 860 861 * VERSION (_MAKE_VERSION): 20220204 862 Merge with NetBSD make, pick up 863 o use unsigned consistently for line numbers, avoid the need for %z 864 o parse.c: do not step off end of input in Parse_IsVar 865 when checking for target local variable assignments 866 8672022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 868 869 * VERSION (_MAKE_VERSION): 20220202 870 Merge with NetBSD make, pick up 871 o remove redundant declaration of HashIter_Init 872 o make DEBUG0 simpler 873 8742022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 875 876 * cast gn->lineno to avoid %z 877 878 * VERSION (_MAKE_VERSION): 20220130 879 Merge with NetBSD make, pick up 880 o more unit tests 881 o make GNode lineno unsigned to please lint 882 o print location of recursive variable references in commands 883 o print "stack trace" (makefile includes) on fatal errors 884 o make.1: refine documentation for target local assignments 885 8862022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 887 888 * VERSION (_MAKE_VERSION): 20220128 889 Merge with NetBSD make, pick up 890 o inline functions called only once 891 o for.c: clean up AddEscape for building the body of a .for loop 892 o hash.c: merge duplicate code for finding an entry in a hash table 893 replace HashEntry_KeyEquals with strncmp 894 o make.1: document quirks of target local variable assignments. 895 o parse.c: cleanup white-space 896 8972022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 898 899 * VERSION (_MAKE_VERSION): 20220126 900 Merge with NetBSD make, pick up 901 o allow setting target local variables 902 o more unit tests 903 o add missing newline after "cannot continue" message 904 o meta.c: clean up eat_dots 905 o parse.c: fix filename in warning about duplicate script 906 o var.c: when expanding nested variables, check simple things first 907 9082022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 909 910 * VERSION (_MAKE_VERSION): 20220116 911 Merge with NetBSD make, pick up 912 o fix for unit-tests/varname-makeflags on non-BSD systems 913 o use Var_Exists rather than Var_Value where appropriate 914 o remove unnecessary functions for expanding variable names 915 o cond.c: inline EvalBare 916 o main.c: lint cleanup 917 o parse.c: condense code in Parse_IsVar 918 use islower for parsing directives (none have upper case) 919 9202022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 921 922 * VERSION (_MAKE_VERSION): 20220112 923 Merge with NetBSD make, pick up 924 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 925 comparion, rarely needed but useful when it is. 926 9272022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 928 929 * VERSION (_MAKE_VERSION): 20220110 930 Merge with NetBSD make, pick up 931 o inline Buf_Clear 932 o remove redundant braces 933 o rename and inline Targ_Precious 934 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 935 o for.c: clean up handling of .for loops 936 fix reported line numbers of continuation lines 937 add details about .for loop variables to stack traces 938 o job.c: reduce code for initializing error handling in shell 939 o main.c: in Cmd_Exec, return error message instead of format string 940 have as few statements as possible between va_start and va_end 941 add debug logging for capturing the output of external commands 942 o make.c: use consistent variable names for varargs 943 o make_malloc.c: remove duplicate code from bmake_strdup 944 o parse.c: add missing printflike annotations 945 remove redundant lines from stack traces 946 fix stack traces in -dp mode 947 reduce confusing code in ParseForLoop 948 fix line number in debug log after returning from a file 949 rename IFile and its fields to match their actual content 950 clean up ParseDependencySources 951 o var.c: shorten ApplyModifier_Assign 952 rename is_shell_metachar, fix character conversion warning 953 merge calls to ApplyModifier_Time 954 merge duplicate code for modifiers 'gmtime' and 'localtime' 955 9562022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 957 958 * parse.c: loadfile restore extra byte in buffer. 959 9602022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 961 962 * VERSION (_MAKE_VERSION): 20220101 963 Merge with NetBSD make, pick up 964 o more unit-tests 965 o remove unnecessary words from command line options in CmdOpts 966 o rename eunlink to unlink_file 967 o cond.c: make ParseWord in condition parser simpler 968 internally return false for irrelevant leaves in conditions 969 replace table for function lookup in conditions with simple code 970 merge duplicate types CondEvalResult and CondResult 971 o for.c: clean up handling of .for loops and .include directives 972 o main.c: constify cached_realpath 973 clean up Cmd_Exec 974 o parse.c: sync API documentation 975 fix error message when reading more than 1 GB from stdin 976 clean up parsing of makefiles 977 fix line number in error message about open conditionals 978 unexport types VarAssignOp and VarAssign 979 clean up function names 980 remove redundant parameters in dependency parsing functions 981 reduce scope of the list of wildcard target names 982 extract OP_NOTARGET into separate function 983 clean up variable names for parsing dependency lines 984 make debug logging a bit more human-friendly 985 o var.c: condense code in ApplyModifier_Assign 986 9872021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 988 989 * VERSION (_MAKE_VERSION): 20211221 990 Merge with NetBSD make, pick up 991 o more unit-tests 992 o style cleanup 993 o in CLEANUP mode, free interned strings at the very end 994 o fix memory leak for filenames in .for loops 995 o buf.c: avoid memory leak 996 o cond.c: condense CondParser_ComparisonOp 997 o hash.c: change return type of HashTable_Set to void 998 o job.c: change return type of Compat_RunCommand from int to bool 999 o main.c: remove bmake_free 1000 o parse.c: condense repetetive code in ParseDirective 1001 remove dead code for handling traditional include directives 1002 clean up parsing of variable assignments 1003 remove unreachable code for parsing the dependency operator 1004 clean up loading of files 1005 fix memory leak in IncludeFile 1006 o var.c: fix memory leak when parsing a variable name 1007 fix memory leak from ${.SUFFIXES} 1008 reduce memory allocation in modifier ':?' and ':C' 1009 condense RegexReplace for the modifier ':C' and avoid strlen 1010 merge duplicate code for memory handling in Var_Parse 1011 distinguish between short-lived and environment variables 1012 rename VarFreeEnv to VarFreeShortLived 1013 10142021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 1015 1016 * cond.c: fix mem leak in CondParser_Leaf 1017 10182021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1019 1020 * VERSION (_MAKE_VERSION): 20211212 1021 Merge with NetBSD make, pick up 1022 o rename Parse_SetInput to Parse_PushInput 1023 o remove remove period from end of error messages and warnings 1024 to be more consistent 1025 o arch.c: use simpler memory management for parsing archive members 1026 o cond.c: rework and reduce recursion 1027 o for.c: rename some functions to better reflect purpose 1028 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 1029 o var.c: in parse errors, mark whitespace more clearly 1030 inline ParseEmptyArg into CondParser_FuncCallEmpty 1031 minimize calls to LazyBuf_Get in ParseVarnameLong 1032 treat .SUFFIXES as a read-only variable 1033 10342021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 1035 1036 * VERSION (_MAKE_VERSION): 20211207 1037 Merge with NetBSD make, pick up 1038 o inline HashIter_Init 1039 o parse.c: inline common subexpression in ParseRawLine 1040 o var.c: merge branches for modifiers ':D' and ':U' 1041 extract common code into Expr_Words 1042 extract common code into Expr_Str 1043 move low-level implementation details out of Var_Parse 1044 10452021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1046 1047 * VERSION (_MAKE_VERSION): 20211206 1048 Merge with NetBSD make, pick up 1049 o add unit-tests/varmod-loop-delete 1050 o for.c: inline Str_Words - reduce memory allocation 1051 o parse.c: do not try to expand fixed variable names 1052 only allocate the name of an included file if necessary 1053 clean up ParseInclude 1054 o var.c: fix use-after-free in modifier ':@' 1055 save a memory allocation in each modifier ':O' and ':u' 1056 save a memory allocation in the modifier ':[...]' 1057 in UnexportVars, replace Str_Words with Substring_Words to 1058 reduce allocations and copying. 1059 10602021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 1061 1062 * VERSION (_MAKE_VERSION): 20211204 1063 Merge with NetBSD make, pick up 1064 o flesh out a number of tests 1065 o replace enums with bitfields, this simplifies a lot of code. 1066 o var.c: refactor ParseModifierPartSubst 1067 10682021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 1069 1070 * VERSION (_MAKE_VERSION): 20211024 1071 Merge with NetBSD make, pick up 1072 o Punt on write errors - ENOSPC etc. 1073 10742021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1075 1076 * configure.in: use_defshell, set both DEFSHELL_INDEX 1077 and defshell_path if appropriate. 1078 This makes it easier to use say the KSH specification with 1079 and alternate path for the shell. 1080 1081 * configure.in compat.c: for SCO we need to force UseShell 1082 1083 * configure.in: SCO /bin/sh is not usable, provide a list of 1084 alternatives for use as .SHELL. 1085 We still have to mark some tests as broken, plus more if we end up 1086 with ksh as .SHELL. 1087 Issue a warning about skipped tests. 1088 1089 * boot-strap: leave TOOL_DIFF to configure 1090 1091 * configure.in: on SCO native cc is not usable, 1092 gcc is to be found in /usr/gnu/bin 1093 and while ancient is at least able to compile bmake. 1094 Thus we add /usr/gnu/bin to PATH if it exists, and later 1095 check if $CC would have been found via $PATH. 1096 If not we set CC to the full path of $CC. 1097 Also gnu diff is known to support -u, so if it exists use it. 1098 1099 * configure.in: move getopt to AC_REPLACE_FUNCS 1100 also add AC_C_INLINE - in an attempt to compile using 1101 native cc on SCO. 1102 1103 * configure.in: check for stresep as well as strsep, since we 1104 define the later to the former if necessary, and if we have to 1105 provide stresep we also need to provide a prototype. 1106 1107 * configure.in: we no longer need to worry about 1108 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1109 1110 * make.h: make sure we have __RCSID 1111 1112 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1113 can control it. 1114 11152021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1116 1117 * VERSION: 20211020 1118 Merge with NetBSD make, pick up 1119 o confirm sync of unit-tests 1120 11212021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1122 1123 * configure.in: check if timezone Europe/Berlin is supported 1124 if not try UTC-1 1125 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1126 symlink unit-tests -> ../unit-tests/obj so that 1127 unit-tests/Makefile.config is put in the right place. 1128 * refine filtering of .OBJDIR in unit-tests 1129 11302021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1131 1132 * Fix unit-tests on Minix 3.2.0 1133 o job.c: do not punt if read of token pipe fails for EAGAIN. 1134 On Minix at least, we are not ready to read the childExitJob pipe 1135 when poll says we are. 1136 There should actually be no reason for this pipe to be 1137 non-blocking, but while that works fine on {Net,Free}BSD it 1138 breaks another test case on Minix. 1139 o unit-tests/Makefile: deal with variants of error messages 1140 and use of obj as .OBJDIR 1141 11422021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1143 1144 * configure.in: add sigaction to AC_REPLACE_FUNCS 1145 we also need to check for sigaddset etc just for the benefit of 1146 sigact.c 1147 1148 * Add sigact.c as sigaction.c so this "just works". 1149 This should have been done back when bmake_signal started using 1150 sigaction (I only just noticed that sigact.c wasn't here ;-) 1151 Note: I no longer have access to any system where this would matter. 1152 11532021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1154 1155 * VERSION (_MAKE_VERSION): 20211011 1156 1157 * Makefile: cleanup a little 1158 1159 * configure.in: check for sigsetmask 1160 11612021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1162 1163 * VERSION (_MAKE_VERSION): 20211001 1164 Merge with NetBSD make, pick up 1165 o reduce locations reducing text size 1166 o remove unnecessary const 1167 o cond.c: fix lint warning on i386 1168 do not allow unquoted 'left == right' after modifier ':?' 1169 o hash.c: fix build for DEBUG_HASH_LOOKUP 1170 o var.c: fix memory leak in error case of the ':?' modifier 1171 11722021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1173 1174 * VERSION (_MAKE_VERSION): 20210911 1175 Merge with NetBSD make, pick up 1176 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1177 11782021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1179 1180 * VERSION (_MAKE_VERSION): 20210906 1181 Merge with NetBSD make, pick up 1182 o more unit tests 1183 o lint cleanup 1184 o rename some functions to better fit purpose 1185 o for.c: cleanup - remove unnecessary optimization 1186 fix embedded newlines 1187 o parse.c: correct case for CVS/RCS 1188 11892021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1190 1191 * VERSION (_MAKE_VERSION): 20210808 1192 Merge with NetBSD make, pick up 1193 o var.c: remove redundant initialization in ApplyModifier_Order 1194 1195 * mk/options.mk: issue warning for incorrect usage 1196 11972021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1198 1199 * var.c: use long for :On if we don't have a 64bit int type 1200 1201 * VERSION (_MAKE_VERSION): 20210803 1202 Merge with NetBSD make, pick up 1203 o rework varmod-order tests to avoid qsort instability 1204 o make.1: clarify :On entry 1205 12062021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1207 1208 * VERSION (_MAKE_VERSION): 20210731 1209 Merge with NetBSD make, pick up 1210 o fix some lint issues 1211 o more unit tests 1212 o var.c: rework of ApplyModifier_Order 1213 12142021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1215 1216 * util.c: add strto*l if HAVE_STRTO*L not defined 1217 1218 * VERSION (_MAKE_VERSION): 20210730 1219 Merge with NetBSD make, pick up 1220 o var.c: add :On and :Orn for numeric sort 1221 disabled if no 64bit type available. 1222 o _strtol.h: to implement strto*l functions 1223 12242021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1225 1226 * VERSION (_MAKE_VERSION): 20210704 1227 Merge with NetBSD make, pick up 1228 o unit-tests: fix some tests to be more portable 1229 - job-output-null not all shells do the same number of write calls 1230 - objdir-writable if TMPDIR is set; /tmp may not be usable 1231 12322021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1233 1234 * VERSION (_MAKE_VERSION): 20210701 1235 Merge with NetBSD make, pick up 1236 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1237 some tests just cannot work in some environments. 1238 o buf.c: simpler upper bound for length in Buf_AddInt 1239 o cond.c: fix grammar in error message for malformed conditional 1240 o for.c: prevent newline injection (from ${.newline}) in .for loops 1241 o var.c: use more practical data type in RegexReplace 1242 (avoid need for %zu) 1243 extract RegexReplace from ModifyWord_SubstRegex 1244 12452021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1246 1247 * VERSION (_MAKE_VERSION): 20210621 1248 Merge with NetBSD make, pick up 1249 o var.c: only report error for unmatched regex subexpression 1250 when linting (-dL) since we cannot tell when an unmatched 1251 subexpression is an expected result. 1252 o move unmatched regex subexpression tests to 1253 varmod-subst-regex.mk and enable strict (lint) mode 1254 12552021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1256 1257 * VERSION (_MAKE_VERSION): 20210616 1258 Merge with NetBSD make, pick up 1259 o more unit tests 1260 o cond.c: rename If_Eval to EvalBare 1261 improve function names for parsing conditions 1262 o job.c: fix error handling of targets that cannot be made 1263 o var.c: uncompress code in ApplyModifier_Unique 1264 12652021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1266 1267 * VERSION (_MAKE_VERSION): 20210518 1268 Merge with NetBSD make, pick up 1269 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1270 o job.c: Print -de error information when running multiple jobs 1271 12722021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1273 1274 * VERSION (_MAKE_VERSION): 20210420 1275 Merge with NetBSD make, pick up 1276 o use C99 bool type 1277 o convert VarEvalFlags back into an enum 1278 o cond.c: do not complain when skipping the condition 'no >= 10' 1279 o hash.c: avoid allocating memory for simple variable names 1280 o job.c: use distinct wording for writing to the shell commands file 1281 remove type name for the abort status in job handling 1282 rename PrintOutput to PrintFilteredOutput to avoid confusion 1283 o main.c: avoid double slash in name of temporary directory 1284 o var.c: use straight quotes for error 'Bad conditional expression' 1285 reduce memory allocations in the modifiers ':D' and ':U' 1286 rename members of ModifyWord_LoopArgs 1287 clean up pattern flags for the modifiers ':S' and ':C' 1288 reduce memory allocation and strlen calls in modifier ':from=to' 1289 in the ':Q' modifier, only allocate memory if necessary 1290 improve performance for LazyBuf 1291 remove redundant parameter from ParseVarnameLong 1292 migrate ParseModifierPart to use Substring 1293 avoid unnecessary calls to strlen when evaluating modifiers 1294 migrate ModifyWord functions to use Substring 1295 migrate handling of the modifier ':S,from,to,' to Substring 1296 reduce debug logging and memory allocation for ${:U...} 1297 reduce verbosity of the -dv debug logging for standard cases 1298 clean up debug logging for ':M' and ':N' 1299 disallow '$' in the variable name of the modifier ':@' 1300 simplify access to the name of an expression during evaluation 1301 13022021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1303 1304 * VERSION (_MAKE_VERSION): 20210330 1305 Merge with NetBSD make, pick up 1306 o replace enum bit-field with struct bit-field for VarEvalFlags 1307 o rename VARE_NONE to VARE_PARSE_ONLY 1308 o var.c: rename ApplyModifiersState to ModChain 1309 fix double varname expansion in the variable modifier '::=' 1310 change debug log for variable evaluation flags to lowercase 1311 13122021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1313 1314 * VERSION (_MAKE_VERSION): 20210314 1315 Merge with NetBSD make, pick up 1316 o var.c: avoid evaluating many modifiers in parse only mode 1317 in strict mode (-dL) many variable references are parsed twice, 1318 the first time just to report parse errors early, so we want to 1319 avoid side effects and wasted effort to the extent possible. 1320 13212021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1322 1323 * VERSION (_MAKE_VERSION): 20210226 1324 Merge with NetBSD make, pick up 1325 o remove freestanding freeIt variables 1326 link via FStr 1327 o var.c: restructure code in ParseVarname to target human readers 1328 improve error message for; 1329 bad modifier in variable expression 1330 unclosed modifier 1331 unknown modifier 1332 remove redundant parameter of ApplySingleModifier 1333 explain non-obvious code around indirect variable modifiers 1334 quote ':S' in error message about missing delimiter 1335 extract ParseModifier_Match into separate function 1336 add context information to error message about ':range' modifier 1337 add quotes around variable name in an error message 1338 reorder code in ModifyWords 1339 use more common parameter order for VarSelectWords 1340 make ModifyWord_Subst a little easier to understand 1341 do not expand variable name from the command line twice 1342 extract ExistsInCmdline from Var_SetWithFlags 1343 save a hash map lookup when defining a cmdline variable 1344 clean up VarAdd, Var_Delete, Var_ReexportVars 1345 use bit-shift expressions for VarFlags constants 1346 rename constants for VarFlags 1347 rename ExprDefined constants for debug logging 1348 rename ExprStatus to ExprDefined 1349 split parameters for evaluating variable expressions 1350 reduce redundant code around ModifyWords 1351 print error about failed shell command before overwriting variable 1352 clean up ValidShortVarname, ParseVarnameShort 1353 rename VarExprStatus to ExprStatus 1354 add functions for assigning the value of an expression 1355 rename ApplyModifiersState_Define to Expr_Define 1356 condense the code for parsing :S and :C modifiers 1357 13582021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1359 1360 * VERSION (_MAKE_VERSION): 20210206 1361 Merge with NetBSD make, pick up 1362 o unit-tests: use private TMPDIR to avoid errors from other users 1363 13642021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1365 1366 * VERSION (_MAKE_VERSION): 20210205 1367 Merge with NetBSD make, pick up 1368 o avoid strdup in mkTempFile 1369 o always use vfork 1370 o rename context and ctxt to scope 1371 o rename some VAR constants to SCOPE 1372 o Var_ functions, move the scope to the front 1373 o use shortcut functions Global_Set and Global_Append 1374 o add shortcut Global_Delete for deleting a global variable 1375 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1376 o compat.c: when exiting due to an error, print graph information 1377 o enum.c: remove overengineered Enum_ValueToString 1378 o make.c: remove unused INTERNAL flag 1379 remove unused return type of MakeBuildParent 1380 o parse.c: replace parse error "Need an operator" with better message 1381 o var.c: improve documentation about variable scopes 1382 rename Var_ValueDirect to GNode_ValueDirect 1383 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1384 merge SetVar into Var_SetWithFlags 1385 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1386 split Var_Append into Var_Append and Var_AppendExpand 1387 replace enum bit-set with bit-field 1388 o unit-tests/var-op-shell: use kill rather than kill -14 1389 which broke on darwin with recent update. 1390 13912021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1392 1393 * configure.in: check for sig_atomic_t and define it as 'int' 1394 if missing. 1395 1396 * VERSION (_MAKE_VERSION): 20210201 1397 Merge with NetBSD make, pick up 1398 o use sig_atomic_t for caught_sigchld 1399 14002021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1401 1402 * VERSION (_MAKE_VERSION): 20210130 1403 Merge with NetBSD make, pick up 1404 o more unit tests 1405 o convert SearchPath to struct 1406 o split Buf_Destroy into Buf_Done and Buf_DoneData 1407 o for.c: split For_Eval into separate functions 1408 rename struct For to struct ForLoop 1409 o job.c: do not create empty shell files in jobs mode 1410 rename JobOpenTmpFile to JobWriteShellCommands 1411 reduce unnecessary calls to waitpid 1412 o parse.c: in -dp mode, print stack trace with each diagnostic 1413 14142021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1415 1416 * VERSION (_MAKE_VERSION): 20210123 1417 Merge with NetBSD make, pick up 1418 o rename Dir_Expand to SearchPath_Expand 1419 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1420 o cond.c: fix debug output for comparison operators in conditionals 1421 o dir.c: split Dir_FindFile into separate functions 1422 14232021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1424 1425 * VERSION (_MAKE_VERSION): 20210120 1426 Merge with NetBSD make, pick up 1427 o fix some more lint nits 1428 o refine some unit tests for portability 1429 o cond.c: rework parsing 1430 14312021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1432 1433 * VERSION (_MAKE_VERSION): 20210110 1434 Merge with NetBSD make, pick up 1435 o fix lint warnings 1436 o consistently use boolean expressions in conditions 1437 14382021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1439 1440 * VERSION (_MAKE_VERSION): 20210108 1441 Merge with NetBSD make, pick up 1442 o job.c: back to polling token pipe if we want a token 1443 o main.c: always print 'stopped in' on first call 1444 The execption is if we bail because of an abort token 1445 in which case just exit 6. 1446 14472021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1448 1449 * VERSION (_MAKE_VERSION): 20210101 1450 Merge with NetBSD make, pick up 1451 o Happy New Year! 1452 o rename CmdOpts.lint to strict 1453 o exit 2 on technical errors 1454 o replace pointers in controlling conditions with booleans 1455 o replace global preserveUndefined with VARE_KEEP_UNDEF 1456 o compat.c: re-export variables from the actual make process 1457 if using vfork this is the effect anyway 1458 o cond.c: clean up VarParseResult constants 1459 o for.c: fix undefined behavior in SubstVarLong 1460 make control flow in SubstVarLong of .for loops more obvious 1461 clean up SubstVarShort in .for loops 1462 extract ForSubstBody from ForReadMore 1463 clean up ForReadMore 1464 simplify termination condition for .for loop 1465 add error handling for .for loop items 1466 job.c: re-export variables from the actual make process 1467 parse.c: remove mmap for loading files, only allow files < 1 GiB 1468 fix edge case in := with undefined in variable name 1469 skip variable expansion in ParseDependencyTargetWord 1470 var.c: split ExportVar into separate functions 1471 clean up code in extracted ExportVar functions 1472 remove dead code from ApplyModifiersIndirect 1473 split Var_Subst into easily understandable functions 1474 clean up VarParseResult constants 1475 14762020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1477 1478 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1479 14802020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1481 1482 * VERSION (_MAKE_VERSION): 20201222 1483 Merge with NetBSD make, pick up 1484 o make DEBUG macro return boolean 1485 o parse.c: fix assertion failure for files without trailing newline 1486 o var.c: allow .undef to undefine multiple variables at once 1487 remove excess newline from parse errors 1488 14892020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1490 1491 * VERSION (_MAKE_VERSION): 20201221 1492 Merge with NetBSD make, pick up 1493 o some unit-test updates 1494 14952020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1496 1497 * VERSION (_MAKE_VERSION): 20201220 1498 Merge with NetBSD make, pick up 1499 o more unit tests 1500 o return FStr from Var_Parse and Var_Value 1501 o spell nonexistent consistently 1502 o add str_basename to reduce duplicate code 1503 o compat.c: fix .ERROR_TARGET in compat -k mode 1504 extract InitSignals from Compat_Run 1505 extract UseShell from Compat_RunCommand 1506 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1507 o for.c: rename ForIterate to ForReadMore 1508 o hash.c: clean up hash function for HashTable 1509 o lst.c: rename Vector.priv_cap to cap 1510 o main.c: remove constant parameter from MakeMode 1511 o make.c: use symbolic time for 0 in Make_Recheck 1512 extract MakeChildren from MakeStartJobs 1513 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1514 fix error message for .info/.warning/.error without argument 1515 extract Var_Undef from ParseDirective 1516 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1517 rename mode constants for ParseGetLine to be more expressive 1518 reduce debugging details in Parse_SetInput 1519 fix line numbers in .for loops 1520 split ParseGetLine into separate functions 1521 fix garbled output for failed shell command 1522 var.c: remove redundant assignment in ApplyModifier_SysV 1523 error out on unknown variable modifiers at parse time 1524 remove wrong error message for indirect modifier in lint mode 1525 extract ApplySingleModifier from ApplyModifiers 1526 use FStr for memory management in Var_SetWithFlags 1527 extract SetVar from Var_SetWithFlags 1528 use FStr in VarNew 1529 extract string functions from ApplyModifier_To 1530 error out if .undef has not exactly 1 argument 1531 extract Var_DeleteVar from Var_Delete 1532 extract Var_Undef from ParseDirective 1533 clean up memory management for expanding variable expressions 1534 15352020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1536 1537 * avoid %zu 1538 1539 * lst.c: avoid anonymous union 1540 1541 * VERSION (_MAKE_VERSION): 20201212 1542 Merge with NetBSD make, pick up 1543 o more unit tests 1544 o inline Targ_Ignore and Targ_Silent 1545 o split JobFlags into separate fields 1546 o remove const from function parameters (left overs from refactoring) 1547 o eliminate boolean argument of Var_Export 1548 o make API of Buf_Init simpler 1549 o rename ParseRunOptions to ParseCommandFlags 1550 o replace *line with line[0] 1551 o compat.c: fix wrong exit status for multiple failed main targets 1552 refactor Compat_Run to show the error condition more clearly 1553 don't make .END if the main targets already failed (-k mode) 1554 fix exit status in -k mode if a dependency fails 1555 o for.c: clean up Buf_AddEscaped in .for loops 1556 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1557 make Job_Touch simpler 1558 refactor JobFinish 1559 rename Shell.exitFlag to errFlag 1560 move Job.xtraced to ShellWriter 1561 make printing of shell commands independent from the job 1562 rename shell flags in struct Shell 1563 extract JobOpenTmpFile from JobStart 1564 rename RunFlags to CommandFlags 1565 split various Job.* into separate fields 1566 rename commandShell to shell 1567 extract InitShellNameAndPath from Shell_Init 1568 replace signal handling macros with local functions 1569 replace macro MESSAGE with local function 1570 parse.c: error out on null bytes in makefiles 1571 error out on misspelled directives 1572 rename IFile.nextbuf to readMore 1573 fix undefined behavior in ParseEOF 1574 str.c: remove redundant call to strlen in Str_Words 1575 var.c: error out on misspelled .unexport-env 1576 error out on misspelled .export directives 1577 extract ExportVars from Var_Export 1578 extract ExportVarsExpand from Var_Export 1579 eliminate boolean argument of Var_Export 1580 fix undefined behavior when exporting ${:U } 1581 rename Var_ExportVars to Var_ReexportVars 1582 rename Var_Export1 to ExportVar 1583 15842020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1585 1586 * VERSION (_MAKE_VERSION): 20201206 1587 Merge with NetBSD make, pick up 1588 o more unit tests 1589 o inline macros for debug logging 1590 o use consistent variable names for list nodes 1591 o define constants for enum zero-values 1592 o dir.c: use fixed format for debug output of the directory cache 1593 remove Dir_InitDir 1594 o lst.c: inline Lst_Enqueue, Vector_Done 1595 o meta.c: remove unused parameter from meta_needed 1596 o parse.c: rename parse functions 1597 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1598 o targ.c: don't concatenate identifiers in Targ_PrintType 1599 o var.c: remove comment decoration 1600 extract UnexportVars from Var_UnExport 1601 extract GetVarnamesToUnexport from Var_UnExport 1602 extract UnexportEnv from Var_UnExport 1603 extract UnexportVar from Var_UnExport 1604 move CleanEnv to UnexportVars 1605 replace pointer comparisons with enum 1606 add FStr to var.c to make memory handling simpler 1607 use FStr in Var_UnExport 1608 move type definitions in var.c to the top 1609 extract FreeEnvVar from Var_Parse 1610 extract ShuffleStrings from ApplyModifier_Order 1611 16122020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1613 1614 * VERSION (_MAKE_VERSION): 20201130 1615 Merge with NetBSD make, pick up 1616 o add unit tests for META MODE 1617 o reduce memory allocation for dirSearchPath, GNode.parents, 1618 GNode.children, OpenDirs 1619 o reduce pointer indirection for GNode.cohorts and 1620 GNode.implicitParents 1621 o remove pointer indirection from GNode.commands 1622 o inline Lst_ForEachUntil in meta mode 1623 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1624 clean up memory management for CachedDirs 1625 fix the reference count of dotLast going negative 1626 add debug logging for OpenDirs_Done 1627 extract CacheNewDir from Dir_AddDir 1628 add debug logging for reference counting of CachedDir 1629 rename some Dir functions to SearchPath 1630 o job.c: rename some global variables 1631 o main.c: reduce memory allocation in ReadBuiltinRules 1632 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1633 CmdOpts.makefiles 1634 Add .MAKE.UID and .MAKE.GID 1635 o make.c: reduce memory allocation for/in toBeMade, 1636 Make_ProcessWait, Make_ExpandUse 1637 o meta.c: reduce memory allocation in meta_oodate 1638 o parse.c: reduce memory allocations for parsing dependencies and 1639 targets 1640 o suff.c: reduce memory allocation in suffix handling 1641 16422020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1643 1644 * VERSION (_MAKE_VERSION): 20201124 1645 Merge with NetBSD make, pick up 1646 o .MAKE.{UID,GID} represent uid and gid running make. 1647 o fix error handling for .BEGIN and .END dependency in -k mode 1648 o fix missing "Stop." after failed .END node in -k mode 1649 o use properly typed comparisons in boolean contexts 1650 o replace a few HashTable_CreateEntry with HashTable_Set 1651 o add HashSet type 1652 o compat.c: split Compat_Make into smaller functions 1653 extract DebugFailedTarget from Compat_RunCommand 1654 o dir.c: refactor Dir_UpdateMTime 1655 migrate CachedDir.files from HashTable to HashSet 1656 o make.c: add high-level API for GNode.made 1657 16582020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1659 1660 * VERSION (_MAKE_VERSION): 20201122 1661 Merge with NetBSD make, pick up 1662 o rename GNode.context to vars 1663 o suff.c: cleanup and refactor 1664 rename some functions and vars to better reflect usage 1665 add high-level API for CandidateSearcher 1666 o targ.c: add more debug logging for suffix handling 1667 o more unit tests 1668 o add debug logging for setting and resetting the main target 1669 16702020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1671 1672 * VERSION (_MAKE_VERSION): 20201117 1673 Merge with NetBSD make, pick up 1674 o fix some unit-tests when .SHELL is dash 1675 o rename Targ_NewGN to GNode_New 1676 o make some GNode functions const 1677 o main.c: call Targ_Init before Var_Init 1678 cleanup PrintOnError, getTmpdir and ParseBoolean 1679 o var.c: fix error message of failed :!cmd! modifier 1680 16812020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1682 1683 * VERSION (_MAKE_VERSION): 20201114 1684 Merge with NetBSD make, pick up 1685 o replace a few HashTable_CreateEntry with HashTable_Set 1686 o clean up cached_stats 1687 o rename DEFAULT to defaultNode 1688 o remove redundant struct make_stat 1689 o cond.c: in lint mode, check for ".else <cond>" 1690 use bitset for IfState 1691 replace large switch with if-else in Cond_EvalLine 1692 o job.c: clean up JobExec, JobStart, JobDoOutput 1693 use stderr for error message about failed touch 1694 clean up Job_Touch 1695 replace macro DBPRINTF with JobPrintln 1696 rename JobState to JobStatus 1697 main.c: switch cache for realpath from GNode to HashTable 1698 clean up Fatal 1699 clean up InitDefSysIncPath 1700 use progname instead of hard-coded 'make' in warning 1701 rename Main_SetVarObjdir to SetVarObjdir 1702 make.1: document the -S option 1703 make.c: fix debug output for GNode details 1704 use symbolic names in debug output of GNodes 1705 17062020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1707 1708 * configure.in: fix --with-force-machine-arch 1709 1710 * VERSION (_MAKE_VERSION): 20201112 1711 Merge with NetBSD make, pick up 1712 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1713 checks in InitObjdir. Explicit .OBJDIR target always allows 1714 read-only directory. 1715 o cond.c: clean up Cond_EvalLine 1716 17172020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1718 1719 * VERSION (_MAKE_VERSION): 20201111 1720 Merge with NetBSD make, pick up 1721 o more unit-tests 1722 o style cleanup 1723 remove redundant parentheses from sizeof operator 1724 replace character literal 0 with '\0'. 1725 replace pointer literal 0 with NULL. 1726 remove redundant parentheses. 1727 replace (expr & mask) == 0 with !(expr & mask). 1728 use strict typing in conditions of the form !var 1729 o rename Make_OODate to GNode_IsOODate 1730 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1731 o rename Var_Set_with_flags to Var_SetWithFlags 1732 o rename dieQuietly to shouldDieQuietly 1733 o buf.c: make API of Buf_Init simpler 1734 o compat.c: clean up Compat_Make, Compat_RunCommand, 1735 CompatDeleteTarget and CompatInterrupt 1736 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1737 clean up CondParser_Comparison 1738 o main.c: rename getBoolean and s2Boolean 1739 rename MAKEFILE_PREFERENCE for consistency 1740 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1741 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1742 replace emptyString with allocated empty string 1743 error out on unclosed expressions after the colon 1744 17452020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1746 1747 * VERSION (_MAKE_VERSION): 20201101 1748 Merge with NetBSD make, pick up 1749 o negate NoExecute to GNode_ShouldExecute 1750 o job.c: rename JobMatchShell to FindShellByName 1751 extract EscapeShellDblQuot from JobPrintCommand 1752 extract ParseRunOptions from JobPrintCommand 1753 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1754 treat malformed :range, :ts and :[...] as errors 1755 add tests for the variable modifiers :[words] and :range 1756 17572020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1758 1759 * VERSION (_MAKE_VERSION): 20201031 1760 Merge with NetBSD make, pick up 1761 o format #include directives consistently 1762 o do not look up local variables like .TARGET anywhere else 1763 o main.c: Main_SetObjdir is first called for curdir which may be 1764 readonly 1765 reduce the scope where recursive expressions are detected 1766 remove redundant :tl from getBoolean 1767 clean up mkTempFile 1768 o meta.c: simplify memory allocation in meta_create and meta_oodate 1769 o parse.c: extract loadedfile_mmap from loadfile 1770 o trace.c: document possible undefined behavior with .CURDIR 1771 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1772 rename ismeta to is_shell_metachar 1773 remove debug logging for the :Q variable modifier 1774 rename VarIsDynamic to VarnameIsDynamic 1775 use consistent parameter order in varname parsing functions 1776 extract ParseVarnameLong from Var_Parse 1777 extract ParseVarnameShort from Var_Parse 1778 fix type of ParseModifierPart parameter delim 1779 extract IsEscapedModifierPart from ParseModifierPart 1780 clean up ModifyWords 1781 add test for combining the :@ and :? variable modifiers 1782 17832020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1784 1785 * VERSION (_MAKE_VERSION): 20201030 1786 Merge with NetBSD make, pick up 1787 o change char * to void * in Var_Value 1788 o make iterating over HashTable simpler 1789 o rename VAR_CMD to VAR_CMDLINE 1790 o cond.c: clean up is_separator 1791 fix parse error in string literal in conditional 1792 o main.c: do not use objdir that is not writable 1793 in lint mode, exit with error status on errors 1794 o parse.c: clean up StrContainsWord 1795 fix out-of-bounds pointer in ParseTrackInput 1796 o var.c: rename Str_SYSVMatch and its parameters 1797 remove unsatisfiable conditions in Var_Set_with_flags 1798 document where the variable name is expanded 1799 fix documentation for VARP_SUB_ONE 1800 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1801 document VAR_READONLY 1802 prevent appending to read-only variables 1803 extract MayExport from Var_Export1 1804 remove redundant evaluations in VarFind 1805 replace VarFindFlags with a simple Boolean 1806 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1807 18082020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1809 1810 * VERSION (_MAKE_VERSION): 20201028 1811 Merge with NetBSD make, pick up 1812 o rename defIncPath to defSysIncPath 1813 o initialize all CmdOpts fields 1814 o lst.c: inline Vector_Get 1815 o main.c: refactor main extract 1816 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1817 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1818 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1819 o parse.c: merge curFile into includes 1820 rename predecessor to order_pred 1821 sort ParseSpecial alphabetically 1822 remove unused, undocumented .NOEXPORT 1823 rename ParseSpecial enum values consistently 1824 rename some fields of struct IFile 1825 18262020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1827 1828 * VERSION (_MAKE_VERSION): 20201026 1829 Merge with NetBSD make, pick up 1830 o group the command line options and arguments into a struct 1831 o rename GNode.cmgn to youngestChild 1832 o rename hash functions to identify the type name 1833 o negate OP_NOP and rename it to GNode_IsTarget 1834 o add GNode_Path to access the path of a GNode 1835 o remove macros MIN and MAX 1836 o remove unused Lst_Find and Lst_FindFrom 1837 o arch.c: and make Arch_FindLib simpler 1838 clean up code layout 1839 make Arch_ParseArchive simpler 1840 o cond.c: inline CondFindStrMatch into FuncMake 1841 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1842 omit trailing space in debug output for expanding file patterns 1843 refactor DirMatchFiles 1844 document that the SearchPath of Dir_FindFile may be NULL 1845 remove UNCONST from Dir_Expand 1846 inline DirFindName 1847 o for.c: clean up code for handling .for loops 1848 o hash.c: print hash in debug log with fixed width 1849 clean up hash table functions 1850 reduce amount of string hashing 1851 o job.c: refactor JobDeleteTarget 1852 use proper enum constants for aborting 1853 convert result of JobStart from macros to enum 1854 convert abort reason macros to enum 1855 rework Job_CheckCommands to reduce indentation 1856 rename Shell fields 1857 add field names in declaration of DEFSHELL_CUSTOM 1858 convert JobState and JobFlags to enum types 1859 move handling of the "..." command to JobPrintCommands 1860 o lst.c: clean up 1861 refactor LstNodeNew 1862 remove Lst_Open, Lst_Next, Lst_Close 1863 remove code for circular lists from Lst_Next 1864 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1865 /dev/null or anything starting with "no" 1866 convert macros for debug flags into enum 1867 o make.c: inline Lst_Copy in Make_ExpandUse 1868 o meta.c: inline Lst_Find in meta_oodate 1869 make Lst_RemoveIf simpler in meta_oodate 1870 o parse.c: convert error level for Parse_Error to an enum 1871 o suff.c: properly terminate debug output with newline 1872 add more details to DEBUG_SRC log 1873 replace Dir_CopyDir with Dir_CopyDirSearchPath 1874 don't modify GNode name while rebuilding the suffix graph 1875 o var.c: reduce duplicate code in VarFind 1876 18772020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1878 1879 * VERSION (_MAKE_VERSION): 20201022 1880 Merge with NetBSD make, pick up 1881 o more refactoring and simplification to reduce code size 1882 o var.c: extract CanonicalVarname from VarFind 1883 o make.c: extract UpdateImplicitParentsVars from Make_Update 1884 o main.c: extract PrintVar from doPrintVars 1885 extract HandlePWD from main 1886 o lst.c: inline simple Lst getters 1887 remove unused Lst_ForEach 1888 o job.c: move struct Shell from job.h to job.c 1889 o more unit tests 1890 18912020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1892 1893 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1894 18952020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1896 1897 * VERSION (_MAKE_VERSION): 20201018 1898 Merge with NetBSD make, pick up 1899 o remove USE_IOVEC 1900 o rename some Hash_* apis to Hash* 1901 o replace execError with execDie 1902 o rename Lst_Init to Lst_New 1903 o add tags to enum types 1904 o rename Stack to Vector 1905 o parse.c: more refactoring 1906 o unit-tests: make some tests use line buffered stdout 1907 o unit-tests/Makefile: in meta mode do not make all tests depend on 1908 Makefile, it isn't necessary. 1909 19102020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1911 1912 * main.c: check for CTL_HW being defined. 1913 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1914 disable opt-debug-jobs test until it works on ubuntu 1915 1916 * VERSION (_MAKE_VERSION): 20201010 1917 Merge with NetBSD make, pick up 1918 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1919 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1920 o main.c: extract init_machine and init_machine_arch from main 1921 allow to disable debug logging options 1922 o parse.c: enable format string truncation warnings 1923 extract parsing of sources from ParseDoDependency 1924 split ParseDoSrc into smaller functions 1925 hide implementation details from Parse_DoVar 1926 clean up parsing of variable assignments 1927 split Parse_DoVar into manageable pieces 1928 don't modify the given line during Parse_DoVar 1929 fix out-of-bounds memory access in Parse_DoVar 1930 fix parsing of the :sh assignment modifier 1931 o var.c: rework memory allocation for the name of variables 1932 extract ApplyModifier_Literal into separate function 1933 in lint mode, reject modifiers without delimiter 1934 do not export variable names starting with '-' 1935 o fix double-free bug in -DCLEANUP mode 1936 o more cleanup to enable higher warnings level 1937 o more unit tests 1938 19392020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1940 1941 * VERSION (_MAKE_VERSION): 20201002 1942 Merge with NetBSD make, pick up 1943 o dir.c: use hash table for looking up open directories by name 1944 o main.c: clean up option handling 1945 o parse.c: add missing const for Parse_AddIncludeDir 1946 o var.c: ApplyModifier_To, update pp in each branch 1947 o remove redundant function prototypes 1948 o more unit tests 1949 19502020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1951 1952 * VERSION (_MAKE_VERSION): 20201001 1953 Merge with NetBSD make, pick up 1954 o compat.c: comment about "..." 1955 19562020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1957 1958 * VERSION (_MAKE_VERSION): 20200930 1959 Merge with NetBSD make, pick up 1960 o job.c: split Job.jobPipe into 2 separate fields 1961 replace Lst_Open with direct iteration 1962 o lst.c: remove redundant assertions 1963 o targ.c: replace Lst_Open with direct iteration 1964 o var.c: fix bug in evaluation of indirect variable modifiers 1965 extract ApplyModifier_Quote into separate function 1966 o make debug logging simpler 1967 19682020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1969 1970 * VERSION (_MAKE_VERSION): 20200927 1971 Merge with NetBSD make, pick up 1972 o parse.c: ensure parse errors result in 'stopped in' message. 1973 o compat.c: make parameter of Compat_RunCommand const 1974 o main.c: extract InitVarTarget from main 1975 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1976 refactor ParseDoDependency 1977 o var.c: Var_Subst no longer returns string result 1978 rename Var_ParsePP back to Var_Parse 1979 in lint mode, improve error handling for undefined variables 1980 extract ParseVarname from Var_Parse 1981 o rename Lst_ForEach to Lst_ForEachUntil 1982 o inline Lst_ForEachUntil in several cases 1983 o clean up API for finding and creating GNodes 1984 o fix assertion failure in -j mode with .END node 1985 o inline and remove LstNode_Prev and LstNode_Next 1986 o use fine-grained type names for lists and their nodes 1987 o more unit tests 1988 19892020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1990 1991 * VERSION (_MAKE_VERSION): 20200911 1992 Merge with NetBSD make, pick up 1993 o cond.c: split EvalComparison into smaller functions 1994 reorder parameters of condition parsing functions 1995 reduce code size in CondParser_Eval 1996 rename CondGetString to CondParser_String 1997 add CondLexer_SkipWhitespace 1998 group the condition parsing state into a struct 1999 in CondGetString, replace repeated Buf_Add with Buf_AddStr 2000 o migrate Var_Parse to Var_ParsePP 2001 o add wrappers around ctype.h functions 2002 o lst.c: use a stack instead of a list for the nested include path 2003 o more unit tests 2004 20052020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 2006 2007 * make-bootstrap.sh.in: adjust object list 2008 20092020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 2010 2011 * VERSION (_MAKE_VERSION): 20200902 2012 Merge with NetBSD make, pick up 2013 o use make_stat to ensure no confusion over valid fields 2014 returned by cached_stat 2015 o var.c: make VarQuote const-correct 2016 o add unit tests for .for 2017 20182020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 2019 2020 * VERSION (_MAKE_VERSION): 20200901 2021 Merge with NetBSD make, pick up 2022 o rename Hash_Table fields 2023 o make data types in Dir_HasWildcards more precise 2024 20252020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 2026 2027 * VERSION (_MAKE_VERSION): 20200831 2028 Merge with NetBSD make, pick up 2029 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 2030 o lst.c: Lst_Open renable assert that list isn't open 2031 o unit test for .TARGET dependent flags 2032 o var.c: fix aliasing bug in VarUniq 2033 o more unit tests for :u 2034 20352020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 2036 2037 * VERSION (_MAKE_VERSION): 20200830 2038 Merge with NetBSD make, pick up 2039 o allow for strict type checking for Boolean 2040 o Var_Parse never returns NULL 2041 o Var_Subst never returns NULL 2042 o Lst_Find now takes boolean match function 2043 o rename Lst_Memeber to Lst_FindDatum 2044 o rename LstNode functions to match their type 2045 o rename GNode.iParents to implicitParents 2046 o fix assertion failure for .SUFFIXES in archives 2047 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 2048 remove unreachable code from CompatRunCommand 2049 o main.c: simplify getBoolean 2050 o stc.c: replace brk_string with simpler Str_Words 2051 o suff.c: add debug macros 2052 20532020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 2054 2055 * VERSION (_MAKE_VERSION): 20200828 2056 Merge with NetBSD make, pick up 2057 o lst.c: inline LstIsValid and LstNodeIsValid 2058 o remove trailing S from Lst function names after migration complete 2059 o more comment cleanup/clarification 2060 o suff.c: clean up suffix handling 2061 o more unit tests 2062 20632020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2064 2065 * VERSION (_MAKE_VERSION): 20200826 2066 Merge with NetBSD make, pick up 2067 o enum.c: distinguish between bitsets containing flags and 2068 ordinary enums 2069 o var.c: fix error message for ::!= modifier with shell error 2070 o fix bugs in -DCLEANUP mode 2071 20722020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 2073 2074 * VERSION (_MAKE_VERSION): 20200824 2075 Merge with NetBSD make, pick up 2076 o in debug mode, print GNode details in symbols 2077 20782020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 2079 2080 * VERSION (_MAKE_VERSION): 20200823 2081 Merge with NetBSD make, pick up 2082 o lst.c: more asserts, 2083 make args to Lst_Find match others. 2084 o var.c: pass flags to VarAdd 2085 o arch.c: use Buffer 2086 o str.c: brk_string return size_t for nwords 2087 o more unit tests 2088 20892020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2090 2091 * VERSION (_MAKE_VERSION): 2092 Merge with NetBSD make, pick up 2093 o var.c: support for read-only variables eg .SHELL 2094 being the shell used to run scripts. 2095 o lst.c: more simplification 2096 o more documentation and style cleanup 2097 o more unit tests 2098 o ensure unit-test/Makefile is run by TEST_MAKE 2099 o reduce duplication of header inclusion 2100 21012020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2102 2103 * VERSION (_MAKE_VERSION): 20200821 2104 Merge with NetBSD make, pick up 2105 o lst.c: revert invalid assertion - but document it 2106 o dir.c: split Dir_Init into two functions 2107 21082020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2109 2110 * lst.c: needs inttypes.h on Linux 2111 2112 * VERSION (_MAKE_VERSION): 20200820 2113 Merge with NetBSD make, pick up 2114 o make.1: clarify some passages 2115 o var.c: more cleanup, clarify comments 2116 o make_malloc.c: remove unreachable code 2117 o cond.c: make CondGetString easier to debug 2118 o simplify list usage 2119 o unit-tests: more 2120 21212020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2122 2123 * VERSION (_MAKE_VERSION): 20200816 2124 Merge with NetBSD make, pick up 2125 o refactor unit-tests to be more fine grained 2126 not all tests moved yet 2127 21282020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2129 2130 * VERSION (_MAKE_VERSION): 20200814 2131 Merge with NetBSD make, pick up 2132 o more str_concat variants 2133 o more enums for flags 2134 o var.c: cleanup for higher warnings level 2135 21362020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2137 2138 * VERSION (_MAKE_VERSION): 20200810 2139 Merge with NetBSD make, pick up 2140 o more unit tests 2141 o general comment and style cleanup 2142 21432020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2144 2145 * VERSION (_MAKE_VERSION): 20200808 2146 Merge with NetBSD make, pick up 2147 o enum.[ch]: streamline, enums for use in flags and debug output 2148 o cond.c: cleanup 2149 o var.c: reduce duplicate code for modifiers 2150 debug logging for Var_Parse 2151 more detailed debug output 2152 o more unit tests 2153 21542020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2155 2156 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2157 so I can run tests in meta mode 2158 supress extra noise if in meta mode 2159 2160 * VERSION (_MAKE_VERSION): 20200806 2161 Merge with NetBSD make, pick up 2162 o parse.c: remove VARE_WANTRES for LINT 2163 we just want to check parsing (for now). 2164 21652020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2166 2167 * VERSION (_MAKE_VERSION): 20200805 2168 Merge with NetBSD make, pick up 2169 o make.1: Rework the description of dependence operators 2170 21712020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2172 2173 * VERSION (_MAKE_VERSION): 20200803 2174 Merge with NetBSD make, pick up 2175 o revert some C99 usage, for max portability 2176 o unit-tests/lint 2177 21782020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2179 2180 * VERSION (_MAKE_VERSION): 20200802 2181 Merge with NetBSD make, pick up 2182 o more unit tests 2183 21842020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2185 2186 * Remove NetBSD specific plumbing from unit-tests/Makefile 2187 2188 * VERSION (_MAKE_VERSION): 20200801 2189 Merge with NetBSD make, pick up 2190 o make Var_Value return const 2191 o size_t for buf sizes 2192 o optimize some buffer operations - avoid strlen 2193 21942020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2195 2196 * VERSION (_MAKE_VERSION): 20200731 2197 Merge with NetBSD make, pick up 2198 o var.c: fix undefinded behavior for incomplete :t modifier 2199 fixes unit-test/moderrs on Ubuntu 2200 o parse.c: When parsing variable assignments other than := 2201 if DEBUG(LINT) test substition of value, so we get a file and 2202 line number in the resulting error. 2203 o dir.c: fix parsing of nested braces in dependency lines 2204 add unit-tests 2205 22062020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2207 2208 * VERSION (_MAKE_VERSION): 20200730 2209 Merge with NetBSD make, pick up 2210 o var.c: minor cleanup 2211 o unit-tests: more tests to improve code coverage 2212 22132020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2214 2215 * VERSION (_MAKE_VERSION): 20200728 2216 Merge with NetBSD make, pick up 2217 o var.c: more optimizations 2218 22192020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2220 2221 * VERSION (_MAKE_VERSION): 20200726 2222 Merge with NetBSD make, pick up 2223 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2224 o lots of function comment updates 2225 o var.c: more optimizations 2226 o make return of Var_Parse const 2227 22282020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2229 2230 * VERSION (_MAKE_VERSION): 20200720 2231 Merge with NetBSD make, pick up 2232 o DEBUG_HASH report stats at end and tone down the noise 2233 o var.c: each flag type gets its own prefix. 2234 move SysV string matching to var.c 2235 make ampersand in ${VAR:from=to&} an ordinary character 2236 cleanup and simplify implementation of modifiers 2237 o make.1: move documentation for assignment modifiers 2238 22392020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2240 2241 * VERSION (_MAKE_VERSION): 20200718 2242 Merge with NetBSD make, pick up 2243 o DEBUG_HASH to see how well the hash tables are working 2244 22452020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2246 2247 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2248 22492020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2250 2251 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2252 2253 * VERSION (_MAKE_VERSION): 20200710 2254 Merge with NetBSD make, pick up 2255 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2256 o meta.c: target flagged .META is out-of-date if meta file missing 2257 22582020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2259 2260 * VERSION (_MAKE_VERSION): 20200709 2261 Merge with NetBSD make, pick up 2262 o cond.c: fix for compare_expression when doEval=0 2263 o unit-tests/Makefile: rework 2264 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2265 22662020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2267 2268 * VERSION (_MAKE_VERSION): 20200704 2269 Merge with NetBSD make, pick up 2270 (most of this by rillig@) 2271 o lots of style and white-space cleanup 2272 o lots more unit tests for variable modifiers 2273 o simplified description of some functions 2274 o str.c: refactor Str_Match 2275 o var.c: debugging output for :@ 2276 constify VarModify parameter 2277 fix :hash modifier on 16-bit platforms 2278 remove unnecessary forward declarations 2279 refactor ApplyModifier_SysV to have less indentation 2280 simplify code for :E and :R 2281 clean up code for :H and :T 2282 refactor ApplyModifiers 2283 2284 * var.c: we need stdint.h on some platforms to get uint32_t 2285 * unit-test/Makefile: we need to supress the specific error 2286 for RE substitution error in modmisc, since it varies accross 2287 different OS. 2288 22892020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2290 2291 * VERSION (_MAKE_VERSION): 20200702 2292 Merge with NetBSD make, pick up 2293 o var.c: more improvements to avoiding unnecessary evaluation 2294 use enums for flags 2295 o remove flags arg to Var_Set which outside of var.c is always 0 2296 22972020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2298 2299 * VERSION (_MAKE_VERSION): 20200701 2300 Merge with NetBSD make, pick up 2301 o var.c: with change to cond.c; ensure that nested variables 2302 within a variable name are expanded. 2303 o unit-tests/varmisc.mk: test for nested varname 2304 23052020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2306 2307 * VERSION (_MAKE_VERSION): 20200629 2308 Merge with NetBSD make, pick up 2309 o cond.c: do not eval unnecessary terms of conditionals. 2310 23112020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2312 2313 * VERSION (_MAKE_VERSION): 20200625 2314 Merge with NetBSD make, pick up 2315 o meta.c: report error if lseek in filemon_read fails 2316 23172020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2318 2319 * VERSION (_MAKE_VERSION): 20200622 2320 Merge with NetBSD make, pick up 2321 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2322 23232020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2324 2325 * VERSION (_MAKE_VERSION): 20200619 2326 Merge with NetBSD make, pick up 2327 o str.c: performance improvement for Str_Match for multiple '*' 2328 o dieQuietly: supress the failure output from make 2329 when failing node is a sub-make or a sibling failed. 2330 This cuts down greatly on unhelpful noise at the end of 2331 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2332 23332020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2334 2335 * FILES: add LICENSE to appease some packagers. 2336 This is an attempt to fairly represent the license on almost 2337 200 files, which are almost all BSD-3-Clause 2338 The few exceptions being more liberal. 2339 2340 * VERSION (_MAKE_VERSION): 20200610 2341 Merge with NetBSD make, pick up 2342 o unit test for :Or 2343 23442020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2345 2346 * VERSION (_MAKE_VERSION): 20200606 2347 Merge with NetBSD make, pick up 2348 o make.1: cleanup 2349 2350 * Makefile: fix depends for main.o which broke MAKE_VERSION 2351 23522020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2353 2354 * VERSION (_MAKE_VERSION): 20200605 2355 Merge with NetBSD make, pick up 2356 o dir.c: cached_stats - don't confuse stat and lstat results. 2357 o var.c: add :Or for reverse sort. 2358 23592020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2360 2361 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2362 also if --with-filemon= specifies path to filemon.h 2363 set use_filemon=dev 2364 * dirname.c: remove include of namespace.h 2365 23662020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2367 2368 * VERSION (_MAKE_VERSION): 20200517 2369 Merge with NetBSD make, pick up 2370 o modified dollar tests to avoid shell dependencies 2371 o new tests for .INCLUDEFROM 2372 23732020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2374 2375 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2376 to not depend so much on shell behavior 2377 23782020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2379 2380 * VERSION (_MAKE_VERSION): 20200510 2381 Merge with NetBSD make, pick up 2382 o unit test for dollar handling 2383 23842020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2385 2386 * VERSION (_MAKE_VERSION): 20200506 2387 Merge with NetBSD make, pick up 2388 o str.c: empty string does not match % pattern 2389 plus unit-test changes 2390 23912020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2392 2393 * VERSION (_MAKE_VERSION): 20200504 2394 May the 4th be with you 2395 Merge with NetBSD make, pick up 2396 o var.c: import handling of old sysV style modifier using '%' 2397 o str.c: refactor brk_string 2398 o unit-tests: add test case for lazy conditions 2399 24002020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2401 2402 * VERSION (_MAKE_VERSION): 20200418 2403 2404 * configure.in: use_makefile=no for Cygwin et al. 2405 case insensitive filesystems just don't work if both 2406 makefile and Makefile exist. 2407 NOTE: bmake does not support Cygwin and likely never will, 2408 but if brave souls want to try it - help them out. 2409 24102020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2411 2412 * VERSION (_MAKE_VERSION): 20200402 2413 Merge with NetBSD make, pick up 2414 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2415 a blank command is perfectly valid. 2416 24172020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2418 2419 * VERSION (_MAKE_VERSION): 20200330 2420 Merge with NetBSD make, pick up 2421 o make.h: extern debug_file 2422 24232020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2424 2425 * VERSION (_MAKE_VERSION): 20200318 2426 Merge with NetBSD make, pick up 2427 o meta.c: meta_oodate, check for corrupted meta file 2428 earlier and more often. 2429 24302020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2431 2432 * VERSION (_MAKE_VERSION): 20200220 2433 24342020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2435 2436 * boot-strap: unset MAKEFLAGS 2437 24382020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2439 2440 * VERSION (_MAKE_VERSION): 20200212 2441 * meta.c: meta_compat_parent check for USE_FILEMON 2442 patch from Soeren Tempel 2443 24442020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2445 2446 * VERSION: 20200205 2447 Merge with NetBSD make, pick up 2448 o meta.c: fix compat mode, need to call meta_job_output() 2449 o job.c: extra fds for meta mode not needed if using filemon_dev 2450 24512020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2452 2453 * VERSION: 20200122 2454 Merge with NetBSD make, pick up 2455 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2456 returns FALSE. 2457 24582020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2459 2460 * VERSION: 20200121 2461 Merge with NetBSD make, pick up 2462 o filemon/filemon_{dev,ktrace}.c: allow selection of 2463 filemon implementation. filemon_dev.c uses the kernel module 2464 while filemon_ktrace.c leverages the fktrace api available in 2465 NetBSD. filemon_ktrace.c can hopefully form the basis for 2466 adding support for other tracing mechanisms such as strace on 2467 Linux. 2468 o meta.c: when target is out-of-date per normal make rules 2469 record value of .OODATE in meta file. 2470 24712019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2472 2473 * VERSION: 20190926 2474 Merge with NetBSD make, pick up 2475 o parse.c: don't pass NULL to realpath(3) 2476 some versions cannot handle it. 2477 24782019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2479 2480 * VERSION: 20190409 2481 Merge with NetBSD make, pick up 2482 o parse.c: ParseDoDependency: free paths rather than assert 2483 24842018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2485 2486 * VERSION: 20181222 2487 2488 * configure.in: add --without-makefile to avoid generating 2489 makefile and make-bootstrap.sh 2490 2491 * include Makefile.inc if it exists 2492 2493 * Use Makefile and Makefile.config.in in unit-tests 2494 so we can use just: make obj && make && make test 2495 when bmake is already available. 2496 We add --without-makefile to CONFIGURE_ARGS in this case. 2497 2498 * tweak bsd.after-import.mk (captures Makefile.config etc 2499 after import to FreeBSD for example) to cope with all the above. 2500 25012018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2502 2503 * VERSION: 20181221 2504 Merge with NetBSD make, pick up 2505 o parse.c: ParseVErrorInternal use .PARSEDIR 2506 and apply if relative, and then use .PARSEFILE 2507 for consistent result. 2508 25092018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2510 2511 * VERSION: 20181220 2512 Merge with NetBSD make, pick up 2513 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2514 is relative 2515 o var.c: avoid SEGFAULT in .unexport-env 2516 when MAKELEVEL is not set 2517 25182018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2519 2520 * VERSION: 20181216 2521 Merge with NetBSD make, pick up 2522 o fix for unit-tests/varquote.mk on Debian 2523 25242018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2525 2526 * VERSION: 20180919 2527 Merge with NetBSD make, pick up 2528 o var.c: add :q 2529 o dir.c: cleanup caching of stats 2530 25312018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2532 2533 * Makefile.config.in: use += where it makes sense. 2534 25352018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2536 2537 * VERSION: 20180512 2538 Merge with NetBSD make, pick up 2539 o job.c: skip polling job token pipe 2540 25412018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2542 2543 * VERSION: 20180405 2544 Merge with NetBSD make, pick up 2545 o parse.c: be more cautious about detecting depenency line 2546 rather than sysV style include. 2547 25482018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2549 2550 * VERSION: 20180222 2551 Merge with NetBSD make, pick up 2552 o parse.c: avoid calling sysconf for every call to loadfile 2553 25542018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2555 2556 * VERSION: 20180218 2557 Merge with NetBSD make, pick up 2558 o var.c: Var_Set handle NULL value anytime. 2559 25602018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2561 2562 * VERSION: 20180212 2563 Merge with NetBSD make, pick up 2564 o parse.c: do not treat .info as warning with -W 2565 25662017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2567 2568 * VERSION: 20171207 2569 Merge with NetBSD make, pick up 2570 o var.c: Var_Append use Var_Set if var not previously set 2571 so that VAR_CMD is handled correctly. 2572 Add a suitable unit-test. 2573 25742017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2575 2576 * VERSION (_MAKE_VERSION): 20171126 2577 2578 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2579 since AC_TRY_COMPILE puts input inside main() 2580 which upsets modern compilers. 2581 25822017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2583 2584 * VERSION: 20171118 2585 Merge with NetBSD make, pick up 2586 o var.c: do not append to variable set on command line 2587 add unit-test to catch this. 2588 25892017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2590 2591 * VERSION: 20171028 2592 Merge with NetBSD make, pick up 2593 o main.c: ignore empty MAKEOBJDIR 2594 2595 * Makefile.config.in: 2596 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2597 25982017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2599 2600 * VERSION: 20171005 2601 2602 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2603 consistent result on some platforms. 2604 26052017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2606 2607 * machine.sh: entry for AIX 2608 26092017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2610 2611 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2612 to a file that can be included by configure as well as make. 2613 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2614 26152017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2616 2617 * Makefile (_MAKE_VERSION): 20170810 2618 Merge with NetBSD make, pick up 2619 o meta.c: if target is in subdir we only need subdir name in 2620 meta_name. 2621 26222017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2623 2624 * Makefile (_MAKE_VERSION): 20170720 2625 Merge with NetBSD make, pick up 2626 o compat.c: pass SIGINT etc onto child and wait for it to exit 2627 before we self-terminate. 2628 26292017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2630 2631 * Makefile (_MAKE_VERSION): 20170711 2632 forgot to update after merge on 20170708 ;-) 2633 o main.c: refactor to reduce size of main function. 2634 add -v option to always fully expand values. 2635 o meta.c: ensure command output in meta file has ending newline 2636 even when filemon not being used. 2637 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2638 pathname via ':L' since any ':' in pathname breaks that. 2639 Instead set a '${.p.}' to pathname in the target context and 2640 use that. 2641 26422017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2643 2644 * Makefile (_MAKE_VERSION): 20170510 2645 Merge with NetBSD make, pick up 2646 o main.c: Main_SetObjdir: ensure buf2 is in scope 2647 26482017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2649 2650 * Makefile (_MAKE_VERSION): 20170505 2651 see mk/ChangeLog 2652 26532017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2654 2655 * parse.c: not everyone has stdint.h 2656 26572017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2658 2659 * Makefile (_MAKE_VERSION): 20170501 2660 see mk/ChangeLog 2661 26622017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2663 2664 * Makefile (_MAKE_VERSION): 20170421 2665 Merge with NetBSD make, pick up 2666 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2667 26682017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2669 2670 * Makefile (_MAKE_VERSION): 20170420 2671 Merge with NetBSD make, pick up 2672 o main.c: only use -C arg "as is" if it contains no 2673 relative component. 2674 26752017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2676 2677 * Makefile (_MAKE_VERSION): 20170418 2678 Merge with NetBSD make, pick up 2679 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2680 26812017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2682 2683 * Makefile (_MAKE_VERSION): 20170417 2684 Merge with NetBSD make, pick up 2685 o fixes a number of coverity complaints 2686 - check return value of fseek, fcntl 2687 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2688 JobPrintCommand, ParseTraditionalInclude 2689 - use bmake_malloc() where NULL is not tollerated 2690 - use MAKE_ATTR_UNUSED rather that kludges like 2691 return(unused ? 0 : 0) 2692 - use purge_cached_realpaths() rather than abuse cached_realpath() 2693 26942017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2695 2696 * Makefile (_MAKE_VERSION): 20170413 2697 Merge with NetBSD make, pick up 2698 o main.c: when setting .OBJDIR ignore '$' in paths. 2699 2700 * job.c: use MALLOC_OPTIONS to set malloc_options. 2701 27022017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2703 2704 * Makefile (_MAKE_VERSION): 20170411 2705 Merge with NetBSD make, pick up 2706 o str.c: Str_Match: allow [^a-z] to behave as expected. 2707 27082017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2709 2710 * Makefile (_MAKE_VERSION): 20170326 2711 Merge with NetBSD make, pick up 2712 o main.c: purge relative paths from realpath cache when .OBJDIR 2713 is changed. 2714 27152017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2716 2717 * Makefile (_MAKE_VERSION): 20170311 2718 Merge with NetBSD make, pick up 2719 o main.c: only use -C arg "as is" if it starts with '/'. 2720 27212017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2722 2723 * Makefile (_MAKE_VERSION): 20170301 2724 Merge with NetBSD make, pick up 2725 o main.c: use -C arg "as is" rather than getcwd() 2726 if they identify the same directory. 2727 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2728 27292017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2730 2731 * Makefile (_MAKE_VERSION): 20170201 2732 Merge with NetBSD make, pick up 2733 o var.c: allow :_=var and avoid use of special context. 2734 27352017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2736 2737 * Makefile (_MAKE_VERSION): 20170130 2738 Merge with NetBSD make, pick up 2739 o var.c: add :range and :_ 2740 o main.c: partially initialize Dir_* before MainParseArgs() 2741 can be called. 2742 If -V, skip Main_ExportMAKEFLAGS() 2743 27442017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2745 2746 * Makefile (_MAKE_VERSION): 20170114 2747 Merge with NetBSD make, pick up 2748 o var.c: allow specifying the utc value used by :{gm,local}time 2749 27502016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2751 2752 * Makefile (_MAKE_VERSION): 20161212 2753 Merge with NetBSD make, pick up 2754 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2755 27562016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2757 2758 * Makefile (_MAKE_VERSION): 20161209 2759 Merge with NetBSD make, pick up 2760 o main.c: cleanup setting of .OBJDIR 2761 o parse.c: avoid coredump from (var)=val 2762 27632016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2764 2765 * Makefile (_MAKE_VERSION): 20161126 2766 Merge with NetBSD make, pick up 2767 o make.c: Make_OODate: report src node name if path not set 2768 27692016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2770 2771 * Makefile (_MAKE_VERSION): 20160926 2772 Merge with NetBSD make, pick up 2773 o support for .DELETE_ON_ERROR: (remove targets that fail) 2774 27752016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2776 2777 * Makefile MAN: tweak .Dt to match ${PROG} 2778 27792016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2780 2781 * Makefile (_MAKE_VERSION): 20160818 2782 its a neater number; pick up whitespace fixes to man page. 2783 27842016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2785 2786 * Makefile (_MAKE_VERSION): 20160817 2787 Merge with NetBSD make, pick up 2788 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2789 so we can call it before adding entries to missingFiles. 2790 Thus we do not track files we have been told to ignore. 2791 27922016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2793 2794 * Makefile (_MAKE_VERSION): 20160815 2795 Merge with NetBSD make, pick up 2796 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2797 pathnames, and skip if the expansion is empty. 2798 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2799 28002016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2801 2802 * Makefile (_MAKE_VERSION): 20160812 2803 Merge with NetBSD make, pick up 2804 o meta.c: remove all missingFiles entries that match a deleted 2805 dir. 2806 o main.c: set .ERROR_CMD if possible. 2807 28082016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2809 2810 * Makefile (_MAKE_VERSION): 20160606 2811 Merge with NetBSD make, pick up 2812 o dir.c: extend mtimes cache to others via cached_stat() 2813 28142016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2815 2816 * Makefile (_MAKE_VERSION): 20160604 2817 Merge with NetBSD make, pick up 2818 o meta.c: missing filemon data is only relevant if we read a 2819 meta file. 2820 Also do not return oodate for a missing metafile if gn->path 2821 points to .CURDIR 2822 28232016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2824 2825 * Makefile (_MAKE_VERSION): 20160602 2826 Merge with NetBSD make, pick up 2827 o cached_realpath(): avoid hitting filesystem more than necessary. 2828 o meta.c: refactor need_meta decision, add knobs for 2829 missing meta file and filemon data wrt out-of-datedness. 2830 28312016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2832 2833 * Makefile (_MAKE_VERSION): 20160528 2834 2835 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2836 28372016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2838 2839 * Makefile (_MAKE_VERSION): 20160512 2840 Merge with NetBSD make, pick up 2841 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2842 this is useful for gcov builds. 2843 o propagate errors from filemon(4). 2844 28452016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2846 2847 * Makefile (_MAKE_VERSION): 20160509 2848 Merge with NetBSD make, pick up 2849 o remove use of non-standard types u_int etc. 2850 o meta.c: apply realpath() before matching against metaIgnorePaths 2851 28522016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2853 2854 * Makefile (_MAKE_VERSION): 20160404 2855 Merge with NetBSD make, pick up 2856 o allow makefile to set .MAKE.JOBS 2857 2858 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2859 28602016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2861 2862 * Makefile (_MAKE_VERSION): 20160315 2863 Merge with NetBSD make, pick up 2864 o fix handling of archive members 2865 28662016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2867 2868 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2869 with checks for ${MAKE_VERSION} 2870 28712016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2872 2873 * Makefile (MAKE_VERSION): 20160310 2874 Merge with NetBSD make, pick up 2875 o meta.c: treat missing Read file same as Write, incase we Delete it. 2876 28772016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2878 2879 * Makefile (MAKE_VERSION): 20160307 2880 Merge with NetBSD make, pick up 2881 o var.c: fix :ts\nnn to be octal by default. 2882 o meta.c: meta_finish() to cleanup memory. 2883 28842016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2885 2886 * Makefile (MAKE_VERSION): 20160226 2887 Merge with NetBSD make, pick up 2888 o meta.c: allow meta file for makeDepend if makefiles want it. 2889 28902016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2891 2892 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2893 for backwards compatability. 2894 2895 * Makefile (MAKE_VERSION): 20160220 2896 Merge with NetBSD make, pick up 2897 o var.c: add knob to control handling of '$$' in := 2898 28992016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2900 2901 * Makefile (MAKE_VERSION): 20160218 2902 Merge with NetBSD make, pick up 2903 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2904 post the changes to Var_Subst. 2905 Var_Subst now takes flags, and does not consume '$$' in := 2906 29072016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2908 2909 * Makefile (MAKE_VERSION): 20160217 2910 Merge with NetBSD make, pick up 2911 o var.c: preserve '$$' in := 2912 o parse.c: add .dinclude for handling included 2913 makefile like .depend 2914 29152015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2916 2917 * Makefile (MAKE_VERSION): 20151220 2918 Merge with NetBSD make, pick up 2919 o suff.c: re-initialize suffNull when clearing suffixes. 2920 29212015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2922 2923 * Makefile (MAKE_VERSION): 20151201 2924 Merge with NetBSD make, pick up 2925 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2926 o meta.c: meta_oodate: use lstat(2) for checking link target 2927 in case it is a symlink. 2928 o var.c: avoid calling brk_string and Var_Export1 with empty 2929 strings. 2930 29312015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2932 2933 * Makefile (MAKE_VERSION): 20151126 2934 Merge with NetBSD make, pick up 2935 o parse.c: ParseTrackInput don't access beyond 2936 end of old value. 2937 29382015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2939 2940 * Makefile (MAKE_VERSION): 20151022 2941 2942 * Add support for BSD/OS which lacks inttypes.h 2943 and really needs sys/param.h for sys/sysctl.h 2944 also 'type' is not a shell builtin. 2945 2946 * var.c: eliminate uint32_t and need for inttypes.h 2947 2948 * main.c: PrintOnError flush stdout before run .ERROR 2949 2950 * parse.c: cope with _SC_PAGESIZE not being defined. 2951 2952 29532015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2954 2955 * Makefile (MAKE_VERSION): 20151020 2956 Merge with NetBSD make, pick up 2957 o var.c: fix uninitialized var 2958 29592015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2960 2961 * var.c: the conditional expressions used with ':?' can be 2962 expensive, if already discarding do not evaluate or expand 2963 anything. 2964 29652015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2966 2967 * Makefile (MAKE_VERSION): 20151010 2968 Merge with NetBSD make, pick up 2969 o Add Boolean wantit flag to Var_Subst and Var_Parse 2970 when FALSE we know we are discarding the result and can 2971 skip operations like Cmd_Exec. 2972 29732015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2974 2975 * Makefile (MAKE_VERSION): 20151009 2976 Merge with NetBSD make, pick up 2977 o var.c: don't check for NULL before free() 2978 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2979 29802015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2981 2982 * Makefile (MAKE_VERSION): 20150910 2983 Merge with NetBSD make, pick up 2984 o main.c: with -w print Enter/Leaving messages for objdir too 2985 if necessary. 2986 o centralize shell metachar handling 2987 2988 * FILES: add metachar.[ch] 2989 29902015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2991 2992 * Makefile (MAKE_VERSION): 20150606 2993 Merge with NetBSD make, pick up 2994 o make.1: document .OBJDIR target 2995 29962015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2997 2998 * Makefile (MAKE_VERSION): 20150505 2999 Merge with NetBSD make, pick up 3000 o cond.c: be strict about lhs of comparison when evaluating .if 3001 but less so when called from variable expansion. 3002 o unit-tests/cond2.mk: test various error conditions 3003 30042015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 3005 3006 * machine.sh (MACHINE): Add Bitrig 3007 patch from joerg@netbsd.org 3008 30092015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3010 3011 * Makefile (MAKE_VERSION): 20150418 3012 Merge with NetBSD make, pick up 3013 o job.c: use memmove() rather than memcpy() 3014 3015 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 3016 case, so skip it. 3017 30182015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3019 3020 * Makefile (MAKE_VERSION): 20150411 3021 bump version - only mk/ changes. 3022 30232015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3024 3025 * Makefile (MAKE_VERSION): 20150410 3026 Merge with NetBSD make, pick up 3027 o document different handling of '-' in jobs mode vs compat 3028 o fix jobs mode so that '-' only applies to whole job 3029 when shell lacks hasErrCtl 3030 o meta.c: use separate vars to track lcwd and latestdir (read) 3031 per process 3032 30332015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 3034 3035 * Makefile (MAKE_VERSION): 20150401 3036 Merge with NetBSD make, pick up 3037 o meta.c: close meta file in child 3038 3039 * Makefile: use BINDIR.bmake if set. 3040 Same for MANDIR and SHAREDIR 3041 Handy for testing release candidates 3042 in various environments. 3043 30442015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3045 3046 * move initialization of savederr to block where it is used 3047 to avoid spurious warning from gcc5 3048 30492014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3050 3051 * Makefile (MAKE_VERSION): 20141111 3052 just a cooler number 3053 30542014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 3055 3056 * Makefile (MAKE_VERSION): 20141105 3057 Merge with NetBSD make, pick up 3058 o revert major overhaul of suffix handling 3059 and POSIX compliance - too much breakage 3060 and impossible to make backwards compatible. 3061 o we still have the new unit test structure which is ok. 3062 o meta.c ensure "-- filemon" is at start of line. 3063 30642014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 3065 3066 * configure.in: test that result of getconf PATH_MAX is numeric 3067 and discard if not. Apparently needed for Hurd. 3068 30692014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3070 3071 * Makefile (MAKE_VERSION): 20140830 3072 Merge with NetBSD make, pick up 3073 o major overhaul of suffix handling 3074 o improved POSIX compliance 3075 o overhauled unit-tests 3076 30772014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3078 3079 * Makefile (MAKE_VERSION): 20140620 3080 Merge with NetBSD make, pick up 3081 o var.c return varNoError rather than var_Error for ::= modifiers. 3082 30832014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3084 3085 * Makefile (MAKE_VERSION): 20140522 3086 Merge with NetBSD make, pick up 3087 o var.c detect some parse errors. 3088 30892014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3090 3091 * Fix spelling errors - patch from Pedro Giffuni 3092 30932014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3094 3095 * Makefile (MAKE_VERSION): 20140214 3096 Merge with NetBSD make, pick up 3097 o .INCLUDEFROM* 3098 o use Var_Value to get MAKEOBJDIR[PREFIX] 3099 o reduced realloc'ign in brk_string. 3100 * configure.in: add a check for compiler supporting __func__ 3101 31022014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3103 3104 * boot-strap: ignore mksrc=none 3105 31062014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3107 3108 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3109 31102014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3111 3112 * Makefile (MAKE_VERSION): 20140101 3113 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3114 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3115 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3116 Hurd) 3117 * configure.in: Add AC_PREREQ and check for 3118 sysctl; patch from Andrew Shadura andrewsh at debian.org 3119 31202013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3121 3122 * Makefile (MAKE_VERSION): 20131010 3123 * lose the const from arg to systcl to avoid problems on older BSDs. 3124 31252013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3126 3127 * Makefile (MAKE_VERSION): 20131001 3128 Merge with NetBSD make, pick up 3129 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3130 hw.machine_arch if necessary. 3131 o meta.c: meta_oodate - need to look at src of Link and target 3132 of Move as well. 3133 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3134 provide __arraycount() if needed. 3135 31362013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3137 3138 * Makefile (MAKE_VERSION): 20130904 3139 Merge with NetBSD make, pick up 3140 o Add VAR_INTERNAL context, so that internal setting of 3141 MAKEFILE does not override value set by makefiles. 3142 31432013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3144 3145 * Makefile (MAKE_VERSION): 20130902 3146 Merge with NetBSD make, pick up 3147 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3148 31492013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3150 3151 * Makefile (MAKE_VERSION): 20130828 3152 Merge with NetBSD make, pick up 3153 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3154 o Call Job_SetPrefix() from Job_Init() so makefiles have 3155 opportunity to set .MAKE.JOB.PREFIX 3156 31572013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3158 3159 * Makefile (MAKE_VERSION): 20130730 3160 Merge with NetBSD make, pick up 3161 o Allow suppression of --- job -- tokens by setting 3162 .MAKE.JOB.PREFIX empty. 3163 31642013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3165 3166 * Makefile (MAKE_VERSION): 20130716 3167 Merge with NetBSD make, pick up 3168 o number of gmake compatibility tweaks 3169 -w for gmake style entering/leaving messages 3170 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3171 handle MAKEFLAGS containing only letters. 3172 o when overriding a GLOBAL variable on the command line, 3173 delete it from GLOBAL context so -V doesn't show the wrong 3174 value. 3175 31762013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3177 3178 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3179 3180 * Makefile (MAKE_VERSION): 20130706 3181 Merge with NetBSD make, pick up 3182 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3183 true so that CompatRunCommand() can use it, to ensure 3184 consistent behavior with jobs mode. 3185 o use MAKE_LEVEL_ENV to define the variable to propagate 3186 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3187 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3188 paths to ignore. 3189 31902013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3191 3192 * Makefile (MAKE_VERSION): 20130604 3193 Merge with NetBSD make, pick up 3194 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3195 to avoid leaking descriptors. 3196 31972013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3198 3199 * Makefile (MAKE_VERSION): 20130528 3200 Merge with NetBSD make, pick up 3201 o var.c: cleanup some left-overs in VarHash() 3202 32032013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3204 3205 * Makefile (MAKE_VERSION): 20130520 3206 generate manifest from component FILES rather than have to 3207 update FILES when mk/FILES changes. 3208 32092013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3210 3211 * Makefile (MAKE_VERSION): 20130518 3212 Merge with NetBSD make, pick up 3213 o suff.c: don't skip all processsing for .PHONY targets 3214 else wildcard srcs do not get expanded. 3215 o var.c: expand name of variable to delete if necessary. 3216 32172013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3218 3219 * Makefile (MAKE_VERSION): 20130330 3220 Merge with NetBSD make, pick up 3221 o meta.c: refine the handling of .OODATE in commands. 3222 Rather than suppress command comparison for the entire script 3223 as though .NOMETA_CMP had been used, only suppress it for the 3224 one command line. 3225 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3226 suppress comparison of a command without otherwise affecting it. 3227 o make.1: document that 3228 32292013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3230 3231 * Makefile (MAKE_VERSION): 20130321 3232 yes, not quite right but its a cooler number. 3233 Merge with NetBSD make, pick up 3234 o parse.c: fix ParseGmakeExport to be portable 3235 and add a unit-test. 3236 * meta.c: call meta_init() before makefiles are read and if built 3237 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3238 this let's makefiles test for support. 3239 Call meta_mode_init() to process .MAKE.MODE. 3240 32412013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3242 3243 * Makefile (MAKE_VERSION): 20130305 3244 Merge with NetBSD make, pick up 3245 o run .STALE: target when a dependency from .depend is missing. 3246 o job.c: add Job_RunTarget() for the above and .BEGIN 3247 32482013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3249 3250 * Makefile (MAKE_VERSION): 20130303 3251 Merge with NetBSD make, pick up 3252 o main.c: set .MAKE.OS to utsname.sysname 3253 o job.c: more checks for read and poll errors 3254 o var.c: lose VarChangeCase() saves 4% time 3255 32562013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3257 3258 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3259 want to use MAKEOBJDIR 3260 32612013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3262 3263 * Merge with NetBSD make, pick up 3264 o make.1: more info on how shell commands are handled. 3265 o job.c,main.c: detect write errors to job pipes. 3266 32672013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3268 3269 * Makefile (MAKE_VERSION): 20130123 3270 Merge with NetBSD make, pick up 3271 o meta.c: if script uses .OODATE and meta_oodate() decides 3272 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3273 o var.c: in debug output indicate which variabale modifiers 3274 apply to. 3275 o remove Check_Cwd logic the makefiles have been fixed. 3276 32772012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3278 3279 * makefile.in: add a simple makefile for folk who insist on 3280 ./configure; make; make install 3281 it just runs boot-strap 3282 * include mk/* to accommodate the above 3283 * boot-strap: re-work to accommodate the above 3284 mksrc defaults to $Mydir/mk 3285 allow op={configure,build,install,clean,all} 3286 add options to facilitate install 3287 * Makefile.config.in: just the bits set by configure 3288 * Makefile: bump version to 20121212 3289 abandon Makefile.in (NetBSD Makefile) 3290 leverage mk/* instead 3291 * configure.in: ensure srcdir is absolute 3292 32932012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3294 3295 * Makefile.in (MAKE_VERSION): 20121111 3296 fix generation of bmake.cat1 3297 32982012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3299 3300 * Makefile.in (MAKE_VERSION): 20121109 3301 Merge with NetBSD make, pick up 3302 o make.c: MakeBuildChild: return 0 so search continues if a 3303 .ORDER dependency is detected. 3304 o unit-tests/order: test the above 3305 33062012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3307 3308 * Makefile.in (MAKE_VERSION): 20121102 3309 Merge with NetBSD make, pick up 3310 o cond.c: allow cond_state[] to grow. 3311 In meta mode with a very large tree, we can hit the limit 3312 while processing dirdeps. 3313 33142012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3315 3316 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3317 33182012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3319 3320 * Makefile.in (MAKE_VERSION): 20121010 3321 o protect syntax that only bmake parses correctly. 3322 o remove auto setting of FORCE_MACHINE, use configure's 3323 --with-force-machine=whatever if that is desired. 3324 33252012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3326 3327 * Makefile.in: do not lose history from make.1 when generating bmake.1 3328 33292012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3330 3331 * Makefile.in (MAKE_VERSION): 20121007 3332 Merge with NetBSD make, pick up 3333 o compat.c: ignore empty commands - same as jobs mode. 3334 o make.1: document meta chars that cause use of shell 3335 33362012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3337 3338 * Makefile.in (MAKE_VERSION): bump version to 20120911 3339 * bsd.after-import.mk: include Makefile.inc early and allow it to 3340 override PROG 3341 33422012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3343 3344 * Makefile.in (MAKE_VERSION): bump version to 20120831 3345 Merge with NetBSD make, pick up 3346 o cast sizeof() to int for comparison 3347 o minor make.1 tweak 3348 33492012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3350 3351 * Makefile.in (MAKE_VERSION): bump version to 20120830 3352 Merge with NetBSD make, pick up 3353 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3354 o debug flag -dV causes -V to show raw value regardless. 3355 33562012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3357 3358 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3359 gets SRCTOP set. 3360 33612012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3362 3363 * Makefile.in (MAKE_VERSION): bump version to 20120704 3364 Merge with NetBSD make, pick up 3365 o Job_ParseShell should call Shell_Init if it has been 3366 previously called. 3367 * Makefile.in: set USE_META based on configure result. 3368 also .PARSEDIR is safer indicator of bmake. 3369 33702012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3371 3372 * Makefile.in: bump version to 20120626 3373 ensure CPPFLAGS is in CFLAGS 3374 * meta.c: avoid nested externs 3375 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3376 33772012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3378 3379 * Makefile.in (MAKE_VERSION): bump version to 20120620 3380 Merge with NetBSD make, pick up 3381 o make_malloc.c: avoid including make_malloc.h again 3382 3383 * Makefile.in: avoid bmake only syntax or protect with 3384 .if defined(.MAKE.LEVEL) 3385 * bsd.after-import.mk: replace .-include with .sinclude 3386 ensure? SRCTOP gets a value 3387 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3388 33892012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3390 3391 * Makefile.in (MAKE_VERSION): bump version to 20120612 3392 Merge with NetBSD make, pick up 3393 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3394 for greater portability. 3395 o unit-tests/forloop: check that .for works as expected wrt 3396 number of times and with "quoted strings". 3397 33982012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3399 3400 * Makefile.in (MAKE_VERSION): bump version to 20120606 3401 Merge with NetBSD make, pick up 3402 o compat.c: use kill(2) rather than raise(3). 3403 * configure.in: look for sys/dev/filemon 3404 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3405 and pass BOOTSTRAP_XTRAS to boot-strap. 3406 34072012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3408 3409 * Makefile.in (MAKE_VERSION): bump version to 20120604 3410 Merge with NetBSD make, pick up 3411 o util.c and var.c share same var for tracking if environ 3412 has been reallocated. 3413 o util.c provide getenv with setenv. 3414 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3415 when the shell actively strips .MAKE.* from the environment. 3416 We still refer to the variable always as .MAKE.LEVEL 3417 * util.c fix bug in findenv() was finding prefix of name. 3418 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3419 results in more reliable termination of all activity on many 3420 platforms. 3421 34222012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3423 3424 * Makefile.in (MAKE_VERSION): bump version to 20120602 3425 Merge with NetBSD make, pick up 3426 o for.c: handle quoted items in .for list 3427 34282012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3429 3430 * Makefile.in (MAKE_VERSION): bump version to 20120530 3431 Merge with NetBSD make, pick up 3432 o compat.c: ignore empty command. 3433 34342012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3435 3436 * Makefile.in (MAKE_VERSION): bump version to 20120524 3437 * FILES: add bsd.after-import.mk: 3438 A simple means of integrating bmake into a BSD build system. 3439 34402012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3441 3442 * Makefile.in (MAKE_VERSION): bump version to 20120520 3443 Merge with NetBSD make, pick up 3444 o increased limit for nested conditionals. 3445 34462012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3447 3448 * Makefile.in (MAKE_VERSION): bump version to 20120518 3449 Merge with NetBSD make, pick up 3450 o use _exit(2) in signal hanlder 3451 o Don't use the [dir] cache when building nodes that might have 3452 changed since the last exec. 3453 o Avoid nested extern declaration warnings. 3454 34552012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3456 3457 * meta.c (fgetLine): avoid %z - not portable. 3458 * parse.c: Since we moved include of sys/mman.h 3459 and def's of MAP_COPY etc. we got dups from a merge. 3460 34612012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3462 3463 * Makefile.in (MAKE_VERSION): bump version to 20120420 3464 Merge with NetBSD make, pick up 3465 o restore duplicate supression in .MAKE.MAKEFILES 3466 runtime saving can be significant. 3467 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3468 consumption up to 20%. 3469 34702012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3471 3472 * Makefile.in (MAKE_VERSION): bump version to 20120420 3473 Merge with NetBSD make, pick up 3474 o remove duplicate supression in .MAKE.MAKEFILES 3475 o improved dir cache behavior 3476 o gmake'ish export command 3477 34782012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3479 3480 * Makefile.in (MAKE_VERSION): bump version to 20120325 3481 Merge with NetBSD make, pick up 3482 o fix parsing of :[#] in conditionals. 3483 34842012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3485 3486 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3487 since some systems cannot cope with .Nx <version> 3488 34892011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3490 3491 * Makefile.in (MAKE_VERSION): bump version to 20111111 3492 Merge with NetBSD make, pick up 3493 o debug output for .PARSEDIR and .PARSEFILE 3494 34952011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3496 3497 * Makefile.in (MAKE_VERSION): bump version to 20111010 3498 34992011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3500 3501 * boot-strap: check for an expected file in the dirs we look for. 3502 * make-bootstrap.sh: pass on LDSTATIC 3503 35042011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3505 3506 * Makefile.in (MAKE_VERSION): bump version to 20111001 3507 Merge with NetBSD make, pick up 3508 o ensure .PREFIX is set for .PHONY 3509 and .TARGET set for .PHONY run via .END 3510 o __dead used consistently 3511 35122011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3513 3514 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3515 35162011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3517 3518 * Makefile.in (MAKE_VERSION): bump version to 20110905 3519 Merge with NetBSD make, pick up 3520 o meta_oodate: ignore makeDependfile 3521 35222011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3523 3524 * Makefile.in (MAKE_VERSION): bump version to 20110828 3525 Merge with NetBSD make, pick up 3526 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3527 as SILENT if a .meta file is created 3528 35292011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3530 3531 * Makefile.in (MAKE_VERSION): bump version to 20110818 3532 Merge with NetBSD make, pick up 3533 o in meta mode, if target flagged .META a missing .meta file 3534 means target is out-of-date 3535 o fixes for gcc 4.5 warnings 3536 o simplify job printing code 3537 35382011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3539 3540 * Makefile.in (MAKE_VERSION): bump version to 20110808 3541 Merge with NetBSD make, pick up 3542 o do not touch OP_SPECIAL targets when doing make -t 3543 35442011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3545 3546 * Makefile.in (MAKE_VERSION): bump version to 20110622 3547 Merge with NetBSD make, pick up 3548 o meta_oodate detect corrupted .meta file and declare oodate. 3549 * configure.in: add check for setsid 3550 35512011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3552 3553 * Merge with NetBSD make, pick up 3554 o unit-tests/modts now works on MirBSD 3555 35562011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3557 3558 * Makefile.in (MAKE_VERSION): bump version to 20110606 3559 Merge with NetBSD make, pick up 3560 o ApplyModifiers: when we parse a variable which is not 3561 the entire modifier string, or not followed by ':', do not 3562 consider it as containing modifiers. 3563 o loadfile: ensure newline at end of mapped file. 3564 35652011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3566 3567 * Makefile.in (MAKE_VERSION): bump version to 20110505 3568 Merge with NetBSD make, pick up 3569 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3570 of make's control. In meta mode, any generated file within 3571 said bailiwick, which is found to be missing, causes current 3572 target to be out-of-date. 3573 35742011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3575 3576 * Makefile.in (MAKE_VERSION): bump version to 20110411 3577 Merge with NetBSD make, pick up 3578 o when long modifiers fail to match, check sysV style. 3579 - add a test case 3580 35812011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3582 3583 * Makefile.in (MAKE_VERSION): bump version to 20110410 3584 Merge with NetBSD make, pick up 3585 o :hash - cheap 32bit hash of value 3586 o :localtime, :gmtime - use value as format string for strftime. 3587 35882011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3589 3590 * Makefile.in (MAKE_VERSION): bump version to 20110330 3591 mostly because its a cooler version. 3592 Merge with NetBSD make, pick up 3593 o NetBSD tags for meta.[ch] 3594 o job.c call meta_job_finish() after meta_job_error(). 3595 o meta_job_error() should call meta_job_finish() to ensure 3596 .meta file is closed, and safe to copy - if .ERROR target wants. 3597 meta_job_finish() is safe to call repeatedly. 3598 35992011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3600 3601 * unit-tests/modts: use printf if it is a builtin, 3602 to save us from MirBSD 3603 3604 * Makefile.in (MAKE_VERSION): bump version to 20110329 3605 Merge with NetBSD make, pick up 3606 o fix for use after free() in CondDoExists(). 3607 o meta_oodate() report extra commands and return earlier. 3608 36092011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3610 3611 * Makefile.in (MAKE_VERSION): bump version to 20110327 3612 Merge with NetBSD make, pick up 3613 o meta.c, if .MAKE.MODE contains curdirOk=yes 3614 allow creating .meta files in .CURDIR 3615 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3616 formats the output of 'type' differently - so eat any "()" 3617 36182011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3619 3620 * Makefile.in (MAKE_VERSION): bump version to 20110306 3621 Merge with NetBSD make, pick up 3622 o meta.c, only do getcwd() once 3623 36242011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3625 3626 * Makefile.in (MAKE_VERSION): bump version to 20110305 3627 Merge with NetBSD make, pick up 3628 o correct sysV substitution handling of empty lhs and variable 3629 o correct exists() check for dir with trailing / 3630 o correct handling of modifiers for non-existant variables 3631 during evaluation of conditionals. 3632 o ensure MAP_FILE is defined. 3633 o meta.c use curdir[] now exported by main.c 3634 36352011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3636 3637 * Makefile.in (MAKE_VERSION): bump version to 20110225 3638 Merge with NetBSD make, pick up 3639 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3640 makefiles have been read. 3641 o fix example of :? modifier in man page. 3642 36432011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3644 3645 * Makefile.in (MAKE_VERSION): bump version to 20110214 3646 Merge with NetBSD make, pick up 3647 o meta.c handle realpath() failing when generating meta file 3648 name. 3649 3650 * sigcompat.c: convert to ansi so we can use higher warning levels. 3651 3652 36532011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3654 3655 * Makefile.in (MAKE_VERSION): bump version to 20110207 3656 Merge with NetBSD make, pick up 3657 o fix for bug in meta mode. 3658 36592011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3660 3661 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3662 36632011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3664 3665 * Makefile.in (MAKE_VERSION): bump version to 20110101 3666 Merge with NetBSD make, pick up 3667 o use mmap(2) if available, for reading makefiles 3668 36692010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3670 3671 * Makefile.in (MAKE_VERSION): bump version to 20101215 3672 Merge with NetBSD make, pick up 3673 o ensure meta_job_error() does not report a previous .meta file 3674 as being culprit. 3675 36762010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3677 3678 * Makefile.in (MAKE_VERSION): bump version to 20101210 3679 Merge with NetBSD make, pick up 3680 o meta_oodate: track cwd per process, and only consider target 3681 out-of-date if missing file is outside make's CWD. 3682 Ignore files in /tmp/ etc. 3683 o to ensure unit-tests results match, need to control LC_ALL 3684 as well as LANG. 3685 o fix for parsing bug in var.c 3686 36872010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3688 3689 * Makefile.in (MAKE_VERSION): bump version to 20101126 3690 Merge with NetBSD make, pick up 3691 o if stale dependency is an IMPSRC, search via .PATH 3692 o meta_oodate: if a referenced file is missing, target is 3693 out-of-date. 3694 o meta_oodate: if a target uses .OODATE in its commands, 3695 it (.OODATE) needs to be recomputed. 3696 o keep a pointer to youngest child node, rather than just its 3697 mtime. 3698 36992010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3700 3701 * Makefile.in (MAKE_VERSION): bump version to 20101101 3702 37032010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3704 3705 * machine.sh: like os.sh, 3706 allow for uname -p producing useless drivel 3707 37082010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3709 3710 * boot-strap: document configure knobs for meta and filemon. 3711 3712 * Makefile.in (MAKE_VERSION): bump version to 20100911 3713 Merge with NetBSD make, pick up 3714 o meta.c - meta mode 3715 3716 * make-bootstrap.sh.in: handle meta.c 3717 * configure.in: add knobs for use_meta and filemon_h 3718 also, look for dirname, str[e]sep and strlcpy 3719 * util.c: add simple err[x] and warn[x] 3720 37212010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3722 3723 * boot-strap (TOOL_DIFF): set this to ensure tests use 3724 the same version of diff that configure tested 3725 3726 * Makefile.in (MAKE_VERSION): bump version to 20100808 3727 Merge with NetBSD make, pick up 3728 o in jobs mode, when we discover we cannot make something, 3729 call PrintOnError before exit. 3730 37312010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3732 3733 * Makefile.in (MAKE_VERSION): bump version to 20100806 3734 Merge with NetBSD make, pick up 3735 o formatting fixes for ignored errors 3736 o ensure jobs are cleaned up regardless of where wait() was called. 3737 37382010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3739 3740 * Makefile.in (MAKE_VERSION): bump version to 20100618 3741 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3742 37432010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3744 3745 * Makefile.in (MAKE_VERSION): bump version to 20100616 3746 Merge with NetBSD make, pick up 3747 o man page update 3748 o call PrintOnError from JobFinish when we detect an error we 3749 are not ignoring. 3750 37512010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3752 3753 * Makefile.in (MAKE_VERSION): bump version to 20100606 3754 Merge with NetBSD make, pick up 3755 o man page update 3756 37572010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3758 3759 * Makefile.in (MAKE_VERSION): bump version to 20100605 3760 Merge with NetBSD make, pick up 3761 o use bmake_signal() which is a wrapper around sigaction() 3762 in place of signal() 3763 o add .export-env to allow exporting variables to environment 3764 without tracking (so no re-export when the internal value is 3765 changed). 3766 37672010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3768 3769 * Makefile.in (MAKE_VERSION): bump version to 20100524 3770 Merge with NetBSD make, pick up 3771 o fix for .info et al being greedy. 3772 37732010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3774 3775 * Makefile.in (MAKE_VERSION): bump version to 20100520 3776 Merge with NetBSD make, pick up 3777 o back to using realpath on argv[0] 3778 but only if contains '/' and does not start with '/'. 3779 37802010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3781 3782 * boot-strap: use absolute path for bmake when running tests. 3783 3784 * Makefile.in (MAKE_VERSION): bump version to 20100510 3785 Merge with NetBSD make, pick up 3786 o revert use of realpath on argv[0] 3787 too many corner cases. 3788 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3789 37902010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3791 3792 * Makefile.in (MAKE_VERSION): bump version to 20100505 3793 Merge with NetBSD make, pick up 3794 o fix for missed SIGCHLD when compiled with SunPRO 3795 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3796 done the job. 3797 37982010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3799 3800 * Makefile.in (MAKE_VERSION): bump version to 20100430 3801 Merge with NetBSD make, pick up 3802 o fflush stdout before writing to stdout 3803 38042010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3805 3806 * Makefile.in (MAKE_VERSION): bump version to 20100423 3807 Merge with NetBSD make, pick up 3808 o updated unit tests for Haiku (this time for sure). 3809 * boot-strap: based on patch from joerg 3810 honor --with-default-sys-path better. 3811 * boot-strap: remove mention of --with-prefix-sys-path 3812 38132010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3814 3815 * Makefile.in (MAKE_VERSION): bump version to 20100422 3816 * Merge with NetBSD make, pick up 3817 o fix for vfork() on Darwin. 3818 o fix for bogus $TMPDIR. 3819 o set .MAKE.MODE=compat for -B 3820 o set .MAKE.JOBS=max_jobs for -j max_jobs 3821 o allow unit-tests to run without any *.mk 3822 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3823 * boot-strap: ignore /usr/share/mk except on NetBSD. 3824 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3825 ensure sort(1) behaves as expected. 3826 38272010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3828 3829 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3830 38312010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3832 3833 * Makefile.in (MAKE_VERSION): bump version to 20100420 3834 * Merge with NetBSD make, pick up 3835 o fix for variable realpath() behavior. 3836 we have to stat(2) the result to be sure. 3837 o fix for .export (all) when nested vars use :sh 3838 38392010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3840 3841 * Makefile.in (MAKE_VERSION): bump version to 20100414 3842 * Merge with NetBSD make, pick up 3843 o use realpath to resolve argv[0] (for .MAKE) if needed. 3844 o add realpath from libc. 3845 o add :tA to resolve variable via realpath(3) if possible. 3846 38472010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3848 3849 * Makefile.in (MAKE_VERSION): bump version to 20100408 3850 * Merge with NetBSD make, pick up 3851 o unit tests for .ERROR, .error 3852 o fix for .ERROR to ensure it cannot be default target. 3853 38542010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3855 3856 * Makefile.in (MAKE_VERSION): bump version to 20100406 3857 * Merge with NetBSD make, pick up 3858 o fix for compat mode "Error code" going to debug_file. 3859 o fix for .ALLSRC being populated twice. 3860 o support for .info, .warning and .error directives 3861 o .MAKE.MODE to control make's operational mode 3862 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3863 name(s). 3864 o .MAKE.DEPENDFILE to control the name of the depend file 3865 o .ERROR target - run on failure. 3866 38672010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3868 3869 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3870 3871 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3872 38732010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3874 3875 * Makefile.in (MAKE_VERSION): bump version to 20100222 3876 * Merge with NetBSD make, pick up 3877 o better error msg for .for with mutiple inter vars 3878 3879 * boot-strap: 3880 o use make-bootstrap.sh from joerg at netbsd 3881 to avoid the need for a native make when bootstrapping. 3882 o add "" everywhere ;-) 3883 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3884 otherwise the pre-formated version. 3885 38862010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3887 3888 * Makefile.in (MAKE_VERSION): bump version to 20100102 3889 * Merge with NetBSD make, pick up: 3890 o fix for -m .../ 3891 38922009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3893 3894 * Makefile.in (MAKE_VERSION): bump version to 20091118 3895 * Merge with NetBSD make, pick up: 3896 o .unexport 3897 o report lines that start with '.' and should have ':' 3898 (catch typo's of .el*if). 3899 39002009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3901 3902 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3903 39042009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3905 3906 * Makefile.in (MAKE_VERSION): fix version to 20091007 3907 39082009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3909 3910 * Makefile.in (MAKE_VERSION): bump version to 200910007 3911 * Merge with NetBSD make, pick up: 3912 o fix for parsing of :S;...;...; applied to .for loop iterator 3913 appearing in a dependency line. 3914 39152009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3916 3917 * Makefile.in (MAKE_VERSION): bump version to 20090909 3918 * Merge with NetBSD make, pick up: 3919 o fix for -C, .CURDIR and .OBJDIR 3920 * boot-strap: 3921 o allow share_dir to be set independent of prefix. 3922 o select default share_dir better when prefix ends in $HOST_TARGET 3923 o if FORCE_BSD_MK etc were set, include them in the suggested 3924 install-mk command. 3925 39262009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3927 3928 * Makefile.in (MAKE_VERSION): bump version to 20090908 3929 * Merge with NetBSD make, pick up: 3930 o .MAKE.LEVEL for recursion tracking 3931 o fix for :M scanning \: 3932 39332009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3934 3935 * configure.in: Don't -D__EXTENSIONS__ if 3936 AC_USE_SYSTEM_EXTENSIONS says "no". 3937 39382009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3939 3940 * Makefile.in (MAKE_VERSION): bump version to 20090826 3941 Simplify MAKE_VERSION to just the bare date. 3942 * Merge with NetBSD make, pick up: 3943 o -C directory support. 3944 o support for SIGINFO 3945 o use $TMPDIR for temp files. 3946 o child of vfork should be careful about modifying parent's state. 3947 3948 39492009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3950 3951 * Appy some patches for MiNT from David Brownlee 3952 39532009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3954 3955 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3956 * Merge with NetBSD make, pick up: 3957 o Possible null pointer de-ref in Var_Set. 3958 39592009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3960 3961 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3962 * Merge with NetBSD make, pick up: 3963 o bmake_malloc et al moved to their own .c 3964 o Count both () and {} when looking for the end of a :M pattern 3965 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3966 o strlist.c - functions for processing extendable arrays of pointers to strings. 3967 o ClientData replaced with void *, so const void * can be used. 3968 o New debug flag C for DEBUG_CWD 3969 39702008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3971 3972 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3973 Apply patch from Joerg Sonnenberge to 3974 configure.in: 3975 o remove some redundant checks 3976 o check for emlloc etc only in libutil and require the whole family. 3977 util.c: 3978 o remove [v]asprintf which is no longer used. 3979 39802008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3981 3982 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3983 * Merge with NetBSD make, pick up: 3984 o util.c: avoid use of putenv() - christos 3985 39862008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3987 3988 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3989 pick up man page tweaks. 3990 39912008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3992 3993 * Makefile.in: move processing of LIBOBJS to after is definition! 3994 thus we'll have getenv.c in SRCS only if needed. 3995 3996 * make.1: add examples of how to use :? 3997 3998 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3999 * Merge with NetBSD make, pick up: 4000 o fix for .END processing with -j 4001 o segfault from Parse_Error when no makefile is open 4002 o handle numeric expressions in any variable expansion 4003 o debug output now defaults to stderr, -dF to change it - apb 4004 o make now uses bmake_malloc etc so that it can build natively 4005 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 4006 40072008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 4008 4009 * Makefile.in (BMAKE_VERSION): bump version to 20080808 4010 * Merge with NetBSD make, pick up: 4011 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 4012 long lines in Makefiles 4013 o optimizations for VarQuote by joerg 4014 o fix for PR/38756: dominik: make dumps core on invalid makefile 4015 40162008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 4017 4018 * Makefile.in (BMAKE_VERSION): bump version to 20080515 4019 * Merge with NetBSD make, pick up: 4020 o fix skip setting vars in VAR_GLOBAL context, to handle 4021 cases where VAR_CMD is used for other than command line vars. 4022 40232008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 4024 4025 * boot-strap (make_version): we may need to look in 4026 $prefix/share/mk for sys.mk 4027 4028 * Makefile.in (BMAKE_VERSION): bump version to 20080514 4029 * Merge with NetBSD make, pick up: 4030 o skip setting vars in VAR_GLOBAL context, when already set in 4031 VAR_CMD which takes precedence. 4032 40332008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 4034 4035 * Makefile.in (BMAKE_VERSION): bump version to 20080330 4036 * Merge with NetBSD make, pick up: 4037 o fix for ?= when LHS contains variable reference. 4038 40392008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4040 4041 * merge some patches from NetBSD pkgsrc. 4042 4043 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 4044 the MAKSYSPATH used during bootstrap. 4045 4046 * Makefile.in (BMAKE_VERSION): bump version to 20080215 4047 * Merge with NetBSD make, pick up: 4048 o warn if non-space chars follow 'empty' in a conditional. 4049 40502008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4051 4052 * Makefile.in (BMAKE_VERSION): bump version to 20080118 4053 * Merge with NetBSD make, pick up: 4054 o consider dependencies read from .depend as optional - dsl 4055 o remember when buffer for reading makefile grows - dsl 4056 o add -dl (aka LOUD) - David O'Brien 4057 40582007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 4059 4060 * Makefile.in (BMAKE_VERSION): bump version to 20071022 4061 * Merge with NetBSD make, pick up: 4062 o Allow .PATH<suffix> to be used for .include "" 4063 4064 * boot-strap: source default settings from .bmake-boot-strap.rc 4065 40662007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 4067 4068 * Makefile.in: fix maninstall on various systems 4069 provided that our man.mk is used. 4070 For non-BSD systems we install the preformatted page 4071 into $MANDIR/cat1 4072 40732007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 4074 4075 * boot-strap: make bmake.1 too, so maninstall works. 4076 40772007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 4078 4079 * Makefile.in (BMAKE_VERSION): bump version to 20071014 4080 * Merge with NetBSD make, pick up: 4081 o revamped handling of defshell - configure no longer needs to 4082 know the content of the shells array - apb 4083 o stop Var_Subst modifying its input - apb 4084 o avoid calling ParseTrackInput too often - dsl 4085 40862007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4087 4088 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4089 * Merge with NetBSD make, pick up: 4090 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4091 4092 * sigcompat.c: some tweaks for HP-UX 11.x based on 4093 patch from Tobias Nygren 4094 4095 * configure.in: update handling of --with-defshell to match 4096 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4097 will now do what one might hope - provided the chosen shell 4098 behaves enough like sh. 4099 41002007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4101 4102 * Makefile.in (BMAKE_VERSION): bump to 20071008 4103 * Merge with NetBSD make, pick up: 4104 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4105 o .export/.MAKE.EXPORTED - export of variables - sjg 4106 o .MAKE.MAKEFILES - track all makefiles read - sjg 4107 o performance improvements - dsl 4108 o revamp parallel job scheduling - dsl 4109 41102006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4111 4112 * Makefile.in (BMAKE_VERSION): bump to 20060728 4113 * Merge with NetBSD make, pick up: 4114 o extra debug info during variable and cond processing - sjg 4115 o shell definition now covers newline - rillig 4116 o minor mem leak in PrintOnError - sjg 4117 41182006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4119 4120 * Makefile.in (BMAKE_VERSION): bump to 20060511 4121 * Merge with NetBSD make, pick up: 4122 o more memory leaks - coverity 4123 o possible overflow in ArchFindMember - coverity 4124 o extract variable modifier code out of Var_Parse() 4125 so it can be called recursively - sjg 4126 o unit-tests/moderrs - sjg 4127 41282006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4129 4130 * Makefile.in (BMAKE_VERSION): bump to 20060412 4131 * Merge with NetBSD make, pick up: 4132 o fixes for some memory leaks - coverity 4133 o only read first sys.mk etc when searching sysIncPath - sjg 4134 4135 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4136 setting ${MAKEFILE} - OBATA Akio 4137 41382006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4139 4140 * Makefile.in (BMAKE_VERSION): bump to 20060318 4141 * Merge with NetBSD make, pick up: 4142 o cleanup of job.c to remove remote handling, distcc is more 4143 useful and this code was likely bit-rotting - dsl 4144 o fix for :P modifier - sjg 4145 * boot-strap: set default prefix to something reasonable 4146 (for me anyway). 4147 41482006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4149 4150 * Makefile.in (BMAKE_VERSION): bump to 20060301 4151 * Merge with NetBSD make, pick up: 4152 o make .WAIT apply recursively, document and test case - apb 4153 o allow variable modifiers in a variable appear anywhere in 4154 modifier list, document and test case - sjg 4155 41562006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4157 4158 * Makefile.in (BMAKE_VERSION): bump to 20060222 4159 * Merge with NetBSD make, pick up: 4160 o improved job token handling - dsl 4161 o SIG_DFL the correct signal before exec - dsl 4162 o more debug info during parsing - dsl 4163 o allow variable modifiers to be specified via variable - sjg 4164 * boot-strap: explain why we died if no mksrc 4165 41662005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4167 4168 * Makefile.in (BMAKE_VERSION): bump to 20051105 4169 * configure.in: always set default_sys_path 4170 default is ${prefix}/share/mk 4171 - remove prefix_sys_path, anyone wanting more than above 4172 needs to set it manually. 4173 41742005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4175 4176 * boot-strap: make this a bit easier for pkgsrc folk. 4177 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4178 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4179 41802005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4181 4182 * Makefile.in (BMAKE_VERSION): bump to 20051102 4183 * job.c (JobFinish): fix likely ancient merge lossage 4184 fix from Todd Vierling. 4185 * boot-strap (srcdir): allow setting mksrc=none 4186 41872005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4188 4189 * Makefile.in (BMAKE_VERSION): bump to 20051031 4190 * ranlib.h: skip on OSF too. 4191 (NetBSD PR 31864) 4192 41932005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4194 4195 * Makefile.in (BMAKE_VERSION): bump to 20051002 4196 fix a silly typo 4197 41982005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4199 4200 * Makefile.in (BMAKE_VERSION): bump to 20051001 4201 support for UnixWare and some other systems, 4202 based on patches from pkgsrc/bootstrap 4203 42042005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4205 4206 * Makefile.in (BMAKE_VERSION): bump to 20050901 4207 * Merge with NetBSD make, pick up: 4208 o possible parse error causing us to wander off. 4209 42102005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4211 4212 * Makefile.in (BMAKE_VERSION): bump to 20050606 4213 * Merge with NetBSD make, pick up: 4214 o :0x modifier for randomizing a list 4215 o fixes for a number of -Wuninitialized issues. 4216 42172005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4218 4219 * Makefile.in (BMAKE_VERSION): bump to 20050530 4220 * Merge with NetBSD make, pick up: 4221 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4222 4223 * README: was seriously out of date. 4224 42252005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4226 4227 * Important to use .MAKE rather than MAKE. 4228 42292005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4230 4231 * Makefile.in (BMAKE_VERSION): bump to 20050315 4232 * Merge with NetBSD make, pick up: 4233 o don't mistake .elsefoo for .else 4234 o use suffix-specific search path correctly 4235 o bunch of style nits 4236 42372004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4238 4239 * boot-strap: 4240 o ensure that args to --src and --with-mksrc 4241 are resolved before giving them to configure. 4242 o add -o "objdir" so that builder can control it, 4243 default is $OS as determined by os.sh 4244 o add -q to suppress all the install instructions. 4245 42462004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4247 4248 * Remove __IDSTRING() 4249 4250 * Makefile.in (BMAKE_VERSION): bump to 20040508 4251 * Merge with NetBSD make, pick up: 4252 o posix fixes 4253 - remove '-e' from compat mode 4254 - add support for '+' command-line prefix. 4255 o fix for handling '--' on command-line. 4256 o fix include in lst.lib/lstInt.h to simplify '-I's 4257 o we also picked up replacement of MAKE_BOOTSTRAP 4258 with !MAKE_NATIVE which is a noop, but possibly confusing. 4259 42602004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4261 4262 * Makefile.in (BMAKE_VERSION): bump to 20040414 4263 * Merge with NetBSD make, pick up: 4264 o allow quoted strings on lhs of conditionals 4265 o issue warning when extra .else is seen 4266 o print line numer when errors encountered during parsing from 4267 string. 4268 42692004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4270 4271 * Makefile.in (BMAKE_VERSION): bump to 20040220 4272 * Merge with NetBSD make, pick up: 4273 o fix for old :M parsing bug. 4274 o re-jigged unit-tests 4275 42762004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4277 4278 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4279 so that './bmake -f Makefile test' works. 4280 42812004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4282 4283 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4284 * Merge with NetBSD make, pick up: 4285 o search upwards for *.mk 4286 o fix for double free of var substitution buffers 4287 o use of getopt replaced with custom code, since the usage 4288 (re-scanning) isn't posix compatible. 4289 42902004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4291 4292 * arch.c: don't include ranlib.h on ELF systems 4293 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4294 42952004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4296 4297 * Makefile.in (BMAKE_VERSION): bump to 20040118 4298 4299 * boot-strap (while): export vars we assign to on cmdline 4300 * unit-test/Makefile.in: ternary is .PHONY 4301 43022004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4303 4304 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4305 * Merge with NetBSD make, pick up: 4306 o fix for ternary modifier 4307 43082004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4309 4310 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4311 * Merge with NetBSD make, pick up: 4312 o fix for cond.c to handle compound expressions better 4313 o variable expansion within sysV style replacements 4314 43152003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4316 4317 * Make portable snprintf safer - output to /dev/null first to 4318 check space needed. 4319 4320 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4321 * Merge with NetBSD make, pick up: 4322 o -dg3 to show input graph when things go wrong. 4323 o explicitly look for makefiles in objdir if not found in curdir so 4324 that errors in .depend etc will be reported accurarely. 4325 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4326 instead as it more accurately reflects the expected behavior and 4327 is more consistently implemented. 4328 o avoid use of asprintf. 4329 43302003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4331 4332 * util.c: Add asprintf and vasprintf. 4333 4334 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4335 * Merge with NetBSD make, pick up: 4336 :[] modifier - allows picking words from a variable. 4337 :tW modifier - allows treating value as one big word. 4338 W flag for :C and :S - allows treating value as one big word. 4339 43402003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4341 4342 * Merge with NetBSD make 4343 pick up -de flag to enable printing failed command. 4344 don't skip 1st two dir entries (normally . and ..) since 4345 coda does not have them. 4346 43472003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4348 4349 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4350 * Merge with NetBSD make, pick up: 4351 - changes for -V '${VAR}' to print fully expanded value 4352 cf. -V VAR 4353 - CompatRunCommand now prints the command that failed. 4354 - several files got updated 3 clause Berkeley license. 4355 43562003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4357 4358 * boot-strap: Allow setting configure args on command line. 4359 43602003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4361 4362 * configure.in: add --with-defshell to allow sh or ksh 4363 to be selected as default shell. 4364 4365 * Makefile.in: bump version to 20030731 4366 4367 * Merge with NetBSD make 4368 Pick up .SHELL spec for ksh and associate man page changes. 4369 Also compat mode now uses the same shell specs. 4370 43712003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4372 4373 * var.c (Var_Parse): ensure delim is initialized. 4374 4375 * unit-tests/Makefile.in: use single quotes to avoid problems from 4376 some shells. 4377 4378 * makefile.boot.in: 4379 Run the unit-tests as part of the bootstrap procedure. 4380 43812003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4382 4383 * unit-tests/Makefile.in: always force complaints from 4384 ${TEST_MAKE} to be from 'make'. 4385 4386 * configure.in: add check for 'diff -u' 4387 also fix some old autoconf'isms 4388 4389 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4390 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4391 4392 * Merge with NetBSD make 4393 Pick up fix for :ts parsing error in some cases. 4394 Pick unit-tests. 4395 43962003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4397 4398 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4399 4400 * var.c (Var_Parse): fix bug in :ts modifier, after const 4401 correctness fixes, must pass nstr to VarModify. 4402 44032003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4404 4405 * Makefile.in: BMAKE_VERSION switch to a date based version. 4406 We'll generally use the date of last import from NetBSD. 4407 4408 * Merge with NetBSD make 4409 Pick up fixes for const-correctness, now passes WARNS=3 on 4410 NetBSD. 4411 Pick up :ts modifier, allows controlling the separator used 4412 between words in variable expansion. 4413 44142003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4415 4416 * FILES: include boot-strap and os.sh 4417 4418 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4419 FreeBSD is known to be bad. 4420 4421 * makefile.boot.in (bootstrap): make this the default target. 4422 4423 * Makefile.in: bump version to 3.1.19 4424 4425 * machine.sh: avoid A-Z with tr as it is bound to lose. 4426 44272003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4428 4429 * Merge with NetBSD make 4430 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4431 Plus some doc fixes. 4432 44332003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4434 4435 * Merge with NetBSD make 4436 Pick up fix for PR/1523 - don't count a library as built, if there 4437 is no way to build it 4438 4439 * Bump version to 3.1.18 4440 44412003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4442 4443 * Merge with NetBSD make 4444 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4445 appears in src list. 4446 44472003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4448 4449 * Merge with NetBSD make (mmm 10th anniversary!) 4450 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4451 pick up -X which tells us to not export VAR=val via setenv if 4452 we are already doing so via MAKEFLAGS. This saves valuable env 4453 space on systems like Darwin. 4454 set MAKE_VERSION to 3.1.17 4455 4456 * parse.c: pix up fix for suffix rules 4457 44582003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4459 4460 * Merge with NetBSD make. 4461 pick up fix for propagating -B via MAKEFLAGS. 4462 set MAKE_VERSION to 3.1.16 4463 4464 * Apply some patches from pkgsrc-bootstrap/bmake 4465 Originally by Grant Beattie <grant@netbsd.org> 4466 I may have missed some - since they are based on bmake-3.1.12 4467 44682002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4469 4470 * makefile.boot.in (bmake): update install targets for those that 4471 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4472 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4473 4474 * bmake.cat1: update the pre-formatted man page! 4475 44762002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4477 4478 * Merge with NetBSD make. 4479 pick up fix for premature free of pointer used in call 4480 to Dir_InitCur(). 4481 set MAKE_VERSION to 3.1.15 4482 44832002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4484 4485 * configure.in: determine suitable value for MKSRC. 4486 override using --with-mksrc=PATH. 4487 4488 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4489 configs(8) will use 'sun4' as an alias for 'sparc'. 4490 44912002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4492 4493 * Merge with NetBSD make. 4494 pick up ${.PATH} 4495 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4496 set MAKE_VERSION to 3.1.14 4497 add configure checks for killpg and sys/socket.h 4498 44992002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4500 4501 * tag bmake-3-1-13 4502 4503 * makefile.boot.in (bmake): use install-mk 4504 Also setup ./mk before trying to invoke bmake.boot incase we 4505 needed install-mk to create a sys.mk for us. 4506 4507 * configure.in: If we need to add -I${srcdir}/missing, make it an 4508 absolute path so that it works for lst.lib too. 4509 4510 * make.h: always include sys/cdefs.h since we provide one if the 4511 host does not. 4512 4513 * Makefile.in (install-mk): 4514 use MKSRC/install-mk which will do the right thing. 4515 use uname -p for ARCH if possible. 4516 since install-mk will setup links bsd.prog.mk -> prog.mk if 4517 needed, just .include bsd.prog.mk 4518 4519 * Merge with NetBSD make (NetBSD-1.6) 4520 Code is ansi-C only now. 4521 Bug in handling of dotLast is fixed. 4522 Can now assign .OBJDIR and make will reset its notions of life. 4523 New modifiers :tu :tl for toUpper and toLower. 4524 4525Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4526 4527 * Merge with NetBSD make 4528 pick up fix for .END failure in compat mode. 4529 pick up fix for extra va_end() in ParseVErrorInternal. 4530 4531Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4532 4533 * configure.in: for systems that have sys/cdefs.h check if it is 4534 compatible. If not, include the one under missing, but tell it to 4535 include the native one too - necessary on Linux. 4536 4537 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4538 include_next (for gcc) to get the native sys/cdefs.h 4539 4540Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4541 4542 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4543 leaking descriptors when using -jN. 4544 4545 * job.c (JobPrintCommand): See if "curdir" exists before 4546 attempting to chdir(). Doing the chdir directly in make (when in 4547 compat mode) fails silently, so let the -jN version do the same. 4548 This can happen when building kernels in an object tree and 4549 playing clever games to reset .CURDIR. 4550 4551 * Merged with NetBSD make 4552 pick up .USEBEFORE 4553 4554Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4555 4556 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4557 4558Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4559 4560 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4561 us not to export the iterator variable when using VAR_CMD context. 4562 4563Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4564 4565 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4566 its the wrong "fix". 4567 4568Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4569 4570 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4571 We now simply append the variable names to .MAKEOVERRIDES, and 4572 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4573 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4574 Apart from fixing quoting bugs in previous version, this allows us 4575 to export vars to the environment by simply doing: 4576 .MAKEOVERRIDES+= PATH 4577 Merged again with NetBSD make, but the above is the only change. 4578 4579 * configure.in: added 4580 --disable-pwd-override disable $PWD overriding getcwd() 4581 --disable-check-make-chdir disable make trying to guess 4582 when it should automatically cd ${.CURDIR} 4583 4584 * Merge with NetBSD make, changes include: 4585 parse.c (ParseDoDependency): Spot that the syntax error is 4586 caused by an unresolved cvs/rcs conflict and say so. 4587 var.c: most of Var* functions now take a ctxt as 1st arg. 4588 now does variable substituion on rhs of sysv style modifiers. 4589 4590 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4591 is now done here. We append the name='value' to .MAKEOVERRIDES 4592 rather than directly into MAKEFLAGS as this allows a Makefile to 4593 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4594 very similar mechanism. Note that in adding name='value' to 4595 .MAKEOVERRIDES we do the moral equivalent of: 4596 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4597 4598Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4599 4600 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4601 4602 * Merged with NetBSD make 4603 make -dx can now be used to run commands via sh -x 4604 better error messages on exec failures. 4605 4606Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4607 4608 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4609 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4610 MACHINE etc otherwise they propagate from the previous bmake. 4611 4612 * configure.in (machine): allow --with-machine=generic to make 4613 configure use machine.sh to set MACHINE. 4614 4615 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4616 4617 * Makefile.in: mention in bmake.1 that we use autoconf. 4618 4619 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4620 4621Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4622 4623 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4624 as that rather defeats the usefulness of ${MAKEFILE}. 4625 4626 * main.c (MainParseArgs): append command line variable assignments 4627 to MAKEFLAGS so that they get propagated to child make's. 4628 Apparently this is required POSIX behaviour? Its useful anyway. 4629 4630Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4631 4632 * compat.c (CompatRunCommand): don't use perror() since stdio may 4633 cause problems in child of vfork(). 4634 4635 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4636 This routine prints out the .curdir where we stopped and will also 4637 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4638 4639 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4640 :@ expansion. 4641 4642 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4643 4644 * Added RCSid's for the files we've touched. 4645 4646Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4647 4648 * configure.in: Thanks to some clues from mdb@juniper.net, 4649 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4650 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4651 4652 --with-machine=MACHINE explicitly set MACHINE 4653 --with-force-machine=MACHINE set FORCE_MACHINE 4654 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4655 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4656 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4657 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4658 4659 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4660 4661 * makefile: added a pathetically simple makefile to drive 4662 bootstrapping. Running configure by hand is more useful. 4663 4664 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4665 dependent on NetBSD bsd.*.mk 4666 4667 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4668 _PATH_OBJDIRPREFIX for those that don't want a default. 4669 construct _PATH_DEFSYSPATH from the info we get from configure. 4670 4671 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4672 if MAKE_VERSION is defined. 4673 4674 * compat.c: when we bail, print out the .CURDIR we were in. 4675 4676Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4677 4678 * Merged with NetBSD make 4679 4680 * var.c: fixed a bug in the handling of the modifier :P 4681 if the node as found but the path was null, we segfault trying to 4682 duplicate it. 4683 4684Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4685 4686 * Merged with NetBSD make 4687 4688 * make.c: Make_OODate's test for a library out of date was using 4689 cmtime where it should have used mtime (my bug). 4690 4691 * compat.c: Use perror() to tell us what really went wrong when we 4692 cannot exec a command. 4693 4694Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4695 4696 * Merged with NetBSD make 4697 4698Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4699 4700 * Merged with NetBSD make 4701 4702Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4703 4704 * Merged with NetBSD make 4705 4706Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4707 4708 * Merged with NetBSD make 4709 4710Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4711 4712 * util.c: don't provide signal() since we use sigcompat.c 4713 4714 * Makefile.in: added a build target. 4715 4716 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4717 These allow some quite clever magic. 4718 4719 * main.c (main): added support for getenv(MAKESYSPATH). 4720 4721Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4722 4723 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4724 This avoids objdir having a different value depending on how a 4725 directory was reached (via command line, or subdir.mk). 4726 4727 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4728 4729Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4730 4731 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4732 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4733 I've been testing this in NetBSD's make for some weeks. 4734 4735 * Turn Makefile into Makefile.in and make it useful. 4736 4737Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4738 4739 * Imported NetBSD's -current make(1) and resolve conflicts. 4740 4741 * Applied autoconf patches from bmake v2 4742 4743 * Imported clean code base from NetBSD-1.0 4744