12024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20240625 4 Merge with NetBSD make, pick up 5 o job.c: ensure shellPath is always duped, avoid upsetting free() 6 72024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 8 9 * VERSION (_MAKE_VERSION): 20240616 10 Merge with NetBSD make, pick up 11 o clean up collection of context information for error messages 12 o in warnings, move the word "warning" to the front 13 o var.c: throw an error on attempt to override an internal 14 read-only variable 15 162024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * VERSION (_MAKE_VERSION): 20240610 19 Merge with NetBSD make, pick up 20 o for.c: remove redundant shortcut for building the .for loop body 21 222024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 23 24 * VERSION (_MAKE_VERSION): 20240602 25 Merge with NetBSD make, pick up 26 o rename some VarEvalMode constants to better match debug names. 27 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 28 292024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 30 31 * VERSION (_MAKE_VERSION): 20240601 32 Merge with NetBSD make, pick up 33 o add .export-all rather than allow .export with no argument 34 which can happen accidentally. 35 o if lua is available, run check-expect.lua after unit-tests 36 o main.c: use snprintf rather than strncpy 37 fix memory leak when purging realpath cache. 38 392024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 40 41 * VERSION (_MAKE_VERSION): 20240528 42 Merge with NetBSD make, pick up 43 o fix a number of memory leaks 44 o replace magic numbers with POSIX FILENO constants 45 o hash.c: remove dead code from HashTable_DeleteEntry 46 o main.c: when complaining about unusable .OBJDIR 47 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 48 o parse.c: use fewer technical terms in debug message for dependency 49 502024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 51 52 * VERSION (_MAKE_VERSION): 53 Merge with NetBSD make, pick up 54 o dir.c: in FindFile restore last search of .CURDIR even for 55 includes, as a number of existing makefiles are broken otherwise. 56 572024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * VERSION (_MAKE_VERSION): 20240519 60 Merge with NetBSD make, pick up 61 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 62 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 63 o main.c: no need to set .DOTLAST in sysIncPath 64 652024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 66 67 * VERSION (_MAKE_VERSION): 20240508 68 Merge with NetBSD make, pick up 69 o make: ensure variables set on command line get added to 70 .MAKEOVERRIDES (even if they start with '.') so they are passed to 71 sub-makes. 72 732024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 74 75 * VERSION (_MAKE_VERSION): 20240430 76 Merge with NetBSD make, pick up 77 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 78 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 79 802024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 81 82 * VERSION (_MAKE_VERSION): 20240428 83 Merge with NetBSD make, pick up 84 o simplify freeing of lists 85 o arch.c: trim pointless comments 86 o var.c: delay variable assignments until actually needed 87 don't reallocate memory after evaluating an expression, result is 88 almost always short-lived. 89 902024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 91 92 * VERSION (_MAKE_VERSION): 20240426 93 Merge with NetBSD make, pick up 94 o job.c: in debug output, print the directory in which a job 95 failed at same time as failed target so it is more easily found in 96 build log. 97 982024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 99 100 * VERSION (_MAKE_VERSION): 20240424 101 Merge with NetBSD make, pick up 102 o clean up comments, code and tests 103 1042024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 105 106 * VERSION (_MAKE_VERSION): 20240422 107 Merge with NetBSD make, pick up 108 o var.c: avoid LazyBuf for :*time modifiers. 109 LazyBuf's are not nul terminated so not suitable for passing to 110 functions that expect that. These modifiers are used sparingly so 111 an extra allocation is not a problem. 112 1132024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 114 115 * VERSION (_MAKE_VERSION): 20240420 116 Merge with NetBSD make, pick up 117 o provide more context information for parse/evaluate errors 118 1192024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 120 121 * VERSION (_MAKE_VERSION): 20240414 122 Merge with NetBSD make, pick up 123 o parse.c: print -dp debug info earlier so we see which 124 .if or .for line is being parsed. 125 1262024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 127 128 * VERSION (_MAKE_VERSION): 20240404 129 Merge with NetBSD make, pick up 130 o fix some unit tests for Cygwin 131 o parse.c: exit immediately after reading a null byte from a makefile 132 133 * fix generation of bmake.cat1 134 1352024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 136 137 * VERSION (_MAKE_VERSION): 20240314 138 Add/Improve support for Cygwin 139 o uname -s output isn't useful so allow configure to 140 set FORCE_MAKE_OS - to force the value of .MAKE.OS 141 and use Cygwin which matches uname -o 142 o fix some unit-tests for Cygwin 143 1442024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 145 146 * boot-strap: tests can take a long time; use a cookie to 147 skip them if bmake has not been updated since tests last 148 ran successfully. 149 150 * Makefile: Cygwin handles MANTARGET man 151 152 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 153 1542024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 155 156 * VERSION (_MAKE_VERSION): 20240309 157 Merge with NetBSD make, pick up 158 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 159 this allows a .ERROR target to ignore the case of 160 .ERROR_EXIT==6 which just means that the build actually 161 failed somewhere else. 162 1632024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 164 165 * VERSION (_MAKE_VERSION): 20240303 166 167 * var.c: on IRIX we need both inttypes.h and stdint.h 168 1692024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 170 171 * VERSION (_MAKE_VERSION): 20240301 172 Merge with NetBSD make, pick up 173 o export variables with value from target scope 174 when appropriate. 175 1762024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 177 178 * VERSION (_MAKE_VERSION): 20240212 179 Merge with NetBSD make, pick up 180 o remove unneeded conditional-compilation toggles 181 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 182 GMAKEEXPORT NO_REGEX and SUNSHCMD 183 184 * configure.in: add check for regex.h 185 186 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 187 1882024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 189 190 * VERSION (_MAKE_VERSION): 20240204 191 Merge with NetBSD make, pick up 192 o var.c: fix some lint (-dL) mode parsing issues 193 1942024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 195 196 * VERSION: (_MAKE_VERSION): 20240202 197 Merge with NetBSD make, pick up 198 o make.1: note that arg to :D and :U can be empty 199 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 200 2012024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 202 203 * VERSION (_MAKE_VERSION): 20240108 204 Merge with NetBSD make, pick up 205 o miscellaneous cleanups 206 2072024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 208 209 * VERSION (_MAKE_VERSION): 20240106 210 Merge with NetBSD make, pick up 211 o fix duplicate progname when reporting an unknown target 212 o unit tests for Cmd_Exec using temp file 213 2142024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 215 216 * VERSION (_MAKE_VERSION): 20240105 217 Merge with NetBSD make, pick up 218 o main.c: Cmd_Exec write cmd to a file if too big 219 avoid blowing commandline/env limits 220 2212024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 222 223 * VERSION (_MAKE_VERSION): 20240101 224 o util.c: flesh out more of strftime 225 * configure.in: add --with-bmake-strftime 226 it is not a full implementation but enough to pass all 227 the unit-tests. 228 * parse.c: LoadFile do not append \n to empty buffer. 229 2302023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 231 232 * VERSION (_MAKE_VERSION): 20231230 233 Merge with NetBSD make, pick up 234 o simplify memory allocation for string buffers 235 o fix declared types of list nodes 236 o suff.c: clean up freeing of suffixes 237 o var.c: simplify debug message for the ':@var@...@' modifier 238 clean up variable handling 239 2402023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 241 242 * VERSION (_MAKE_VERSION): 20231226 243 Merge with NetBSD make, pick up 244 o compat.c: ensure make's output is correctly ordered with that of 245 the target when not going to a tty 246 o main.c: check for shellPath whether to call Shell_Init() 247 2482023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 249 250 * VERSION (_MAKE_VERSION): 20231224 251 Merge with NetBSD make, pick up 252 o compat.c: check for shellPath whether to call Shell_Init() 253 tweak the unit test to detect the bug thus fixed. 254 o make.1: do not claim .SHELL is only used by jobs mode. 255 2562023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 257 258 * VERSION (_MAKE_VERSION): 20231220 259 Merge with NetBSD make, pick up 260 o str.c: speed up pattern matching in the ':M' modifier 261 o var.c: fix confusing debug logging when deleting a variable 262 use consistent debug messages style when ignoring variables 263 2642023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * VERSION (_MAKE_VERSION): 20231210 267 Merge with NetBSD make, pick up 268 o var.c: avoid segfault on empty :C match expression 269 explain in debug log why variable assignment is ignored. 270 2712023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * VERSION (_MAKE_VERSION): 20231208 274 Merge with NetBSD make, pick up 275 o var.c: ensure fromCmd is set correctly for variables set on 276 command line. 277 2782023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 279 280 * configure.in: disable generation of 'makefile' for 281 Darwin by default. 282 283 * boot-strap: docuement --without-makefile 284 2852023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 286 287 * VERSION (_MAKE_VERSION): 20231124 288 Merge with NetBSD make, pick up 289 o main.c: cleanup processing of -j 290 fix lint warning about strchr 291 o var.c: more accurate error message for invalid ':mtime' argument 292 cleanup :[...] modifier 293 avoid reading beyond substring when comparing 294 o unit-tests cover all cases of :mtime, test and explain exporting 295 of variables 296 o cleanup comments 297 2982023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 299 300 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 301 $FreeBSD$ tag, so avoid adding it. 302 3032023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 304 305 * VERSION (_MAKE_VERSION): 20230909 306 Merge with NetBSD make, pick up 307 o main.c: allow -j to compute a multiple of ncpu 308 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 309 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 310 _SC_NPROCESSORS_ONLN 311 .MAKE.JOBS.C will be "yes" if -jC is supported 312 3132023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 314 315 * VERSION (_MAKE_VERSION): 20230820 316 Merge with NetBSD make, pick up 317 o make.1: note that :localtime is better for %s 318 o parse.c: improve error messages for invalid input. 319 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 320 correct result, it is still better to use %s:L:localtime. 321 3222023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 323 324 * VERSION (_MAKE_VERSION): 20230818 325 Merge with NetBSD make, pick up 326 o meta.c: meta_ignore - check raw path against metaIgnorePaths 327 to potentially skip call to realpath. 328 o var.c: be strict when parsing the argument of the ':mtime' modifier 329 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 330 should be used to get an equivalent value to time(3). 331 3322023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 333 334 * VERSION (_MAKE_VERSION): 20230816 335 Merge with NetBSD make, pick up 336 o cond.c: clean up multiple-inclusion guards 337 3382023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 339 340 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 341 if configure cannot work out how to control TZ. 342 Remove varmod-localtime from BROKEN_TESTS for IRIX* 343 3442023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 345 346 * VERSION (_MAKE_VERSION): 20230723 347 348 * configure.in: fix the test for wether TZ=Europe/Berlin works. 349 Depending on the time of year, if run between 22:00 and 00:00 UTC 350 the check in configure would fail incorrectly. 351 Take the day into account as well. 352 3532023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 354 355 * VERSION (_MAKE_VERSION): 20230711 356 Merge with NetBSD make, pick up 357 o make.1: clean up wording, clarify scope of '!' in conditions 358 3592023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 360 361 * make-bootstrap.sh.in: set prefix 362 If configure is run using ksh we get unexpanded ${prefix} in 363 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 364 correct result. 365 3662023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 367 368 * VERSION (_MAKE_VERSION): 20230711 369 bump version for IRIX tweaks 370 371 * make.h: undef OP_NONE if defined 372 373 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 374 375 * configure.in: override INSTALL on IRIX 376 3772023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 378 379 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 380 3812023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 382 383 * VERSION (_MAKE_VERSION): 20230622 384 Merge with NetBSD make, pick up 385 o optimize string matching for ':M' and ':N' 386 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 387 3882023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 389 390 * VERSION (_MAKE_VERSION): 20230621 391 Merge with NetBSD make, pick up 392 o more extensive tests for include guards 393 o parse.c: if a guard is already defined a file that uses the same 394 guard is still guarded by it. 395 3962023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 397 398 * VERSION (_MAKE_VERSION): 20230620 399 Merge with NetBSD make, pick up 400 o allow guards to be targets as well as variables 401 The guard targets may include variable references like 402 __${.PARSEDIR:tA}/${.PARSEFILE}__ 403 4042023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 405 406 * VERSION (_MAKE_VERSION): 20230619 407 Merge with NetBSD make, pick up 408 o unit test for .undef of readOnly vars 409 o optimization for makefiles protected from multiple-inclusion 410 skip even opening the file after first include. 411 Initially this only handles makefiles guarded by a variable 412 target guards are next. 413 4142023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 415 416 * VERSION (_MAKE_VERSION): 20230616 417 Merge with NetBSD make, pick up 418 o var.c: do not allow delete of readOnly variable 419 4202023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 421 422 * VERSION (_MAKE_VERSION): 20230601 423 Merge with NetBSD make, pick up 424 o parse.c: .break takes no args 425 o lots of unit test updates 426 4272023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 428 429 * unit-tests/Makefile: skip tests that require /dev/filemon 430 if it does not exists - issue a warning. 431 4322023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 433 434 * VERSION (_MAKE_VERSION): 20230522 435 Fix building on darwin ppc 436 437 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 438 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 439 4402023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 441 442 * VERSION (_MAKE_VERSION): 20230515 443 444 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 445 compile filemon_ktrace.c 446 4472023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 448 449 * VERSION (_MAKE_VERSION): 20230512 450 o sys.dirdeps.mk - broke after-import target 451 4522023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 453 454 * VERSION (_MAKE_VERSION): 20230510 455 Merge with NetBSD make, pick up 456 o parse.c: don't print null filename in stack traces 457 o var.c: :mtime operate on each word in variable value 458 4592023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 460 461 * VERSION (_MAKE_VERSION): 20230509 462 Merge with NetBSD make, pick up 463 o for.c: skip syntactically wrong .for loops 464 o var.c: allow for :gmtime=${mtime} 465 add :mtime[=timestamp] where timestamp is used if stat(2) 466 fails, if :mtime=error stat(2) failure causes error. 467 4682023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 469 470 * VERSION (_MAKE_VERSION): 20230504 471 Merge with NetBSD make, pick up 472 o compat.c: fix compile on NetBSD 7.2 473 o make.1: fix documentation of .PREFIX to match reality and POSIX 474 o unit-tests: improved var-scope-local 475 4762023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 477 478 * VERSION (_MAKE_VERSION): 20230414 479 Merge with NetBSD make, pick up 480 o minor cleanup 481 4822023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 483 484 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 485 unlimited results in an insane number (0x7fffffffffffffff). 486 If BMAKE_NOFILE_MAX is defined, use that instead. 487 4882023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 489 490 * VERSION (_MAKE_VERSION): 20230321 491 Merge with NetBSD make, pick up 492 * make.1: document seemingly unexplained Error code 6. 493 4942023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 495 496 * VERSION (_MAKE_VERSION): 20230317 497 Merge with NetBSD make, pick up 498 o compat.c: CompatDeleteTarget skip .PHONY targets to be 499 consistent with JobDeleteTarget. 500 o job.c: fix memory leak in handling sysv :from=to modifiers 501 5022023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 503 504 * VERSION (_MAKE_VERSION): 20230303 505 Merge with NetBSD make, pick up 506 o several updated unit-tests 507 5082023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 509 510 * VERSION (_MAKE_VERSION): 20230222 511 Merge with NetBSD make, pick up 512 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 513 5142023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 515 516 * VERSION (_MAKE_VERSION): 20230218 517 Merge with NetBSD make, pick up 518 o var.c: fix parsing of unevaluated subexpressions with 519 unbalanced '{}' 520 5212023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 522 523 * VERSION (_MAKE_VERSION): 20230215 524 Merge with NetBSD make, pick up 525 o inline macros for some variable names 526 o cond.c: reduce complexity of evaluating expressions 527 5282023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 529 530 * VERSION (_MAKE_VERSION): 20230208 531 Merge with NetBSD make, pick up 532 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 533 when it has been used within conditional expressions 534 5352023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20230127 538 539 * install-sh: if making directories ensure umask is set 540 to match mode. 541 542 * Makefile: use DIRMODE for directories and 543 NONBINMODE for man pages and mk files 544 5452023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 546 547 * VERSION (_MAKE_VERSION): 20230126 548 Merge with NetBSD make, pick up 549 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 550 should be read-only. 551 5522023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 553 554 * VERSION (_MAKE_VERSION): 20230123 555 Merge with NetBSD make, pick up 556 o .[NO]READONLY: for control of read-only variables 557 o .SYSPATH: for controlling the path searched for makefiles 558 5592023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 560 561 * VERSION (_MAKE_VERSION): 20230120 562 Merge with NetBSD make, pick up 563 o allow for white-space between command specifiers @+- 564 o add more details to warning 'Extra targets ignored' 565 5662023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 567 568 * machine.sh: leverage os.sh rather than duplicate 569 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 570 for that purpose for the past decade or so. 571 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 572 5732023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 574 575 * VERSION (_MAKE_VERSION): 20230101 576 Merge with NetBSD make, pick up 577 o cleanup comments, inline some LazyBuf_ methods 578 o unit-tests/ add/improve comments in tests 579 o make.1: sync list of built-in variables with reality 580 sort list of built-in variables 581 reduce indentation of the long list of variable names 582 use consistent markup for boolean flags 583 move description of .MAKE.MODE below the .MAKE.META block 584 clarify in which case an expression may omit braces 585 5862022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 587 588 * VERSION (_MAKE_VERSION): 20221024 589 Merge with NetBSD make, pick up 590 o change return type of unlink_file back to int 591 5922022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 593 594 * Makefile: Darwin and Linux can handle MANTARGET=man 595 5962022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 597 598 * VERSION (_MAKE_VERSION): 20220928 599 Merge with NetBSD make, pick up 600 o fix more ignored returns from snprintf 601 o compile with higher warnings 602 6032022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 604 605 * main.c meta.c: do not ignore return from snprintf 606 607 * meta.c strlcpy.c: we need prototype for strlcpy 608 609 * sigcompat.c: fix unused function warnings 610 6112022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 612 613 * VERSION (_MAKE_VERSION): 20220924 614 Merge with NetBSD make, pick up 615 o fix bug in .break reset of conditional depth 616 o overhaul and simplify tracking of conditional depth 617 6182022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20220912 621 Merge with NetBSD make, pick up 622 o man page updates 623 6242022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 625 626 * VERSION (_MAKE_VERSION): 20220909 627 Merge with NetBSD make, pick up 628 o update unit-tests to handle deprecation of egrep 629 o cond.c: add more details to error message for numeric comparison 630 631 * configure.in: allow for deprecation of egrep 632 633 * Makefile: Linux can handle MANTARGET=man 634 6352022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 636 637 * VERSION (_MAKE_VERSION): 20220903 638 Merge with NetBSD make, pick up 639 o job.c: fix handling of null bytes in output 640 6412022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 642 643 * VERSION (_MAKE_VERSION): 20220902 644 Merge with NetBSD make, pick up 645 o Allow .break to terminate a .for loop early 646 6472022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 648 649 * VERSION (_MAKE_VERSION): 20220901 650 Merge with NetBSD make, pick up 651 o var.c: fix out-of-bounds errors when parsing 652 6532022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 654 655 * VERSION (_MAKE_VERSION): 20220824 656 Merge with NetBSD make, pick up 657 o var.c: revert change to modifier parsing that breaks 658 shell variable references within ':@var@body@' 659 o adjust unit-tests 660 6612022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 662 663 * VERSION (_MAKE_VERSION): 20220818 664 Merge with NetBSD make, pick up 665 o fix exit status for '-q' (since 1994) 666 6672022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 668 669 * VERSION (_MAKE_VERSION): 20220808 670 Merge with NetBSD make, pick up 671 o var.c: fix parsing of modifiers containing unbalanced subexpressions 672 extract parsing of ':D' and ':U' modifiers into separate function 673 6742022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 675 676 * VERSION (_MAKE_VERSION): 20220726 677 678 * Auto-create objdir for bmake/unit-tests if appropriate 679 6802022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 681 682 * VERSION (_MAKE_VERSION): 20220724 683 Merge with NetBSD make, pick up 684 o make.1: describe variable assignment and evaluation more precisely 685 o parse.c: fix out-of-bounds read when parsing an invalid line 686 o var.c: simplify return type of IsShortVarnameValid 687 6882022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 689 690 * VERSION (_MAKE_VERSION): 20220612 691 Merge with NetBSD make, pick up 692 o allow to randomize build order of targets 693 .MAKE.MODE += randomize-targets can help uncover dependency bugs 694 within a makefile. 695 o compat.c: rename Compat_Run to Compat_MakeAll 696 o make.c: inline MakeBuildParent 697 inline make_abort, improve error details 698 o parse.c: reorganize Parse_Error 699 fix memory leak in wildcard targets and sources 700 separate cases in HandleDependencyTargetMundane 701 extract HandleSingleDependencyTargetMundane 702 rename loadfile to LoadFile 703 split IncludeFile into separate functions 704 condense code for searching a file in the paths 705 fix off-by-one error in buffer for .WAIT nodes 706 o str.c: condense Str_Match 707 make code for string matching syntactically more consistent 708 7092022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 710 711 * VERSION (_MAKE_VERSION): 20220418 712 Merge with NetBSD make, pick up 713 o ignore '.POSIX:' if not in first non-comment line 714 of Makefile as specified by POSIX. 715 add unit-tests for above. 716 o meta.c: make it easier to find usage of identifiers 717 o targ.c: add .USEBEFORE to Targ_PrintType 718 7192022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 720 721 * VERSION (_MAKE_VERSION): 20220414 722 723 * unit-tests/Makefile: simplify checks for shells with 724 BROKEN_TESTS, this helps with other Linux distros that 725 use dash. 726 7272022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 728 729 * VERSION (_MAKE_VERSION): 20220330 730 Merge with NetBSD make, pick up 731 o var.c: fix spacing, and a typo in a test 732 7332022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 734 735 * VERSION (_MAKE_VERSION): 20220326 736 Merge with NetBSD make, pick up 737 o parse.c: try to include 'posix.mk' the first time 738 .POSIX: is encountered, to allow for beter POSIX compliance. 739 o var.c: make debug logs more readable 740 prefer 'long long' over 'long' on 32-bit C99 platforms 741 fix crash on .undef of an environment variable 742 7432022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 744 745 * VERSION (_MAKE_VERSION): 20220303 746 Merge with NetBSD make, pick up 747 o tell meta mode unit tests not to expect filemon 748 o cond.c: make debug logging for comparisons less technical 749 o lst.c: fix mem leak in Lst_Remove 750 o str.c: make code for string matching syntactically more consistent 751 o var.c: simplify ParseModifier_Match 752 7532022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 754 755 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 756 757 * VERSION (_MAKE_VERSION): 20220214 758 Merge with NetBSD make, pick up 759 o cond.c: simplify control flow in CondParser_Comparison 760 o job.c: fix echoing of command with '-' in silent target in jobs mode 761 o main.c: prefix the warning about read-only .OBJDIR with a colon 762 o parse.c: remove redundant conditions 763 o var.c: simplify control flow in ModifyWord_SysVSubst 764 7652022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 766 767 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 768 is any chance we have dash as .SHELL 769 770 * VERSION (_MAKE_VERSION): 20220208 771 Merge with NetBSD make, pick up 772 o more unit tests 773 o meta.c: use a variable to hold command line to be filtered 774 to avoid any side effects from content of command line. 775 7762022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 777 778 * VERSION (_MAKE_VERSION): 20220204 779 Merge with NetBSD make, pick up 780 o use unsigned consistently for line numbers, avoid the need for %z 781 o parse.c: do not step off end of input in Parse_IsVar 782 when checking for target local variable assignments 783 7842022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 785 786 * VERSION (_MAKE_VERSION): 20220202 787 Merge with NetBSD make, pick up 788 o remove redundant declaration of HashIter_Init 789 o make DEBUG0 simpler 790 7912022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 792 793 * cast gn->lineno to avoid %z 794 795 * VERSION (_MAKE_VERSION): 20220130 796 Merge with NetBSD make, pick up 797 o more unit tests 798 o make GNode lineno unsigned to please lint 799 o print location of recursive variable references in commands 800 o print "stack trace" (makefile includes) on fatal errors 801 o make.1: refine documentation for target local assignments 802 8032022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 804 805 * VERSION (_MAKE_VERSION): 20220128 806 Merge with NetBSD make, pick up 807 o inline functions called only once 808 o for.c: clean up AddEscape for building the body of a .for loop 809 o hash.c: merge duplicate code for finding an entry in a hash table 810 replace HashEntry_KeyEquals with strncmp 811 o make.1: document quirks of target local variable assignments. 812 o parse.c: cleanup white-space 813 8142022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 815 816 * VERSION (_MAKE_VERSION): 20220126 817 Merge with NetBSD make, pick up 818 o allow setting target local variables 819 o more unit tests 820 o add missing newline after "cannot continue" message 821 o meta.c: clean up eat_dots 822 o parse.c: fix filename in warning about duplicate script 823 o var.c: when expanding nested variables, check simple things first 824 8252022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 826 827 * VERSION (_MAKE_VERSION): 20220116 828 Merge with NetBSD make, pick up 829 o fix for unit-tests/varname-makeflags on non-BSD systems 830 o use Var_Exists rather than Var_Value where appropriate 831 o remove unnecessary functions for expanding variable names 832 o cond.c: inline EvalBare 833 o main.c: lint cleanup 834 o parse.c: condense code in Parse_IsVar 835 use islower for parsing directives (none have upper case) 836 8372022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 838 839 * VERSION (_MAKE_VERSION): 20220112 840 Merge with NetBSD make, pick up 841 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 842 comparion, rarely needed but useful when it is. 843 8442022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 845 846 * VERSION (_MAKE_VERSION): 20220110 847 Merge with NetBSD make, pick up 848 o inline Buf_Clear 849 o remove redundant braces 850 o rename and inline Targ_Precious 851 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 852 o for.c: clean up handling of .for loops 853 fix reported line numbers of continuation lines 854 add details about .for loop variables to stack traces 855 o job.c: reduce code for initializing error handling in shell 856 o main.c: in Cmd_Exec, return error message instead of format string 857 have as few statements as possible between va_start and va_end 858 add debug logging for capturing the output of external commands 859 o make.c: use consistent variable names for varargs 860 o make_malloc.c: remove duplicate code from bmake_strdup 861 o parse.c: add missing printflike annotations 862 remove redundant lines from stack traces 863 fix stack traces in -dp mode 864 reduce confusing code in ParseForLoop 865 fix line number in debug log after returning from a file 866 rename IFile and its fields to match their actual content 867 clean up ParseDependencySources 868 o var.c: shorten ApplyModifier_Assign 869 rename is_shell_metachar, fix character conversion warning 870 merge calls to ApplyModifier_Time 871 merge duplicate code for modifiers 'gmtime' and 'localtime' 872 8732022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 874 875 * parse.c: loadfile restore extra byte in buffer. 876 8772022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 878 879 * VERSION (_MAKE_VERSION): 20220101 880 Merge with NetBSD make, pick up 881 o more unit-tests 882 o remove unnecessary words from command line options in CmdOpts 883 o rename eunlink to unlink_file 884 o cond.c: make ParseWord in condition parser simpler 885 internally return false for irrelevant leaves in conditions 886 replace table for function lookup in conditions with simple code 887 merge duplicate types CondEvalResult and CondResult 888 o for.c: clean up handling of .for loops and .include directives 889 o main.c: constify cached_realpath 890 clean up Cmd_Exec 891 o parse.c: sync API documentation 892 fix error message when reading more than 1 GB from stdin 893 clean up parsing of makefiles 894 fix line number in error message about open conditionals 895 unexport types VarAssignOp and VarAssign 896 clean up function names 897 remove redundant parameters in dependency parsing functions 898 reduce scope of the list of wildcard target names 899 extract OP_NOTARGET into separate function 900 clean up variable names for parsing dependency lines 901 make debug logging a bit more human-friendly 902 o var.c: condense code in ApplyModifier_Assign 903 9042021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 905 906 * VERSION (_MAKE_VERSION): 20211221 907 Merge with NetBSD make, pick up 908 o more unit-tests 909 o style cleanup 910 o in CLEANUP mode, free interned strings at the very end 911 o fix memory leak for filenames in .for loops 912 o buf.c: avoid memory leak 913 o cond.c: condense CondParser_ComparisonOp 914 o hash.c: change return type of HashTable_Set to void 915 o job.c: change return type of Compat_RunCommand from int to bool 916 o main.c: remove bmake_free 917 o parse.c: condense repetetive code in ParseDirective 918 remove dead code for handling traditional include directives 919 clean up parsing of variable assignments 920 remove unreachable code for parsing the dependency operator 921 clean up loading of files 922 fix memory leak in IncludeFile 923 o var.c: fix memory leak when parsing a variable name 924 fix memory leak from ${.SUFFIXES} 925 reduce memory allocation in modifier ':?' and ':C' 926 condense RegexReplace for the modifier ':C' and avoid strlen 927 merge duplicate code for memory handling in Var_Parse 928 distinguish between short-lived and environment variables 929 rename VarFreeEnv to VarFreeShortLived 930 9312021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 932 933 * cond.c: fix mem leak in CondParser_Leaf 934 9352021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 936 937 * VERSION (_MAKE_VERSION): 20211212 938 Merge with NetBSD make, pick up 939 o rename Parse_SetInput to Parse_PushInput 940 o remove remove period from end of error messages and warnings 941 to be more consistent 942 o arch.c: use simpler memory management for parsing archive members 943 o cond.c: rework and reduce recursion 944 o for.c: rename some functions to better reflect purpose 945 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 946 o var.c: in parse errors, mark whitespace more clearly 947 inline ParseEmptyArg into CondParser_FuncCallEmpty 948 minimize calls to LazyBuf_Get in ParseVarnameLong 949 treat .SUFFIXES as a read-only variable 950 9512021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 952 953 * VERSION (_MAKE_VERSION): 20211207 954 Merge with NetBSD make, pick up 955 o inline HashIter_Init 956 o parse.c: inline common subexpression in ParseRawLine 957 o var.c: merge branches for modifiers ':D' and ':U' 958 extract common code into Expr_Words 959 extract common code into Expr_Str 960 move low-level implementation details out of Var_Parse 961 9622021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 963 964 * VERSION (_MAKE_VERSION): 20211206 965 Merge with NetBSD make, pick up 966 o add unit-tests/varmod-loop-delete 967 o for.c: inline Str_Words - reduce memory allocation 968 o parse.c: do not try to expand fixed variable names 969 only allocate the name of an included file if necessary 970 clean up ParseInclude 971 o var.c: fix use-after-free in modifier ':@' 972 save a memory allocation in each modifier ':O' and ':u' 973 save a memory allocation in the modifier ':[...]' 974 in UnexportVars, replace Str_Words with Substring_Words to 975 reduce allocations and copying. 976 9772021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 978 979 * VERSION (_MAKE_VERSION): 20211204 980 Merge with NetBSD make, pick up 981 o flesh out a number of tests 982 o replace enums with bitfields, this simplifies a lot of code. 983 o var.c: refactor ParseModifierPartSubst 984 9852021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 986 987 * VERSION (_MAKE_VERSION): 20211024 988 Merge with NetBSD make, pick up 989 o Punt on write errors - ENOSPC etc. 990 9912021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 992 993 * configure.in: use_defshell, set both DEFSHELL_INDEX 994 and defshell_path if appropriate. 995 This makes it easier to use say the KSH specification with 996 and alternate path for the shell. 997 998 * configure.in compat.c: for SCO we need to force UseShell 999 1000 * configure.in: SCO /bin/sh is not usable, provide a list of 1001 alternatives for use as .SHELL. 1002 We still have to mark some tests as broken, plus more if we end up 1003 with ksh as .SHELL. 1004 Issue a warning about skipped tests. 1005 1006 * boot-strap: leave TOOL_DIFF to configure 1007 1008 * configure.in: on SCO native cc is not usable, 1009 gcc is to be found in /usr/gnu/bin 1010 and while ancient is at least able to compile bmake. 1011 Thus we add /usr/gnu/bin to PATH if it exists, and later 1012 check if $CC would have been found via $PATH. 1013 If not we set CC to the full path of $CC. 1014 Also gnu diff is known to support -u, so if it exists use it. 1015 1016 * configure.in: move getopt to AC_REPLACE_FUNCS 1017 also add AC_C_INLINE - in an attempt to compile using 1018 native cc on SCO. 1019 1020 * configure.in: check for stresep as well as strsep, since we 1021 define the later to the former if necessary, and if we have to 1022 provide stresep we also need to provide a prototype. 1023 1024 * configure.in: we no longer need to worry about 1025 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1026 1027 * make.h: make sure we have __RCSID 1028 1029 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1030 can control it. 1031 10322021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1033 1034 * VERSION: 20211020 1035 Merge with NetBSD make, pick up 1036 o confirm sync of unit-tests 1037 10382021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1039 1040 * configure.in: check if timezone Europe/Berlin is supported 1041 if not try UTC-1 1042 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1043 symlink unit-tests -> ../unit-tests/obj so that 1044 unit-tests/Makefile.config is put in the right place. 1045 * refine filtering of .OBJDIR in unit-tests 1046 10472021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1048 1049 * Fix unit-tests on Minix 3.2.0 1050 o job.c: do not punt if read of token pipe fails for EAGAIN. 1051 On Minix at least, we are not ready to read the childExitJob pipe 1052 when poll says we are. 1053 There should actually be no reason for this pipe to be 1054 non-blocking, but while that works fine on {Net,Free}BSD it 1055 breaks another test case on Minix. 1056 o unit-tests/Makefile: deal with variants of error messages 1057 and use of obj as .OBJDIR 1058 10592021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1060 1061 * configure.in: add sigaction to AC_REPLACE_FUNCS 1062 we also need to check for sigaddset etc just for the benefit of 1063 sigact.c 1064 1065 * Add sigact.c as sigaction.c so this "just works". 1066 This should have been done back when bmake_signal started using 1067 sigaction (I only just noticed that sigact.c wasn't here ;-) 1068 Note: I no longer have access to any system where this would matter. 1069 10702021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1071 1072 * VERSION (_MAKE_VERSION): 20211011 1073 1074 * Makefile: cleanup a little 1075 1076 * configure.in: check for sigsetmask 1077 10782021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1079 1080 * VERSION (_MAKE_VERSION): 20211001 1081 Merge with NetBSD make, pick up 1082 o reduce locations reducing text size 1083 o remove unnecessary const 1084 o cond.c: fix lint warning on i386 1085 do not allow unquoted 'left == right' after modifier ':?' 1086 o hash.c: fix build for DEBUG_HASH_LOOKUP 1087 o var.c: fix memory leak in error case of the ':?' modifier 1088 10892021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1090 1091 * VERSION (_MAKE_VERSION): 20210911 1092 Merge with NetBSD make, pick up 1093 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1094 10952021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1096 1097 * VERSION (_MAKE_VERSION): 20210906 1098 Merge with NetBSD make, pick up 1099 o more unit tests 1100 o lint cleanup 1101 o rename some functions to better fit purpose 1102 o for.c: cleanup - remove unnecessary optimization 1103 fix embedded newlines 1104 o parse.c: correct case for CVS/RCS 1105 11062021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1107 1108 * VERSION (_MAKE_VERSION): 20210808 1109 Merge with NetBSD make, pick up 1110 o var.c: remove redundant initialization in ApplyModifier_Order 1111 1112 * mk/options.mk: issue warning for incorrect usage 1113 11142021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1115 1116 * var.c: use long for :On if we don't have a 64bit int type 1117 1118 * VERSION (_MAKE_VERSION): 20210803 1119 Merge with NetBSD make, pick up 1120 o rework varmod-order tests to avoid qsort instability 1121 o make.1: clarify :On entry 1122 11232021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1124 1125 * VERSION (_MAKE_VERSION): 20210731 1126 Merge with NetBSD make, pick up 1127 o fix some lint issues 1128 o more unit tests 1129 o var.c: rework of ApplyModifier_Order 1130 11312021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1132 1133 * util.c: add strto*l if HAVE_STRTO*L not defined 1134 1135 * VERSION (_MAKE_VERSION): 20210730 1136 Merge with NetBSD make, pick up 1137 o var.c: add :On and :Orn for numeric sort 1138 disabled if no 64bit type available. 1139 o _strtol.h: to implement strto*l functions 1140 11412021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1142 1143 * VERSION (_MAKE_VERSION): 20210704 1144 Merge with NetBSD make, pick up 1145 o unit-tests: fix some tests to be more portable 1146 - job-output-null not all shells do the same number of write calls 1147 - objdir-writable if TMPDIR is set; /tmp may not be usable 1148 11492021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1150 1151 * VERSION (_MAKE_VERSION): 20210701 1152 Merge with NetBSD make, pick up 1153 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1154 some tests just cannot work in some environments. 1155 o buf.c: simpler upper bound for length in Buf_AddInt 1156 o cond.c: fix grammar in error message for malformed conditional 1157 o for.c: prevent newline injection (from ${.newline}) in .for loops 1158 o var.c: use more practical data type in RegexReplace 1159 (avoid need for %zu) 1160 extract RegexReplace from ModifyWord_SubstRegex 1161 11622021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1163 1164 * VERSION (_MAKE_VERSION): 20210621 1165 Merge with NetBSD make, pick up 1166 o var.c: only report error for unmatched regex subexpression 1167 when linting (-dL) since we cannot tell when an unmatched 1168 subexpression is an expected result. 1169 o move unmatched regex subexpression tests to 1170 varmod-subst-regex.mk and enable strict (lint) mode 1171 11722021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1173 1174 * VERSION (_MAKE_VERSION): 20210616 1175 Merge with NetBSD make, pick up 1176 o more unit tests 1177 o cond.c: rename If_Eval to EvalBare 1178 improve function names for parsing conditions 1179 o job.c: fix error handling of targets that cannot be made 1180 o var.c: uncompress code in ApplyModifier_Unique 1181 11822021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1183 1184 * VERSION (_MAKE_VERSION): 20210518 1185 Merge with NetBSD make, pick up 1186 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1187 o job.c: Print -de error information when running multiple jobs 1188 11892021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1190 1191 * VERSION (_MAKE_VERSION): 20210420 1192 Merge with NetBSD make, pick up 1193 o use C99 bool type 1194 o convert VarEvalFlags back into an enum 1195 o cond.c: do not complain when skipping the condition 'no >= 10' 1196 o hash.c: avoid allocating memory for simple variable names 1197 o job.c: use distinct wording for writing to the shell commands file 1198 remove type name for the abort status in job handling 1199 rename PrintOutput to PrintFilteredOutput to avoid confusion 1200 o main.c: avoid double slash in name of temporary directory 1201 o var.c: use straight quotes for error 'Bad conditional expression' 1202 reduce memory allocations in the modifiers ':D' and ':U' 1203 rename members of ModifyWord_LoopArgs 1204 clean up pattern flags for the modifiers ':S' and ':C' 1205 reduce memory allocation and strlen calls in modifier ':from=to' 1206 in the ':Q' modifier, only allocate memory if necessary 1207 improve performance for LazyBuf 1208 remove redundant parameter from ParseVarnameLong 1209 migrate ParseModifierPart to use Substring 1210 avoid unnecessary calls to strlen when evaluating modifiers 1211 migrate ModifyWord functions to use Substring 1212 migrate handling of the modifier ':S,from,to,' to Substring 1213 reduce debug logging and memory allocation for ${:U...} 1214 reduce verbosity of the -dv debug logging for standard cases 1215 clean up debug logging for ':M' and ':N' 1216 disallow '$' in the variable name of the modifier ':@' 1217 simplify access to the name of an expression during evaluation 1218 12192021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1220 1221 * VERSION (_MAKE_VERSION): 20210330 1222 Merge with NetBSD make, pick up 1223 o replace enum bit-field with struct bit-field for VarEvalFlags 1224 o rename VARE_NONE to VARE_PARSE_ONLY 1225 o var.c: rename ApplyModifiersState to ModChain 1226 fix double varname expansion in the variable modifier '::=' 1227 change debug log for variable evaluation flags to lowercase 1228 12292021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1230 1231 * VERSION (_MAKE_VERSION): 20210314 1232 Merge with NetBSD make, pick up 1233 o var.c: avoid evaluating many modifiers in parse only mode 1234 in strict mode (-dL) many variable references are parsed twice, 1235 the first time just to report parse errors early, so we want to 1236 avoid side effects and wasted effort to the extent possible. 1237 12382021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1239 1240 * VERSION (_MAKE_VERSION): 20210226 1241 Merge with NetBSD make, pick up 1242 o remove freestanding freeIt variables 1243 link via FStr 1244 o var.c: restructure code in ParseVarname to target human readers 1245 improve error message for; 1246 bad modifier in variable expression 1247 unclosed modifier 1248 unknown modifier 1249 remove redundant parameter of ApplySingleModifier 1250 explain non-obvious code around indirect variable modifiers 1251 quote ':S' in error message about missing delimiter 1252 extract ParseModifier_Match into separate function 1253 add context information to error message about ':range' modifier 1254 add quotes around variable name in an error message 1255 reorder code in ModifyWords 1256 use more common parameter order for VarSelectWords 1257 make ModifyWord_Subst a little easier to understand 1258 do not expand variable name from the command line twice 1259 extract ExistsInCmdline from Var_SetWithFlags 1260 save a hash map lookup when defining a cmdline variable 1261 clean up VarAdd, Var_Delete, Var_ReexportVars 1262 use bit-shift expressions for VarFlags constants 1263 rename constants for VarFlags 1264 rename ExprDefined constants for debug logging 1265 rename ExprStatus to ExprDefined 1266 split parameters for evaluating variable expressions 1267 reduce redundant code around ModifyWords 1268 print error about failed shell command before overwriting variable 1269 clean up ValidShortVarname, ParseVarnameShort 1270 rename VarExprStatus to ExprStatus 1271 add functions for assigning the value of an expression 1272 rename ApplyModifiersState_Define to Expr_Define 1273 condense the code for parsing :S and :C modifiers 1274 12752021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1276 1277 * VERSION (_MAKE_VERSION): 20210206 1278 Merge with NetBSD make, pick up 1279 o unit-tests: use private TMPDIR to avoid errors from other users 1280 12812021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1282 1283 * VERSION (_MAKE_VERSION): 20210205 1284 Merge with NetBSD make, pick up 1285 o avoid strdup in mkTempFile 1286 o always use vfork 1287 o rename context and ctxt to scope 1288 o rename some VAR constants to SCOPE 1289 o Var_ functions, move the scope to the front 1290 o use shortcut functions Global_Set and Global_Append 1291 o add shortcut Global_Delete for deleting a global variable 1292 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1293 o compat.c: when exiting due to an error, print graph information 1294 o enum.c: remove overengineered Enum_ValueToString 1295 o make.c: remove unused INTERNAL flag 1296 remove unused return type of MakeBuildParent 1297 o parse.c: replace parse error "Need an operator" with better message 1298 o var.c: improve documentation about variable scopes 1299 rename Var_ValueDirect to GNode_ValueDirect 1300 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1301 merge SetVar into Var_SetWithFlags 1302 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1303 split Var_Append into Var_Append and Var_AppendExpand 1304 replace enum bit-set with bit-field 1305 o unit-tests/var-op-shell: use kill rather than kill -14 1306 which broke on darwin with recent update. 1307 13082021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1309 1310 * configure.in: check for sig_atomic_t and define it as 'int' 1311 if missing. 1312 1313 * VERSION (_MAKE_VERSION): 20210201 1314 Merge with NetBSD make, pick up 1315 o use sig_atomic_t for caught_sigchld 1316 13172021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1318 1319 * VERSION (_MAKE_VERSION): 20210130 1320 Merge with NetBSD make, pick up 1321 o more unit tests 1322 o convert SearchPath to struct 1323 o split Buf_Destroy into Buf_Done and Buf_DoneData 1324 o for.c: split For_Eval into separate functions 1325 rename struct For to struct ForLoop 1326 o job.c: do not create empty shell files in jobs mode 1327 rename JobOpenTmpFile to JobWriteShellCommands 1328 reduce unnecessary calls to waitpid 1329 o parse.c: in -dp mode, print stack trace with each diagnostic 1330 13312021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1332 1333 * VERSION (_MAKE_VERSION): 20210123 1334 Merge with NetBSD make, pick up 1335 o rename Dir_Expand to SearchPath_Expand 1336 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1337 o cond.c: fix debug output for comparison operators in conditionals 1338 o dir.c: split Dir_FindFile into separate functions 1339 13402021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1341 1342 * VERSION (_MAKE_VERSION): 20210120 1343 Merge with NetBSD make, pick up 1344 o fix some more lint nits 1345 o refine some unit tests for portability 1346 o cond.c: rework parsing 1347 13482021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1349 1350 * VERSION (_MAKE_VERSION): 20210110 1351 Merge with NetBSD make, pick up 1352 o fix lint warnings 1353 o consistently use boolean expressions in conditions 1354 13552021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1356 1357 * VERSION (_MAKE_VERSION): 20210108 1358 Merge with NetBSD make, pick up 1359 o job.c: back to polling token pipe if we want a token 1360 o main.c: always print 'stopped in' on first call 1361 The execption is if we bail because of an abort token 1362 in which case just exit 6. 1363 13642021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1365 1366 * VERSION (_MAKE_VERSION): 20210101 1367 Merge with NetBSD make, pick up 1368 o Happy New Year! 1369 o rename CmdOpts.lint to strict 1370 o exit 2 on technical errors 1371 o replace pointers in controlling conditions with booleans 1372 o replace global preserveUndefined with VARE_KEEP_UNDEF 1373 o compat.c: re-export variables from the actual make process 1374 if using vfork this is the effect anyway 1375 o cond.c: clean up VarParseResult constants 1376 o for.c: fix undefined behavior in SubstVarLong 1377 make control flow in SubstVarLong of .for loops more obvious 1378 clean up SubstVarShort in .for loops 1379 extract ForSubstBody from ForReadMore 1380 clean up ForReadMore 1381 simplify termination condition for .for loop 1382 add error handling for .for loop items 1383 job.c: re-export variables from the actual make process 1384 parse.c: remove mmap for loading files, only allow files < 1 GiB 1385 fix edge case in := with undefined in variable name 1386 skip variable expansion in ParseDependencyTargetWord 1387 var.c: split ExportVar into separate functions 1388 clean up code in extracted ExportVar functions 1389 remove dead code from ApplyModifiersIndirect 1390 split Var_Subst into easily understandable functions 1391 clean up VarParseResult constants 1392 13932020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1394 1395 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1396 13972020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1398 1399 * VERSION (_MAKE_VERSION): 20201222 1400 Merge with NetBSD make, pick up 1401 o make DEBUG macro return boolean 1402 o parse.c: fix assertion failure for files without trailing newline 1403 o var.c: allow .undef to undefine multiple variables at once 1404 remove excess newline from parse errors 1405 14062020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1407 1408 * VERSION (_MAKE_VERSION): 20201221 1409 Merge with NetBSD make, pick up 1410 o some unit-test updates 1411 14122020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1413 1414 * VERSION (_MAKE_VERSION): 20201220 1415 Merge with NetBSD make, pick up 1416 o more unit tests 1417 o return FStr from Var_Parse and Var_Value 1418 o spell nonexistent consistently 1419 o add str_basename to reduce duplicate code 1420 o compat.c: fix .ERROR_TARGET in compat -k mode 1421 extract InitSignals from Compat_Run 1422 extract UseShell from Compat_RunCommand 1423 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1424 o for.c: rename ForIterate to ForReadMore 1425 o hash.c: clean up hash function for HashTable 1426 o lst.c: rename Vector.priv_cap to cap 1427 o main.c: remove constant parameter from MakeMode 1428 o make.c: use symbolic time for 0 in Make_Recheck 1429 extract MakeChildren from MakeStartJobs 1430 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1431 fix error message for .info/.warning/.error without argument 1432 extract Var_Undef from ParseDirective 1433 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1434 rename mode constants for ParseGetLine to be more expressive 1435 reduce debugging details in Parse_SetInput 1436 fix line numbers in .for loops 1437 split ParseGetLine into separate functions 1438 fix garbled output for failed shell command 1439 var.c: remove redundant assignment in ApplyModifier_SysV 1440 error out on unknown variable modifiers at parse time 1441 remove wrong error message for indirect modifier in lint mode 1442 extract ApplySingleModifier from ApplyModifiers 1443 use FStr for memory management in Var_SetWithFlags 1444 extract SetVar from Var_SetWithFlags 1445 use FStr in VarNew 1446 extract string functions from ApplyModifier_To 1447 error out if .undef has not exactly 1 argument 1448 extract Var_DeleteVar from Var_Delete 1449 extract Var_Undef from ParseDirective 1450 clean up memory management for expanding variable expressions 1451 14522020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1453 1454 * avoid %zu 1455 1456 * lst.c: avoid anonymous union 1457 1458 * VERSION (_MAKE_VERSION): 20201212 1459 Merge with NetBSD make, pick up 1460 o more unit tests 1461 o inline Targ_Ignore and Targ_Silent 1462 o split JobFlags into separate fields 1463 o remove const from function parameters (left overs from refactoring) 1464 o eliminate boolean argument of Var_Export 1465 o make API of Buf_Init simpler 1466 o rename ParseRunOptions to ParseCommandFlags 1467 o replace *line with line[0] 1468 o compat.c: fix wrong exit status for multiple failed main targets 1469 refactor Compat_Run to show the error condition more clearly 1470 don't make .END if the main targets already failed (-k mode) 1471 fix exit status in -k mode if a dependency fails 1472 o for.c: clean up Buf_AddEscaped in .for loops 1473 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1474 make Job_Touch simpler 1475 refactor JobFinish 1476 rename Shell.exitFlag to errFlag 1477 move Job.xtraced to ShellWriter 1478 make printing of shell commands independent from the job 1479 rename shell flags in struct Shell 1480 extract JobOpenTmpFile from JobStart 1481 rename RunFlags to CommandFlags 1482 split various Job.* into separate fields 1483 rename commandShell to shell 1484 extract InitShellNameAndPath from Shell_Init 1485 replace signal handling macros with local functions 1486 replace macro MESSAGE with local function 1487 parse.c: error out on null bytes in makefiles 1488 error out on misspelled directives 1489 rename IFile.nextbuf to readMore 1490 fix undefined behavior in ParseEOF 1491 str.c: remove redundant call to strlen in Str_Words 1492 var.c: error out on misspelled .unexport-env 1493 error out on misspelled .export directives 1494 extract ExportVars from Var_Export 1495 extract ExportVarsExpand from Var_Export 1496 eliminate boolean argument of Var_Export 1497 fix undefined behavior when exporting ${:U } 1498 rename Var_ExportVars to Var_ReexportVars 1499 rename Var_Export1 to ExportVar 1500 15012020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1502 1503 * VERSION (_MAKE_VERSION): 20201206 1504 Merge with NetBSD make, pick up 1505 o more unit tests 1506 o inline macros for debug logging 1507 o use consistent variable names for list nodes 1508 o define constants for enum zero-values 1509 o dir.c: use fixed format for debug output of the directory cache 1510 remove Dir_InitDir 1511 o lst.c: inline Lst_Enqueue, Vector_Done 1512 o meta.c: remove unused parameter from meta_needed 1513 o parse.c: rename parse functions 1514 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1515 o targ.c: don't concatenate identifiers in Targ_PrintType 1516 o var.c: remove comment decoration 1517 extract UnexportVars from Var_UnExport 1518 extract GetVarnamesToUnexport from Var_UnExport 1519 extract UnexportEnv from Var_UnExport 1520 extract UnexportVar from Var_UnExport 1521 move CleanEnv to UnexportVars 1522 replace pointer comparisons with enum 1523 add FStr to var.c to make memory handling simpler 1524 use FStr in Var_UnExport 1525 move type definitions in var.c to the top 1526 extract FreeEnvVar from Var_Parse 1527 extract ShuffleStrings from ApplyModifier_Order 1528 15292020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1530 1531 * VERSION (_MAKE_VERSION): 20201130 1532 Merge with NetBSD make, pick up 1533 o add unit tests for META MODE 1534 o reduce memory allocation for dirSearchPath, GNode.parents, 1535 GNode.children, OpenDirs 1536 o reduce pointer indirection for GNode.cohorts and 1537 GNode.implicitParents 1538 o remove pointer indirection from GNode.commands 1539 o inline Lst_ForEachUntil in meta mode 1540 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1541 clean up memory management for CachedDirs 1542 fix the reference count of dotLast going negative 1543 add debug logging for OpenDirs_Done 1544 extract CacheNewDir from Dir_AddDir 1545 add debug logging for reference counting of CachedDir 1546 rename some Dir functions to SearchPath 1547 o job.c: rename some global variables 1548 o main.c: reduce memory allocation in ReadBuiltinRules 1549 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1550 CmdOpts.makefiles 1551 Add .MAKE.UID and .MAKE.GID 1552 o make.c: reduce memory allocation for/in toBeMade, 1553 Make_ProcessWait, Make_ExpandUse 1554 o meta.c: reduce memory allocation in meta_oodate 1555 o parse.c: reduce memory allocations for parsing dependencies and 1556 targets 1557 o suff.c: reduce memory allocation in suffix handling 1558 15592020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1560 1561 * VERSION (_MAKE_VERSION): 20201124 1562 Merge with NetBSD make, pick up 1563 o .MAKE.{UID,GID} represent uid and gid running make. 1564 o fix error handling for .BEGIN and .END dependency in -k mode 1565 o fix missing "Stop." after failed .END node in -k mode 1566 o use properly typed comparisons in boolean contexts 1567 o replace a few HashTable_CreateEntry with HashTable_Set 1568 o add HashSet type 1569 o compat.c: split Compat_Make into smaller functions 1570 extract DebugFailedTarget from Compat_RunCommand 1571 o dir.c: refactor Dir_UpdateMTime 1572 migrate CachedDir.files from HashTable to HashSet 1573 o make.c: add high-level API for GNode.made 1574 15752020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1576 1577 * VERSION (_MAKE_VERSION): 20201122 1578 Merge with NetBSD make, pick up 1579 o rename GNode.context to vars 1580 o suff.c: cleanup and refactor 1581 rename some functions and vars to better reflect usage 1582 add high-level API for CandidateSearcher 1583 o targ.c: add more debug logging for suffix handling 1584 o more unit tests 1585 o add debug logging for setting and resetting the main target 1586 15872020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1588 1589 * VERSION (_MAKE_VERSION): 20201117 1590 Merge with NetBSD make, pick up 1591 o fix some unit-tests when .SHELL is dash 1592 o rename Targ_NewGN to GNode_New 1593 o make some GNode functions const 1594 o main.c: call Targ_Init before Var_Init 1595 cleanup PrintOnError, getTmpdir and ParseBoolean 1596 o var.c: fix error message of failed :!cmd! modifier 1597 15982020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1599 1600 * VERSION (_MAKE_VERSION): 20201114 1601 Merge with NetBSD make, pick up 1602 o replace a few HashTable_CreateEntry with HashTable_Set 1603 o clean up cached_stats 1604 o rename DEFAULT to defaultNode 1605 o remove redundant struct make_stat 1606 o cond.c: in lint mode, check for ".else <cond>" 1607 use bitset for IfState 1608 replace large switch with if-else in Cond_EvalLine 1609 o job.c: clean up JobExec, JobStart, JobDoOutput 1610 use stderr for error message about failed touch 1611 clean up Job_Touch 1612 replace macro DBPRINTF with JobPrintln 1613 rename JobState to JobStatus 1614 main.c: switch cache for realpath from GNode to HashTable 1615 clean up Fatal 1616 clean up InitDefSysIncPath 1617 use progname instead of hard-coded 'make' in warning 1618 rename Main_SetVarObjdir to SetVarObjdir 1619 make.1: document the -S option 1620 make.c: fix debug output for GNode details 1621 use symbolic names in debug output of GNodes 1622 16232020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1624 1625 * configure.in: fix --with-force-machine-arch 1626 1627 * VERSION (_MAKE_VERSION): 20201112 1628 Merge with NetBSD make, pick up 1629 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1630 checks in InitObjdir. Explicit .OBJDIR target always allows 1631 read-only directory. 1632 o cond.c: clean up Cond_EvalLine 1633 16342020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1635 1636 * VERSION (_MAKE_VERSION): 20201111 1637 Merge with NetBSD make, pick up 1638 o more unit-tests 1639 o style cleanup 1640 remove redundant parentheses from sizeof operator 1641 replace character literal 0 with '\0'. 1642 replace pointer literal 0 with NULL. 1643 remove redundant parentheses. 1644 replace (expr & mask) == 0 with !(expr & mask). 1645 use strict typing in conditions of the form !var 1646 o rename Make_OODate to GNode_IsOODate 1647 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1648 o rename Var_Set_with_flags to Var_SetWithFlags 1649 o rename dieQuietly to shouldDieQuietly 1650 o buf.c: make API of Buf_Init simpler 1651 o compat.c: clean up Compat_Make, Compat_RunCommand, 1652 CompatDeleteTarget and CompatInterrupt 1653 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1654 clean up CondParser_Comparison 1655 o main.c: rename getBoolean and s2Boolean 1656 rename MAKEFILE_PREFERENCE for consistency 1657 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1658 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1659 replace emptyString with allocated empty string 1660 error out on unclosed expressions after the colon 1661 16622020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1663 1664 * VERSION (_MAKE_VERSION): 20201101 1665 Merge with NetBSD make, pick up 1666 o negate NoExecute to GNode_ShouldExecute 1667 o job.c: rename JobMatchShell to FindShellByName 1668 extract EscapeShellDblQuot from JobPrintCommand 1669 extract ParseRunOptions from JobPrintCommand 1670 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1671 treat malformed :range, :ts and :[...] as errors 1672 add tests for the variable modifiers :[words] and :range 1673 16742020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1675 1676 * VERSION (_MAKE_VERSION): 20201031 1677 Merge with NetBSD make, pick up 1678 o format #include directives consistently 1679 o do not look up local variables like .TARGET anywhere else 1680 o main.c: Main_SetObjdir is first called for curdir which may be 1681 readonly 1682 reduce the scope where recursive expressions are detected 1683 remove redundant :tl from getBoolean 1684 clean up mkTempFile 1685 o meta.c: simplify memory allocation in meta_create and meta_oodate 1686 o parse.c: extract loadedfile_mmap from loadfile 1687 o trace.c: document possible undefined behavior with .CURDIR 1688 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1689 rename ismeta to is_shell_metachar 1690 remove debug logging for the :Q variable modifier 1691 rename VarIsDynamic to VarnameIsDynamic 1692 use consistent parameter order in varname parsing functions 1693 extract ParseVarnameLong from Var_Parse 1694 extract ParseVarnameShort from Var_Parse 1695 fix type of ParseModifierPart parameter delim 1696 extract IsEscapedModifierPart from ParseModifierPart 1697 clean up ModifyWords 1698 add test for combining the :@ and :? variable modifiers 1699 17002020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1701 1702 * VERSION (_MAKE_VERSION): 20201030 1703 Merge with NetBSD make, pick up 1704 o change char * to void * in Var_Value 1705 o make iterating over HashTable simpler 1706 o rename VAR_CMD to VAR_CMDLINE 1707 o cond.c: clean up is_separator 1708 fix parse error in string literal in conditional 1709 o main.c: do not use objdir that is not writable 1710 in lint mode, exit with error status on errors 1711 o parse.c: clean up StrContainsWord 1712 fix out-of-bounds pointer in ParseTrackInput 1713 o var.c: rename Str_SYSVMatch and its parameters 1714 remove unsatisfiable conditions in Var_Set_with_flags 1715 document where the variable name is expanded 1716 fix documentation for VARP_SUB_ONE 1717 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1718 document VAR_READONLY 1719 prevent appending to read-only variables 1720 extract MayExport from Var_Export1 1721 remove redundant evaluations in VarFind 1722 replace VarFindFlags with a simple Boolean 1723 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1724 17252020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1726 1727 * VERSION (_MAKE_VERSION): 20201028 1728 Merge with NetBSD make, pick up 1729 o rename defIncPath to defSysIncPath 1730 o initialize all CmdOpts fields 1731 o lst.c: inline Vector_Get 1732 o main.c: refactor main extract 1733 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1734 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1735 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1736 o parse.c: merge curFile into includes 1737 rename predecessor to order_pred 1738 sort ParseSpecial alphabetically 1739 remove unused, undocumented .NOEXPORT 1740 rename ParseSpecial enum values consistently 1741 rename some fields of struct IFile 1742 17432020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1744 1745 * VERSION (_MAKE_VERSION): 20201026 1746 Merge with NetBSD make, pick up 1747 o group the command line options and arguments into a struct 1748 o rename GNode.cmgn to youngestChild 1749 o rename hash functions to identify the type name 1750 o negate OP_NOP and rename it to GNode_IsTarget 1751 o add GNode_Path to access the path of a GNode 1752 o remove macros MIN and MAX 1753 o remove unused Lst_Find and Lst_FindFrom 1754 o arch.c: and make Arch_FindLib simpler 1755 clean up code layout 1756 make Arch_ParseArchive simpler 1757 o cond.c: inline CondFindStrMatch into FuncMake 1758 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1759 omit trailing space in debug output for expanding file patterns 1760 refactor DirMatchFiles 1761 document that the SearchPath of Dir_FindFile may be NULL 1762 remove UNCONST from Dir_Expand 1763 inline DirFindName 1764 o for.c: clean up code for handling .for loops 1765 o hash.c: print hash in debug log with fixed width 1766 clean up hash table functions 1767 reduce amount of string hashing 1768 o job.c: refactor JobDeleteTarget 1769 use proper enum constants for aborting 1770 convert result of JobStart from macros to enum 1771 convert abort reason macros to enum 1772 rework Job_CheckCommands to reduce indentation 1773 rename Shell fields 1774 add field names in declaration of DEFSHELL_CUSTOM 1775 convert JobState and JobFlags to enum types 1776 move handling of the "..." command to JobPrintCommands 1777 o lst.c: clean up 1778 refactor LstNodeNew 1779 remove Lst_Open, Lst_Next, Lst_Close 1780 remove code for circular lists from Lst_Next 1781 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1782 /dev/null or anything starting with "no" 1783 convert macros for debug flags into enum 1784 o make.c: inline Lst_Copy in Make_ExpandUse 1785 o meta.c: inline Lst_Find in meta_oodate 1786 make Lst_RemoveIf simpler in meta_oodate 1787 o parse.c: convert error level for Parse_Error to an enum 1788 o suff.c: properly terminate debug output with newline 1789 add more details to DEBUG_SRC log 1790 replace Dir_CopyDir with Dir_CopyDirSearchPath 1791 don't modify GNode name while rebuilding the suffix graph 1792 o var.c: reduce duplicate code in VarFind 1793 17942020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1795 1796 * VERSION (_MAKE_VERSION): 20201022 1797 Merge with NetBSD make, pick up 1798 o more refactoring and simplification to reduce code size 1799 o var.c: extract CanonicalVarname from VarFind 1800 o make.c: extract UpdateImplicitParentsVars from Make_Update 1801 o main.c: extract PrintVar from doPrintVars 1802 extract HandlePWD from main 1803 o lst.c: inline simple Lst getters 1804 remove unused Lst_ForEach 1805 o job.c: move struct Shell from job.h to job.c 1806 o more unit tests 1807 18082020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1809 1810 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1811 18122020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1813 1814 * VERSION (_MAKE_VERSION): 20201018 1815 Merge with NetBSD make, pick up 1816 o remove USE_IOVEC 1817 o rename some Hash_* apis to Hash* 1818 o replace execError with execDie 1819 o rename Lst_Init to Lst_New 1820 o add tags to enum types 1821 o rename Stack to Vector 1822 o parse.c: more refactoring 1823 o unit-tests: make some tests use line buffered stdout 1824 o unit-tests/Makefile: in meta mode do not make all tests depend on 1825 Makefile, it isn't necessary. 1826 18272020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1828 1829 * main.c: check for CTL_HW being defined. 1830 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1831 disable opt-debug-jobs test until it works on ubuntu 1832 1833 * VERSION (_MAKE_VERSION): 20201010 1834 Merge with NetBSD make, pick up 1835 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1836 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1837 o main.c: extract init_machine and init_machine_arch from main 1838 allow to disable debug logging options 1839 o parse.c: enable format string truncation warnings 1840 extract parsing of sources from ParseDoDependency 1841 split ParseDoSrc into smaller functions 1842 hide implementation details from Parse_DoVar 1843 clean up parsing of variable assignments 1844 split Parse_DoVar into manageable pieces 1845 don't modify the given line during Parse_DoVar 1846 fix out-of-bounds memory access in Parse_DoVar 1847 fix parsing of the :sh assignment modifier 1848 o var.c: rework memory allocation for the name of variables 1849 extract ApplyModifier_Literal into separate function 1850 in lint mode, reject modifiers without delimiter 1851 do not export variable names starting with '-' 1852 o fix double-free bug in -DCLEANUP mode 1853 o more cleanup to enable higher warnings level 1854 o more unit tests 1855 18562020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1857 1858 * VERSION (_MAKE_VERSION): 20201002 1859 Merge with NetBSD make, pick up 1860 o dir.c: use hash table for looking up open directories by name 1861 o main.c: clean up option handling 1862 o parse.c: add missing const for Parse_AddIncludeDir 1863 o var.c: ApplyModifier_To, update pp in each branch 1864 o remove redundant function prototypes 1865 o more unit tests 1866 18672020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1868 1869 * VERSION (_MAKE_VERSION): 20201001 1870 Merge with NetBSD make, pick up 1871 o compat.c: comment about "..." 1872 18732020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1874 1875 * VERSION (_MAKE_VERSION): 20200930 1876 Merge with NetBSD make, pick up 1877 o job.c: split Job.jobPipe into 2 separate fields 1878 replace Lst_Open with direct iteration 1879 o lst.c: remove redundant assertions 1880 o targ.c: replace Lst_Open with direct iteration 1881 o var.c: fix bug in evaluation of indirect variable modifiers 1882 extract ApplyModifier_Quote into separate function 1883 o make debug logging simpler 1884 18852020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1886 1887 * VERSION (_MAKE_VERSION): 20200927 1888 Merge with NetBSD make, pick up 1889 o parse.c: ensure parse errors result in 'stopped in' message. 1890 o compat.c: make parameter of Compat_RunCommand const 1891 o main.c: extract InitVarTarget from main 1892 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1893 refactor ParseDoDependency 1894 o var.c: Var_Subst no longer returns string result 1895 rename Var_ParsePP back to Var_Parse 1896 in lint mode, improve error handling for undefined variables 1897 extract ParseVarname from Var_Parse 1898 o rename Lst_ForEach to Lst_ForEachUntil 1899 o inline Lst_ForEachUntil in several cases 1900 o clean up API for finding and creating GNodes 1901 o fix assertion failure in -j mode with .END node 1902 o inline and remove LstNode_Prev and LstNode_Next 1903 o use fine-grained type names for lists and their nodes 1904 o more unit tests 1905 19062020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1907 1908 * VERSION (_MAKE_VERSION): 20200911 1909 Merge with NetBSD make, pick up 1910 o cond.c: split EvalComparison into smaller functions 1911 reorder parameters of condition parsing functions 1912 reduce code size in CondParser_Eval 1913 rename CondGetString to CondParser_String 1914 add CondLexer_SkipWhitespace 1915 group the condition parsing state into a struct 1916 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1917 o migrate Var_Parse to Var_ParsePP 1918 o add wrappers around ctype.h functions 1919 o lst.c: use a stack instead of a list for the nested include path 1920 o more unit tests 1921 19222020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1923 1924 * make-bootstrap.sh.in: adjust object list 1925 19262020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1927 1928 * VERSION (_MAKE_VERSION): 20200902 1929 Merge with NetBSD make, pick up 1930 o use make_stat to ensure no confusion over valid fields 1931 returned by cached_stat 1932 o var.c: make VarQuote const-correct 1933 o add unit tests for .for 1934 19352020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1936 1937 * VERSION (_MAKE_VERSION): 20200901 1938 Merge with NetBSD make, pick up 1939 o rename Hash_Table fields 1940 o make data types in Dir_HasWildcards more precise 1941 19422020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1943 1944 * VERSION (_MAKE_VERSION): 20200831 1945 Merge with NetBSD make, pick up 1946 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1947 o lst.c: Lst_Open renable assert that list isn't open 1948 o unit test for .TARGET dependent flags 1949 o var.c: fix aliasing bug in VarUniq 1950 o more unit tests for :u 1951 19522020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1953 1954 * VERSION (_MAKE_VERSION): 20200830 1955 Merge with NetBSD make, pick up 1956 o allow for strict type checking for Boolean 1957 o Var_Parse never returns NULL 1958 o Var_Subst never returns NULL 1959 o Lst_Find now takes boolean match function 1960 o rename Lst_Memeber to Lst_FindDatum 1961 o rename LstNode functions to match their type 1962 o rename GNode.iParents to implicitParents 1963 o fix assertion failure for .SUFFIXES in archives 1964 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1965 remove unreachable code from CompatRunCommand 1966 o main.c: simplify getBoolean 1967 o stc.c: replace brk_string with simpler Str_Words 1968 o suff.c: add debug macros 1969 19702020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1971 1972 * VERSION (_MAKE_VERSION): 20200828 1973 Merge with NetBSD make, pick up 1974 o lst.c: inline LstIsValid and LstNodeIsValid 1975 o remove trailing S from Lst function names after migration complete 1976 o more comment cleanup/clarification 1977 o suff.c: clean up suffix handling 1978 o more unit tests 1979 19802020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1981 1982 * VERSION (_MAKE_VERSION): 20200826 1983 Merge with NetBSD make, pick up 1984 o enum.c: distinguish between bitsets containing flags and 1985 ordinary enums 1986 o var.c: fix error message for ::!= modifier with shell error 1987 o fix bugs in -DCLEANUP mode 1988 19892020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1990 1991 * VERSION (_MAKE_VERSION): 20200824 1992 Merge with NetBSD make, pick up 1993 o in debug mode, print GNode details in symbols 1994 19952020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1996 1997 * VERSION (_MAKE_VERSION): 20200823 1998 Merge with NetBSD make, pick up 1999 o lst.c: more asserts, 2000 make args to Lst_Find match others. 2001 o var.c: pass flags to VarAdd 2002 o arch.c: use Buffer 2003 o str.c: brk_string return size_t for nwords 2004 o more unit tests 2005 20062020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2007 2008 * VERSION (_MAKE_VERSION): 2009 Merge with NetBSD make, pick up 2010 o var.c: support for read-only variables eg .SHELL 2011 being the shell used to run scripts. 2012 o lst.c: more simplification 2013 o more documentation and style cleanup 2014 o more unit tests 2015 o ensure unit-test/Makefile is run by TEST_MAKE 2016 o reduce duplication of header inclusion 2017 20182020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2019 2020 * VERSION (_MAKE_VERSION): 20200821 2021 Merge with NetBSD make, pick up 2022 o lst.c: revert invalid assertion - but document it 2023 o dir.c: split Dir_Init into two functions 2024 20252020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2026 2027 * lst.c: needs inttypes.h on Linux 2028 2029 * VERSION (_MAKE_VERSION): 20200820 2030 Merge with NetBSD make, pick up 2031 o make.1: clarify some passages 2032 o var.c: more cleanup, clarify comments 2033 o make_malloc.c: remove unreachable code 2034 o cond.c: make CondGetString easier to debug 2035 o simplify list usage 2036 o unit-tests: more 2037 20382020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2039 2040 * VERSION (_MAKE_VERSION): 20200816 2041 Merge with NetBSD make, pick up 2042 o refactor unit-tests to be more fine grained 2043 not all tests moved yet 2044 20452020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2046 2047 * VERSION (_MAKE_VERSION): 20200814 2048 Merge with NetBSD make, pick up 2049 o more str_concat variants 2050 o more enums for flags 2051 o var.c: cleanup for higher warnings level 2052 20532020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2054 2055 * VERSION (_MAKE_VERSION): 20200810 2056 Merge with NetBSD make, pick up 2057 o more unit tests 2058 o general comment and style cleanup 2059 20602020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2061 2062 * VERSION (_MAKE_VERSION): 20200808 2063 Merge with NetBSD make, pick up 2064 o enum.[ch]: streamline, enums for use in flags and debug output 2065 o cond.c: cleanup 2066 o var.c: reduce duplicate code for modifiers 2067 debug logging for Var_Parse 2068 more detailed debug output 2069 o more unit tests 2070 20712020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2072 2073 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2074 so I can run tests in meta mode 2075 supress extra noise if in meta mode 2076 2077 * VERSION (_MAKE_VERSION): 20200806 2078 Merge with NetBSD make, pick up 2079 o parse.c: remove VARE_WANTRES for LINT 2080 we just want to check parsing (for now). 2081 20822020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2083 2084 * VERSION (_MAKE_VERSION): 20200805 2085 Merge with NetBSD make, pick up 2086 o make.1: Rework the description of dependence operators 2087 20882020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2089 2090 * VERSION (_MAKE_VERSION): 20200803 2091 Merge with NetBSD make, pick up 2092 o revert some C99 usage, for max portability 2093 o unit-tests/lint 2094 20952020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2096 2097 * VERSION (_MAKE_VERSION): 20200802 2098 Merge with NetBSD make, pick up 2099 o more unit tests 2100 21012020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2102 2103 * Remove NetBSD specific plumbing from unit-tests/Makefile 2104 2105 * VERSION (_MAKE_VERSION): 20200801 2106 Merge with NetBSD make, pick up 2107 o make Var_Value return const 2108 o size_t for buf sizes 2109 o optimize some buffer operations - avoid strlen 2110 21112020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2112 2113 * VERSION (_MAKE_VERSION): 20200731 2114 Merge with NetBSD make, pick up 2115 o var.c: fix undefinded behavior for incomplete :t modifier 2116 fixes unit-test/moderrs on Ubuntu 2117 o parse.c: When parsing variable assignments other than := 2118 if DEBUG(LINT) test substition of value, so we get a file and 2119 line number in the resulting error. 2120 o dir.c: fix parsing of nested braces in dependency lines 2121 add unit-tests 2122 21232020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2124 2125 * VERSION (_MAKE_VERSION): 20200730 2126 Merge with NetBSD make, pick up 2127 o var.c: minor cleanup 2128 o unit-tests: more tests to improve code coverage 2129 21302020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2131 2132 * VERSION (_MAKE_VERSION): 20200728 2133 Merge with NetBSD make, pick up 2134 o var.c: more optimizations 2135 21362020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2137 2138 * VERSION (_MAKE_VERSION): 20200726 2139 Merge with NetBSD make, pick up 2140 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2141 o lots of function comment updates 2142 o var.c: more optimizations 2143 o make return of Var_Parse const 2144 21452020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2146 2147 * VERSION (_MAKE_VERSION): 20200720 2148 Merge with NetBSD make, pick up 2149 o DEBUG_HASH report stats at end and tone down the noise 2150 o var.c: each flag type gets its own prefix. 2151 move SysV string matching to var.c 2152 make ampersand in ${VAR:from=to&} an ordinary character 2153 cleanup and simplify implementation of modifiers 2154 o make.1: move documentation for assignment modifiers 2155 21562020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2157 2158 * VERSION (_MAKE_VERSION): 20200718 2159 Merge with NetBSD make, pick up 2160 o DEBUG_HASH to see how well the hash tables are working 2161 21622020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2163 2164 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2165 21662020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2167 2168 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2169 2170 * VERSION (_MAKE_VERSION): 20200710 2171 Merge with NetBSD make, pick up 2172 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2173 o meta.c: target flagged .META is out-of-date if meta file missing 2174 21752020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2176 2177 * VERSION (_MAKE_VERSION): 20200709 2178 Merge with NetBSD make, pick up 2179 o cond.c: fix for compare_expression when doEval=0 2180 o unit-tests/Makefile: rework 2181 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2182 21832020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2184 2185 * VERSION (_MAKE_VERSION): 20200704 2186 Merge with NetBSD make, pick up 2187 (most of this by rillig@) 2188 o lots of style and white-space cleanup 2189 o lots more unit tests for variable modifiers 2190 o simplified description of some functions 2191 o str.c: refactor Str_Match 2192 o var.c: debugging output for :@ 2193 constify VarModify parameter 2194 fix :hash modifier on 16-bit platforms 2195 remove unnecessary forward declarations 2196 refactor ApplyModifier_SysV to have less indentation 2197 simplify code for :E and :R 2198 clean up code for :H and :T 2199 refactor ApplyModifiers 2200 2201 * var.c: we need stdint.h on some platforms to get uint32_t 2202 * unit-test/Makefile: we need to supress the specific error 2203 for RE substitution error in modmisc, since it varies accross 2204 different OS. 2205 22062020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2207 2208 * VERSION (_MAKE_VERSION): 20200702 2209 Merge with NetBSD make, pick up 2210 o var.c: more improvements to avoiding unnecessary evaluation 2211 use enums for flags 2212 o remove flags arg to Var_Set which outside of var.c is always 0 2213 22142020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2215 2216 * VERSION (_MAKE_VERSION): 20200701 2217 Merge with NetBSD make, pick up 2218 o var.c: with change to cond.c; ensure that nested variables 2219 within a variable name are expanded. 2220 o unit-tests/varmisc.mk: test for nested varname 2221 22222020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2223 2224 * VERSION (_MAKE_VERSION): 20200629 2225 Merge with NetBSD make, pick up 2226 o cond.c: do not eval unnecessary terms of conditionals. 2227 22282020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2229 2230 * VERSION (_MAKE_VERSION): 20200625 2231 Merge with NetBSD make, pick up 2232 o meta.c: report error if lseek in filemon_read fails 2233 22342020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2235 2236 * VERSION (_MAKE_VERSION): 20200622 2237 Merge with NetBSD make, pick up 2238 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2239 22402020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2241 2242 * VERSION (_MAKE_VERSION): 20200619 2243 Merge with NetBSD make, pick up 2244 o str.c: performance improvement for Str_Match for multiple '*' 2245 o dieQuietly: supress the failure output from make 2246 when failing node is a sub-make or a sibling failed. 2247 This cuts down greatly on unhelpful noise at the end of 2248 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2249 22502020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2251 2252 * FILES: add LICENSE to appease some packagers. 2253 This is an attempt to fairly represent the license on almost 2254 200 files, which are almost all BSD-3-Clause 2255 The few exceptions being more liberal. 2256 2257 * VERSION (_MAKE_VERSION): 20200610 2258 Merge with NetBSD make, pick up 2259 o unit test for :Or 2260 22612020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2262 2263 * VERSION (_MAKE_VERSION): 20200606 2264 Merge with NetBSD make, pick up 2265 o make.1: cleanup 2266 2267 * Makefile: fix depends for main.o which broke MAKE_VERSION 2268 22692020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2270 2271 * VERSION (_MAKE_VERSION): 20200605 2272 Merge with NetBSD make, pick up 2273 o dir.c: cached_stats - don't confuse stat and lstat results. 2274 o var.c: add :Or for reverse sort. 2275 22762020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2277 2278 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2279 also if --with-filemon= specifies path to filemon.h 2280 set use_filemon=dev 2281 * dirname.c: remove include of namespace.h 2282 22832020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2284 2285 * VERSION (_MAKE_VERSION): 20200517 2286 Merge with NetBSD make, pick up 2287 o modified dollar tests to avoid shell dependencies 2288 o new tests for .INCLUDEFROM 2289 22902020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2291 2292 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2293 to not depend so much on shell behavior 2294 22952020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2296 2297 * VERSION (_MAKE_VERSION): 20200510 2298 Merge with NetBSD make, pick up 2299 o unit test for dollar handling 2300 23012020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2302 2303 * VERSION (_MAKE_VERSION): 20200506 2304 Merge with NetBSD make, pick up 2305 o str.c: empty string does not match % pattern 2306 plus unit-test changes 2307 23082020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2309 2310 * VERSION (_MAKE_VERSION): 20200504 2311 May the 4th be with you 2312 Merge with NetBSD make, pick up 2313 o var.c: import handling of old sysV style modifier using '%' 2314 o str.c: refactor brk_string 2315 o unit-tests: add test case for lazy conditions 2316 23172020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2318 2319 * VERSION (_MAKE_VERSION): 20200418 2320 2321 * configure.in: use_makefile=no for Cygwin et al. 2322 case insensitive filesystems just don't work if both 2323 makefile and Makefile exist. 2324 NOTE: bmake does not support Cygwin and likely never will, 2325 but if brave souls want to try it - help them out. 2326 23272020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2328 2329 * VERSION (_MAKE_VERSION): 20200402 2330 Merge with NetBSD make, pick up 2331 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2332 a blank command is perfectly valid. 2333 23342020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2335 2336 * VERSION (_MAKE_VERSION): 20200330 2337 Merge with NetBSD make, pick up 2338 o make.h: extern debug_file 2339 23402020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2341 2342 * VERSION (_MAKE_VERSION): 20200318 2343 Merge with NetBSD make, pick up 2344 o meta.c: meta_oodate, check for corrupted meta file 2345 earlier and more often. 2346 23472020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2348 2349 * VERSION (_MAKE_VERSION): 20200220 2350 23512020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2352 2353 * boot-strap: unset MAKEFLAGS 2354 23552020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2356 2357 * VERSION (_MAKE_VERSION): 20200212 2358 * meta.c: meta_compat_parent check for USE_FILEMON 2359 patch from Soeren Tempel 2360 23612020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2362 2363 * VERSION: 20200205 2364 Merge with NetBSD make, pick up 2365 o meta.c: fix compat mode, need to call meta_job_output() 2366 o job.c: extra fds for meta mode not needed if using filemon_dev 2367 23682020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2369 2370 * VERSION: 20200122 2371 Merge with NetBSD make, pick up 2372 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2373 returns FALSE. 2374 23752020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2376 2377 * VERSION: 20200121 2378 Merge with NetBSD make, pick up 2379 o filemon/filemon_{dev,ktrace}.c: allow selection of 2380 filemon implementation. filemon_dev.c uses the kernel module 2381 while filemon_ktrace.c leverages the fktrace api available in 2382 NetBSD. filemon_ktrace.c can hopefully form the basis for 2383 adding support for other tracing mechanisms such as strace on 2384 Linux. 2385 o meta.c: when target is out-of-date per normal make rules 2386 record value of .OODATE in meta file. 2387 23882019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2389 2390 * VERSION: 20190926 2391 Merge with NetBSD make, pick up 2392 o parse.c: don't pass NULL to realpath(3) 2393 some versions cannot handle it. 2394 23952019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2396 2397 * VERSION: 20190409 2398 Merge with NetBSD make, pick up 2399 o parse.c: ParseDoDependency: free paths rather than assert 2400 24012018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2402 2403 * VERSION: 20181222 2404 2405 * configure.in: add --without-makefile to avoid generating 2406 makefile and make-bootstrap.sh 2407 2408 * include Makefile.inc if it exists 2409 2410 * Use Makefile and Makefile.config.in in unit-tests 2411 so we can use just: make obj && make && make test 2412 when bmake is already available. 2413 We add --without-makefile to CONFIGURE_ARGS in this case. 2414 2415 * tweak bsd.after-import.mk (captures Makefile.config etc 2416 after import to FreeBSD for example) to cope with all the above. 2417 24182018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2419 2420 * VERSION: 20181221 2421 Merge with NetBSD make, pick up 2422 o parse.c: ParseVErrorInternal use .PARSEDIR 2423 and apply if relative, and then use .PARSEFILE 2424 for consistent result. 2425 24262018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2427 2428 * VERSION: 20181220 2429 Merge with NetBSD make, pick up 2430 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2431 is relative 2432 o var.c: avoid SEGFAULT in .unexport-env 2433 when MAKELEVEL is not set 2434 24352018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2436 2437 * VERSION: 20181216 2438 Merge with NetBSD make, pick up 2439 o fix for unit-tests/varquote.mk on Debian 2440 24412018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2442 2443 * VERSION: 20180919 2444 Merge with NetBSD make, pick up 2445 o var.c: add :q 2446 o dir.c: cleanup caching of stats 2447 24482018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2449 2450 * Makefile.config.in: use += where it makes sense. 2451 24522018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2453 2454 * VERSION: 20180512 2455 Merge with NetBSD make, pick up 2456 o job.c: skip polling job token pipe 2457 24582018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2459 2460 * VERSION: 20180405 2461 Merge with NetBSD make, pick up 2462 o parse.c: be more cautious about detecting depenency line 2463 rather than sysV style include. 2464 24652018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2466 2467 * VERSION: 20180222 2468 Merge with NetBSD make, pick up 2469 o parse.c: avoid calling sysconf for every call to loadfile 2470 24712018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2472 2473 * VERSION: 20180218 2474 Merge with NetBSD make, pick up 2475 o var.c: Var_Set handle NULL value anytime. 2476 24772018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2478 2479 * VERSION: 20180212 2480 Merge with NetBSD make, pick up 2481 o parse.c: do not treat .info as warning with -W 2482 24832017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2484 2485 * VERSION: 20171207 2486 Merge with NetBSD make, pick up 2487 o var.c: Var_Append use Var_Set if var not previously set 2488 so that VAR_CMD is handled correctly. 2489 Add a suitable unit-test. 2490 24912017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2492 2493 * VERSION (_MAKE_VERSION): 20171126 2494 2495 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2496 since AC_TRY_COMPILE puts input inside main() 2497 which upsets modern compilers. 2498 24992017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2500 2501 * VERSION: 20171118 2502 Merge with NetBSD make, pick up 2503 o var.c: do not append to variable set on command line 2504 add unit-test to catch this. 2505 25062017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2507 2508 * VERSION: 20171028 2509 Merge with NetBSD make, pick up 2510 o main.c: ignore empty MAKEOBJDIR 2511 2512 * Makefile.config.in: 2513 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2514 25152017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2516 2517 * VERSION: 20171005 2518 2519 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2520 consistent result on some platforms. 2521 25222017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2523 2524 * machine.sh: entry for AIX 2525 25262017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2527 2528 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2529 to a file that can be included by configure as well as make. 2530 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2531 25322017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2533 2534 * Makefile (_MAKE_VERSION): 20170810 2535 Merge with NetBSD make, pick up 2536 o meta.c: if target is in subdir we only need subdir name in 2537 meta_name. 2538 25392017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2540 2541 * Makefile (_MAKE_VERSION): 20170720 2542 Merge with NetBSD make, pick up 2543 o compat.c: pass SIGINT etc onto child and wait for it to exit 2544 before we self-terminate. 2545 25462017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2547 2548 * Makefile (_MAKE_VERSION): 20170711 2549 forgot to update after merge on 20170708 ;-) 2550 o main.c: refactor to reduce size of main function. 2551 add -v option to always fully expand values. 2552 o meta.c: ensure command output in meta file has ending newline 2553 even when filemon not being used. 2554 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2555 pathname via ':L' since any ':' in pathname breaks that. 2556 Instead set a '${.p.}' to pathname in the target context and 2557 use that. 2558 25592017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2560 2561 * Makefile (_MAKE_VERSION): 20170510 2562 Merge with NetBSD make, pick up 2563 o main.c: Main_SetObjdir: ensure buf2 is in scope 2564 25652017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2566 2567 * Makefile (_MAKE_VERSION): 20170505 2568 see mk/ChangeLog 2569 25702017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2571 2572 * parse.c: not everyone has stdint.h 2573 25742017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2575 2576 * Makefile (_MAKE_VERSION): 20170501 2577 see mk/ChangeLog 2578 25792017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2580 2581 * Makefile (_MAKE_VERSION): 20170421 2582 Merge with NetBSD make, pick up 2583 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2584 25852017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2586 2587 * Makefile (_MAKE_VERSION): 20170420 2588 Merge with NetBSD make, pick up 2589 o main.c: only use -C arg "as is" if it contains no 2590 relative component. 2591 25922017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2593 2594 * Makefile (_MAKE_VERSION): 20170418 2595 Merge with NetBSD make, pick up 2596 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2597 25982017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2599 2600 * Makefile (_MAKE_VERSION): 20170417 2601 Merge with NetBSD make, pick up 2602 o fixes a number of coverity complaints 2603 - check return value of fseek, fcntl 2604 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2605 JobPrintCommand, ParseTraditionalInclude 2606 - use bmake_malloc() where NULL is not tollerated 2607 - use MAKE_ATTR_UNUSED rather that kludges like 2608 return(unused ? 0 : 0) 2609 - use purge_cached_realpaths() rather than abuse cached_realpath() 2610 26112017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2612 2613 * Makefile (_MAKE_VERSION): 20170413 2614 Merge with NetBSD make, pick up 2615 o main.c: when setting .OBJDIR ignore '$' in paths. 2616 2617 * job.c: use MALLOC_OPTIONS to set malloc_options. 2618 26192017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2620 2621 * Makefile (_MAKE_VERSION): 20170411 2622 Merge with NetBSD make, pick up 2623 o str.c: Str_Match: allow [^a-z] to behave as expected. 2624 26252017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2626 2627 * Makefile (_MAKE_VERSION): 20170326 2628 Merge with NetBSD make, pick up 2629 o main.c: purge relative paths from realpath cache when .OBJDIR 2630 is changed. 2631 26322017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2633 2634 * Makefile (_MAKE_VERSION): 20170311 2635 Merge with NetBSD make, pick up 2636 o main.c: only use -C arg "as is" if it starts with '/'. 2637 26382017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2639 2640 * Makefile (_MAKE_VERSION): 20170301 2641 Merge with NetBSD make, pick up 2642 o main.c: use -C arg "as is" rather than getcwd() 2643 if they identify the same directory. 2644 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2645 26462017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2647 2648 * Makefile (_MAKE_VERSION): 20170201 2649 Merge with NetBSD make, pick up 2650 o var.c: allow :_=var and avoid use of special context. 2651 26522017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2653 2654 * Makefile (_MAKE_VERSION): 20170130 2655 Merge with NetBSD make, pick up 2656 o var.c: add :range and :_ 2657 o main.c: partially initialize Dir_* before MainParseArgs() 2658 can be called. 2659 If -V, skip Main_ExportMAKEFLAGS() 2660 26612017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2662 2663 * Makefile (_MAKE_VERSION): 20170114 2664 Merge with NetBSD make, pick up 2665 o var.c: allow specifying the utc value used by :{gm,local}time 2666 26672016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2668 2669 * Makefile (_MAKE_VERSION): 20161212 2670 Merge with NetBSD make, pick up 2671 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2672 26732016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2674 2675 * Makefile (_MAKE_VERSION): 20161209 2676 Merge with NetBSD make, pick up 2677 o main.c: cleanup setting of .OBJDIR 2678 o parse.c: avoid coredump from (var)=val 2679 26802016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2681 2682 * Makefile (_MAKE_VERSION): 20161126 2683 Merge with NetBSD make, pick up 2684 o make.c: Make_OODate: report src node name if path not set 2685 26862016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2687 2688 * Makefile (_MAKE_VERSION): 20160926 2689 Merge with NetBSD make, pick up 2690 o support for .DELETE_ON_ERROR: (remove targets that fail) 2691 26922016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2693 2694 * Makefile MAN: tweak .Dt to match ${PROG} 2695 26962016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2697 2698 * Makefile (_MAKE_VERSION): 20160818 2699 its a neater number; pick up whitespace fixes to man page. 2700 27012016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2702 2703 * Makefile (_MAKE_VERSION): 20160817 2704 Merge with NetBSD make, pick up 2705 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2706 so we can call it before adding entries to missingFiles. 2707 Thus we do not track files we have been told to ignore. 2708 27092016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2710 2711 * Makefile (_MAKE_VERSION): 20160815 2712 Merge with NetBSD make, pick up 2713 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2714 pathnames, and skip if the expansion is empty. 2715 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2716 27172016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2718 2719 * Makefile (_MAKE_VERSION): 20160812 2720 Merge with NetBSD make, pick up 2721 o meta.c: remove all missingFiles entries that match a deleted 2722 dir. 2723 o main.c: set .ERROR_CMD if possible. 2724 27252016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2726 2727 * Makefile (_MAKE_VERSION): 20160606 2728 Merge with NetBSD make, pick up 2729 o dir.c: extend mtimes cache to others via cached_stat() 2730 27312016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2732 2733 * Makefile (_MAKE_VERSION): 20160604 2734 Merge with NetBSD make, pick up 2735 o meta.c: missing filemon data is only relevant if we read a 2736 meta file. 2737 Also do not return oodate for a missing metafile if gn->path 2738 points to .CURDIR 2739 27402016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2741 2742 * Makefile (_MAKE_VERSION): 20160602 2743 Merge with NetBSD make, pick up 2744 o cached_realpath(): avoid hitting filesystem more than necessary. 2745 o meta.c: refactor need_meta decision, add knobs for 2746 missing meta file and filemon data wrt out-of-datedness. 2747 27482016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2749 2750 * Makefile (_MAKE_VERSION): 20160528 2751 2752 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2753 27542016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2755 2756 * Makefile (_MAKE_VERSION): 20160512 2757 Merge with NetBSD make, pick up 2758 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2759 this is useful for gcov builds. 2760 o propagate errors from filemon(4). 2761 27622016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2763 2764 * Makefile (_MAKE_VERSION): 20160509 2765 Merge with NetBSD make, pick up 2766 o remove use of non-standard types u_int etc. 2767 o meta.c: apply realpath() before matching against metaIgnorePaths 2768 27692016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2770 2771 * Makefile (_MAKE_VERSION): 20160404 2772 Merge with NetBSD make, pick up 2773 o allow makefile to set .MAKE.JOBS 2774 2775 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2776 27772016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2778 2779 * Makefile (_MAKE_VERSION): 20160315 2780 Merge with NetBSD make, pick up 2781 o fix handling of archive members 2782 27832016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2784 2785 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2786 with checks for ${MAKE_VERSION} 2787 27882016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2789 2790 * Makefile (MAKE_VERSION): 20160310 2791 Merge with NetBSD make, pick up 2792 o meta.c: treat missing Read file same as Write, incase we Delete it. 2793 27942016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2795 2796 * Makefile (MAKE_VERSION): 20160307 2797 Merge with NetBSD make, pick up 2798 o var.c: fix :ts\nnn to be octal by default. 2799 o meta.c: meta_finish() to cleanup memory. 2800 28012016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2802 2803 * Makefile (MAKE_VERSION): 20160226 2804 Merge with NetBSD make, pick up 2805 o meta.c: allow meta file for makeDepend if makefiles want it. 2806 28072016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2808 2809 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2810 for backwards compatability. 2811 2812 * Makefile (MAKE_VERSION): 20160220 2813 Merge with NetBSD make, pick up 2814 o var.c: add knob to control handling of '$$' in := 2815 28162016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2817 2818 * Makefile (MAKE_VERSION): 20160218 2819 Merge with NetBSD make, pick up 2820 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2821 post the changes to Var_Subst. 2822 Var_Subst now takes flags, and does not consume '$$' in := 2823 28242016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2825 2826 * Makefile (MAKE_VERSION): 20160217 2827 Merge with NetBSD make, pick up 2828 o var.c: preserve '$$' in := 2829 o parse.c: add .dinclude for handling included 2830 makefile like .depend 2831 28322015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2833 2834 * Makefile (MAKE_VERSION): 20151220 2835 Merge with NetBSD make, pick up 2836 o suff.c: re-initialize suffNull when clearing suffixes. 2837 28382015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2839 2840 * Makefile (MAKE_VERSION): 20151201 2841 Merge with NetBSD make, pick up 2842 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2843 o meta.c: meta_oodate: use lstat(2) for checking link target 2844 in case it is a symlink. 2845 o var.c: avoid calling brk_string and Var_Export1 with empty 2846 strings. 2847 28482015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2849 2850 * Makefile (MAKE_VERSION): 20151126 2851 Merge with NetBSD make, pick up 2852 o parse.c: ParseTrackInput don't access beyond 2853 end of old value. 2854 28552015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2856 2857 * Makefile (MAKE_VERSION): 20151022 2858 2859 * Add support for BSD/OS which lacks inttypes.h 2860 and really needs sys/param.h for sys/sysctl.h 2861 also 'type' is not a shell builtin. 2862 2863 * var.c: eliminate uint32_t and need for inttypes.h 2864 2865 * main.c: PrintOnError flush stdout before run .ERROR 2866 2867 * parse.c: cope with _SC_PAGESIZE not being defined. 2868 2869 28702015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2871 2872 * Makefile (MAKE_VERSION): 20151020 2873 Merge with NetBSD make, pick up 2874 o var.c: fix uninitialized var 2875 28762015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2877 2878 * var.c: the conditional expressions used with ':?' can be 2879 expensive, if already discarding do not evaluate or expand 2880 anything. 2881 28822015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2883 2884 * Makefile (MAKE_VERSION): 20151010 2885 Merge with NetBSD make, pick up 2886 o Add Boolean wantit flag to Var_Subst and Var_Parse 2887 when FALSE we know we are discarding the result and can 2888 skip operations like Cmd_Exec. 2889 28902015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2891 2892 * Makefile (MAKE_VERSION): 20151009 2893 Merge with NetBSD make, pick up 2894 o var.c: don't check for NULL before free() 2895 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2896 28972015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2898 2899 * Makefile (MAKE_VERSION): 20150910 2900 Merge with NetBSD make, pick up 2901 o main.c: with -w print Enter/Leaving messages for objdir too 2902 if necessary. 2903 o centralize shell metachar handling 2904 2905 * FILES: add metachar.[ch] 2906 29072015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2908 2909 * Makefile (MAKE_VERSION): 20150606 2910 Merge with NetBSD make, pick up 2911 o make.1: document .OBJDIR target 2912 29132015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2914 2915 * Makefile (MAKE_VERSION): 20150505 2916 Merge with NetBSD make, pick up 2917 o cond.c: be strict about lhs of comparison when evaluating .if 2918 but less so when called from variable expansion. 2919 o unit-tests/cond2.mk: test various error conditions 2920 29212015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2922 2923 * machine.sh (MACHINE): Add Bitrig 2924 patch from joerg@netbsd.org 2925 29262015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2927 2928 * Makefile (MAKE_VERSION): 20150418 2929 Merge with NetBSD make, pick up 2930 o job.c: use memmove() rather than memcpy() 2931 2932 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2933 case, so skip it. 2934 29352015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2936 2937 * Makefile (MAKE_VERSION): 20150411 2938 bump version - only mk/ changes. 2939 29402015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2941 2942 * Makefile (MAKE_VERSION): 20150410 2943 Merge with NetBSD make, pick up 2944 o document different handling of '-' in jobs mode vs compat 2945 o fix jobs mode so that '-' only applies to whole job 2946 when shell lacks hasErrCtl 2947 o meta.c: use separate vars to track lcwd and latestdir (read) 2948 per process 2949 29502015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2951 2952 * Makefile (MAKE_VERSION): 20150401 2953 Merge with NetBSD make, pick up 2954 o meta.c: close meta file in child 2955 2956 * Makefile: use BINDIR.bmake if set. 2957 Same for MANDIR and SHAREDIR 2958 Handy for testing release candidates 2959 in various environments. 2960 29612015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2962 2963 * move initialization of savederr to block where it is used 2964 to avoid spurious warning from gcc5 2965 29662014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2967 2968 * Makefile (MAKE_VERSION): 20141111 2969 just a cooler number 2970 29712014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2972 2973 * Makefile (MAKE_VERSION): 20141105 2974 Merge with NetBSD make, pick up 2975 o revert major overhaul of suffix handling 2976 and POSIX compliance - too much breakage 2977 and impossible to make backwards compatible. 2978 o we still have the new unit test structure which is ok. 2979 o meta.c ensure "-- filemon" is at start of line. 2980 29812014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2982 2983 * configure.in: test that result of getconf PATH_MAX is numeric 2984 and discard if not. Apparently needed for Hurd. 2985 29862014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2987 2988 * Makefile (MAKE_VERSION): 20140830 2989 Merge with NetBSD make, pick up 2990 o major overhaul of suffix handling 2991 o improved POSIX compliance 2992 o overhauled unit-tests 2993 29942014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2995 2996 * Makefile (MAKE_VERSION): 20140620 2997 Merge with NetBSD make, pick up 2998 o var.c return varNoError rather than var_Error for ::= modifiers. 2999 30002014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3001 3002 * Makefile (MAKE_VERSION): 20140522 3003 Merge with NetBSD make, pick up 3004 o var.c detect some parse errors. 3005 30062014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3007 3008 * Fix spelling errors - patch from Pedro Giffuni 3009 30102014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3011 3012 * Makefile (MAKE_VERSION): 20140214 3013 Merge with NetBSD make, pick up 3014 o .INCLUDEFROM* 3015 o use Var_Value to get MAKEOBJDIR[PREFIX] 3016 o reduced realloc'ign in brk_string. 3017 * configure.in: add a check for compiler supporting __func__ 3018 30192014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3020 3021 * boot-strap: ignore mksrc=none 3022 30232014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3024 3025 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3026 30272014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3028 3029 * Makefile (MAKE_VERSION): 20140101 3030 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3031 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3032 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3033 Hurd) 3034 * configure.in: Add AC_PREREQ and check for 3035 sysctl; patch from Andrew Shadura andrewsh at debian.org 3036 30372013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3038 3039 * Makefile (MAKE_VERSION): 20131010 3040 * lose the const from arg to systcl to avoid problems on older BSDs. 3041 30422013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3043 3044 * Makefile (MAKE_VERSION): 20131001 3045 Merge with NetBSD make, pick up 3046 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3047 hw.machine_arch if necessary. 3048 o meta.c: meta_oodate - need to look at src of Link and target 3049 of Move as well. 3050 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3051 provide __arraycount() if needed. 3052 30532013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3054 3055 * Makefile (MAKE_VERSION): 20130904 3056 Merge with NetBSD make, pick up 3057 o Add VAR_INTERNAL context, so that internal setting of 3058 MAKEFILE does not override value set by makefiles. 3059 30602013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3061 3062 * Makefile (MAKE_VERSION): 20130902 3063 Merge with NetBSD make, pick up 3064 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3065 30662013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3067 3068 * Makefile (MAKE_VERSION): 20130828 3069 Merge with NetBSD make, pick up 3070 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3071 o Call Job_SetPrefix() from Job_Init() so makefiles have 3072 opportunity to set .MAKE.JOB.PREFIX 3073 30742013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3075 3076 * Makefile (MAKE_VERSION): 20130730 3077 Merge with NetBSD make, pick up 3078 o Allow suppression of --- job -- tokens by setting 3079 .MAKE.JOB.PREFIX empty. 3080 30812013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3082 3083 * Makefile (MAKE_VERSION): 20130716 3084 Merge with NetBSD make, pick up 3085 o number of gmake compatibility tweaks 3086 -w for gmake style entering/leaving messages 3087 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3088 handle MAKEFLAGS containing only letters. 3089 o when overriding a GLOBAL variable on the command line, 3090 delete it from GLOBAL context so -V doesn't show the wrong 3091 value. 3092 30932013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3094 3095 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3096 3097 * Makefile (MAKE_VERSION): 20130706 3098 Merge with NetBSD make, pick up 3099 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3100 true so that CompatRunCommand() can use it, to ensure 3101 consistent behavior with jobs mode. 3102 o use MAKE_LEVEL_ENV to define the variable to propagate 3103 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3104 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3105 paths to ignore. 3106 31072013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3108 3109 * Makefile (MAKE_VERSION): 20130604 3110 Merge with NetBSD make, pick up 3111 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3112 to avoid leaking descriptors. 3113 31142013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3115 3116 * Makefile (MAKE_VERSION): 20130528 3117 Merge with NetBSD make, pick up 3118 o var.c: cleanup some left-overs in VarHash() 3119 31202013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3121 3122 * Makefile (MAKE_VERSION): 20130520 3123 generate manifest from component FILES rather than have to 3124 update FILES when mk/FILES changes. 3125 31262013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3127 3128 * Makefile (MAKE_VERSION): 20130518 3129 Merge with NetBSD make, pick up 3130 o suff.c: don't skip all processsing for .PHONY targets 3131 else wildcard srcs do not get expanded. 3132 o var.c: expand name of variable to delete if necessary. 3133 31342013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3135 3136 * Makefile (MAKE_VERSION): 20130330 3137 Merge with NetBSD make, pick up 3138 o meta.c: refine the handling of .OODATE in commands. 3139 Rather than suppress command comparison for the entire script 3140 as though .NOMETA_CMP had been used, only suppress it for the 3141 one command line. 3142 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3143 suppress comparison of a command without otherwise affecting it. 3144 o make.1: document that 3145 31462013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3147 3148 * Makefile (MAKE_VERSION): 20130321 3149 yes, not quite right but its a cooler number. 3150 Merge with NetBSD make, pick up 3151 o parse.c: fix ParseGmakeExport to be portable 3152 and add a unit-test. 3153 * meta.c: call meta_init() before makefiles are read and if built 3154 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3155 this let's makefiles test for support. 3156 Call meta_mode_init() to process .MAKE.MODE. 3157 31582013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3159 3160 * Makefile (MAKE_VERSION): 20130305 3161 Merge with NetBSD make, pick up 3162 o run .STALE: target when a dependency from .depend is missing. 3163 o job.c: add Job_RunTarget() for the above and .BEGIN 3164 31652013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3166 3167 * Makefile (MAKE_VERSION): 20130303 3168 Merge with NetBSD make, pick up 3169 o main.c: set .MAKE.OS to utsname.sysname 3170 o job.c: more checks for read and poll errors 3171 o var.c: lose VarChangeCase() saves 4% time 3172 31732013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3174 3175 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3176 want to use MAKEOBJDIR 3177 31782013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3179 3180 * Merge with NetBSD make, pick up 3181 o make.1: more info on how shell commands are handled. 3182 o job.c,main.c: detect write errors to job pipes. 3183 31842013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3185 3186 * Makefile (MAKE_VERSION): 20130123 3187 Merge with NetBSD make, pick up 3188 o meta.c: if script uses .OODATE and meta_oodate() decides 3189 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3190 o var.c: in debug output indicate which variabale modifiers 3191 apply to. 3192 o remove Check_Cwd logic the makefiles have been fixed. 3193 31942012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3195 3196 * makefile.in: add a simple makefile for folk who insist on 3197 ./configure; make; make install 3198 it just runs boot-strap 3199 * include mk/* to accommodate the above 3200 * boot-strap: re-work to accommodate the above 3201 mksrc defaults to $Mydir/mk 3202 allow op={configure,build,install,clean,all} 3203 add options to facilitate install 3204 * Makefile.config.in: just the bits set by configure 3205 * Makefile: bump version to 20121212 3206 abandon Makefile.in (NetBSD Makefile) 3207 leverage mk/* instead 3208 * configure.in: ensure srcdir is absolute 3209 32102012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3211 3212 * Makefile.in (MAKE_VERSION): 20121111 3213 fix generation of bmake.cat1 3214 32152012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3216 3217 * Makefile.in (MAKE_VERSION): 20121109 3218 Merge with NetBSD make, pick up 3219 o make.c: MakeBuildChild: return 0 so search continues if a 3220 .ORDER dependency is detected. 3221 o unit-tests/order: test the above 3222 32232012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3224 3225 * Makefile.in (MAKE_VERSION): 20121102 3226 Merge with NetBSD make, pick up 3227 o cond.c: allow cond_state[] to grow. 3228 In meta mode with a very large tree, we can hit the limit 3229 while processing dirdeps. 3230 32312012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3232 3233 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3234 32352012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3236 3237 * Makefile.in (MAKE_VERSION): 20121010 3238 o protect syntax that only bmake parses correctly. 3239 o remove auto setting of FORCE_MACHINE, use configure's 3240 --with-force-machine=whatever if that is desired. 3241 32422012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3243 3244 * Makefile.in: do not lose history from make.1 when generating bmake.1 3245 32462012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3247 3248 * Makefile.in (MAKE_VERSION): 20121007 3249 Merge with NetBSD make, pick up 3250 o compat.c: ignore empty commands - same as jobs mode. 3251 o make.1: document meta chars that cause use of shell 3252 32532012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3254 3255 * Makefile.in (MAKE_VERSION): bump version to 20120911 3256 * bsd.after-import.mk: include Makefile.inc early and allow it to 3257 override PROG 3258 32592012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3260 3261 * Makefile.in (MAKE_VERSION): bump version to 20120831 3262 Merge with NetBSD make, pick up 3263 o cast sizeof() to int for comparison 3264 o minor make.1 tweak 3265 32662012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3267 3268 * Makefile.in (MAKE_VERSION): bump version to 20120830 3269 Merge with NetBSD make, pick up 3270 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3271 o debug flag -dV causes -V to show raw value regardless. 3272 32732012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3274 3275 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3276 gets SRCTOP set. 3277 32782012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3279 3280 * Makefile.in (MAKE_VERSION): bump version to 20120704 3281 Merge with NetBSD make, pick up 3282 o Job_ParseShell should call Shell_Init if it has been 3283 previously called. 3284 * Makefile.in: set USE_META based on configure result. 3285 also .PARSEDIR is safer indicator of bmake. 3286 32872012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3288 3289 * Makefile.in: bump version to 20120626 3290 ensure CPPFLAGS is in CFLAGS 3291 * meta.c: avoid nested externs 3292 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3293 32942012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3295 3296 * Makefile.in (MAKE_VERSION): bump version to 20120620 3297 Merge with NetBSD make, pick up 3298 o make_malloc.c: avoid including make_malloc.h again 3299 3300 * Makefile.in: avoid bmake only syntax or protect with 3301 .if defined(.MAKE.LEVEL) 3302 * bsd.after-import.mk: replace .-include with .sinclude 3303 ensure? SRCTOP gets a value 3304 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3305 33062012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3307 3308 * Makefile.in (MAKE_VERSION): bump version to 20120612 3309 Merge with NetBSD make, pick up 3310 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3311 for greater portability. 3312 o unit-tests/forloop: check that .for works as expected wrt 3313 number of times and with "quoted strings". 3314 33152012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3316 3317 * Makefile.in (MAKE_VERSION): bump version to 20120606 3318 Merge with NetBSD make, pick up 3319 o compat.c: use kill(2) rather than raise(3). 3320 * configure.in: look for sys/dev/filemon 3321 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3322 and pass BOOTSTRAP_XTRAS to boot-strap. 3323 33242012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3325 3326 * Makefile.in (MAKE_VERSION): bump version to 20120604 3327 Merge with NetBSD make, pick up 3328 o util.c and var.c share same var for tracking if environ 3329 has been reallocated. 3330 o util.c provide getenv with setenv. 3331 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3332 when the shell actively strips .MAKE.* from the environment. 3333 We still refer to the variable always as .MAKE.LEVEL 3334 * util.c fix bug in findenv() was finding prefix of name. 3335 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3336 results in more reliable termination of all activity on many 3337 platforms. 3338 33392012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3340 3341 * Makefile.in (MAKE_VERSION): bump version to 20120602 3342 Merge with NetBSD make, pick up 3343 o for.c: handle quoted items in .for list 3344 33452012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3346 3347 * Makefile.in (MAKE_VERSION): bump version to 20120530 3348 Merge with NetBSD make, pick up 3349 o compat.c: ignore empty command. 3350 33512012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3352 3353 * Makefile.in (MAKE_VERSION): bump version to 20120524 3354 * FILES: add bsd.after-import.mk: 3355 A simple means of integrating bmake into a BSD build system. 3356 33572012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3358 3359 * Makefile.in (MAKE_VERSION): bump version to 20120520 3360 Merge with NetBSD make, pick up 3361 o increased limit for nested conditionals. 3362 33632012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3364 3365 * Makefile.in (MAKE_VERSION): bump version to 20120518 3366 Merge with NetBSD make, pick up 3367 o use _exit(2) in signal hanlder 3368 o Don't use the [dir] cache when building nodes that might have 3369 changed since the last exec. 3370 o Avoid nested extern declaration warnings. 3371 33722012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3373 3374 * meta.c (fgetLine): avoid %z - not portable. 3375 * parse.c: Since we moved include of sys/mman.h 3376 and def's of MAP_COPY etc. we got dups from a merge. 3377 33782012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3379 3380 * Makefile.in (MAKE_VERSION): bump version to 20120420 3381 Merge with NetBSD make, pick up 3382 o restore duplicate supression in .MAKE.MAKEFILES 3383 runtime saving can be significant. 3384 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3385 consumption up to 20%. 3386 33872012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3388 3389 * Makefile.in (MAKE_VERSION): bump version to 20120420 3390 Merge with NetBSD make, pick up 3391 o remove duplicate supression in .MAKE.MAKEFILES 3392 o improved dir cache behavior 3393 o gmake'ish export command 3394 33952012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3396 3397 * Makefile.in (MAKE_VERSION): bump version to 20120325 3398 Merge with NetBSD make, pick up 3399 o fix parsing of :[#] in conditionals. 3400 34012012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3402 3403 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3404 since some systems cannot cope with .Nx <version> 3405 34062011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3407 3408 * Makefile.in (MAKE_VERSION): bump version to 20111111 3409 Merge with NetBSD make, pick up 3410 o debug output for .PARSEDIR and .PARSEFILE 3411 34122011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3413 3414 * Makefile.in (MAKE_VERSION): bump version to 20111010 3415 34162011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3417 3418 * boot-strap: check for an expected file in the dirs we look for. 3419 * make-bootstrap.sh: pass on LDSTATIC 3420 34212011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3422 3423 * Makefile.in (MAKE_VERSION): bump version to 20111001 3424 Merge with NetBSD make, pick up 3425 o ensure .PREFIX is set for .PHONY 3426 and .TARGET set for .PHONY run via .END 3427 o __dead used consistently 3428 34292011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3430 3431 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3432 34332011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3434 3435 * Makefile.in (MAKE_VERSION): bump version to 20110905 3436 Merge with NetBSD make, pick up 3437 o meta_oodate: ignore makeDependfile 3438 34392011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3440 3441 * Makefile.in (MAKE_VERSION): bump version to 20110828 3442 Merge with NetBSD make, pick up 3443 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3444 as SILENT if a .meta file is created 3445 34462011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3447 3448 * Makefile.in (MAKE_VERSION): bump version to 20110818 3449 Merge with NetBSD make, pick up 3450 o in meta mode, if target flagged .META a missing .meta file 3451 means target is out-of-date 3452 o fixes for gcc 4.5 warnings 3453 o simplify job printing code 3454 34552011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3456 3457 * Makefile.in (MAKE_VERSION): bump version to 20110808 3458 Merge with NetBSD make, pick up 3459 o do not touch OP_SPECIAL targets when doing make -t 3460 34612011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3462 3463 * Makefile.in (MAKE_VERSION): bump version to 20110622 3464 Merge with NetBSD make, pick up 3465 o meta_oodate detect corrupted .meta file and declare oodate. 3466 * configure.in: add check for setsid 3467 34682011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3469 3470 * Merge with NetBSD make, pick up 3471 o unit-tests/modts now works on MirBSD 3472 34732011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3474 3475 * Makefile.in (MAKE_VERSION): bump version to 20110606 3476 Merge with NetBSD make, pick up 3477 o ApplyModifiers: when we parse a variable which is not 3478 the entire modifier string, or not followed by ':', do not 3479 consider it as containing modifiers. 3480 o loadfile: ensure newline at end of mapped file. 3481 34822011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3483 3484 * Makefile.in (MAKE_VERSION): bump version to 20110505 3485 Merge with NetBSD make, pick up 3486 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3487 of make's control. In meta mode, any generated file within 3488 said bailiwick, which is found to be missing, causes current 3489 target to be out-of-date. 3490 34912011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3492 3493 * Makefile.in (MAKE_VERSION): bump version to 20110411 3494 Merge with NetBSD make, pick up 3495 o when long modifiers fail to match, check sysV style. 3496 - add a test case 3497 34982011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3499 3500 * Makefile.in (MAKE_VERSION): bump version to 20110410 3501 Merge with NetBSD make, pick up 3502 o :hash - cheap 32bit hash of value 3503 o :localtime, :gmtime - use value as format string for strftime. 3504 35052011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3506 3507 * Makefile.in (MAKE_VERSION): bump version to 20110330 3508 mostly because its a cooler version. 3509 Merge with NetBSD make, pick up 3510 o NetBSD tags for meta.[ch] 3511 o job.c call meta_job_finish() after meta_job_error(). 3512 o meta_job_error() should call meta_job_finish() to ensure 3513 .meta file is closed, and safe to copy - if .ERROR target wants. 3514 meta_job_finish() is safe to call repeatedly. 3515 35162011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3517 3518 * unit-tests/modts: use printf if it is a builtin, 3519 to save us from MirBSD 3520 3521 * Makefile.in (MAKE_VERSION): bump version to 20110329 3522 Merge with NetBSD make, pick up 3523 o fix for use after free() in CondDoExists(). 3524 o meta_oodate() report extra commands and return earlier. 3525 35262011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3527 3528 * Makefile.in (MAKE_VERSION): bump version to 20110327 3529 Merge with NetBSD make, pick up 3530 o meta.c, if .MAKE.MODE contains curdirOk=yes 3531 allow creating .meta files in .CURDIR 3532 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3533 formats the output of 'type' differently - so eat any "()" 3534 35352011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3536 3537 * Makefile.in (MAKE_VERSION): bump version to 20110306 3538 Merge with NetBSD make, pick up 3539 o meta.c, only do getcwd() once 3540 35412011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3542 3543 * Makefile.in (MAKE_VERSION): bump version to 20110305 3544 Merge with NetBSD make, pick up 3545 o correct sysV substitution handling of empty lhs and variable 3546 o correct exists() check for dir with trailing / 3547 o correct handling of modifiers for non-existant variables 3548 during evaluation of conditionals. 3549 o ensure MAP_FILE is defined. 3550 o meta.c use curdir[] now exported by main.c 3551 35522011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3553 3554 * Makefile.in (MAKE_VERSION): bump version to 20110225 3555 Merge with NetBSD make, pick up 3556 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3557 makefiles have been read. 3558 o fix example of :? modifier in man page. 3559 35602011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3561 3562 * Makefile.in (MAKE_VERSION): bump version to 20110214 3563 Merge with NetBSD make, pick up 3564 o meta.c handle realpath() failing when generating meta file 3565 name. 3566 3567 * sigcompat.c: convert to ansi so we can use higher warning levels. 3568 3569 35702011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3571 3572 * Makefile.in (MAKE_VERSION): bump version to 20110207 3573 Merge with NetBSD make, pick up 3574 o fix for bug in meta mode. 3575 35762011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3577 3578 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3579 35802011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3581 3582 * Makefile.in (MAKE_VERSION): bump version to 20110101 3583 Merge with NetBSD make, pick up 3584 o use mmap(2) if available, for reading makefiles 3585 35862010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3587 3588 * Makefile.in (MAKE_VERSION): bump version to 20101215 3589 Merge with NetBSD make, pick up 3590 o ensure meta_job_error() does not report a previous .meta file 3591 as being culprit. 3592 35932010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3594 3595 * Makefile.in (MAKE_VERSION): bump version to 20101210 3596 Merge with NetBSD make, pick up 3597 o meta_oodate: track cwd per process, and only consider target 3598 out-of-date if missing file is outside make's CWD. 3599 Ignore files in /tmp/ etc. 3600 o to ensure unit-tests results match, need to control LC_ALL 3601 as well as LANG. 3602 o fix for parsing bug in var.c 3603 36042010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3605 3606 * Makefile.in (MAKE_VERSION): bump version to 20101126 3607 Merge with NetBSD make, pick up 3608 o if stale dependency is an IMPSRC, search via .PATH 3609 o meta_oodate: if a referenced file is missing, target is 3610 out-of-date. 3611 o meta_oodate: if a target uses .OODATE in its commands, 3612 it (.OODATE) needs to be recomputed. 3613 o keep a pointer to youngest child node, rather than just its 3614 mtime. 3615 36162010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3617 3618 * Makefile.in (MAKE_VERSION): bump version to 20101101 3619 36202010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3621 3622 * machine.sh: like os.sh, 3623 allow for uname -p producing useless drivel 3624 36252010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3626 3627 * boot-strap: document configure knobs for meta and filemon. 3628 3629 * Makefile.in (MAKE_VERSION): bump version to 20100911 3630 Merge with NetBSD make, pick up 3631 o meta.c - meta mode 3632 3633 * make-bootstrap.sh.in: handle meta.c 3634 * configure.in: add knobs for use_meta and filemon_h 3635 also, look for dirname, str[e]sep and strlcpy 3636 * util.c: add simple err[x] and warn[x] 3637 36382010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3639 3640 * boot-strap (TOOL_DIFF): set this to ensure tests use 3641 the same version of diff that configure tested 3642 3643 * Makefile.in (MAKE_VERSION): bump version to 20100808 3644 Merge with NetBSD make, pick up 3645 o in jobs mode, when we discover we cannot make something, 3646 call PrintOnError before exit. 3647 36482010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3649 3650 * Makefile.in (MAKE_VERSION): bump version to 20100806 3651 Merge with NetBSD make, pick up 3652 o formatting fixes for ignored errors 3653 o ensure jobs are cleaned up regardless of where wait() was called. 3654 36552010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3656 3657 * Makefile.in (MAKE_VERSION): bump version to 20100618 3658 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3659 36602010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3661 3662 * Makefile.in (MAKE_VERSION): bump version to 20100616 3663 Merge with NetBSD make, pick up 3664 o man page update 3665 o call PrintOnError from JobFinish when we detect an error we 3666 are not ignoring. 3667 36682010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3669 3670 * Makefile.in (MAKE_VERSION): bump version to 20100606 3671 Merge with NetBSD make, pick up 3672 o man page update 3673 36742010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3675 3676 * Makefile.in (MAKE_VERSION): bump version to 20100605 3677 Merge with NetBSD make, pick up 3678 o use bmake_signal() which is a wrapper around sigaction() 3679 in place of signal() 3680 o add .export-env to allow exporting variables to environment 3681 without tracking (so no re-export when the internal value is 3682 changed). 3683 36842010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3685 3686 * Makefile.in (MAKE_VERSION): bump version to 20100524 3687 Merge with NetBSD make, pick up 3688 o fix for .info et al being greedy. 3689 36902010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3691 3692 * Makefile.in (MAKE_VERSION): bump version to 20100520 3693 Merge with NetBSD make, pick up 3694 o back to using realpath on argv[0] 3695 but only if contains '/' and does not start with '/'. 3696 36972010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3698 3699 * boot-strap: use absolute path for bmake when running tests. 3700 3701 * Makefile.in (MAKE_VERSION): bump version to 20100510 3702 Merge with NetBSD make, pick up 3703 o revert use of realpath on argv[0] 3704 too many corner cases. 3705 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3706 37072010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3708 3709 * Makefile.in (MAKE_VERSION): bump version to 20100505 3710 Merge with NetBSD make, pick up 3711 o fix for missed SIGCHLD when compiled with SunPRO 3712 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3713 done the job. 3714 37152010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3716 3717 * Makefile.in (MAKE_VERSION): bump version to 20100430 3718 Merge with NetBSD make, pick up 3719 o fflush stdout before writing to stdout 3720 37212010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3722 3723 * Makefile.in (MAKE_VERSION): bump version to 20100423 3724 Merge with NetBSD make, pick up 3725 o updated unit tests for Haiku (this time for sure). 3726 * boot-strap: based on patch from joerg 3727 honor --with-default-sys-path better. 3728 * boot-strap: remove mention of --with-prefix-sys-path 3729 37302010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3731 3732 * Makefile.in (MAKE_VERSION): bump version to 20100422 3733 * Merge with NetBSD make, pick up 3734 o fix for vfork() on Darwin. 3735 o fix for bogus $TMPDIR. 3736 o set .MAKE.MODE=compat for -B 3737 o set .MAKE.JOBS=max_jobs for -j max_jobs 3738 o allow unit-tests to run without any *.mk 3739 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3740 * boot-strap: ignore /usr/share/mk except on NetBSD. 3741 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3742 ensure sort(1) behaves as expected. 3743 37442010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3745 3746 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3747 37482010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3749 3750 * Makefile.in (MAKE_VERSION): bump version to 20100420 3751 * Merge with NetBSD make, pick up 3752 o fix for variable realpath() behavior. 3753 we have to stat(2) the result to be sure. 3754 o fix for .export (all) when nested vars use :sh 3755 37562010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3757 3758 * Makefile.in (MAKE_VERSION): bump version to 20100414 3759 * Merge with NetBSD make, pick up 3760 o use realpath to resolve argv[0] (for .MAKE) if needed. 3761 o add realpath from libc. 3762 o add :tA to resolve variable via realpath(3) if possible. 3763 37642010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3765 3766 * Makefile.in (MAKE_VERSION): bump version to 20100408 3767 * Merge with NetBSD make, pick up 3768 o unit tests for .ERROR, .error 3769 o fix for .ERROR to ensure it cannot be default target. 3770 37712010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3772 3773 * Makefile.in (MAKE_VERSION): bump version to 20100406 3774 * Merge with NetBSD make, pick up 3775 o fix for compat mode "Error code" going to debug_file. 3776 o fix for .ALLSRC being populated twice. 3777 o support for .info, .warning and .error directives 3778 o .MAKE.MODE to control make's operational mode 3779 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3780 name(s). 3781 o .MAKE.DEPENDFILE to control the name of the depend file 3782 o .ERROR target - run on failure. 3783 37842010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3785 3786 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3787 3788 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3789 37902010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3791 3792 * Makefile.in (MAKE_VERSION): bump version to 20100222 3793 * Merge with NetBSD make, pick up 3794 o better error msg for .for with mutiple inter vars 3795 3796 * boot-strap: 3797 o use make-bootstrap.sh from joerg at netbsd 3798 to avoid the need for a native make when bootstrapping. 3799 o add "" everywhere ;-) 3800 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3801 otherwise the pre-formated version. 3802 38032010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3804 3805 * Makefile.in (MAKE_VERSION): bump version to 20100102 3806 * Merge with NetBSD make, pick up: 3807 o fix for -m .../ 3808 38092009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3810 3811 * Makefile.in (MAKE_VERSION): bump version to 20091118 3812 * Merge with NetBSD make, pick up: 3813 o .unexport 3814 o report lines that start with '.' and should have ':' 3815 (catch typo's of .el*if). 3816 38172009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3818 3819 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3820 38212009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3822 3823 * Makefile.in (MAKE_VERSION): fix version to 20091007 3824 38252009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3826 3827 * Makefile.in (MAKE_VERSION): bump version to 200910007 3828 * Merge with NetBSD make, pick up: 3829 o fix for parsing of :S;...;...; applied to .for loop iterator 3830 appearing in a dependency line. 3831 38322009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3833 3834 * Makefile.in (MAKE_VERSION): bump version to 20090909 3835 * Merge with NetBSD make, pick up: 3836 o fix for -C, .CURDIR and .OBJDIR 3837 * boot-strap: 3838 o allow share_dir to be set independent of prefix. 3839 o select default share_dir better when prefix ends in $HOST_TARGET 3840 o if FORCE_BSD_MK etc were set, include them in the suggested 3841 install-mk command. 3842 38432009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3844 3845 * Makefile.in (MAKE_VERSION): bump version to 20090908 3846 * Merge with NetBSD make, pick up: 3847 o .MAKE.LEVEL for recursion tracking 3848 o fix for :M scanning \: 3849 38502009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3851 3852 * configure.in: Don't -D__EXTENSIONS__ if 3853 AC_USE_SYSTEM_EXTENSIONS says "no". 3854 38552009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3856 3857 * Makefile.in (MAKE_VERSION): bump version to 20090826 3858 Simplify MAKE_VERSION to just the bare date. 3859 * Merge with NetBSD make, pick up: 3860 o -C directory support. 3861 o support for SIGINFO 3862 o use $TMPDIR for temp files. 3863 o child of vfork should be careful about modifying parent's state. 3864 3865 38662009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3867 3868 * Appy some patches for MiNT from David Brownlee 3869 38702009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3871 3872 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3873 * Merge with NetBSD make, pick up: 3874 o Possible null pointer de-ref in Var_Set. 3875 38762009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3877 3878 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3879 * Merge with NetBSD make, pick up: 3880 o bmake_malloc et al moved to their own .c 3881 o Count both () and {} when looking for the end of a :M pattern 3882 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3883 o strlist.c - functions for processing extendable arrays of pointers to strings. 3884 o ClientData replaced with void *, so const void * can be used. 3885 o New debug flag C for DEBUG_CWD 3886 38872008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3888 3889 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3890 Apply patch from Joerg Sonnenberge to 3891 configure.in: 3892 o remove some redundant checks 3893 o check for emlloc etc only in libutil and require the whole family. 3894 util.c: 3895 o remove [v]asprintf which is no longer used. 3896 38972008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3898 3899 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3900 * Merge with NetBSD make, pick up: 3901 o util.c: avoid use of putenv() - christos 3902 39032008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3904 3905 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3906 pick up man page tweaks. 3907 39082008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3909 3910 * Makefile.in: move processing of LIBOBJS to after is definition! 3911 thus we'll have getenv.c in SRCS only if needed. 3912 3913 * make.1: add examples of how to use :? 3914 3915 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3916 * Merge with NetBSD make, pick up: 3917 o fix for .END processing with -j 3918 o segfault from Parse_Error when no makefile is open 3919 o handle numeric expressions in any variable expansion 3920 o debug output now defaults to stderr, -dF to change it - apb 3921 o make now uses bmake_malloc etc so that it can build natively 3922 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3923 39242008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3925 3926 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3927 * Merge with NetBSD make, pick up: 3928 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3929 long lines in Makefiles 3930 o optimizations for VarQuote by joerg 3931 o fix for PR/38756: dominik: make dumps core on invalid makefile 3932 39332008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3934 3935 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3936 * Merge with NetBSD make, pick up: 3937 o fix skip setting vars in VAR_GLOBAL context, to handle 3938 cases where VAR_CMD is used for other than command line vars. 3939 39402008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3941 3942 * boot-strap (make_version): we may need to look in 3943 $prefix/share/mk for sys.mk 3944 3945 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3946 * Merge with NetBSD make, pick up: 3947 o skip setting vars in VAR_GLOBAL context, when already set in 3948 VAR_CMD which takes precedence. 3949 39502008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3951 3952 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3953 * Merge with NetBSD make, pick up: 3954 o fix for ?= when LHS contains variable reference. 3955 39562008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3957 3958 * merge some patches from NetBSD pkgsrc. 3959 3960 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3961 the MAKSYSPATH used during bootstrap. 3962 3963 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3964 * Merge with NetBSD make, pick up: 3965 o warn if non-space chars follow 'empty' in a conditional. 3966 39672008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3968 3969 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3970 * Merge with NetBSD make, pick up: 3971 o consider dependencies read from .depend as optional - dsl 3972 o remember when buffer for reading makefile grows - dsl 3973 o add -dl (aka LOUD) - David O'Brien 3974 39752007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3976 3977 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3978 * Merge with NetBSD make, pick up: 3979 o Allow .PATH<suffix> to be used for .include "" 3980 3981 * boot-strap: source default settings from .bmake-boot-strap.rc 3982 39832007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3984 3985 * Makefile.in: fix maninstall on various systems 3986 provided that our man.mk is used. 3987 For non-BSD systems we install the preformatted page 3988 into $MANDIR/cat1 3989 39902007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3991 3992 * boot-strap: make bmake.1 too, so maninstall works. 3993 39942007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3995 3996 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3997 * Merge with NetBSD make, pick up: 3998 o revamped handling of defshell - configure no longer needs to 3999 know the content of the shells array - apb 4000 o stop Var_Subst modifying its input - apb 4001 o avoid calling ParseTrackInput too often - dsl 4002 40032007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4004 4005 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4006 * Merge with NetBSD make, pick up: 4007 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4008 4009 * sigcompat.c: some tweaks for HP-UX 11.x based on 4010 patch from Tobias Nygren 4011 4012 * configure.in: update handling of --with-defshell to match 4013 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4014 will now do what one might hope - provided the chosen shell 4015 behaves enough like sh. 4016 40172007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4018 4019 * Makefile.in (BMAKE_VERSION): bump to 20071008 4020 * Merge with NetBSD make, pick up: 4021 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4022 o .export/.MAKE.EXPORTED - export of variables - sjg 4023 o .MAKE.MAKEFILES - track all makefiles read - sjg 4024 o performance improvements - dsl 4025 o revamp parallel job scheduling - dsl 4026 40272006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4028 4029 * Makefile.in (BMAKE_VERSION): bump to 20060728 4030 * Merge with NetBSD make, pick up: 4031 o extra debug info during variable and cond processing - sjg 4032 o shell definition now covers newline - rillig 4033 o minor mem leak in PrintOnError - sjg 4034 40352006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4036 4037 * Makefile.in (BMAKE_VERSION): bump to 20060511 4038 * Merge with NetBSD make, pick up: 4039 o more memory leaks - coverity 4040 o possible overflow in ArchFindMember - coverity 4041 o extract variable modifier code out of Var_Parse() 4042 so it can be called recursively - sjg 4043 o unit-tests/moderrs - sjg 4044 40452006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4046 4047 * Makefile.in (BMAKE_VERSION): bump to 20060412 4048 * Merge with NetBSD make, pick up: 4049 o fixes for some memory leaks - coverity 4050 o only read first sys.mk etc when searching sysIncPath - sjg 4051 4052 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4053 setting ${MAKEFILE} - OBATA Akio 4054 40552006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4056 4057 * Makefile.in (BMAKE_VERSION): bump to 20060318 4058 * Merge with NetBSD make, pick up: 4059 o cleanup of job.c to remove remote handling, distcc is more 4060 useful and this code was likely bit-rotting - dsl 4061 o fix for :P modifier - sjg 4062 * boot-strap: set default prefix to something reasonable 4063 (for me anyway). 4064 40652006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4066 4067 * Makefile.in (BMAKE_VERSION): bump to 20060301 4068 * Merge with NetBSD make, pick up: 4069 o make .WAIT apply recursively, document and test case - apb 4070 o allow variable modifiers in a variable appear anywhere in 4071 modifier list, document and test case - sjg 4072 40732006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4074 4075 * Makefile.in (BMAKE_VERSION): bump to 20060222 4076 * Merge with NetBSD make, pick up: 4077 o improved job token handling - dsl 4078 o SIG_DFL the correct signal before exec - dsl 4079 o more debug info during parsing - dsl 4080 o allow variable modifiers to be specified via variable - sjg 4081 * boot-strap: explain why we died if no mksrc 4082 40832005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4084 4085 * Makefile.in (BMAKE_VERSION): bump to 20051105 4086 * configure.in: always set default_sys_path 4087 default is ${prefix}/share/mk 4088 - remove prefix_sys_path, anyone wanting more than above 4089 needs to set it manually. 4090 40912005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4092 4093 * boot-strap: make this a bit easier for pkgsrc folk. 4094 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4095 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4096 40972005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4098 4099 * Makefile.in (BMAKE_VERSION): bump to 20051102 4100 * job.c (JobFinish): fix likely ancient merge lossage 4101 fix from Todd Vierling. 4102 * boot-strap (srcdir): allow setting mksrc=none 4103 41042005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4105 4106 * Makefile.in (BMAKE_VERSION): bump to 20051031 4107 * ranlib.h: skip on OSF too. 4108 (NetBSD PR 31864) 4109 41102005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4111 4112 * Makefile.in (BMAKE_VERSION): bump to 20051002 4113 fix a silly typo 4114 41152005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4116 4117 * Makefile.in (BMAKE_VERSION): bump to 20051001 4118 support for UnixWare and some other systems, 4119 based on patches from pkgsrc/bootstrap 4120 41212005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4122 4123 * Makefile.in (BMAKE_VERSION): bump to 20050901 4124 * Merge with NetBSD make, pick up: 4125 o possible parse error causing us to wander off. 4126 41272005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4128 4129 * Makefile.in (BMAKE_VERSION): bump to 20050606 4130 * Merge with NetBSD make, pick up: 4131 o :0x modifier for randomizing a list 4132 o fixes for a number of -Wuninitialized issues. 4133 41342005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4135 4136 * Makefile.in (BMAKE_VERSION): bump to 20050530 4137 * Merge with NetBSD make, pick up: 4138 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4139 4140 * README: was seriously out of date. 4141 41422005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4143 4144 * Important to use .MAKE rather than MAKE. 4145 41462005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4147 4148 * Makefile.in (BMAKE_VERSION): bump to 20050315 4149 * Merge with NetBSD make, pick up: 4150 o don't mistake .elsefoo for .else 4151 o use suffix-specific search path correctly 4152 o bunch of style nits 4153 41542004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4155 4156 * boot-strap: 4157 o ensure that args to --src and --with-mksrc 4158 are resolved before giving them to configure. 4159 o add -o "objdir" so that builder can control it, 4160 default is $OS as determined by os.sh 4161 o add -q to suppress all the install instructions. 4162 41632004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4164 4165 * Remove __IDSTRING() 4166 4167 * Makefile.in (BMAKE_VERSION): bump to 20040508 4168 * Merge with NetBSD make, pick up: 4169 o posix fixes 4170 - remove '-e' from compat mode 4171 - add support for '+' command-line prefix. 4172 o fix for handling '--' on command-line. 4173 o fix include in lst.lib/lstInt.h to simplify '-I's 4174 o we also picked up replacement of MAKE_BOOTSTRAP 4175 with !MAKE_NATIVE which is a noop, but possibly confusing. 4176 41772004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4178 4179 * Makefile.in (BMAKE_VERSION): bump to 20040414 4180 * Merge with NetBSD make, pick up: 4181 o allow quoted strings on lhs of conditionals 4182 o issue warning when extra .else is seen 4183 o print line numer when errors encountered during parsing from 4184 string. 4185 41862004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4187 4188 * Makefile.in (BMAKE_VERSION): bump to 20040220 4189 * Merge with NetBSD make, pick up: 4190 o fix for old :M parsing bug. 4191 o re-jigged unit-tests 4192 41932004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4194 4195 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4196 so that './bmake -f Makefile test' works. 4197 41982004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4199 4200 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4201 * Merge with NetBSD make, pick up: 4202 o search upwards for *.mk 4203 o fix for double free of var substitution buffers 4204 o use of getopt replaced with custom code, since the usage 4205 (re-scanning) isn't posix compatible. 4206 42072004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4208 4209 * arch.c: don't include ranlib.h on ELF systems 4210 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4211 42122004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4213 4214 * Makefile.in (BMAKE_VERSION): bump to 20040118 4215 4216 * boot-strap (while): export vars we assign to on cmdline 4217 * unit-test/Makefile.in: ternary is .PHONY 4218 42192004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4220 4221 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4222 * Merge with NetBSD make, pick up: 4223 o fix for ternary modifier 4224 42252004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4226 4227 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4228 * Merge with NetBSD make, pick up: 4229 o fix for cond.c to handle compound expressions better 4230 o variable expansion within sysV style replacements 4231 42322003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4233 4234 * Make portable snprintf safer - output to /dev/null first to 4235 check space needed. 4236 4237 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4238 * Merge with NetBSD make, pick up: 4239 o -dg3 to show input graph when things go wrong. 4240 o explicitly look for makefiles in objdir if not found in curdir so 4241 that errors in .depend etc will be reported accurarely. 4242 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4243 instead as it more accurately reflects the expected behavior and 4244 is more consistently implemented. 4245 o avoid use of asprintf. 4246 42472003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4248 4249 * util.c: Add asprintf and vasprintf. 4250 4251 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4252 * Merge with NetBSD make, pick up: 4253 :[] modifier - allows picking words from a variable. 4254 :tW modifier - allows treating value as one big word. 4255 W flag for :C and :S - allows treating value as one big word. 4256 42572003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4258 4259 * Merge with NetBSD make 4260 pick up -de flag to enable printing failed command. 4261 don't skip 1st two dir entries (normally . and ..) since 4262 coda does not have them. 4263 42642003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4265 4266 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4267 * Merge with NetBSD make, pick up: 4268 - changes for -V '${VAR}' to print fully expanded value 4269 cf. -V VAR 4270 - CompatRunCommand now prints the command that failed. 4271 - several files got updated 3 clause Berkeley license. 4272 42732003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4274 4275 * boot-strap: Allow setting configure args on command line. 4276 42772003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4278 4279 * configure.in: add --with-defshell to allow sh or ksh 4280 to be selected as default shell. 4281 4282 * Makefile.in: bump version to 20030731 4283 4284 * Merge with NetBSD make 4285 Pick up .SHELL spec for ksh and associate man page changes. 4286 Also compat mode now uses the same shell specs. 4287 42882003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4289 4290 * var.c (Var_Parse): ensure delim is initialized. 4291 4292 * unit-tests/Makefile.in: use single quotes to avoid problems from 4293 some shells. 4294 4295 * makefile.boot.in: 4296 Run the unit-tests as part of the bootstrap procedure. 4297 42982003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4299 4300 * unit-tests/Makefile.in: always force complaints from 4301 ${TEST_MAKE} to be from 'make'. 4302 4303 * configure.in: add check for 'diff -u' 4304 also fix some old autoconf'isms 4305 4306 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4307 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4308 4309 * Merge with NetBSD make 4310 Pick up fix for :ts parsing error in some cases. 4311 Pick unit-tests. 4312 43132003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4314 4315 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4316 4317 * var.c (Var_Parse): fix bug in :ts modifier, after const 4318 correctness fixes, must pass nstr to VarModify. 4319 43202003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4321 4322 * Makefile.in: BMAKE_VERSION switch to a date based version. 4323 We'll generally use the date of last import from NetBSD. 4324 4325 * Merge with NetBSD make 4326 Pick up fixes for const-correctness, now passes WARNS=3 on 4327 NetBSD. 4328 Pick up :ts modifier, allows controlling the separator used 4329 between words in variable expansion. 4330 43312003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4332 4333 * FILES: include boot-strap and os.sh 4334 4335 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4336 FreeBSD is known to be bad. 4337 4338 * makefile.boot.in (bootstrap): make this the default target. 4339 4340 * Makefile.in: bump version to 3.1.19 4341 4342 * machine.sh: avoid A-Z with tr as it is bound to lose. 4343 43442003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4345 4346 * Merge with NetBSD make 4347 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4348 Plus some doc fixes. 4349 43502003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4351 4352 * Merge with NetBSD make 4353 Pick up fix for PR/1523 - don't count a library as built, if there 4354 is no way to build it 4355 4356 * Bump version to 3.1.18 4357 43582003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4359 4360 * Merge with NetBSD make 4361 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4362 appears in src list. 4363 43642003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4365 4366 * Merge with NetBSD make (mmm 10th anniversary!) 4367 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4368 pick up -X which tells us to not export VAR=val via setenv if 4369 we are already doing so via MAKEFLAGS. This saves valuable env 4370 space on systems like Darwin. 4371 set MAKE_VERSION to 3.1.17 4372 4373 * parse.c: pix up fix for suffix rules 4374 43752003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4376 4377 * Merge with NetBSD make. 4378 pick up fix for propagating -B via MAKEFLAGS. 4379 set MAKE_VERSION to 3.1.16 4380 4381 * Apply some patches from pkgsrc-bootstrap/bmake 4382 Originally by Grant Beattie <grant@netbsd.org> 4383 I may have missed some - since they are based on bmake-3.1.12 4384 43852002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4386 4387 * makefile.boot.in (bmake): update install targets for those that 4388 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4389 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4390 4391 * bmake.cat1: update the pre-formatted man page! 4392 43932002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4394 4395 * Merge with NetBSD make. 4396 pick up fix for premature free of pointer used in call 4397 to Dir_InitCur(). 4398 set MAKE_VERSION to 3.1.15 4399 44002002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4401 4402 * configure.in: determine suitable value for MKSRC. 4403 override using --with-mksrc=PATH. 4404 4405 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4406 configs(8) will use 'sun4' as an alias for 'sparc'. 4407 44082002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4409 4410 * Merge with NetBSD make. 4411 pick up ${.PATH} 4412 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4413 set MAKE_VERSION to 3.1.14 4414 add configure checks for killpg and sys/socket.h 4415 44162002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4417 4418 * tag bmake-3-1-13 4419 4420 * makefile.boot.in (bmake): use install-mk 4421 Also setup ./mk before trying to invoke bmake.boot incase we 4422 needed install-mk to create a sys.mk for us. 4423 4424 * configure.in: If we need to add -I${srcdir}/missing, make it an 4425 absolute path so that it works for lst.lib too. 4426 4427 * make.h: always include sys/cdefs.h since we provide one if the 4428 host does not. 4429 4430 * Makefile.in (install-mk): 4431 use MKSRC/install-mk which will do the right thing. 4432 use uname -p for ARCH if possible. 4433 since install-mk will setup links bsd.prog.mk -> prog.mk if 4434 needed, just .include bsd.prog.mk 4435 4436 * Merge with NetBSD make (NetBSD-1.6) 4437 Code is ansi-C only now. 4438 Bug in handling of dotLast is fixed. 4439 Can now assign .OBJDIR and make will reset its notions of life. 4440 New modifiers :tu :tl for toUpper and toLower. 4441 4442Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4443 4444 * Merge with NetBSD make 4445 pick up fix for .END failure in compat mode. 4446 pick up fix for extra va_end() in ParseVErrorInternal. 4447 4448Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4449 4450 * configure.in: for systems that have sys/cdefs.h check if it is 4451 compatible. If not, include the one under missing, but tell it to 4452 include the native one too - necessary on Linux. 4453 4454 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4455 include_next (for gcc) to get the native sys/cdefs.h 4456 4457Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4458 4459 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4460 leaking descriptors when using -jN. 4461 4462 * job.c (JobPrintCommand): See if "curdir" exists before 4463 attempting to chdir(). Doing the chdir directly in make (when in 4464 compat mode) fails silently, so let the -jN version do the same. 4465 This can happen when building kernels in an object tree and 4466 playing clever games to reset .CURDIR. 4467 4468 * Merged with NetBSD make 4469 pick up .USEBEFORE 4470 4471Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4472 4473 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4474 4475Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4476 4477 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4478 us not to export the iterator variable when using VAR_CMD context. 4479 4480Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4481 4482 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4483 its the wrong "fix". 4484 4485Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4486 4487 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4488 We now simply append the variable names to .MAKEOVERRIDES, and 4489 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4490 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4491 Apart from fixing quoting bugs in previous version, this allows us 4492 to export vars to the environment by simply doing: 4493 .MAKEOVERRIDES+= PATH 4494 Merged again with NetBSD make, but the above is the only change. 4495 4496 * configure.in: added 4497 --disable-pwd-override disable $PWD overriding getcwd() 4498 --disable-check-make-chdir disable make trying to guess 4499 when it should automatically cd ${.CURDIR} 4500 4501 * Merge with NetBSD make, changes include: 4502 parse.c (ParseDoDependency): Spot that the syntax error is 4503 caused by an unresolved cvs/rcs conflict and say so. 4504 var.c: most of Var* functions now take a ctxt as 1st arg. 4505 now does variable substituion on rhs of sysv style modifiers. 4506 4507 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4508 is now done here. We append the name='value' to .MAKEOVERRIDES 4509 rather than directly into MAKEFLAGS as this allows a Makefile to 4510 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4511 very similar mechanism. Note that in adding name='value' to 4512 .MAKEOVERRIDES we do the moral equivalent of: 4513 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4514 4515Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4516 4517 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4518 4519 * Merged with NetBSD make 4520 make -dx can now be used to run commands via sh -x 4521 better error messages on exec failures. 4522 4523Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4524 4525 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4526 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4527 MACHINE etc otherwise they propagate from the previous bmake. 4528 4529 * configure.in (machine): allow --with-machine=generic to make 4530 configure use machine.sh to set MACHINE. 4531 4532 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4533 4534 * Makefile.in: mention in bmake.1 that we use autoconf. 4535 4536 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4537 4538Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4539 4540 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4541 as that rather defeats the usefulness of ${MAKEFILE}. 4542 4543 * main.c (MainParseArgs): append command line variable assignments 4544 to MAKEFLAGS so that they get propagated to child make's. 4545 Apparently this is required POSIX behaviour? Its useful anyway. 4546 4547Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4548 4549 * compat.c (CompatRunCommand): don't use perror() since stdio may 4550 cause problems in child of vfork(). 4551 4552 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4553 This routine prints out the .curdir where we stopped and will also 4554 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4555 4556 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4557 :@ expansion. 4558 4559 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4560 4561 * Added RCSid's for the files we've touched. 4562 4563Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4564 4565 * configure.in: Thanks to some clues from mdb@juniper.net, 4566 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4567 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4568 4569 --with-machine=MACHINE explicitly set MACHINE 4570 --with-force-machine=MACHINE set FORCE_MACHINE 4571 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4572 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4573 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4574 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4575 4576 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4577 4578 * makefile: added a pathetically simple makefile to drive 4579 bootstrapping. Running configure by hand is more useful. 4580 4581 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4582 dependent on NetBSD bsd.*.mk 4583 4584 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4585 _PATH_OBJDIRPREFIX for those that don't want a default. 4586 construct _PATH_DEFSYSPATH from the info we get from configure. 4587 4588 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4589 if MAKE_VERSION is defined. 4590 4591 * compat.c: when we bail, print out the .CURDIR we were in. 4592 4593Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4594 4595 * Merged with NetBSD make 4596 4597 * var.c: fixed a bug in the handling of the modifier :P 4598 if the node as found but the path was null, we segfault trying to 4599 duplicate it. 4600 4601Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4602 4603 * Merged with NetBSD make 4604 4605 * make.c: Make_OODate's test for a library out of date was using 4606 cmtime where it should have used mtime (my bug). 4607 4608 * compat.c: Use perror() to tell us what really went wrong when we 4609 cannot exec a command. 4610 4611Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4612 4613 * Merged with NetBSD make 4614 4615Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4616 4617 * Merged with NetBSD make 4618 4619Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4620 4621 * Merged with NetBSD make 4622 4623Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4624 4625 * Merged with NetBSD make 4626 4627Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4628 4629 * util.c: don't provide signal() since we use sigcompat.c 4630 4631 * Makefile.in: added a build target. 4632 4633 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4634 These allow some quite clever magic. 4635 4636 * main.c (main): added support for getenv(MAKESYSPATH). 4637 4638Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4639 4640 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4641 This avoids objdir having a different value depending on how a 4642 directory was reached (via command line, or subdir.mk). 4643 4644 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4645 4646Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4647 4648 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4649 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4650 I've been testing this in NetBSD's make for some weeks. 4651 4652 * Turn Makefile into Makefile.in and make it useful. 4653 4654Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4655 4656 * Imported NetBSD's -current make(1) and resolve conflicts. 4657 4658 * Applied autoconf patches from bmake v2 4659 4660 * Imported clean code base from NetBSD-1.0 4661