12025-01-25 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20250125 4 Merge with NetBSD make, sync up below change. 5 6 * unit-tests/Makefile: remove $TMPDIR via .END 7 to avoid failure in test on NFS - since the temp file for the 8 target script is open and thus gets renamed by the server rather 9 than removed. 10 112025-01-20 Simon J Gerraty <sjg@beast.crufty.net> 12 13 * VERSION (_MAKE_VERSION): 20250120 14 Merge with NetBSD make, pick up 15 o use FORK_FUNCTION so it can be forced to fork when doing coverage. 16 o main.c: avoid memory allocation in error path after exec failure. 17 182025-01-16 Simon J Gerraty <sjg@beast.crufty.net> 19 20 * VERSION (_MAKE_VERSION): 20250116 21 Merge with NetBSD make, pick up 22 o clarify that undefined expressions are allowed in dependencies 23 o simplify code for evaluating the '!=' variable assignment 24 252025-01-11 Simon J Gerraty <sjg@beast.crufty.net> 26 27 * VERSION (_MAKE_VERSION): 20250111 28 Merge with NetBSD make, pick up 29 o replace "Malformed conditional" with "Variable is undefined" 30 when appropriate 31 322025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 33 34 * VERSION (_MAKE_VERSION): 20250110 35 Merge with NetBSD make, pick up 36 o job.c: remove some unnecessary layers in job handling 37 o unit-tests: test expressions based on undefined variables 38 392025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 40 41 * VERSION (_MAKE_VERSION): 20250101 42 Merge with NetBSD make, pick up 43 o var.c: reduce pointer indirections when unexporting a variable 44 452024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 46 47 * VERSION (_MAKE_VERSION): 20241212 48 * mk/ updates 49 502024-11-24 Simon J Gerraty <sjg@beast.crufty.net> 51 52 * VERSION (_MAKE_VERSION): 20241124 53 Merge with NetBSD make, pick up 54 o var.c: fix confusing error message when overriding a read-only 55 variable 56 572024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * VERSION (_MAKE_VERSION): 20241122 60 Merge with NetBSD make, pick up 61 o unit-tests/Makefile: optimize running of tests skip extra cat 62 in 99% of cases. 63 642024-11-15 Simon J Gerraty <sjg@beast.crufty.net> 65 66 * VERSION (_MAKE_VERSION): 20241114 67 Merge with NetBSD make, pick up 68 o make.1: note that MAKEOBJPREFIX should be absolute path 69 also that it can be set via makefile if suitable care taken. 70 712024-11-10 Simon J Gerraty <sjg@beast.crufty.net> 72 73 * VERSION (_MAKE_VERSION): 20241110 74 Merge with NetBSD make, pick up 75 o make: allow .../ (search here and above) in 76 .MAKE.MAKEFILE_PREFERENCE and -f argument. 77 782024-11-03 Simon J Gerraty <sjg@beast.crufty.net> 79 80 * VERSION (_MAKE_VERSION): 20241101 81 Merge with NetBSD make, pick up 82 o parse.c: report filename:linenumber in parse debug output 83 842024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 85 86 * VERSION (_MAKE_VERSION): 20240921 87 Merge with NetBSD make, pick up 88 o make.1: Only list the defaults for MAKEFILE_PREFERENCE once. 89 90 * Makefile: use genfiles.mk to generate ${MAN} 91 so that it can be tuned for local site. 92 Ensure MAN is defined before including Makefile.inc 93 94 * Makefile: use MK_GEN_MAN to make it easier to control whether we 95 generate ${MAN} 96 972024-09-16 Simon J Gerraty <sjg@beast.crufty.net> 98 99 * VERSION (_MAKE_VERSION): 20240909 100 101 * arch.c: fix NetBSD PR 58597 102 1032024-09-01 Simon J Gerraty <sjg@beast.crufty.net> 104 105 * Makefile: use SUBDIR.${MK_TESTS} so that we skip 106 unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS 107 108 * VERSION (_MAKE_VERSION): 20240901 109 Merge with NetBSD make, pick up 110 o reduce line length in error messages 111 o var.c: simplify printing of an evaluation stack element 112 1132024-08-29 Simon J Gerraty <sjg@beast.crufty.net> 114 115 * VERSION (_MAKE_VERSION): 20240828 116 Merge with NetBSD make, pick up 117 o add more context to error message about recursive variables 118 o treat recursive variables non-fatally - continue parsing to end 119 of makefile 120 1212024-08-12 Simon J Gerraty <sjg@beast.crufty.net> 122 123 * VERSION (_MAKE_VERSION): 20240808 124 Merge with NetBSD make, pick up 125 o improve some error messages for better clarify and readability 126 1272024-07-22 Simon J Gerraty <sjg@beast.crufty.net> 128 129 * VERSION (_MAKE_VERSION): 20240722 130 Merge with NetBSD make, pick up 131 o job.c: remove dead code 132 1332024-07-21 Simon J Gerraty <sjg@beast.crufty.net> 134 135 * VERSION (_MAKE_VERSION): 20240720 136 Merge with NetBSD make, pick up 137 o compat.c: do not run commands that have parse or evaluation errors. 138 o var.c: remove wrong error message about an undefined variable 139 1402024-07-13 Simon J Gerraty <sjg@beast.crufty.net> 141 142 * cleanup redundant differences from NetBSD make 143 o parse.c: no longer uses mmap 144 o var.c: check __STDC_VERSION__ not __STDC__ 145 1462024-07-12 Simon J Gerraty <sjg@beast.crufty.net> 147 148 * Apply some patches from NetBSD pkgsrc to reduce divergence 149 o meta.c: requires sys/select.h if available 150 o var.c: ensure SIZE_MAX has a value 151 o util.c: ensure SA_RESTART is defined 152 153 * configure.in: use *ksh* rather than just *ksh to match 154 ksh shell specification. 155 156 * unit-tests/Makefile: expand BROKEN_TESTS for ksh and 157 mksh in particular 158 1592024-07-11 Simon J Gerraty <sjg@beast.crufty.net> 160 161 * VERSION (_MAKE_VERSION): 20240711 162 Merge with NetBSD make, pick up 163 o compat.c: allow Compat_RunCommand to also handle very long 164 commands by writing to a temp file when needed. 165 o main.c: extract the temp file logic recently added to Cmd_Exec 166 to Cmd_Argv so it can be leveraged by Compat_RunCommand. 167 1682024-07-09 Simon J Gerraty <sjg@beast.crufty.net> 169 170 * VERSION (_MAKE_VERSION): 20240709 171 Merge with NetBSD make, pick up 172 o error out on parse/evaluation errors in shell commands 173 o var.c: error out on syntax errors in ':M' and ':N' modifiers 174 1752024-07-07 Simon J Gerraty <sjg@beast.crufty.net> 176 177 * VERSION (_MAKE_VERSION): 20240707 178 Merge with NetBSD make, pick up 179 o only generate code for cleanup functions in CLEANUP mode 180 o hash.c: don't track hash table chain lengths during lookup 181 unless debugging 182 o main.c: move initialization of variable scopes to targ.c 183 o var.c: remove Var_End as it is now unnecessary 184 1852024-07-06 Simon J Gerraty <sjg@beast.crufty.net> 186 187 * VERSION (_MAKE_VERSION): 20240706 188 Merge with NetBSD make, pick up 189 o reduce lint comments about ARGSUSED 190 o cond.c: error out on conditions containing the operators '&' and '|' 191 o str.c: error out on a matching malformed matching pattern '[[' 192 o var.c: in error messages, distinguish parsing from evaluating 193 in error messages for anonymous variables, log the value 194 error out on unclosed expressions during parse time 195 1962024-07-04 Simon J Gerraty <sjg@beast.crufty.net> 197 198 * VERSION (_MAKE_VERSION): 20240704 199 Merge with NetBSD make, pick up 200 o add more context information to error messages 201 o main.c: on error, print the targets to be made 202 add detailed exit status to message for failed sub-commands 203 o var.c: error out on the "Bad modifier" error message 204 2052024-07-01 Simon J Gerraty <sjg@beast.crufty.net> 206 207 * VERSION (_MAKE_VERSION): 20240701 208 Merge with NetBSD make, pick up 209 o var.c: add :tt for Title case 210 2112024-06-30 Simon J Gerraty <sjg@beast.crufty.net> 212 213 * configure.in: 20240630 further refine check for whether 214 TZ=Europe/Berlin works 215 216 * VERSION (_MAKE_VERSION): 20240630 217 Merge with NetBSD make, pick up 218 o job.c: reduce use of UNCONST 219 o main.c: add detailed exit status to message for failed sub-commands 220 o var.c: error out on some more syntax errors 221 add more context to "returned non-zero status" message 222 2232024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 224 225 * VERSION (_MAKE_VERSION): 20240625 226 Merge with NetBSD make, pick up 227 o job.c: ensure shellPath is always duped, avoid upsetting free() 228 2292024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 230 231 * VERSION (_MAKE_VERSION): 20240616 232 Merge with NetBSD make, pick up 233 o clean up collection of context information for error messages 234 o in warnings, move the word "warning" to the front 235 o var.c: throw an error on attempt to override an internal 236 read-only variable 237 2382024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 239 240 * VERSION (_MAKE_VERSION): 20240610 241 Merge with NetBSD make, pick up 242 o for.c: remove redundant shortcut for building the .for loop body 243 2442024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 245 246 * VERSION (_MAKE_VERSION): 20240602 247 Merge with NetBSD make, pick up 248 o rename some VarEvalMode constants to better match debug names. 249 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 250 2512024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 252 253 * VERSION (_MAKE_VERSION): 20240601 254 Merge with NetBSD make, pick up 255 o add .export-all rather than allow .export with no argument 256 which can happen accidentally. 257 o if lua is available, run check-expect.lua after unit-tests 258 o main.c: use snprintf rather than strncpy 259 fix memory leak when purging realpath cache. 260 2612024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 262 263 * VERSION (_MAKE_VERSION): 20240528 264 Merge with NetBSD make, pick up 265 o fix a number of memory leaks 266 o replace magic numbers with POSIX FILENO constants 267 o hash.c: remove dead code from HashTable_DeleteEntry 268 o main.c: when complaining about unusable .OBJDIR 269 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 270 o parse.c: use fewer technical terms in debug message for dependency 271 2722024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 273 274 * VERSION (_MAKE_VERSION): 275 Merge with NetBSD make, pick up 276 o dir.c: in FindFile restore last search of .CURDIR even for 277 includes, as a number of existing makefiles are broken otherwise. 278 2792024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 280 281 * VERSION (_MAKE_VERSION): 20240519 282 Merge with NetBSD make, pick up 283 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 284 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 285 o main.c: no need to set .DOTLAST in sysIncPath 286 2872024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 288 289 * VERSION (_MAKE_VERSION): 20240508 290 Merge with NetBSD make, pick up 291 o make: ensure variables set on command line get added to 292 .MAKEOVERRIDES (even if they start with '.') so they are passed to 293 sub-makes. 294 2952024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 296 297 * VERSION (_MAKE_VERSION): 20240430 298 Merge with NetBSD make, pick up 299 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 300 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 301 3022024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 303 304 * VERSION (_MAKE_VERSION): 20240428 305 Merge with NetBSD make, pick up 306 o simplify freeing of lists 307 o arch.c: trim pointless comments 308 o var.c: delay variable assignments until actually needed 309 don't reallocate memory after evaluating an expression, result is 310 almost always short-lived. 311 3122024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 313 314 * VERSION (_MAKE_VERSION): 20240426 315 Merge with NetBSD make, pick up 316 o job.c: in debug output, print the directory in which a job 317 failed at same time as failed target so it is more easily found in 318 build log. 319 3202024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 321 322 * VERSION (_MAKE_VERSION): 20240424 323 Merge with NetBSD make, pick up 324 o clean up comments, code and tests 325 3262024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 327 328 * VERSION (_MAKE_VERSION): 20240422 329 Merge with NetBSD make, pick up 330 o var.c: avoid LazyBuf for :*time modifiers. 331 LazyBuf's are not nul terminated so not suitable for passing to 332 functions that expect that. These modifiers are used sparingly so 333 an extra allocation is not a problem. 334 3352024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 336 337 * VERSION (_MAKE_VERSION): 20240420 338 Merge with NetBSD make, pick up 339 o provide more context information for parse/evaluate errors 340 3412024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 342 343 * VERSION (_MAKE_VERSION): 20240414 344 Merge with NetBSD make, pick up 345 o parse.c: print -dp debug info earlier so we see which 346 .if or .for line is being parsed. 347 3482024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 349 350 * VERSION (_MAKE_VERSION): 20240404 351 Merge with NetBSD make, pick up 352 o fix some unit tests for Cygwin 353 o parse.c: exit immediately after reading a null byte from a makefile 354 355 * fix generation of bmake.cat1 356 3572024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 358 359 * VERSION (_MAKE_VERSION): 20240314 360 Add/Improve support for Cygwin 361 o uname -s output isn't useful so allow configure to 362 set FORCE_MAKE_OS - to force the value of .MAKE.OS 363 and use Cygwin which matches uname -o 364 o fix some unit-tests for Cygwin 365 3662024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 367 368 * boot-strap: tests can take a long time; use a cookie to 369 skip them if bmake has not been updated since tests last 370 ran successfully. 371 372 * Makefile: Cygwin handles MANTARGET man 373 374 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 375 3762024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 377 378 * VERSION (_MAKE_VERSION): 20240309 379 Merge with NetBSD make, pick up 380 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 381 this allows a .ERROR target to ignore the case of 382 .ERROR_EXIT==6 which just means that the build actually 383 failed somewhere else. 384 3852024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 386 387 * VERSION (_MAKE_VERSION): 20240303 388 389 * var.c: on IRIX we need both inttypes.h and stdint.h 390 3912024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 392 393 * VERSION (_MAKE_VERSION): 20240301 394 Merge with NetBSD make, pick up 395 o export variables with value from target scope 396 when appropriate. 397 3982024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 399 400 * VERSION (_MAKE_VERSION): 20240212 401 Merge with NetBSD make, pick up 402 o remove unneeded conditional-compilation toggles 403 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 404 GMAKEEXPORT NO_REGEX and SUNSHCMD 405 406 * configure.in: add check for regex.h 407 408 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 409 4102024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 411 412 * VERSION (_MAKE_VERSION): 20240204 413 Merge with NetBSD make, pick up 414 o var.c: fix some lint (-dL) mode parsing issues 415 4162024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 417 418 * VERSION: (_MAKE_VERSION): 20240202 419 Merge with NetBSD make, pick up 420 o make.1: note that arg to :D and :U can be empty 421 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 422 4232024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 424 425 * VERSION (_MAKE_VERSION): 20240108 426 Merge with NetBSD make, pick up 427 o miscellaneous cleanups 428 4292024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 430 431 * VERSION (_MAKE_VERSION): 20240106 432 Merge with NetBSD make, pick up 433 o fix duplicate progname when reporting an unknown target 434 o unit tests for Cmd_Exec using temp file 435 4362024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 437 438 * VERSION (_MAKE_VERSION): 20240105 439 Merge with NetBSD make, pick up 440 o main.c: Cmd_Exec write cmd to a file if too big 441 avoid blowing commandline/env limits 442 4432024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 444 445 * VERSION (_MAKE_VERSION): 20240101 446 o util.c: flesh out more of strftime 447 * configure.in: add --with-bmake-strftime 448 it is not a full implementation but enough to pass all 449 the unit-tests. 450 * parse.c: LoadFile do not append \n to empty buffer. 451 4522023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 453 454 * VERSION (_MAKE_VERSION): 20231230 455 Merge with NetBSD make, pick up 456 o simplify memory allocation for string buffers 457 o fix declared types of list nodes 458 o suff.c: clean up freeing of suffixes 459 o var.c: simplify debug message for the ':@var@...@' modifier 460 clean up variable handling 461 4622023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 463 464 * VERSION (_MAKE_VERSION): 20231226 465 Merge with NetBSD make, pick up 466 o compat.c: ensure make's output is correctly ordered with that of 467 the target when not going to a tty 468 o main.c: check for shellPath whether to call Shell_Init() 469 4702023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 471 472 * VERSION (_MAKE_VERSION): 20231224 473 Merge with NetBSD make, pick up 474 o compat.c: check for shellPath whether to call Shell_Init() 475 tweak the unit test to detect the bug thus fixed. 476 o make.1: do not claim .SHELL is only used by jobs mode. 477 4782023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 479 480 * VERSION (_MAKE_VERSION): 20231220 481 Merge with NetBSD make, pick up 482 o str.c: speed up pattern matching in the ':M' modifier 483 o var.c: fix confusing debug logging when deleting a variable 484 use consistent debug messages style when ignoring variables 485 4862023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 487 488 * VERSION (_MAKE_VERSION): 20231210 489 Merge with NetBSD make, pick up 490 o var.c: avoid segfault on empty :C match expression 491 explain in debug log why variable assignment is ignored. 492 4932023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 494 495 * VERSION (_MAKE_VERSION): 20231208 496 Merge with NetBSD make, pick up 497 o var.c: ensure fromCmd is set correctly for variables set on 498 command line. 499 5002023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 501 502 * configure.in: disable generation of 'makefile' for 503 Darwin by default. 504 505 * boot-strap: docuement --without-makefile 506 5072023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 508 509 * VERSION (_MAKE_VERSION): 20231124 510 Merge with NetBSD make, pick up 511 o main.c: cleanup processing of -j 512 fix lint warning about strchr 513 o var.c: more accurate error message for invalid ':mtime' argument 514 cleanup :[...] modifier 515 avoid reading beyond substring when comparing 516 o unit-tests cover all cases of :mtime, test and explain exporting 517 of variables 518 o cleanup comments 519 5202023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 521 522 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 523 $FreeBSD$ tag, so avoid adding it. 524 5252023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 526 527 * VERSION (_MAKE_VERSION): 20230909 528 Merge with NetBSD make, pick up 529 o main.c: allow -j to compute a multiple of ncpu 530 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 531 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 532 _SC_NPROCESSORS_ONLN 533 .MAKE.JOBS.C will be "yes" if -jC is supported 534 5352023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20230820 538 Merge with NetBSD make, pick up 539 o make.1: note that :localtime is better for %s 540 o parse.c: improve error messages for invalid input. 541 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 542 correct result, it is still better to use %s:L:localtime. 543 5442023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 545 546 * VERSION (_MAKE_VERSION): 20230818 547 Merge with NetBSD make, pick up 548 o meta.c: meta_ignore - check raw path against metaIgnorePaths 549 to potentially skip call to realpath. 550 o var.c: be strict when parsing the argument of the ':mtime' modifier 551 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 552 should be used to get an equivalent value to time(3). 553 5542023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 555 556 * VERSION (_MAKE_VERSION): 20230816 557 Merge with NetBSD make, pick up 558 o cond.c: clean up multiple-inclusion guards 559 5602023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 561 562 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 563 if configure cannot work out how to control TZ. 564 Remove varmod-localtime from BROKEN_TESTS for IRIX* 565 5662023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 567 568 * VERSION (_MAKE_VERSION): 20230723 569 570 * configure.in: fix the test for wether TZ=Europe/Berlin works. 571 Depending on the time of year, if run between 22:00 and 00:00 UTC 572 the check in configure would fail incorrectly. 573 Take the day into account as well. 574 5752023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 576 577 * VERSION (_MAKE_VERSION): 20230711 578 Merge with NetBSD make, pick up 579 o make.1: clean up wording, clarify scope of '!' in conditions 580 5812023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 582 583 * make-bootstrap.sh.in: set prefix 584 If configure is run using ksh we get unexpanded ${prefix} in 585 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 586 correct result. 587 5882023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 589 590 * VERSION (_MAKE_VERSION): 20230711 591 bump version for IRIX tweaks 592 593 * make.h: undef OP_NONE if defined 594 595 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 596 597 * configure.in: override INSTALL on IRIX 598 5992023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 600 601 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 602 6032023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 604 605 * VERSION (_MAKE_VERSION): 20230622 606 Merge with NetBSD make, pick up 607 o optimize string matching for ':M' and ':N' 608 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 609 6102023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 611 612 * VERSION (_MAKE_VERSION): 20230621 613 Merge with NetBSD make, pick up 614 o more extensive tests for include guards 615 o parse.c: if a guard is already defined a file that uses the same 616 guard is still guarded by it. 617 6182023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20230620 621 Merge with NetBSD make, pick up 622 o allow guards to be targets as well as variables 623 The guard targets may include variable references like 624 __${.PARSEDIR:tA}/${.PARSEFILE}__ 625 6262023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 627 628 * VERSION (_MAKE_VERSION): 20230619 629 Merge with NetBSD make, pick up 630 o unit test for .undef of readOnly vars 631 o optimization for makefiles protected from multiple-inclusion 632 skip even opening the file after first include. 633 Initially this only handles makefiles guarded by a variable 634 target guards are next. 635 6362023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 637 638 * VERSION (_MAKE_VERSION): 20230616 639 Merge with NetBSD make, pick up 640 o var.c: do not allow delete of readOnly variable 641 6422023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 643 644 * VERSION (_MAKE_VERSION): 20230601 645 Merge with NetBSD make, pick up 646 o parse.c: .break takes no args 647 o lots of unit test updates 648 6492023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 650 651 * unit-tests/Makefile: skip tests that require /dev/filemon 652 if it does not exists - issue a warning. 653 6542023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 655 656 * VERSION (_MAKE_VERSION): 20230522 657 Fix building on darwin ppc 658 659 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 660 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 661 6622023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 663 664 * VERSION (_MAKE_VERSION): 20230515 665 666 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 667 compile filemon_ktrace.c 668 6692023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 670 671 * VERSION (_MAKE_VERSION): 20230512 672 o sys.dirdeps.mk - broke after-import target 673 6742023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 675 676 * VERSION (_MAKE_VERSION): 20230510 677 Merge with NetBSD make, pick up 678 o parse.c: don't print null filename in stack traces 679 o var.c: :mtime operate on each word in variable value 680 6812023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 682 683 * VERSION (_MAKE_VERSION): 20230509 684 Merge with NetBSD make, pick up 685 o for.c: skip syntactically wrong .for loops 686 o var.c: allow for :gmtime=${mtime} 687 add :mtime[=timestamp] where timestamp is used if stat(2) 688 fails, if :mtime=error stat(2) failure causes error. 689 6902023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 691 692 * VERSION (_MAKE_VERSION): 20230504 693 Merge with NetBSD make, pick up 694 o compat.c: fix compile on NetBSD 7.2 695 o make.1: fix documentation of .PREFIX to match reality and POSIX 696 o unit-tests: improved var-scope-local 697 6982023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * VERSION (_MAKE_VERSION): 20230414 701 Merge with NetBSD make, pick up 702 o minor cleanup 703 7042023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 707 unlimited results in an insane number (0x7fffffffffffffff). 708 If BMAKE_NOFILE_MAX is defined, use that instead. 709 7102023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 711 712 * VERSION (_MAKE_VERSION): 20230321 713 Merge with NetBSD make, pick up 714 * make.1: document seemingly unexplained Error code 6. 715 7162023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 717 718 * VERSION (_MAKE_VERSION): 20230317 719 Merge with NetBSD make, pick up 720 o compat.c: CompatDeleteTarget skip .PHONY targets to be 721 consistent with JobDeleteTarget. 722 o job.c: fix memory leak in handling sysv :from=to modifiers 723 7242023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 725 726 * VERSION (_MAKE_VERSION): 20230303 727 Merge with NetBSD make, pick up 728 o several updated unit-tests 729 7302023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 731 732 * VERSION (_MAKE_VERSION): 20230222 733 Merge with NetBSD make, pick up 734 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 735 7362023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 737 738 * VERSION (_MAKE_VERSION): 20230218 739 Merge with NetBSD make, pick up 740 o var.c: fix parsing of unevaluated subexpressions with 741 unbalanced '{}' 742 7432023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 744 745 * VERSION (_MAKE_VERSION): 20230215 746 Merge with NetBSD make, pick up 747 o inline macros for some variable names 748 o cond.c: reduce complexity of evaluating expressions 749 7502023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 751 752 * VERSION (_MAKE_VERSION): 20230208 753 Merge with NetBSD make, pick up 754 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 755 when it has been used within conditional expressions 756 7572023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 758 759 * VERSION (_MAKE_VERSION): 20230127 760 761 * install-sh: if making directories ensure umask is set 762 to match mode. 763 764 * Makefile: use DIRMODE for directories and 765 NONBINMODE for man pages and mk files 766 7672023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 768 769 * VERSION (_MAKE_VERSION): 20230126 770 Merge with NetBSD make, pick up 771 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 772 should be read-only. 773 7742023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 775 776 * VERSION (_MAKE_VERSION): 20230123 777 Merge with NetBSD make, pick up 778 o .[NO]READONLY: for control of read-only variables 779 o .SYSPATH: for controlling the path searched for makefiles 780 7812023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 782 783 * VERSION (_MAKE_VERSION): 20230120 784 Merge with NetBSD make, pick up 785 o allow for white-space between command specifiers @+- 786 o add more details to warning 'Extra targets ignored' 787 7882023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 789 790 * machine.sh: leverage os.sh rather than duplicate 791 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 792 for that purpose for the past decade or so. 793 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 794 7952023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 796 797 * VERSION (_MAKE_VERSION): 20230101 798 Merge with NetBSD make, pick up 799 o cleanup comments, inline some LazyBuf_ methods 800 o unit-tests/ add/improve comments in tests 801 o make.1: sync list of built-in variables with reality 802 sort list of built-in variables 803 reduce indentation of the long list of variable names 804 use consistent markup for boolean flags 805 move description of .MAKE.MODE below the .MAKE.META block 806 clarify in which case an expression may omit braces 807 8082022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 809 810 * VERSION (_MAKE_VERSION): 20221024 811 Merge with NetBSD make, pick up 812 o change return type of unlink_file back to int 813 8142022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 815 816 * Makefile: Darwin and Linux can handle MANTARGET=man 817 8182022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 819 820 * VERSION (_MAKE_VERSION): 20220928 821 Merge with NetBSD make, pick up 822 o fix more ignored returns from snprintf 823 o compile with higher warnings 824 8252022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 826 827 * main.c meta.c: do not ignore return from snprintf 828 829 * meta.c strlcpy.c: we need prototype for strlcpy 830 831 * sigcompat.c: fix unused function warnings 832 8332022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 834 835 * VERSION (_MAKE_VERSION): 20220924 836 Merge with NetBSD make, pick up 837 o fix bug in .break reset of conditional depth 838 o overhaul and simplify tracking of conditional depth 839 8402022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 841 842 * VERSION (_MAKE_VERSION): 20220912 843 Merge with NetBSD make, pick up 844 o man page updates 845 8462022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 847 848 * VERSION (_MAKE_VERSION): 20220909 849 Merge with NetBSD make, pick up 850 o update unit-tests to handle deprecation of egrep 851 o cond.c: add more details to error message for numeric comparison 852 853 * configure.in: allow for deprecation of egrep 854 855 * Makefile: Linux can handle MANTARGET=man 856 8572022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 858 859 * VERSION (_MAKE_VERSION): 20220903 860 Merge with NetBSD make, pick up 861 o job.c: fix handling of null bytes in output 862 8632022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 864 865 * VERSION (_MAKE_VERSION): 20220902 866 Merge with NetBSD make, pick up 867 o Allow .break to terminate a .for loop early 868 8692022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 870 871 * VERSION (_MAKE_VERSION): 20220901 872 Merge with NetBSD make, pick up 873 o var.c: fix out-of-bounds errors when parsing 874 8752022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 876 877 * VERSION (_MAKE_VERSION): 20220824 878 Merge with NetBSD make, pick up 879 o var.c: revert change to modifier parsing that breaks 880 shell variable references within ':@var@body@' 881 o adjust unit-tests 882 8832022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 884 885 * VERSION (_MAKE_VERSION): 20220818 886 Merge with NetBSD make, pick up 887 o fix exit status for '-q' (since 1994) 888 8892022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 890 891 * VERSION (_MAKE_VERSION): 20220808 892 Merge with NetBSD make, pick up 893 o var.c: fix parsing of modifiers containing unbalanced subexpressions 894 extract parsing of ':D' and ':U' modifiers into separate function 895 8962022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 897 898 * VERSION (_MAKE_VERSION): 20220726 899 900 * Auto-create objdir for bmake/unit-tests if appropriate 901 9022022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 903 904 * VERSION (_MAKE_VERSION): 20220724 905 Merge with NetBSD make, pick up 906 o make.1: describe variable assignment and evaluation more precisely 907 o parse.c: fix out-of-bounds read when parsing an invalid line 908 o var.c: simplify return type of IsShortVarnameValid 909 9102022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 911 912 * VERSION (_MAKE_VERSION): 20220612 913 Merge with NetBSD make, pick up 914 o allow to randomize build order of targets 915 .MAKE.MODE += randomize-targets can help uncover dependency bugs 916 within a makefile. 917 o compat.c: rename Compat_Run to Compat_MakeAll 918 o make.c: inline MakeBuildParent 919 inline make_abort, improve error details 920 o parse.c: reorganize Parse_Error 921 fix memory leak in wildcard targets and sources 922 separate cases in HandleDependencyTargetMundane 923 extract HandleSingleDependencyTargetMundane 924 rename loadfile to LoadFile 925 split IncludeFile into separate functions 926 condense code for searching a file in the paths 927 fix off-by-one error in buffer for .WAIT nodes 928 o str.c: condense Str_Match 929 make code for string matching syntactically more consistent 930 9312022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 932 933 * VERSION (_MAKE_VERSION): 20220418 934 Merge with NetBSD make, pick up 935 o ignore '.POSIX:' if not in first non-comment line 936 of Makefile as specified by POSIX. 937 add unit-tests for above. 938 o meta.c: make it easier to find usage of identifiers 939 o targ.c: add .USEBEFORE to Targ_PrintType 940 9412022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 942 943 * VERSION (_MAKE_VERSION): 20220414 944 945 * unit-tests/Makefile: simplify checks for shells with 946 BROKEN_TESTS, this helps with other Linux distros that 947 use dash. 948 9492022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 950 951 * VERSION (_MAKE_VERSION): 20220330 952 Merge with NetBSD make, pick up 953 o var.c: fix spacing, and a typo in a test 954 9552022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 956 957 * VERSION (_MAKE_VERSION): 20220326 958 Merge with NetBSD make, pick up 959 o parse.c: try to include 'posix.mk' the first time 960 .POSIX: is encountered, to allow for beter POSIX compliance. 961 o var.c: make debug logs more readable 962 prefer 'long long' over 'long' on 32-bit C99 platforms 963 fix crash on .undef of an environment variable 964 9652022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 966 967 * VERSION (_MAKE_VERSION): 20220303 968 Merge with NetBSD make, pick up 969 o tell meta mode unit tests not to expect filemon 970 o cond.c: make debug logging for comparisons less technical 971 o lst.c: fix mem leak in Lst_Remove 972 o str.c: make code for string matching syntactically more consistent 973 o var.c: simplify ParseModifier_Match 974 9752022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 976 977 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 978 979 * VERSION (_MAKE_VERSION): 20220214 980 Merge with NetBSD make, pick up 981 o cond.c: simplify control flow in CondParser_Comparison 982 o job.c: fix echoing of command with '-' in silent target in jobs mode 983 o main.c: prefix the warning about read-only .OBJDIR with a colon 984 o parse.c: remove redundant conditions 985 o var.c: simplify control flow in ModifyWord_SysVSubst 986 9872022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 988 989 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 990 is any chance we have dash as .SHELL 991 992 * VERSION (_MAKE_VERSION): 20220208 993 Merge with NetBSD make, pick up 994 o more unit tests 995 o meta.c: use a variable to hold command line to be filtered 996 to avoid any side effects from content of command line. 997 9982022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 999 1000 * VERSION (_MAKE_VERSION): 20220204 1001 Merge with NetBSD make, pick up 1002 o use unsigned consistently for line numbers, avoid the need for %z 1003 o parse.c: do not step off end of input in Parse_IsVar 1004 when checking for target local variable assignments 1005 10062022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 1007 1008 * VERSION (_MAKE_VERSION): 20220202 1009 Merge with NetBSD make, pick up 1010 o remove redundant declaration of HashIter_Init 1011 o make DEBUG0 simpler 1012 10132022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1014 1015 * cast gn->lineno to avoid %z 1016 1017 * VERSION (_MAKE_VERSION): 20220130 1018 Merge with NetBSD make, pick up 1019 o more unit tests 1020 o make GNode lineno unsigned to please lint 1021 o print location of recursive variable references in commands 1022 o print "stack trace" (makefile includes) on fatal errors 1023 o make.1: refine documentation for target local assignments 1024 10252022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 1026 1027 * VERSION (_MAKE_VERSION): 20220128 1028 Merge with NetBSD make, pick up 1029 o inline functions called only once 1030 o for.c: clean up AddEscape for building the body of a .for loop 1031 o hash.c: merge duplicate code for finding an entry in a hash table 1032 replace HashEntry_KeyEquals with strncmp 1033 o make.1: document quirks of target local variable assignments. 1034 o parse.c: cleanup white-space 1035 10362022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1037 1038 * VERSION (_MAKE_VERSION): 20220126 1039 Merge with NetBSD make, pick up 1040 o allow setting target local variables 1041 o more unit tests 1042 o add missing newline after "cannot continue" message 1043 o meta.c: clean up eat_dots 1044 o parse.c: fix filename in warning about duplicate script 1045 o var.c: when expanding nested variables, check simple things first 1046 10472022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 1048 1049 * VERSION (_MAKE_VERSION): 20220116 1050 Merge with NetBSD make, pick up 1051 o fix for unit-tests/varname-makeflags on non-BSD systems 1052 o use Var_Exists rather than Var_Value where appropriate 1053 o remove unnecessary functions for expanding variable names 1054 o cond.c: inline EvalBare 1055 o main.c: lint cleanup 1056 o parse.c: condense code in Parse_IsVar 1057 use islower for parsing directives (none have upper case) 1058 10592022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1060 1061 * VERSION (_MAKE_VERSION): 20220112 1062 Merge with NetBSD make, pick up 1063 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 1064 comparion, rarely needed but useful when it is. 1065 10662022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1067 1068 * VERSION (_MAKE_VERSION): 20220110 1069 Merge with NetBSD make, pick up 1070 o inline Buf_Clear 1071 o remove redundant braces 1072 o rename and inline Targ_Precious 1073 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 1074 o for.c: clean up handling of .for loops 1075 fix reported line numbers of continuation lines 1076 add details about .for loop variables to stack traces 1077 o job.c: reduce code for initializing error handling in shell 1078 o main.c: in Cmd_Exec, return error message instead of format string 1079 have as few statements as possible between va_start and va_end 1080 add debug logging for capturing the output of external commands 1081 o make.c: use consistent variable names for varargs 1082 o make_malloc.c: remove duplicate code from bmake_strdup 1083 o parse.c: add missing printflike annotations 1084 remove redundant lines from stack traces 1085 fix stack traces in -dp mode 1086 reduce confusing code in ParseForLoop 1087 fix line number in debug log after returning from a file 1088 rename IFile and its fields to match their actual content 1089 clean up ParseDependencySources 1090 o var.c: shorten ApplyModifier_Assign 1091 rename is_shell_metachar, fix character conversion warning 1092 merge calls to ApplyModifier_Time 1093 merge duplicate code for modifiers 'gmtime' and 'localtime' 1094 10952022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 1096 1097 * parse.c: loadfile restore extra byte in buffer. 1098 10992022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1100 1101 * VERSION (_MAKE_VERSION): 20220101 1102 Merge with NetBSD make, pick up 1103 o more unit-tests 1104 o remove unnecessary words from command line options in CmdOpts 1105 o rename eunlink to unlink_file 1106 o cond.c: make ParseWord in condition parser simpler 1107 internally return false for irrelevant leaves in conditions 1108 replace table for function lookup in conditions with simple code 1109 merge duplicate types CondEvalResult and CondResult 1110 o for.c: clean up handling of .for loops and .include directives 1111 o main.c: constify cached_realpath 1112 clean up Cmd_Exec 1113 o parse.c: sync API documentation 1114 fix error message when reading more than 1 GB from stdin 1115 clean up parsing of makefiles 1116 fix line number in error message about open conditionals 1117 unexport types VarAssignOp and VarAssign 1118 clean up function names 1119 remove redundant parameters in dependency parsing functions 1120 reduce scope of the list of wildcard target names 1121 extract OP_NOTARGET into separate function 1122 clean up variable names for parsing dependency lines 1123 make debug logging a bit more human-friendly 1124 o var.c: condense code in ApplyModifier_Assign 1125 11262021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1127 1128 * VERSION (_MAKE_VERSION): 20211221 1129 Merge with NetBSD make, pick up 1130 o more unit-tests 1131 o style cleanup 1132 o in CLEANUP mode, free interned strings at the very end 1133 o fix memory leak for filenames in .for loops 1134 o buf.c: avoid memory leak 1135 o cond.c: condense CondParser_ComparisonOp 1136 o hash.c: change return type of HashTable_Set to void 1137 o job.c: change return type of Compat_RunCommand from int to bool 1138 o main.c: remove bmake_free 1139 o parse.c: condense repetetive code in ParseDirective 1140 remove dead code for handling traditional include directives 1141 clean up parsing of variable assignments 1142 remove unreachable code for parsing the dependency operator 1143 clean up loading of files 1144 fix memory leak in IncludeFile 1145 o var.c: fix memory leak when parsing a variable name 1146 fix memory leak from ${.SUFFIXES} 1147 reduce memory allocation in modifier ':?' and ':C' 1148 condense RegexReplace for the modifier ':C' and avoid strlen 1149 merge duplicate code for memory handling in Var_Parse 1150 distinguish between short-lived and environment variables 1151 rename VarFreeEnv to VarFreeShortLived 1152 11532021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 1154 1155 * cond.c: fix mem leak in CondParser_Leaf 1156 11572021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1158 1159 * VERSION (_MAKE_VERSION): 20211212 1160 Merge with NetBSD make, pick up 1161 o rename Parse_SetInput to Parse_PushInput 1162 o remove remove period from end of error messages and warnings 1163 to be more consistent 1164 o arch.c: use simpler memory management for parsing archive members 1165 o cond.c: rework and reduce recursion 1166 o for.c: rename some functions to better reflect purpose 1167 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 1168 o var.c: in parse errors, mark whitespace more clearly 1169 inline ParseEmptyArg into CondParser_FuncCallEmpty 1170 minimize calls to LazyBuf_Get in ParseVarnameLong 1171 treat .SUFFIXES as a read-only variable 1172 11732021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 1174 1175 * VERSION (_MAKE_VERSION): 20211207 1176 Merge with NetBSD make, pick up 1177 o inline HashIter_Init 1178 o parse.c: inline common subexpression in ParseRawLine 1179 o var.c: merge branches for modifiers ':D' and ':U' 1180 extract common code into Expr_Words 1181 extract common code into Expr_Str 1182 move low-level implementation details out of Var_Parse 1183 11842021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1185 1186 * VERSION (_MAKE_VERSION): 20211206 1187 Merge with NetBSD make, pick up 1188 o add unit-tests/varmod-loop-delete 1189 o for.c: inline Str_Words - reduce memory allocation 1190 o parse.c: do not try to expand fixed variable names 1191 only allocate the name of an included file if necessary 1192 clean up ParseInclude 1193 o var.c: fix use-after-free in modifier ':@' 1194 save a memory allocation in each modifier ':O' and ':u' 1195 save a memory allocation in the modifier ':[...]' 1196 in UnexportVars, replace Str_Words with Substring_Words to 1197 reduce allocations and copying. 1198 11992021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 1200 1201 * VERSION (_MAKE_VERSION): 20211204 1202 Merge with NetBSD make, pick up 1203 o flesh out a number of tests 1204 o replace enums with bitfields, this simplifies a lot of code. 1205 o var.c: refactor ParseModifierPartSubst 1206 12072021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 1208 1209 * VERSION (_MAKE_VERSION): 20211024 1210 Merge with NetBSD make, pick up 1211 o Punt on write errors - ENOSPC etc. 1212 12132021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1214 1215 * configure.in: use_defshell, set both DEFSHELL_INDEX 1216 and defshell_path if appropriate. 1217 This makes it easier to use say the KSH specification with 1218 and alternate path for the shell. 1219 1220 * configure.in compat.c: for SCO we need to force UseShell 1221 1222 * configure.in: SCO /bin/sh is not usable, provide a list of 1223 alternatives for use as .SHELL. 1224 We still have to mark some tests as broken, plus more if we end up 1225 with ksh as .SHELL. 1226 Issue a warning about skipped tests. 1227 1228 * boot-strap: leave TOOL_DIFF to configure 1229 1230 * configure.in: on SCO native cc is not usable, 1231 gcc is to be found in /usr/gnu/bin 1232 and while ancient is at least able to compile bmake. 1233 Thus we add /usr/gnu/bin to PATH if it exists, and later 1234 check if $CC would have been found via $PATH. 1235 If not we set CC to the full path of $CC. 1236 Also gnu diff is known to support -u, so if it exists use it. 1237 1238 * configure.in: move getopt to AC_REPLACE_FUNCS 1239 also add AC_C_INLINE - in an attempt to compile using 1240 native cc on SCO. 1241 1242 * configure.in: check for stresep as well as strsep, since we 1243 define the later to the former if necessary, and if we have to 1244 provide stresep we also need to provide a prototype. 1245 1246 * configure.in: we no longer need to worry about 1247 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1248 1249 * make.h: make sure we have __RCSID 1250 1251 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1252 can control it. 1253 12542021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1255 1256 * VERSION: 20211020 1257 Merge with NetBSD make, pick up 1258 o confirm sync of unit-tests 1259 12602021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1261 1262 * configure.in: check if timezone Europe/Berlin is supported 1263 if not try UTC-1 1264 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1265 symlink unit-tests -> ../unit-tests/obj so that 1266 unit-tests/Makefile.config is put in the right place. 1267 * refine filtering of .OBJDIR in unit-tests 1268 12692021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1270 1271 * Fix unit-tests on Minix 3.2.0 1272 o job.c: do not punt if read of token pipe fails for EAGAIN. 1273 On Minix at least, we are not ready to read the childExitJob pipe 1274 when poll says we are. 1275 There should actually be no reason for this pipe to be 1276 non-blocking, but while that works fine on {Net,Free}BSD it 1277 breaks another test case on Minix. 1278 o unit-tests/Makefile: deal with variants of error messages 1279 and use of obj as .OBJDIR 1280 12812021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1282 1283 * configure.in: add sigaction to AC_REPLACE_FUNCS 1284 we also need to check for sigaddset etc just for the benefit of 1285 sigact.c 1286 1287 * Add sigact.c as sigaction.c so this "just works". 1288 This should have been done back when bmake_signal started using 1289 sigaction (I only just noticed that sigact.c wasn't here ;-) 1290 Note: I no longer have access to any system where this would matter. 1291 12922021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1293 1294 * VERSION (_MAKE_VERSION): 20211011 1295 1296 * Makefile: cleanup a little 1297 1298 * configure.in: check for sigsetmask 1299 13002021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1301 1302 * VERSION (_MAKE_VERSION): 20211001 1303 Merge with NetBSD make, pick up 1304 o reduce locations reducing text size 1305 o remove unnecessary const 1306 o cond.c: fix lint warning on i386 1307 do not allow unquoted 'left == right' after modifier ':?' 1308 o hash.c: fix build for DEBUG_HASH_LOOKUP 1309 o var.c: fix memory leak in error case of the ':?' modifier 1310 13112021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1312 1313 * VERSION (_MAKE_VERSION): 20210911 1314 Merge with NetBSD make, pick up 1315 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1316 13172021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1318 1319 * VERSION (_MAKE_VERSION): 20210906 1320 Merge with NetBSD make, pick up 1321 o more unit tests 1322 o lint cleanup 1323 o rename some functions to better fit purpose 1324 o for.c: cleanup - remove unnecessary optimization 1325 fix embedded newlines 1326 o parse.c: correct case for CVS/RCS 1327 13282021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1329 1330 * VERSION (_MAKE_VERSION): 20210808 1331 Merge with NetBSD make, pick up 1332 o var.c: remove redundant initialization in ApplyModifier_Order 1333 1334 * mk/options.mk: issue warning for incorrect usage 1335 13362021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1337 1338 * var.c: use long for :On if we don't have a 64bit int type 1339 1340 * VERSION (_MAKE_VERSION): 20210803 1341 Merge with NetBSD make, pick up 1342 o rework varmod-order tests to avoid qsort instability 1343 o make.1: clarify :On entry 1344 13452021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1346 1347 * VERSION (_MAKE_VERSION): 20210731 1348 Merge with NetBSD make, pick up 1349 o fix some lint issues 1350 o more unit tests 1351 o var.c: rework of ApplyModifier_Order 1352 13532021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1354 1355 * util.c: add strto*l if HAVE_STRTO*L not defined 1356 1357 * VERSION (_MAKE_VERSION): 20210730 1358 Merge with NetBSD make, pick up 1359 o var.c: add :On and :Orn for numeric sort 1360 disabled if no 64bit type available. 1361 o _strtol.h: to implement strto*l functions 1362 13632021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1364 1365 * VERSION (_MAKE_VERSION): 20210704 1366 Merge with NetBSD make, pick up 1367 o unit-tests: fix some tests to be more portable 1368 - job-output-null not all shells do the same number of write calls 1369 - objdir-writable if TMPDIR is set; /tmp may not be usable 1370 13712021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1372 1373 * VERSION (_MAKE_VERSION): 20210701 1374 Merge with NetBSD make, pick up 1375 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1376 some tests just cannot work in some environments. 1377 o buf.c: simpler upper bound for length in Buf_AddInt 1378 o cond.c: fix grammar in error message for malformed conditional 1379 o for.c: prevent newline injection (from ${.newline}) in .for loops 1380 o var.c: use more practical data type in RegexReplace 1381 (avoid need for %zu) 1382 extract RegexReplace from ModifyWord_SubstRegex 1383 13842021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1385 1386 * VERSION (_MAKE_VERSION): 20210621 1387 Merge with NetBSD make, pick up 1388 o var.c: only report error for unmatched regex subexpression 1389 when linting (-dL) since we cannot tell when an unmatched 1390 subexpression is an expected result. 1391 o move unmatched regex subexpression tests to 1392 varmod-subst-regex.mk and enable strict (lint) mode 1393 13942021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1395 1396 * VERSION (_MAKE_VERSION): 20210616 1397 Merge with NetBSD make, pick up 1398 o more unit tests 1399 o cond.c: rename If_Eval to EvalBare 1400 improve function names for parsing conditions 1401 o job.c: fix error handling of targets that cannot be made 1402 o var.c: uncompress code in ApplyModifier_Unique 1403 14042021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1405 1406 * VERSION (_MAKE_VERSION): 20210518 1407 Merge with NetBSD make, pick up 1408 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1409 o job.c: Print -de error information when running multiple jobs 1410 14112021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1412 1413 * VERSION (_MAKE_VERSION): 20210420 1414 Merge with NetBSD make, pick up 1415 o use C99 bool type 1416 o convert VarEvalFlags back into an enum 1417 o cond.c: do not complain when skipping the condition 'no >= 10' 1418 o hash.c: avoid allocating memory for simple variable names 1419 o job.c: use distinct wording for writing to the shell commands file 1420 remove type name for the abort status in job handling 1421 rename PrintOutput to PrintFilteredOutput to avoid confusion 1422 o main.c: avoid double slash in name of temporary directory 1423 o var.c: use straight quotes for error 'Bad conditional expression' 1424 reduce memory allocations in the modifiers ':D' and ':U' 1425 rename members of ModifyWord_LoopArgs 1426 clean up pattern flags for the modifiers ':S' and ':C' 1427 reduce memory allocation and strlen calls in modifier ':from=to' 1428 in the ':Q' modifier, only allocate memory if necessary 1429 improve performance for LazyBuf 1430 remove redundant parameter from ParseVarnameLong 1431 migrate ParseModifierPart to use Substring 1432 avoid unnecessary calls to strlen when evaluating modifiers 1433 migrate ModifyWord functions to use Substring 1434 migrate handling of the modifier ':S,from,to,' to Substring 1435 reduce debug logging and memory allocation for ${:U...} 1436 reduce verbosity of the -dv debug logging for standard cases 1437 clean up debug logging for ':M' and ':N' 1438 disallow '$' in the variable name of the modifier ':@' 1439 simplify access to the name of an expression during evaluation 1440 14412021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1442 1443 * VERSION (_MAKE_VERSION): 20210330 1444 Merge with NetBSD make, pick up 1445 o replace enum bit-field with struct bit-field for VarEvalFlags 1446 o rename VARE_NONE to VARE_PARSE_ONLY 1447 o var.c: rename ApplyModifiersState to ModChain 1448 fix double varname expansion in the variable modifier '::=' 1449 change debug log for variable evaluation flags to lowercase 1450 14512021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1452 1453 * VERSION (_MAKE_VERSION): 20210314 1454 Merge with NetBSD make, pick up 1455 o var.c: avoid evaluating many modifiers in parse only mode 1456 in strict mode (-dL) many variable references are parsed twice, 1457 the first time just to report parse errors early, so we want to 1458 avoid side effects and wasted effort to the extent possible. 1459 14602021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1461 1462 * VERSION (_MAKE_VERSION): 20210226 1463 Merge with NetBSD make, pick up 1464 o remove freestanding freeIt variables 1465 link via FStr 1466 o var.c: restructure code in ParseVarname to target human readers 1467 improve error message for; 1468 bad modifier in variable expression 1469 unclosed modifier 1470 unknown modifier 1471 remove redundant parameter of ApplySingleModifier 1472 explain non-obvious code around indirect variable modifiers 1473 quote ':S' in error message about missing delimiter 1474 extract ParseModifier_Match into separate function 1475 add context information to error message about ':range' modifier 1476 add quotes around variable name in an error message 1477 reorder code in ModifyWords 1478 use more common parameter order for VarSelectWords 1479 make ModifyWord_Subst a little easier to understand 1480 do not expand variable name from the command line twice 1481 extract ExistsInCmdline from Var_SetWithFlags 1482 save a hash map lookup when defining a cmdline variable 1483 clean up VarAdd, Var_Delete, Var_ReexportVars 1484 use bit-shift expressions for VarFlags constants 1485 rename constants for VarFlags 1486 rename ExprDefined constants for debug logging 1487 rename ExprStatus to ExprDefined 1488 split parameters for evaluating variable expressions 1489 reduce redundant code around ModifyWords 1490 print error about failed shell command before overwriting variable 1491 clean up ValidShortVarname, ParseVarnameShort 1492 rename VarExprStatus to ExprStatus 1493 add functions for assigning the value of an expression 1494 rename ApplyModifiersState_Define to Expr_Define 1495 condense the code for parsing :S and :C modifiers 1496 14972021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1498 1499 * VERSION (_MAKE_VERSION): 20210206 1500 Merge with NetBSD make, pick up 1501 o unit-tests: use private TMPDIR to avoid errors from other users 1502 15032021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1504 1505 * VERSION (_MAKE_VERSION): 20210205 1506 Merge with NetBSD make, pick up 1507 o avoid strdup in mkTempFile 1508 o always use vfork 1509 o rename context and ctxt to scope 1510 o rename some VAR constants to SCOPE 1511 o Var_ functions, move the scope to the front 1512 o use shortcut functions Global_Set and Global_Append 1513 o add shortcut Global_Delete for deleting a global variable 1514 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1515 o compat.c: when exiting due to an error, print graph information 1516 o enum.c: remove overengineered Enum_ValueToString 1517 o make.c: remove unused INTERNAL flag 1518 remove unused return type of MakeBuildParent 1519 o parse.c: replace parse error "Need an operator" with better message 1520 o var.c: improve documentation about variable scopes 1521 rename Var_ValueDirect to GNode_ValueDirect 1522 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1523 merge SetVar into Var_SetWithFlags 1524 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1525 split Var_Append into Var_Append and Var_AppendExpand 1526 replace enum bit-set with bit-field 1527 o unit-tests/var-op-shell: use kill rather than kill -14 1528 which broke on darwin with recent update. 1529 15302021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1531 1532 * configure.in: check for sig_atomic_t and define it as 'int' 1533 if missing. 1534 1535 * VERSION (_MAKE_VERSION): 20210201 1536 Merge with NetBSD make, pick up 1537 o use sig_atomic_t for caught_sigchld 1538 15392021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1540 1541 * VERSION (_MAKE_VERSION): 20210130 1542 Merge with NetBSD make, pick up 1543 o more unit tests 1544 o convert SearchPath to struct 1545 o split Buf_Destroy into Buf_Done and Buf_DoneData 1546 o for.c: split For_Eval into separate functions 1547 rename struct For to struct ForLoop 1548 o job.c: do not create empty shell files in jobs mode 1549 rename JobOpenTmpFile to JobWriteShellCommands 1550 reduce unnecessary calls to waitpid 1551 o parse.c: in -dp mode, print stack trace with each diagnostic 1552 15532021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1554 1555 * VERSION (_MAKE_VERSION): 20210123 1556 Merge with NetBSD make, pick up 1557 o rename Dir_Expand to SearchPath_Expand 1558 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1559 o cond.c: fix debug output for comparison operators in conditionals 1560 o dir.c: split Dir_FindFile into separate functions 1561 15622021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1563 1564 * VERSION (_MAKE_VERSION): 20210120 1565 Merge with NetBSD make, pick up 1566 o fix some more lint nits 1567 o refine some unit tests for portability 1568 o cond.c: rework parsing 1569 15702021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1571 1572 * VERSION (_MAKE_VERSION): 20210110 1573 Merge with NetBSD make, pick up 1574 o fix lint warnings 1575 o consistently use boolean expressions in conditions 1576 15772021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1578 1579 * VERSION (_MAKE_VERSION): 20210108 1580 Merge with NetBSD make, pick up 1581 o job.c: back to polling token pipe if we want a token 1582 o main.c: always print 'stopped in' on first call 1583 The execption is if we bail because of an abort token 1584 in which case just exit 6. 1585 15862021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1587 1588 * VERSION (_MAKE_VERSION): 20210101 1589 Merge with NetBSD make, pick up 1590 o Happy New Year! 1591 o rename CmdOpts.lint to strict 1592 o exit 2 on technical errors 1593 o replace pointers in controlling conditions with booleans 1594 o replace global preserveUndefined with VARE_KEEP_UNDEF 1595 o compat.c: re-export variables from the actual make process 1596 if using vfork this is the effect anyway 1597 o cond.c: clean up VarParseResult constants 1598 o for.c: fix undefined behavior in SubstVarLong 1599 make control flow in SubstVarLong of .for loops more obvious 1600 clean up SubstVarShort in .for loops 1601 extract ForSubstBody from ForReadMore 1602 clean up ForReadMore 1603 simplify termination condition for .for loop 1604 add error handling for .for loop items 1605 job.c: re-export variables from the actual make process 1606 parse.c: remove mmap for loading files, only allow files < 1 GiB 1607 fix edge case in := with undefined in variable name 1608 skip variable expansion in ParseDependencyTargetWord 1609 var.c: split ExportVar into separate functions 1610 clean up code in extracted ExportVar functions 1611 remove dead code from ApplyModifiersIndirect 1612 split Var_Subst into easily understandable functions 1613 clean up VarParseResult constants 1614 16152020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1616 1617 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1618 16192020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1620 1621 * VERSION (_MAKE_VERSION): 20201222 1622 Merge with NetBSD make, pick up 1623 o make DEBUG macro return boolean 1624 o parse.c: fix assertion failure for files without trailing newline 1625 o var.c: allow .undef to undefine multiple variables at once 1626 remove excess newline from parse errors 1627 16282020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1629 1630 * VERSION (_MAKE_VERSION): 20201221 1631 Merge with NetBSD make, pick up 1632 o some unit-test updates 1633 16342020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1635 1636 * VERSION (_MAKE_VERSION): 20201220 1637 Merge with NetBSD make, pick up 1638 o more unit tests 1639 o return FStr from Var_Parse and Var_Value 1640 o spell nonexistent consistently 1641 o add str_basename to reduce duplicate code 1642 o compat.c: fix .ERROR_TARGET in compat -k mode 1643 extract InitSignals from Compat_Run 1644 extract UseShell from Compat_RunCommand 1645 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1646 o for.c: rename ForIterate to ForReadMore 1647 o hash.c: clean up hash function for HashTable 1648 o lst.c: rename Vector.priv_cap to cap 1649 o main.c: remove constant parameter from MakeMode 1650 o make.c: use symbolic time for 0 in Make_Recheck 1651 extract MakeChildren from MakeStartJobs 1652 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1653 fix error message for .info/.warning/.error without argument 1654 extract Var_Undef from ParseDirective 1655 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1656 rename mode constants for ParseGetLine to be more expressive 1657 reduce debugging details in Parse_SetInput 1658 fix line numbers in .for loops 1659 split ParseGetLine into separate functions 1660 fix garbled output for failed shell command 1661 var.c: remove redundant assignment in ApplyModifier_SysV 1662 error out on unknown variable modifiers at parse time 1663 remove wrong error message for indirect modifier in lint mode 1664 extract ApplySingleModifier from ApplyModifiers 1665 use FStr for memory management in Var_SetWithFlags 1666 extract SetVar from Var_SetWithFlags 1667 use FStr in VarNew 1668 extract string functions from ApplyModifier_To 1669 error out if .undef has not exactly 1 argument 1670 extract Var_DeleteVar from Var_Delete 1671 extract Var_Undef from ParseDirective 1672 clean up memory management for expanding variable expressions 1673 16742020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1675 1676 * avoid %zu 1677 1678 * lst.c: avoid anonymous union 1679 1680 * VERSION (_MAKE_VERSION): 20201212 1681 Merge with NetBSD make, pick up 1682 o more unit tests 1683 o inline Targ_Ignore and Targ_Silent 1684 o split JobFlags into separate fields 1685 o remove const from function parameters (left overs from refactoring) 1686 o eliminate boolean argument of Var_Export 1687 o make API of Buf_Init simpler 1688 o rename ParseRunOptions to ParseCommandFlags 1689 o replace *line with line[0] 1690 o compat.c: fix wrong exit status for multiple failed main targets 1691 refactor Compat_Run to show the error condition more clearly 1692 don't make .END if the main targets already failed (-k mode) 1693 fix exit status in -k mode if a dependency fails 1694 o for.c: clean up Buf_AddEscaped in .for loops 1695 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1696 make Job_Touch simpler 1697 refactor JobFinish 1698 rename Shell.exitFlag to errFlag 1699 move Job.xtraced to ShellWriter 1700 make printing of shell commands independent from the job 1701 rename shell flags in struct Shell 1702 extract JobOpenTmpFile from JobStart 1703 rename RunFlags to CommandFlags 1704 split various Job.* into separate fields 1705 rename commandShell to shell 1706 extract InitShellNameAndPath from Shell_Init 1707 replace signal handling macros with local functions 1708 replace macro MESSAGE with local function 1709 parse.c: error out on null bytes in makefiles 1710 error out on misspelled directives 1711 rename IFile.nextbuf to readMore 1712 fix undefined behavior in ParseEOF 1713 str.c: remove redundant call to strlen in Str_Words 1714 var.c: error out on misspelled .unexport-env 1715 error out on misspelled .export directives 1716 extract ExportVars from Var_Export 1717 extract ExportVarsExpand from Var_Export 1718 eliminate boolean argument of Var_Export 1719 fix undefined behavior when exporting ${:U } 1720 rename Var_ExportVars to Var_ReexportVars 1721 rename Var_Export1 to ExportVar 1722 17232020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1724 1725 * VERSION (_MAKE_VERSION): 20201206 1726 Merge with NetBSD make, pick up 1727 o more unit tests 1728 o inline macros for debug logging 1729 o use consistent variable names for list nodes 1730 o define constants for enum zero-values 1731 o dir.c: use fixed format for debug output of the directory cache 1732 remove Dir_InitDir 1733 o lst.c: inline Lst_Enqueue, Vector_Done 1734 o meta.c: remove unused parameter from meta_needed 1735 o parse.c: rename parse functions 1736 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1737 o targ.c: don't concatenate identifiers in Targ_PrintType 1738 o var.c: remove comment decoration 1739 extract UnexportVars from Var_UnExport 1740 extract GetVarnamesToUnexport from Var_UnExport 1741 extract UnexportEnv from Var_UnExport 1742 extract UnexportVar from Var_UnExport 1743 move CleanEnv to UnexportVars 1744 replace pointer comparisons with enum 1745 add FStr to var.c to make memory handling simpler 1746 use FStr in Var_UnExport 1747 move type definitions in var.c to the top 1748 extract FreeEnvVar from Var_Parse 1749 extract ShuffleStrings from ApplyModifier_Order 1750 17512020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1752 1753 * VERSION (_MAKE_VERSION): 20201130 1754 Merge with NetBSD make, pick up 1755 o add unit tests for META MODE 1756 o reduce memory allocation for dirSearchPath, GNode.parents, 1757 GNode.children, OpenDirs 1758 o reduce pointer indirection for GNode.cohorts and 1759 GNode.implicitParents 1760 o remove pointer indirection from GNode.commands 1761 o inline Lst_ForEachUntil in meta mode 1762 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1763 clean up memory management for CachedDirs 1764 fix the reference count of dotLast going negative 1765 add debug logging for OpenDirs_Done 1766 extract CacheNewDir from Dir_AddDir 1767 add debug logging for reference counting of CachedDir 1768 rename some Dir functions to SearchPath 1769 o job.c: rename some global variables 1770 o main.c: reduce memory allocation in ReadBuiltinRules 1771 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1772 CmdOpts.makefiles 1773 Add .MAKE.UID and .MAKE.GID 1774 o make.c: reduce memory allocation for/in toBeMade, 1775 Make_ProcessWait, Make_ExpandUse 1776 o meta.c: reduce memory allocation in meta_oodate 1777 o parse.c: reduce memory allocations for parsing dependencies and 1778 targets 1779 o suff.c: reduce memory allocation in suffix handling 1780 17812020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1782 1783 * VERSION (_MAKE_VERSION): 20201124 1784 Merge with NetBSD make, pick up 1785 o .MAKE.{UID,GID} represent uid and gid running make. 1786 o fix error handling for .BEGIN and .END dependency in -k mode 1787 o fix missing "Stop." after failed .END node in -k mode 1788 o use properly typed comparisons in boolean contexts 1789 o replace a few HashTable_CreateEntry with HashTable_Set 1790 o add HashSet type 1791 o compat.c: split Compat_Make into smaller functions 1792 extract DebugFailedTarget from Compat_RunCommand 1793 o dir.c: refactor Dir_UpdateMTime 1794 migrate CachedDir.files from HashTable to HashSet 1795 o make.c: add high-level API for GNode.made 1796 17972020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1798 1799 * VERSION (_MAKE_VERSION): 20201122 1800 Merge with NetBSD make, pick up 1801 o rename GNode.context to vars 1802 o suff.c: cleanup and refactor 1803 rename some functions and vars to better reflect usage 1804 add high-level API for CandidateSearcher 1805 o targ.c: add more debug logging for suffix handling 1806 o more unit tests 1807 o add debug logging for setting and resetting the main target 1808 18092020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1810 1811 * VERSION (_MAKE_VERSION): 20201117 1812 Merge with NetBSD make, pick up 1813 o fix some unit-tests when .SHELL is dash 1814 o rename Targ_NewGN to GNode_New 1815 o make some GNode functions const 1816 o main.c: call Targ_Init before Var_Init 1817 cleanup PrintOnError, getTmpdir and ParseBoolean 1818 o var.c: fix error message of failed :!cmd! modifier 1819 18202020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1821 1822 * VERSION (_MAKE_VERSION): 20201114 1823 Merge with NetBSD make, pick up 1824 o replace a few HashTable_CreateEntry with HashTable_Set 1825 o clean up cached_stats 1826 o rename DEFAULT to defaultNode 1827 o remove redundant struct make_stat 1828 o cond.c: in lint mode, check for ".else <cond>" 1829 use bitset for IfState 1830 replace large switch with if-else in Cond_EvalLine 1831 o job.c: clean up JobExec, JobStart, JobDoOutput 1832 use stderr for error message about failed touch 1833 clean up Job_Touch 1834 replace macro DBPRINTF with JobPrintln 1835 rename JobState to JobStatus 1836 main.c: switch cache for realpath from GNode to HashTable 1837 clean up Fatal 1838 clean up InitDefSysIncPath 1839 use progname instead of hard-coded 'make' in warning 1840 rename Main_SetVarObjdir to SetVarObjdir 1841 make.1: document the -S option 1842 make.c: fix debug output for GNode details 1843 use symbolic names in debug output of GNodes 1844 18452020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1846 1847 * configure.in: fix --with-force-machine-arch 1848 1849 * VERSION (_MAKE_VERSION): 20201112 1850 Merge with NetBSD make, pick up 1851 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1852 checks in InitObjdir. Explicit .OBJDIR target always allows 1853 read-only directory. 1854 o cond.c: clean up Cond_EvalLine 1855 18562020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1857 1858 * VERSION (_MAKE_VERSION): 20201111 1859 Merge with NetBSD make, pick up 1860 o more unit-tests 1861 o style cleanup 1862 remove redundant parentheses from sizeof operator 1863 replace character literal 0 with '\0'. 1864 replace pointer literal 0 with NULL. 1865 remove redundant parentheses. 1866 replace (expr & mask) == 0 with !(expr & mask). 1867 use strict typing in conditions of the form !var 1868 o rename Make_OODate to GNode_IsOODate 1869 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1870 o rename Var_Set_with_flags to Var_SetWithFlags 1871 o rename dieQuietly to shouldDieQuietly 1872 o buf.c: make API of Buf_Init simpler 1873 o compat.c: clean up Compat_Make, Compat_RunCommand, 1874 CompatDeleteTarget and CompatInterrupt 1875 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1876 clean up CondParser_Comparison 1877 o main.c: rename getBoolean and s2Boolean 1878 rename MAKEFILE_PREFERENCE for consistency 1879 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1880 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1881 replace emptyString with allocated empty string 1882 error out on unclosed expressions after the colon 1883 18842020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1885 1886 * VERSION (_MAKE_VERSION): 20201101 1887 Merge with NetBSD make, pick up 1888 o negate NoExecute to GNode_ShouldExecute 1889 o job.c: rename JobMatchShell to FindShellByName 1890 extract EscapeShellDblQuot from JobPrintCommand 1891 extract ParseRunOptions from JobPrintCommand 1892 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1893 treat malformed :range, :ts and :[...] as errors 1894 add tests for the variable modifiers :[words] and :range 1895 18962020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1897 1898 * VERSION (_MAKE_VERSION): 20201031 1899 Merge with NetBSD make, pick up 1900 o format #include directives consistently 1901 o do not look up local variables like .TARGET anywhere else 1902 o main.c: Main_SetObjdir is first called for curdir which may be 1903 readonly 1904 reduce the scope where recursive expressions are detected 1905 remove redundant :tl from getBoolean 1906 clean up mkTempFile 1907 o meta.c: simplify memory allocation in meta_create and meta_oodate 1908 o parse.c: extract loadedfile_mmap from loadfile 1909 o trace.c: document possible undefined behavior with .CURDIR 1910 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1911 rename ismeta to is_shell_metachar 1912 remove debug logging for the :Q variable modifier 1913 rename VarIsDynamic to VarnameIsDynamic 1914 use consistent parameter order in varname parsing functions 1915 extract ParseVarnameLong from Var_Parse 1916 extract ParseVarnameShort from Var_Parse 1917 fix type of ParseModifierPart parameter delim 1918 extract IsEscapedModifierPart from ParseModifierPart 1919 clean up ModifyWords 1920 add test for combining the :@ and :? variable modifiers 1921 19222020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1923 1924 * VERSION (_MAKE_VERSION): 20201030 1925 Merge with NetBSD make, pick up 1926 o change char * to void * in Var_Value 1927 o make iterating over HashTable simpler 1928 o rename VAR_CMD to VAR_CMDLINE 1929 o cond.c: clean up is_separator 1930 fix parse error in string literal in conditional 1931 o main.c: do not use objdir that is not writable 1932 in lint mode, exit with error status on errors 1933 o parse.c: clean up StrContainsWord 1934 fix out-of-bounds pointer in ParseTrackInput 1935 o var.c: rename Str_SYSVMatch and its parameters 1936 remove unsatisfiable conditions in Var_Set_with_flags 1937 document where the variable name is expanded 1938 fix documentation for VARP_SUB_ONE 1939 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1940 document VAR_READONLY 1941 prevent appending to read-only variables 1942 extract MayExport from Var_Export1 1943 remove redundant evaluations in VarFind 1944 replace VarFindFlags with a simple Boolean 1945 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1946 19472020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1948 1949 * VERSION (_MAKE_VERSION): 20201028 1950 Merge with NetBSD make, pick up 1951 o rename defIncPath to defSysIncPath 1952 o initialize all CmdOpts fields 1953 o lst.c: inline Vector_Get 1954 o main.c: refactor main extract 1955 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1956 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1957 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1958 o parse.c: merge curFile into includes 1959 rename predecessor to order_pred 1960 sort ParseSpecial alphabetically 1961 remove unused, undocumented .NOEXPORT 1962 rename ParseSpecial enum values consistently 1963 rename some fields of struct IFile 1964 19652020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1966 1967 * VERSION (_MAKE_VERSION): 20201026 1968 Merge with NetBSD make, pick up 1969 o group the command line options and arguments into a struct 1970 o rename GNode.cmgn to youngestChild 1971 o rename hash functions to identify the type name 1972 o negate OP_NOP and rename it to GNode_IsTarget 1973 o add GNode_Path to access the path of a GNode 1974 o remove macros MIN and MAX 1975 o remove unused Lst_Find and Lst_FindFrom 1976 o arch.c: and make Arch_FindLib simpler 1977 clean up code layout 1978 make Arch_ParseArchive simpler 1979 o cond.c: inline CondFindStrMatch into FuncMake 1980 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1981 omit trailing space in debug output for expanding file patterns 1982 refactor DirMatchFiles 1983 document that the SearchPath of Dir_FindFile may be NULL 1984 remove UNCONST from Dir_Expand 1985 inline DirFindName 1986 o for.c: clean up code for handling .for loops 1987 o hash.c: print hash in debug log with fixed width 1988 clean up hash table functions 1989 reduce amount of string hashing 1990 o job.c: refactor JobDeleteTarget 1991 use proper enum constants for aborting 1992 convert result of JobStart from macros to enum 1993 convert abort reason macros to enum 1994 rework Job_CheckCommands to reduce indentation 1995 rename Shell fields 1996 add field names in declaration of DEFSHELL_CUSTOM 1997 convert JobState and JobFlags to enum types 1998 move handling of the "..." command to JobPrintCommands 1999 o lst.c: clean up 2000 refactor LstNodeNew 2001 remove Lst_Open, Lst_Next, Lst_Close 2002 remove code for circular lists from Lst_Next 2003 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 2004 /dev/null or anything starting with "no" 2005 convert macros for debug flags into enum 2006 o make.c: inline Lst_Copy in Make_ExpandUse 2007 o meta.c: inline Lst_Find in meta_oodate 2008 make Lst_RemoveIf simpler in meta_oodate 2009 o parse.c: convert error level for Parse_Error to an enum 2010 o suff.c: properly terminate debug output with newline 2011 add more details to DEBUG_SRC log 2012 replace Dir_CopyDir with Dir_CopyDirSearchPath 2013 don't modify GNode name while rebuilding the suffix graph 2014 o var.c: reduce duplicate code in VarFind 2015 20162020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 2017 2018 * VERSION (_MAKE_VERSION): 20201022 2019 Merge with NetBSD make, pick up 2020 o more refactoring and simplification to reduce code size 2021 o var.c: extract CanonicalVarname from VarFind 2022 o make.c: extract UpdateImplicitParentsVars from Make_Update 2023 o main.c: extract PrintVar from doPrintVars 2024 extract HandlePWD from main 2025 o lst.c: inline simple Lst getters 2026 remove unused Lst_ForEach 2027 o job.c: move struct Shell from job.h to job.c 2028 o more unit tests 2029 20302020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 2031 2032 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 2033 20342020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 2035 2036 * VERSION (_MAKE_VERSION): 20201018 2037 Merge with NetBSD make, pick up 2038 o remove USE_IOVEC 2039 o rename some Hash_* apis to Hash* 2040 o replace execError with execDie 2041 o rename Lst_Init to Lst_New 2042 o add tags to enum types 2043 o rename Stack to Vector 2044 o parse.c: more refactoring 2045 o unit-tests: make some tests use line buffered stdout 2046 o unit-tests/Makefile: in meta mode do not make all tests depend on 2047 Makefile, it isn't necessary. 2048 20492020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 2050 2051 * main.c: check for CTL_HW being defined. 2052 * unit-tests/Makefile: ensure export tests output are POSIX compliant 2053 disable opt-debug-jobs test until it works on ubuntu 2054 2055 * VERSION (_MAKE_VERSION): 20201010 2056 Merge with NetBSD make, pick up 2057 o dir.c: remove pathname limit for Dir_FindHereOrAbove 2058 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 2059 o main.c: extract init_machine and init_machine_arch from main 2060 allow to disable debug logging options 2061 o parse.c: enable format string truncation warnings 2062 extract parsing of sources from ParseDoDependency 2063 split ParseDoSrc into smaller functions 2064 hide implementation details from Parse_DoVar 2065 clean up parsing of variable assignments 2066 split Parse_DoVar into manageable pieces 2067 don't modify the given line during Parse_DoVar 2068 fix out-of-bounds memory access in Parse_DoVar 2069 fix parsing of the :sh assignment modifier 2070 o var.c: rework memory allocation for the name of variables 2071 extract ApplyModifier_Literal into separate function 2072 in lint mode, reject modifiers without delimiter 2073 do not export variable names starting with '-' 2074 o fix double-free bug in -DCLEANUP mode 2075 o more cleanup to enable higher warnings level 2076 o more unit tests 2077 20782020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 2079 2080 * VERSION (_MAKE_VERSION): 20201002 2081 Merge with NetBSD make, pick up 2082 o dir.c: use hash table for looking up open directories by name 2083 o main.c: clean up option handling 2084 o parse.c: add missing const for Parse_AddIncludeDir 2085 o var.c: ApplyModifier_To, update pp in each branch 2086 o remove redundant function prototypes 2087 o more unit tests 2088 20892020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 2090 2091 * VERSION (_MAKE_VERSION): 20201001 2092 Merge with NetBSD make, pick up 2093 o compat.c: comment about "..." 2094 20952020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 2096 2097 * VERSION (_MAKE_VERSION): 20200930 2098 Merge with NetBSD make, pick up 2099 o job.c: split Job.jobPipe into 2 separate fields 2100 replace Lst_Open with direct iteration 2101 o lst.c: remove redundant assertions 2102 o targ.c: replace Lst_Open with direct iteration 2103 o var.c: fix bug in evaluation of indirect variable modifiers 2104 extract ApplyModifier_Quote into separate function 2105 o make debug logging simpler 2106 21072020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 2108 2109 * VERSION (_MAKE_VERSION): 20200927 2110 Merge with NetBSD make, pick up 2111 o parse.c: ensure parse errors result in 'stopped in' message. 2112 o compat.c: make parameter of Compat_RunCommand const 2113 o main.c: extract InitVarTarget from main 2114 o parse.c: rename ParseFinishLine to FinishDependencyGroup 2115 refactor ParseDoDependency 2116 o var.c: Var_Subst no longer returns string result 2117 rename Var_ParsePP back to Var_Parse 2118 in lint mode, improve error handling for undefined variables 2119 extract ParseVarname from Var_Parse 2120 o rename Lst_ForEach to Lst_ForEachUntil 2121 o inline Lst_ForEachUntil in several cases 2122 o clean up API for finding and creating GNodes 2123 o fix assertion failure in -j mode with .END node 2124 o inline and remove LstNode_Prev and LstNode_Next 2125 o use fine-grained type names for lists and their nodes 2126 o more unit tests 2127 21282020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 2129 2130 * VERSION (_MAKE_VERSION): 20200911 2131 Merge with NetBSD make, pick up 2132 o cond.c: split EvalComparison into smaller functions 2133 reorder parameters of condition parsing functions 2134 reduce code size in CondParser_Eval 2135 rename CondGetString to CondParser_String 2136 add CondLexer_SkipWhitespace 2137 group the condition parsing state into a struct 2138 in CondGetString, replace repeated Buf_Add with Buf_AddStr 2139 o migrate Var_Parse to Var_ParsePP 2140 o add wrappers around ctype.h functions 2141 o lst.c: use a stack instead of a list for the nested include path 2142 o more unit tests 2143 21442020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 2145 2146 * make-bootstrap.sh.in: adjust object list 2147 21482020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 2149 2150 * VERSION (_MAKE_VERSION): 20200902 2151 Merge with NetBSD make, pick up 2152 o use make_stat to ensure no confusion over valid fields 2153 returned by cached_stat 2154 o var.c: make VarQuote const-correct 2155 o add unit tests for .for 2156 21572020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 2158 2159 * VERSION (_MAKE_VERSION): 20200901 2160 Merge with NetBSD make, pick up 2161 o rename Hash_Table fields 2162 o make data types in Dir_HasWildcards more precise 2163 21642020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 2165 2166 * VERSION (_MAKE_VERSION): 20200831 2167 Merge with NetBSD make, pick up 2168 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 2169 o lst.c: Lst_Open renable assert that list isn't open 2170 o unit test for .TARGET dependent flags 2171 o var.c: fix aliasing bug in VarUniq 2172 o more unit tests for :u 2173 21742020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 2175 2176 * VERSION (_MAKE_VERSION): 20200830 2177 Merge with NetBSD make, pick up 2178 o allow for strict type checking for Boolean 2179 o Var_Parse never returns NULL 2180 o Var_Subst never returns NULL 2181 o Lst_Find now takes boolean match function 2182 o rename Lst_Memeber to Lst_FindDatum 2183 o rename LstNode functions to match their type 2184 o rename GNode.iParents to implicitParents 2185 o fix assertion failure for .SUFFIXES in archives 2186 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 2187 remove unreachable code from CompatRunCommand 2188 o main.c: simplify getBoolean 2189 o stc.c: replace brk_string with simpler Str_Words 2190 o suff.c: add debug macros 2191 21922020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 2193 2194 * VERSION (_MAKE_VERSION): 20200828 2195 Merge with NetBSD make, pick up 2196 o lst.c: inline LstIsValid and LstNodeIsValid 2197 o remove trailing S from Lst function names after migration complete 2198 o more comment cleanup/clarification 2199 o suff.c: clean up suffix handling 2200 o more unit tests 2201 22022020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2203 2204 * VERSION (_MAKE_VERSION): 20200826 2205 Merge with NetBSD make, pick up 2206 o enum.c: distinguish between bitsets containing flags and 2207 ordinary enums 2208 o var.c: fix error message for ::!= modifier with shell error 2209 o fix bugs in -DCLEANUP mode 2210 22112020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 2212 2213 * VERSION (_MAKE_VERSION): 20200824 2214 Merge with NetBSD make, pick up 2215 o in debug mode, print GNode details in symbols 2216 22172020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 2218 2219 * VERSION (_MAKE_VERSION): 20200823 2220 Merge with NetBSD make, pick up 2221 o lst.c: more asserts, 2222 make args to Lst_Find match others. 2223 o var.c: pass flags to VarAdd 2224 o arch.c: use Buffer 2225 o str.c: brk_string return size_t for nwords 2226 o more unit tests 2227 22282020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2229 2230 * VERSION (_MAKE_VERSION): 2231 Merge with NetBSD make, pick up 2232 o var.c: support for read-only variables eg .SHELL 2233 being the shell used to run scripts. 2234 o lst.c: more simplification 2235 o more documentation and style cleanup 2236 o more unit tests 2237 o ensure unit-test/Makefile is run by TEST_MAKE 2238 o reduce duplication of header inclusion 2239 22402020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2241 2242 * VERSION (_MAKE_VERSION): 20200821 2243 Merge with NetBSD make, pick up 2244 o lst.c: revert invalid assertion - but document it 2245 o dir.c: split Dir_Init into two functions 2246 22472020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2248 2249 * lst.c: needs inttypes.h on Linux 2250 2251 * VERSION (_MAKE_VERSION): 20200820 2252 Merge with NetBSD make, pick up 2253 o make.1: clarify some passages 2254 o var.c: more cleanup, clarify comments 2255 o make_malloc.c: remove unreachable code 2256 o cond.c: make CondGetString easier to debug 2257 o simplify list usage 2258 o unit-tests: more 2259 22602020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2261 2262 * VERSION (_MAKE_VERSION): 20200816 2263 Merge with NetBSD make, pick up 2264 o refactor unit-tests to be more fine grained 2265 not all tests moved yet 2266 22672020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2268 2269 * VERSION (_MAKE_VERSION): 20200814 2270 Merge with NetBSD make, pick up 2271 o more str_concat variants 2272 o more enums for flags 2273 o var.c: cleanup for higher warnings level 2274 22752020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2276 2277 * VERSION (_MAKE_VERSION): 20200810 2278 Merge with NetBSD make, pick up 2279 o more unit tests 2280 o general comment and style cleanup 2281 22822020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2283 2284 * VERSION (_MAKE_VERSION): 20200808 2285 Merge with NetBSD make, pick up 2286 o enum.[ch]: streamline, enums for use in flags and debug output 2287 o cond.c: cleanup 2288 o var.c: reduce duplicate code for modifiers 2289 debug logging for Var_Parse 2290 more detailed debug output 2291 o more unit tests 2292 22932020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2294 2295 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2296 so I can run tests in meta mode 2297 supress extra noise if in meta mode 2298 2299 * VERSION (_MAKE_VERSION): 20200806 2300 Merge with NetBSD make, pick up 2301 o parse.c: remove VARE_WANTRES for LINT 2302 we just want to check parsing (for now). 2303 23042020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2305 2306 * VERSION (_MAKE_VERSION): 20200805 2307 Merge with NetBSD make, pick up 2308 o make.1: Rework the description of dependence operators 2309 23102020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2311 2312 * VERSION (_MAKE_VERSION): 20200803 2313 Merge with NetBSD make, pick up 2314 o revert some C99 usage, for max portability 2315 o unit-tests/lint 2316 23172020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2318 2319 * VERSION (_MAKE_VERSION): 20200802 2320 Merge with NetBSD make, pick up 2321 o more unit tests 2322 23232020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2324 2325 * Remove NetBSD specific plumbing from unit-tests/Makefile 2326 2327 * VERSION (_MAKE_VERSION): 20200801 2328 Merge with NetBSD make, pick up 2329 o make Var_Value return const 2330 o size_t for buf sizes 2331 o optimize some buffer operations - avoid strlen 2332 23332020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2334 2335 * VERSION (_MAKE_VERSION): 20200731 2336 Merge with NetBSD make, pick up 2337 o var.c: fix undefinded behavior for incomplete :t modifier 2338 fixes unit-test/moderrs on Ubuntu 2339 o parse.c: When parsing variable assignments other than := 2340 if DEBUG(LINT) test substition of value, so we get a file and 2341 line number in the resulting error. 2342 o dir.c: fix parsing of nested braces in dependency lines 2343 add unit-tests 2344 23452020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2346 2347 * VERSION (_MAKE_VERSION): 20200730 2348 Merge with NetBSD make, pick up 2349 o var.c: minor cleanup 2350 o unit-tests: more tests to improve code coverage 2351 23522020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2353 2354 * VERSION (_MAKE_VERSION): 20200728 2355 Merge with NetBSD make, pick up 2356 o var.c: more optimizations 2357 23582020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2359 2360 * VERSION (_MAKE_VERSION): 20200726 2361 Merge with NetBSD make, pick up 2362 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2363 o lots of function comment updates 2364 o var.c: more optimizations 2365 o make return of Var_Parse const 2366 23672020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2368 2369 * VERSION (_MAKE_VERSION): 20200720 2370 Merge with NetBSD make, pick up 2371 o DEBUG_HASH report stats at end and tone down the noise 2372 o var.c: each flag type gets its own prefix. 2373 move SysV string matching to var.c 2374 make ampersand in ${VAR:from=to&} an ordinary character 2375 cleanup and simplify implementation of modifiers 2376 o make.1: move documentation for assignment modifiers 2377 23782020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2379 2380 * VERSION (_MAKE_VERSION): 20200718 2381 Merge with NetBSD make, pick up 2382 o DEBUG_HASH to see how well the hash tables are working 2383 23842020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2385 2386 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2387 23882020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2389 2390 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2391 2392 * VERSION (_MAKE_VERSION): 20200710 2393 Merge with NetBSD make, pick up 2394 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2395 o meta.c: target flagged .META is out-of-date if meta file missing 2396 23972020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2398 2399 * VERSION (_MAKE_VERSION): 20200709 2400 Merge with NetBSD make, pick up 2401 o cond.c: fix for compare_expression when doEval=0 2402 o unit-tests/Makefile: rework 2403 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2404 24052020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2406 2407 * VERSION (_MAKE_VERSION): 20200704 2408 Merge with NetBSD make, pick up 2409 (most of this by rillig@) 2410 o lots of style and white-space cleanup 2411 o lots more unit tests for variable modifiers 2412 o simplified description of some functions 2413 o str.c: refactor Str_Match 2414 o var.c: debugging output for :@ 2415 constify VarModify parameter 2416 fix :hash modifier on 16-bit platforms 2417 remove unnecessary forward declarations 2418 refactor ApplyModifier_SysV to have less indentation 2419 simplify code for :E and :R 2420 clean up code for :H and :T 2421 refactor ApplyModifiers 2422 2423 * var.c: we need stdint.h on some platforms to get uint32_t 2424 * unit-test/Makefile: we need to supress the specific error 2425 for RE substitution error in modmisc, since it varies accross 2426 different OS. 2427 24282020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2429 2430 * VERSION (_MAKE_VERSION): 20200702 2431 Merge with NetBSD make, pick up 2432 o var.c: more improvements to avoiding unnecessary evaluation 2433 use enums for flags 2434 o remove flags arg to Var_Set which outside of var.c is always 0 2435 24362020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2437 2438 * VERSION (_MAKE_VERSION): 20200701 2439 Merge with NetBSD make, pick up 2440 o var.c: with change to cond.c; ensure that nested variables 2441 within a variable name are expanded. 2442 o unit-tests/varmisc.mk: test for nested varname 2443 24442020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2445 2446 * VERSION (_MAKE_VERSION): 20200629 2447 Merge with NetBSD make, pick up 2448 o cond.c: do not eval unnecessary terms of conditionals. 2449 24502020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2451 2452 * VERSION (_MAKE_VERSION): 20200625 2453 Merge with NetBSD make, pick up 2454 o meta.c: report error if lseek in filemon_read fails 2455 24562020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2457 2458 * VERSION (_MAKE_VERSION): 20200622 2459 Merge with NetBSD make, pick up 2460 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2461 24622020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2463 2464 * VERSION (_MAKE_VERSION): 20200619 2465 Merge with NetBSD make, pick up 2466 o str.c: performance improvement for Str_Match for multiple '*' 2467 o dieQuietly: supress the failure output from make 2468 when failing node is a sub-make or a sibling failed. 2469 This cuts down greatly on unhelpful noise at the end of 2470 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2471 24722020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2473 2474 * FILES: add LICENSE to appease some packagers. 2475 This is an attempt to fairly represent the license on almost 2476 200 files, which are almost all BSD-3-Clause 2477 The few exceptions being more liberal. 2478 2479 * VERSION (_MAKE_VERSION): 20200610 2480 Merge with NetBSD make, pick up 2481 o unit test for :Or 2482 24832020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2484 2485 * VERSION (_MAKE_VERSION): 20200606 2486 Merge with NetBSD make, pick up 2487 o make.1: cleanup 2488 2489 * Makefile: fix depends for main.o which broke MAKE_VERSION 2490 24912020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2492 2493 * VERSION (_MAKE_VERSION): 20200605 2494 Merge with NetBSD make, pick up 2495 o dir.c: cached_stats - don't confuse stat and lstat results. 2496 o var.c: add :Or for reverse sort. 2497 24982020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2499 2500 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2501 also if --with-filemon= specifies path to filemon.h 2502 set use_filemon=dev 2503 * dirname.c: remove include of namespace.h 2504 25052020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2506 2507 * VERSION (_MAKE_VERSION): 20200517 2508 Merge with NetBSD make, pick up 2509 o modified dollar tests to avoid shell dependencies 2510 o new tests for .INCLUDEFROM 2511 25122020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2513 2514 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2515 to not depend so much on shell behavior 2516 25172020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2518 2519 * VERSION (_MAKE_VERSION): 20200510 2520 Merge with NetBSD make, pick up 2521 o unit test for dollar handling 2522 25232020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2524 2525 * VERSION (_MAKE_VERSION): 20200506 2526 Merge with NetBSD make, pick up 2527 o str.c: empty string does not match % pattern 2528 plus unit-test changes 2529 25302020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2531 2532 * VERSION (_MAKE_VERSION): 20200504 2533 May the 4th be with you 2534 Merge with NetBSD make, pick up 2535 o var.c: import handling of old sysV style modifier using '%' 2536 o str.c: refactor brk_string 2537 o unit-tests: add test case for lazy conditions 2538 25392020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2540 2541 * VERSION (_MAKE_VERSION): 20200418 2542 2543 * configure.in: use_makefile=no for Cygwin et al. 2544 case insensitive filesystems just don't work if both 2545 makefile and Makefile exist. 2546 NOTE: bmake does not support Cygwin and likely never will, 2547 but if brave souls want to try it - help them out. 2548 25492020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2550 2551 * VERSION (_MAKE_VERSION): 20200402 2552 Merge with NetBSD make, pick up 2553 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2554 a blank command is perfectly valid. 2555 25562020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2557 2558 * VERSION (_MAKE_VERSION): 20200330 2559 Merge with NetBSD make, pick up 2560 o make.h: extern debug_file 2561 25622020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2563 2564 * VERSION (_MAKE_VERSION): 20200318 2565 Merge with NetBSD make, pick up 2566 o meta.c: meta_oodate, check for corrupted meta file 2567 earlier and more often. 2568 25692020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2570 2571 * VERSION (_MAKE_VERSION): 20200220 2572 25732020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2574 2575 * boot-strap: unset MAKEFLAGS 2576 25772020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2578 2579 * VERSION (_MAKE_VERSION): 20200212 2580 * meta.c: meta_compat_parent check for USE_FILEMON 2581 patch from Soeren Tempel 2582 25832020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2584 2585 * VERSION: 20200205 2586 Merge with NetBSD make, pick up 2587 o meta.c: fix compat mode, need to call meta_job_output() 2588 o job.c: extra fds for meta mode not needed if using filemon_dev 2589 25902020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2591 2592 * VERSION: 20200122 2593 Merge with NetBSD make, pick up 2594 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2595 returns FALSE. 2596 25972020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2598 2599 * VERSION: 20200121 2600 Merge with NetBSD make, pick up 2601 o filemon/filemon_{dev,ktrace}.c: allow selection of 2602 filemon implementation. filemon_dev.c uses the kernel module 2603 while filemon_ktrace.c leverages the fktrace api available in 2604 NetBSD. filemon_ktrace.c can hopefully form the basis for 2605 adding support for other tracing mechanisms such as strace on 2606 Linux. 2607 o meta.c: when target is out-of-date per normal make rules 2608 record value of .OODATE in meta file. 2609 26102019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2611 2612 * VERSION: 20190926 2613 Merge with NetBSD make, pick up 2614 o parse.c: don't pass NULL to realpath(3) 2615 some versions cannot handle it. 2616 26172019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2618 2619 * VERSION: 20190409 2620 Merge with NetBSD make, pick up 2621 o parse.c: ParseDoDependency: free paths rather than assert 2622 26232018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2624 2625 * VERSION: 20181222 2626 2627 * configure.in: add --without-makefile to avoid generating 2628 makefile and make-bootstrap.sh 2629 2630 * include Makefile.inc if it exists 2631 2632 * Use Makefile and Makefile.config.in in unit-tests 2633 so we can use just: make obj && make && make test 2634 when bmake is already available. 2635 We add --without-makefile to CONFIGURE_ARGS in this case. 2636 2637 * tweak bsd.after-import.mk (captures Makefile.config etc 2638 after import to FreeBSD for example) to cope with all the above. 2639 26402018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2641 2642 * VERSION: 20181221 2643 Merge with NetBSD make, pick up 2644 o parse.c: ParseVErrorInternal use .PARSEDIR 2645 and apply if relative, and then use .PARSEFILE 2646 for consistent result. 2647 26482018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2649 2650 * VERSION: 20181220 2651 Merge with NetBSD make, pick up 2652 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2653 is relative 2654 o var.c: avoid SEGFAULT in .unexport-env 2655 when MAKELEVEL is not set 2656 26572018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2658 2659 * VERSION: 20181216 2660 Merge with NetBSD make, pick up 2661 o fix for unit-tests/varquote.mk on Debian 2662 26632018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2664 2665 * VERSION: 20180919 2666 Merge with NetBSD make, pick up 2667 o var.c: add :q 2668 o dir.c: cleanup caching of stats 2669 26702018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2671 2672 * Makefile.config.in: use += where it makes sense. 2673 26742018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2675 2676 * VERSION: 20180512 2677 Merge with NetBSD make, pick up 2678 o job.c: skip polling job token pipe 2679 26802018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2681 2682 * VERSION: 20180405 2683 Merge with NetBSD make, pick up 2684 o parse.c: be more cautious about detecting depenency line 2685 rather than sysV style include. 2686 26872018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2688 2689 * VERSION: 20180222 2690 Merge with NetBSD make, pick up 2691 o parse.c: avoid calling sysconf for every call to loadfile 2692 26932018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2694 2695 * VERSION: 20180218 2696 Merge with NetBSD make, pick up 2697 o var.c: Var_Set handle NULL value anytime. 2698 26992018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2700 2701 * VERSION: 20180212 2702 Merge with NetBSD make, pick up 2703 o parse.c: do not treat .info as warning with -W 2704 27052017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2706 2707 * VERSION: 20171207 2708 Merge with NetBSD make, pick up 2709 o var.c: Var_Append use Var_Set if var not previously set 2710 so that VAR_CMD is handled correctly. 2711 Add a suitable unit-test. 2712 27132017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2714 2715 * VERSION (_MAKE_VERSION): 20171126 2716 2717 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2718 since AC_TRY_COMPILE puts input inside main() 2719 which upsets modern compilers. 2720 27212017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2722 2723 * VERSION: 20171118 2724 Merge with NetBSD make, pick up 2725 o var.c: do not append to variable set on command line 2726 add unit-test to catch this. 2727 27282017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2729 2730 * VERSION: 20171028 2731 Merge with NetBSD make, pick up 2732 o main.c: ignore empty MAKEOBJDIR 2733 2734 * Makefile.config.in: 2735 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2736 27372017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2738 2739 * VERSION: 20171005 2740 2741 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2742 consistent result on some platforms. 2743 27442017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2745 2746 * machine.sh: entry for AIX 2747 27482017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2749 2750 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2751 to a file that can be included by configure as well as make. 2752 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2753 27542017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2755 2756 * Makefile (_MAKE_VERSION): 20170810 2757 Merge with NetBSD make, pick up 2758 o meta.c: if target is in subdir we only need subdir name in 2759 meta_name. 2760 27612017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2762 2763 * Makefile (_MAKE_VERSION): 20170720 2764 Merge with NetBSD make, pick up 2765 o compat.c: pass SIGINT etc onto child and wait for it to exit 2766 before we self-terminate. 2767 27682017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2769 2770 * Makefile (_MAKE_VERSION): 20170711 2771 forgot to update after merge on 20170708 ;-) 2772 o main.c: refactor to reduce size of main function. 2773 add -v option to always fully expand values. 2774 o meta.c: ensure command output in meta file has ending newline 2775 even when filemon not being used. 2776 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2777 pathname via ':L' since any ':' in pathname breaks that. 2778 Instead set a '${.p.}' to pathname in the target context and 2779 use that. 2780 27812017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2782 2783 * Makefile (_MAKE_VERSION): 20170510 2784 Merge with NetBSD make, pick up 2785 o main.c: Main_SetObjdir: ensure buf2 is in scope 2786 27872017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2788 2789 * Makefile (_MAKE_VERSION): 20170505 2790 see mk/ChangeLog 2791 27922017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2793 2794 * parse.c: not everyone has stdint.h 2795 27962017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2797 2798 * Makefile (_MAKE_VERSION): 20170501 2799 see mk/ChangeLog 2800 28012017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2802 2803 * Makefile (_MAKE_VERSION): 20170421 2804 Merge with NetBSD make, pick up 2805 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2806 28072017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2808 2809 * Makefile (_MAKE_VERSION): 20170420 2810 Merge with NetBSD make, pick up 2811 o main.c: only use -C arg "as is" if it contains no 2812 relative component. 2813 28142017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2815 2816 * Makefile (_MAKE_VERSION): 20170418 2817 Merge with NetBSD make, pick up 2818 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2819 28202017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2821 2822 * Makefile (_MAKE_VERSION): 20170417 2823 Merge with NetBSD make, pick up 2824 o fixes a number of coverity complaints 2825 - check return value of fseek, fcntl 2826 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2827 JobPrintCommand, ParseTraditionalInclude 2828 - use bmake_malloc() where NULL is not tollerated 2829 - use MAKE_ATTR_UNUSED rather that kludges like 2830 return(unused ? 0 : 0) 2831 - use purge_cached_realpaths() rather than abuse cached_realpath() 2832 28332017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2834 2835 * Makefile (_MAKE_VERSION): 20170413 2836 Merge with NetBSD make, pick up 2837 o main.c: when setting .OBJDIR ignore '$' in paths. 2838 2839 * job.c: use MALLOC_OPTIONS to set malloc_options. 2840 28412017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2842 2843 * Makefile (_MAKE_VERSION): 20170411 2844 Merge with NetBSD make, pick up 2845 o str.c: Str_Match: allow [^a-z] to behave as expected. 2846 28472017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2848 2849 * Makefile (_MAKE_VERSION): 20170326 2850 Merge with NetBSD make, pick up 2851 o main.c: purge relative paths from realpath cache when .OBJDIR 2852 is changed. 2853 28542017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2855 2856 * Makefile (_MAKE_VERSION): 20170311 2857 Merge with NetBSD make, pick up 2858 o main.c: only use -C arg "as is" if it starts with '/'. 2859 28602017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2861 2862 * Makefile (_MAKE_VERSION): 20170301 2863 Merge with NetBSD make, pick up 2864 o main.c: use -C arg "as is" rather than getcwd() 2865 if they identify the same directory. 2866 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2867 28682017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2869 2870 * Makefile (_MAKE_VERSION): 20170201 2871 Merge with NetBSD make, pick up 2872 o var.c: allow :_=var and avoid use of special context. 2873 28742017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2875 2876 * Makefile (_MAKE_VERSION): 20170130 2877 Merge with NetBSD make, pick up 2878 o var.c: add :range and :_ 2879 o main.c: partially initialize Dir_* before MainParseArgs() 2880 can be called. 2881 If -V, skip Main_ExportMAKEFLAGS() 2882 28832017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2884 2885 * Makefile (_MAKE_VERSION): 20170114 2886 Merge with NetBSD make, pick up 2887 o var.c: allow specifying the utc value used by :{gm,local}time 2888 28892016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2890 2891 * Makefile (_MAKE_VERSION): 20161212 2892 Merge with NetBSD make, pick up 2893 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2894 28952016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2896 2897 * Makefile (_MAKE_VERSION): 20161209 2898 Merge with NetBSD make, pick up 2899 o main.c: cleanup setting of .OBJDIR 2900 o parse.c: avoid coredump from (var)=val 2901 29022016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2903 2904 * Makefile (_MAKE_VERSION): 20161126 2905 Merge with NetBSD make, pick up 2906 o make.c: Make_OODate: report src node name if path not set 2907 29082016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2909 2910 * Makefile (_MAKE_VERSION): 20160926 2911 Merge with NetBSD make, pick up 2912 o support for .DELETE_ON_ERROR: (remove targets that fail) 2913 29142016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2915 2916 * Makefile MAN: tweak .Dt to match ${PROG} 2917 29182016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2919 2920 * Makefile (_MAKE_VERSION): 20160818 2921 its a neater number; pick up whitespace fixes to man page. 2922 29232016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2924 2925 * Makefile (_MAKE_VERSION): 20160817 2926 Merge with NetBSD make, pick up 2927 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2928 so we can call it before adding entries to missingFiles. 2929 Thus we do not track files we have been told to ignore. 2930 29312016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2932 2933 * Makefile (_MAKE_VERSION): 20160815 2934 Merge with NetBSD make, pick up 2935 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2936 pathnames, and skip if the expansion is empty. 2937 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2938 29392016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2940 2941 * Makefile (_MAKE_VERSION): 20160812 2942 Merge with NetBSD make, pick up 2943 o meta.c: remove all missingFiles entries that match a deleted 2944 dir. 2945 o main.c: set .ERROR_CMD if possible. 2946 29472016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2948 2949 * Makefile (_MAKE_VERSION): 20160606 2950 Merge with NetBSD make, pick up 2951 o dir.c: extend mtimes cache to others via cached_stat() 2952 29532016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2954 2955 * Makefile (_MAKE_VERSION): 20160604 2956 Merge with NetBSD make, pick up 2957 o meta.c: missing filemon data is only relevant if we read a 2958 meta file. 2959 Also do not return oodate for a missing metafile if gn->path 2960 points to .CURDIR 2961 29622016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2963 2964 * Makefile (_MAKE_VERSION): 20160602 2965 Merge with NetBSD make, pick up 2966 o cached_realpath(): avoid hitting filesystem more than necessary. 2967 o meta.c: refactor need_meta decision, add knobs for 2968 missing meta file and filemon data wrt out-of-datedness. 2969 29702016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2971 2972 * Makefile (_MAKE_VERSION): 20160528 2973 2974 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2975 29762016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2977 2978 * Makefile (_MAKE_VERSION): 20160512 2979 Merge with NetBSD make, pick up 2980 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2981 this is useful for gcov builds. 2982 o propagate errors from filemon(4). 2983 29842016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2985 2986 * Makefile (_MAKE_VERSION): 20160509 2987 Merge with NetBSD make, pick up 2988 o remove use of non-standard types u_int etc. 2989 o meta.c: apply realpath() before matching against metaIgnorePaths 2990 29912016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2992 2993 * Makefile (_MAKE_VERSION): 20160404 2994 Merge with NetBSD make, pick up 2995 o allow makefile to set .MAKE.JOBS 2996 2997 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2998 29992016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 3000 3001 * Makefile (_MAKE_VERSION): 20160315 3002 Merge with NetBSD make, pick up 3003 o fix handling of archive members 3004 30052016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3006 3007 * Makefile (_MAKE_VERSION): rename variable to avoid interference 3008 with checks for ${MAKE_VERSION} 3009 30102016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 3011 3012 * Makefile (MAKE_VERSION): 20160310 3013 Merge with NetBSD make, pick up 3014 o meta.c: treat missing Read file same as Write, incase we Delete it. 3015 30162016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 3017 3018 * Makefile (MAKE_VERSION): 20160307 3019 Merge with NetBSD make, pick up 3020 o var.c: fix :ts\nnn to be octal by default. 3021 o meta.c: meta_finish() to cleanup memory. 3022 30232016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 3024 3025 * Makefile (MAKE_VERSION): 20160226 3026 Merge with NetBSD make, pick up 3027 o meta.c: allow meta file for makeDepend if makefiles want it. 3028 30292016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 3030 3031 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 3032 for backwards compatability. 3033 3034 * Makefile (MAKE_VERSION): 20160220 3035 Merge with NetBSD make, pick up 3036 o var.c: add knob to control handling of '$$' in := 3037 30382016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3039 3040 * Makefile (MAKE_VERSION): 20160218 3041 Merge with NetBSD make, pick up 3042 o var.c: add .export-literal allows us to fix sys.clean-env.mk 3043 post the changes to Var_Subst. 3044 Var_Subst now takes flags, and does not consume '$$' in := 3045 30462016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 3047 3048 * Makefile (MAKE_VERSION): 20160217 3049 Merge with NetBSD make, pick up 3050 o var.c: preserve '$$' in := 3051 o parse.c: add .dinclude for handling included 3052 makefile like .depend 3053 30542015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 3055 3056 * Makefile (MAKE_VERSION): 20151220 3057 Merge with NetBSD make, pick up 3058 o suff.c: re-initialize suffNull when clearing suffixes. 3059 30602015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 3061 3062 * Makefile (MAKE_VERSION): 20151201 3063 Merge with NetBSD make, pick up 3064 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 3065 o meta.c: meta_oodate: use lstat(2) for checking link target 3066 in case it is a symlink. 3067 o var.c: avoid calling brk_string and Var_Export1 with empty 3068 strings. 3069 30702015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3071 3072 * Makefile (MAKE_VERSION): 20151126 3073 Merge with NetBSD make, pick up 3074 o parse.c: ParseTrackInput don't access beyond 3075 end of old value. 3076 30772015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 3078 3079 * Makefile (MAKE_VERSION): 20151022 3080 3081 * Add support for BSD/OS which lacks inttypes.h 3082 and really needs sys/param.h for sys/sysctl.h 3083 also 'type' is not a shell builtin. 3084 3085 * var.c: eliminate uint32_t and need for inttypes.h 3086 3087 * main.c: PrintOnError flush stdout before run .ERROR 3088 3089 * parse.c: cope with _SC_PAGESIZE not being defined. 3090 3091 30922015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 3093 3094 * Makefile (MAKE_VERSION): 20151020 3095 Merge with NetBSD make, pick up 3096 o var.c: fix uninitialized var 3097 30982015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 3099 3100 * var.c: the conditional expressions used with ':?' can be 3101 expensive, if already discarding do not evaluate or expand 3102 anything. 3103 31042015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3105 3106 * Makefile (MAKE_VERSION): 20151010 3107 Merge with NetBSD make, pick up 3108 o Add Boolean wantit flag to Var_Subst and Var_Parse 3109 when FALSE we know we are discarding the result and can 3110 skip operations like Cmd_Exec. 3111 31122015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3113 3114 * Makefile (MAKE_VERSION): 20151009 3115 Merge with NetBSD make, pick up 3116 o var.c: don't check for NULL before free() 3117 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 3118 31192015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3120 3121 * Makefile (MAKE_VERSION): 20150910 3122 Merge with NetBSD make, pick up 3123 o main.c: with -w print Enter/Leaving messages for objdir too 3124 if necessary. 3125 o centralize shell metachar handling 3126 3127 * FILES: add metachar.[ch] 3128 31292015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3130 3131 * Makefile (MAKE_VERSION): 20150606 3132 Merge with NetBSD make, pick up 3133 o make.1: document .OBJDIR target 3134 31352015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3136 3137 * Makefile (MAKE_VERSION): 20150505 3138 Merge with NetBSD make, pick up 3139 o cond.c: be strict about lhs of comparison when evaluating .if 3140 but less so when called from variable expansion. 3141 o unit-tests/cond2.mk: test various error conditions 3142 31432015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 3144 3145 * machine.sh (MACHINE): Add Bitrig 3146 patch from joerg@netbsd.org 3147 31482015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3149 3150 * Makefile (MAKE_VERSION): 20150418 3151 Merge with NetBSD make, pick up 3152 o job.c: use memmove() rather than memcpy() 3153 3154 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 3155 case, so skip it. 3156 31572015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3158 3159 * Makefile (MAKE_VERSION): 20150411 3160 bump version - only mk/ changes. 3161 31622015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3163 3164 * Makefile (MAKE_VERSION): 20150410 3165 Merge with NetBSD make, pick up 3166 o document different handling of '-' in jobs mode vs compat 3167 o fix jobs mode so that '-' only applies to whole job 3168 when shell lacks hasErrCtl 3169 o meta.c: use separate vars to track lcwd and latestdir (read) 3170 per process 3171 31722015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 3173 3174 * Makefile (MAKE_VERSION): 20150401 3175 Merge with NetBSD make, pick up 3176 o meta.c: close meta file in child 3177 3178 * Makefile: use BINDIR.bmake if set. 3179 Same for MANDIR and SHAREDIR 3180 Handy for testing release candidates 3181 in various environments. 3182 31832015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3184 3185 * move initialization of savederr to block where it is used 3186 to avoid spurious warning from gcc5 3187 31882014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3189 3190 * Makefile (MAKE_VERSION): 20141111 3191 just a cooler number 3192 31932014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 3194 3195 * Makefile (MAKE_VERSION): 20141105 3196 Merge with NetBSD make, pick up 3197 o revert major overhaul of suffix handling 3198 and POSIX compliance - too much breakage 3199 and impossible to make backwards compatible. 3200 o we still have the new unit test structure which is ok. 3201 o meta.c ensure "-- filemon" is at start of line. 3202 32032014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 3204 3205 * configure.in: test that result of getconf PATH_MAX is numeric 3206 and discard if not. Apparently needed for Hurd. 3207 32082014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3209 3210 * Makefile (MAKE_VERSION): 20140830 3211 Merge with NetBSD make, pick up 3212 o major overhaul of suffix handling 3213 o improved POSIX compliance 3214 o overhauled unit-tests 3215 32162014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3217 3218 * Makefile (MAKE_VERSION): 20140620 3219 Merge with NetBSD make, pick up 3220 o var.c return varNoError rather than var_Error for ::= modifiers. 3221 32222014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3223 3224 * Makefile (MAKE_VERSION): 20140522 3225 Merge with NetBSD make, pick up 3226 o var.c detect some parse errors. 3227 32282014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3229 3230 * Fix spelling errors - patch from Pedro Giffuni 3231 32322014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3233 3234 * Makefile (MAKE_VERSION): 20140214 3235 Merge with NetBSD make, pick up 3236 o .INCLUDEFROM* 3237 o use Var_Value to get MAKEOBJDIR[PREFIX] 3238 o reduced realloc'ign in brk_string. 3239 * configure.in: add a check for compiler supporting __func__ 3240 32412014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3242 3243 * boot-strap: ignore mksrc=none 3244 32452014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3246 3247 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3248 32492014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3250 3251 * Makefile (MAKE_VERSION): 20140101 3252 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3253 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3254 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3255 Hurd) 3256 * configure.in: Add AC_PREREQ and check for 3257 sysctl; patch from Andrew Shadura andrewsh at debian.org 3258 32592013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3260 3261 * Makefile (MAKE_VERSION): 20131010 3262 * lose the const from arg to systcl to avoid problems on older BSDs. 3263 32642013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3265 3266 * Makefile (MAKE_VERSION): 20131001 3267 Merge with NetBSD make, pick up 3268 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3269 hw.machine_arch if necessary. 3270 o meta.c: meta_oodate - need to look at src of Link and target 3271 of Move as well. 3272 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3273 provide __arraycount() if needed. 3274 32752013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3276 3277 * Makefile (MAKE_VERSION): 20130904 3278 Merge with NetBSD make, pick up 3279 o Add VAR_INTERNAL context, so that internal setting of 3280 MAKEFILE does not override value set by makefiles. 3281 32822013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3283 3284 * Makefile (MAKE_VERSION): 20130902 3285 Merge with NetBSD make, pick up 3286 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3287 32882013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3289 3290 * Makefile (MAKE_VERSION): 20130828 3291 Merge with NetBSD make, pick up 3292 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3293 o Call Job_SetPrefix() from Job_Init() so makefiles have 3294 opportunity to set .MAKE.JOB.PREFIX 3295 32962013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3297 3298 * Makefile (MAKE_VERSION): 20130730 3299 Merge with NetBSD make, pick up 3300 o Allow suppression of --- job -- tokens by setting 3301 .MAKE.JOB.PREFIX empty. 3302 33032013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3304 3305 * Makefile (MAKE_VERSION): 20130716 3306 Merge with NetBSD make, pick up 3307 o number of gmake compatibility tweaks 3308 -w for gmake style entering/leaving messages 3309 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3310 handle MAKEFLAGS containing only letters. 3311 o when overriding a GLOBAL variable on the command line, 3312 delete it from GLOBAL context so -V doesn't show the wrong 3313 value. 3314 33152013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3316 3317 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3318 3319 * Makefile (MAKE_VERSION): 20130706 3320 Merge with NetBSD make, pick up 3321 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3322 true so that CompatRunCommand() can use it, to ensure 3323 consistent behavior with jobs mode. 3324 o use MAKE_LEVEL_ENV to define the variable to propagate 3325 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3326 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3327 paths to ignore. 3328 33292013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3330 3331 * Makefile (MAKE_VERSION): 20130604 3332 Merge with NetBSD make, pick up 3333 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3334 to avoid leaking descriptors. 3335 33362013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3337 3338 * Makefile (MAKE_VERSION): 20130528 3339 Merge with NetBSD make, pick up 3340 o var.c: cleanup some left-overs in VarHash() 3341 33422013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3343 3344 * Makefile (MAKE_VERSION): 20130520 3345 generate manifest from component FILES rather than have to 3346 update FILES when mk/FILES changes. 3347 33482013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3349 3350 * Makefile (MAKE_VERSION): 20130518 3351 Merge with NetBSD make, pick up 3352 o suff.c: don't skip all processsing for .PHONY targets 3353 else wildcard srcs do not get expanded. 3354 o var.c: expand name of variable to delete if necessary. 3355 33562013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3357 3358 * Makefile (MAKE_VERSION): 20130330 3359 Merge with NetBSD make, pick up 3360 o meta.c: refine the handling of .OODATE in commands. 3361 Rather than suppress command comparison for the entire script 3362 as though .NOMETA_CMP had been used, only suppress it for the 3363 one command line. 3364 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3365 suppress comparison of a command without otherwise affecting it. 3366 o make.1: document that 3367 33682013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3369 3370 * Makefile (MAKE_VERSION): 20130321 3371 yes, not quite right but its a cooler number. 3372 Merge with NetBSD make, pick up 3373 o parse.c: fix ParseGmakeExport to be portable 3374 and add a unit-test. 3375 * meta.c: call meta_init() before makefiles are read and if built 3376 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3377 this let's makefiles test for support. 3378 Call meta_mode_init() to process .MAKE.MODE. 3379 33802013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3381 3382 * Makefile (MAKE_VERSION): 20130305 3383 Merge with NetBSD make, pick up 3384 o run .STALE: target when a dependency from .depend is missing. 3385 o job.c: add Job_RunTarget() for the above and .BEGIN 3386 33872013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3388 3389 * Makefile (MAKE_VERSION): 20130303 3390 Merge with NetBSD make, pick up 3391 o main.c: set .MAKE.OS to utsname.sysname 3392 o job.c: more checks for read and poll errors 3393 o var.c: lose VarChangeCase() saves 4% time 3394 33952013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3396 3397 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3398 want to use MAKEOBJDIR 3399 34002013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3401 3402 * Merge with NetBSD make, pick up 3403 o make.1: more info on how shell commands are handled. 3404 o job.c,main.c: detect write errors to job pipes. 3405 34062013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3407 3408 * Makefile (MAKE_VERSION): 20130123 3409 Merge with NetBSD make, pick up 3410 o meta.c: if script uses .OODATE and meta_oodate() decides 3411 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3412 o var.c: in debug output indicate which variabale modifiers 3413 apply to. 3414 o remove Check_Cwd logic the makefiles have been fixed. 3415 34162012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3417 3418 * makefile.in: add a simple makefile for folk who insist on 3419 ./configure; make; make install 3420 it just runs boot-strap 3421 * include mk/* to accommodate the above 3422 * boot-strap: re-work to accommodate the above 3423 mksrc defaults to $Mydir/mk 3424 allow op={configure,build,install,clean,all} 3425 add options to facilitate install 3426 * Makefile.config.in: just the bits set by configure 3427 * Makefile: bump version to 20121212 3428 abandon Makefile.in (NetBSD Makefile) 3429 leverage mk/* instead 3430 * configure.in: ensure srcdir is absolute 3431 34322012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3433 3434 * Makefile.in (MAKE_VERSION): 20121111 3435 fix generation of bmake.cat1 3436 34372012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3438 3439 * Makefile.in (MAKE_VERSION): 20121109 3440 Merge with NetBSD make, pick up 3441 o make.c: MakeBuildChild: return 0 so search continues if a 3442 .ORDER dependency is detected. 3443 o unit-tests/order: test the above 3444 34452012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3446 3447 * Makefile.in (MAKE_VERSION): 20121102 3448 Merge with NetBSD make, pick up 3449 o cond.c: allow cond_state[] to grow. 3450 In meta mode with a very large tree, we can hit the limit 3451 while processing dirdeps. 3452 34532012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3454 3455 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3456 34572012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3458 3459 * Makefile.in (MAKE_VERSION): 20121010 3460 o protect syntax that only bmake parses correctly. 3461 o remove auto setting of FORCE_MACHINE, use configure's 3462 --with-force-machine=whatever if that is desired. 3463 34642012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3465 3466 * Makefile.in: do not lose history from make.1 when generating bmake.1 3467 34682012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3469 3470 * Makefile.in (MAKE_VERSION): 20121007 3471 Merge with NetBSD make, pick up 3472 o compat.c: ignore empty commands - same as jobs mode. 3473 o make.1: document meta chars that cause use of shell 3474 34752012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3476 3477 * Makefile.in (MAKE_VERSION): bump version to 20120911 3478 * bsd.after-import.mk: include Makefile.inc early and allow it to 3479 override PROG 3480 34812012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3482 3483 * Makefile.in (MAKE_VERSION): bump version to 20120831 3484 Merge with NetBSD make, pick up 3485 o cast sizeof() to int for comparison 3486 o minor make.1 tweak 3487 34882012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3489 3490 * Makefile.in (MAKE_VERSION): bump version to 20120830 3491 Merge with NetBSD make, pick up 3492 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3493 o debug flag -dV causes -V to show raw value regardless. 3494 34952012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3496 3497 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3498 gets SRCTOP set. 3499 35002012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3501 3502 * Makefile.in (MAKE_VERSION): bump version to 20120704 3503 Merge with NetBSD make, pick up 3504 o Job_ParseShell should call Shell_Init if it has been 3505 previously called. 3506 * Makefile.in: set USE_META based on configure result. 3507 also .PARSEDIR is safer indicator of bmake. 3508 35092012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3510 3511 * Makefile.in: bump version to 20120626 3512 ensure CPPFLAGS is in CFLAGS 3513 * meta.c: avoid nested externs 3514 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3515 35162012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3517 3518 * Makefile.in (MAKE_VERSION): bump version to 20120620 3519 Merge with NetBSD make, pick up 3520 o make_malloc.c: avoid including make_malloc.h again 3521 3522 * Makefile.in: avoid bmake only syntax or protect with 3523 .if defined(.MAKE.LEVEL) 3524 * bsd.after-import.mk: replace .-include with .sinclude 3525 ensure? SRCTOP gets a value 3526 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3527 35282012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3529 3530 * Makefile.in (MAKE_VERSION): bump version to 20120612 3531 Merge with NetBSD make, pick up 3532 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3533 for greater portability. 3534 o unit-tests/forloop: check that .for works as expected wrt 3535 number of times and with "quoted strings". 3536 35372012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3538 3539 * Makefile.in (MAKE_VERSION): bump version to 20120606 3540 Merge with NetBSD make, pick up 3541 o compat.c: use kill(2) rather than raise(3). 3542 * configure.in: look for sys/dev/filemon 3543 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3544 and pass BOOTSTRAP_XTRAS to boot-strap. 3545 35462012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3547 3548 * Makefile.in (MAKE_VERSION): bump version to 20120604 3549 Merge with NetBSD make, pick up 3550 o util.c and var.c share same var for tracking if environ 3551 has been reallocated. 3552 o util.c provide getenv with setenv. 3553 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3554 when the shell actively strips .MAKE.* from the environment. 3555 We still refer to the variable always as .MAKE.LEVEL 3556 * util.c fix bug in findenv() was finding prefix of name. 3557 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3558 results in more reliable termination of all activity on many 3559 platforms. 3560 35612012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3562 3563 * Makefile.in (MAKE_VERSION): bump version to 20120602 3564 Merge with NetBSD make, pick up 3565 o for.c: handle quoted items in .for list 3566 35672012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3568 3569 * Makefile.in (MAKE_VERSION): bump version to 20120530 3570 Merge with NetBSD make, pick up 3571 o compat.c: ignore empty command. 3572 35732012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3574 3575 * Makefile.in (MAKE_VERSION): bump version to 20120524 3576 * FILES: add bsd.after-import.mk: 3577 A simple means of integrating bmake into a BSD build system. 3578 35792012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3580 3581 * Makefile.in (MAKE_VERSION): bump version to 20120520 3582 Merge with NetBSD make, pick up 3583 o increased limit for nested conditionals. 3584 35852012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3586 3587 * Makefile.in (MAKE_VERSION): bump version to 20120518 3588 Merge with NetBSD make, pick up 3589 o use _exit(2) in signal hanlder 3590 o Don't use the [dir] cache when building nodes that might have 3591 changed since the last exec. 3592 o Avoid nested extern declaration warnings. 3593 35942012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3595 3596 * meta.c (fgetLine): avoid %z - not portable. 3597 * parse.c: Since we moved include of sys/mman.h 3598 and def's of MAP_COPY etc. we got dups from a merge. 3599 36002012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3601 3602 * Makefile.in (MAKE_VERSION): bump version to 20120420 3603 Merge with NetBSD make, pick up 3604 o restore duplicate supression in .MAKE.MAKEFILES 3605 runtime saving can be significant. 3606 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3607 consumption up to 20%. 3608 36092012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3610 3611 * Makefile.in (MAKE_VERSION): bump version to 20120420 3612 Merge with NetBSD make, pick up 3613 o remove duplicate supression in .MAKE.MAKEFILES 3614 o improved dir cache behavior 3615 o gmake'ish export command 3616 36172012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3618 3619 * Makefile.in (MAKE_VERSION): bump version to 20120325 3620 Merge with NetBSD make, pick up 3621 o fix parsing of :[#] in conditionals. 3622 36232012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3624 3625 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3626 since some systems cannot cope with .Nx <version> 3627 36282011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3629 3630 * Makefile.in (MAKE_VERSION): bump version to 20111111 3631 Merge with NetBSD make, pick up 3632 o debug output for .PARSEDIR and .PARSEFILE 3633 36342011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3635 3636 * Makefile.in (MAKE_VERSION): bump version to 20111010 3637 36382011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3639 3640 * boot-strap: check for an expected file in the dirs we look for. 3641 * make-bootstrap.sh: pass on LDSTATIC 3642 36432011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3644 3645 * Makefile.in (MAKE_VERSION): bump version to 20111001 3646 Merge with NetBSD make, pick up 3647 o ensure .PREFIX is set for .PHONY 3648 and .TARGET set for .PHONY run via .END 3649 o __dead used consistently 3650 36512011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3652 3653 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3654 36552011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3656 3657 * Makefile.in (MAKE_VERSION): bump version to 20110905 3658 Merge with NetBSD make, pick up 3659 o meta_oodate: ignore makeDependfile 3660 36612011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3662 3663 * Makefile.in (MAKE_VERSION): bump version to 20110828 3664 Merge with NetBSD make, pick up 3665 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3666 as SILENT if a .meta file is created 3667 36682011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3669 3670 * Makefile.in (MAKE_VERSION): bump version to 20110818 3671 Merge with NetBSD make, pick up 3672 o in meta mode, if target flagged .META a missing .meta file 3673 means target is out-of-date 3674 o fixes for gcc 4.5 warnings 3675 o simplify job printing code 3676 36772011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3678 3679 * Makefile.in (MAKE_VERSION): bump version to 20110808 3680 Merge with NetBSD make, pick up 3681 o do not touch OP_SPECIAL targets when doing make -t 3682 36832011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3684 3685 * Makefile.in (MAKE_VERSION): bump version to 20110622 3686 Merge with NetBSD make, pick up 3687 o meta_oodate detect corrupted .meta file and declare oodate. 3688 * configure.in: add check for setsid 3689 36902011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3691 3692 * Merge with NetBSD make, pick up 3693 o unit-tests/modts now works on MirBSD 3694 36952011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3696 3697 * Makefile.in (MAKE_VERSION): bump version to 20110606 3698 Merge with NetBSD make, pick up 3699 o ApplyModifiers: when we parse a variable which is not 3700 the entire modifier string, or not followed by ':', do not 3701 consider it as containing modifiers. 3702 o loadfile: ensure newline at end of mapped file. 3703 37042011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3705 3706 * Makefile.in (MAKE_VERSION): bump version to 20110505 3707 Merge with NetBSD make, pick up 3708 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3709 of make's control. In meta mode, any generated file within 3710 said bailiwick, which is found to be missing, causes current 3711 target to be out-of-date. 3712 37132011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3714 3715 * Makefile.in (MAKE_VERSION): bump version to 20110411 3716 Merge with NetBSD make, pick up 3717 o when long modifiers fail to match, check sysV style. 3718 - add a test case 3719 37202011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3721 3722 * Makefile.in (MAKE_VERSION): bump version to 20110410 3723 Merge with NetBSD make, pick up 3724 o :hash - cheap 32bit hash of value 3725 o :localtime, :gmtime - use value as format string for strftime. 3726 37272011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3728 3729 * Makefile.in (MAKE_VERSION): bump version to 20110330 3730 mostly because its a cooler version. 3731 Merge with NetBSD make, pick up 3732 o NetBSD tags for meta.[ch] 3733 o job.c call meta_job_finish() after meta_job_error(). 3734 o meta_job_error() should call meta_job_finish() to ensure 3735 .meta file is closed, and safe to copy - if .ERROR target wants. 3736 meta_job_finish() is safe to call repeatedly. 3737 37382011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3739 3740 * unit-tests/modts: use printf if it is a builtin, 3741 to save us from MirBSD 3742 3743 * Makefile.in (MAKE_VERSION): bump version to 20110329 3744 Merge with NetBSD make, pick up 3745 o fix for use after free() in CondDoExists(). 3746 o meta_oodate() report extra commands and return earlier. 3747 37482011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3749 3750 * Makefile.in (MAKE_VERSION): bump version to 20110327 3751 Merge with NetBSD make, pick up 3752 o meta.c, if .MAKE.MODE contains curdirOk=yes 3753 allow creating .meta files in .CURDIR 3754 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3755 formats the output of 'type' differently - so eat any "()" 3756 37572011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3758 3759 * Makefile.in (MAKE_VERSION): bump version to 20110306 3760 Merge with NetBSD make, pick up 3761 o meta.c, only do getcwd() once 3762 37632011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3764 3765 * Makefile.in (MAKE_VERSION): bump version to 20110305 3766 Merge with NetBSD make, pick up 3767 o correct sysV substitution handling of empty lhs and variable 3768 o correct exists() check for dir with trailing / 3769 o correct handling of modifiers for non-existant variables 3770 during evaluation of conditionals. 3771 o ensure MAP_FILE is defined. 3772 o meta.c use curdir[] now exported by main.c 3773 37742011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3775 3776 * Makefile.in (MAKE_VERSION): bump version to 20110225 3777 Merge with NetBSD make, pick up 3778 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3779 makefiles have been read. 3780 o fix example of :? modifier in man page. 3781 37822011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3783 3784 * Makefile.in (MAKE_VERSION): bump version to 20110214 3785 Merge with NetBSD make, pick up 3786 o meta.c handle realpath() failing when generating meta file 3787 name. 3788 3789 * sigcompat.c: convert to ansi so we can use higher warning levels. 3790 3791 37922011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3793 3794 * Makefile.in (MAKE_VERSION): bump version to 20110207 3795 Merge with NetBSD make, pick up 3796 o fix for bug in meta mode. 3797 37982011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3799 3800 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3801 38022011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3803 3804 * Makefile.in (MAKE_VERSION): bump version to 20110101 3805 Merge with NetBSD make, pick up 3806 o use mmap(2) if available, for reading makefiles 3807 38082010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3809 3810 * Makefile.in (MAKE_VERSION): bump version to 20101215 3811 Merge with NetBSD make, pick up 3812 o ensure meta_job_error() does not report a previous .meta file 3813 as being culprit. 3814 38152010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3816 3817 * Makefile.in (MAKE_VERSION): bump version to 20101210 3818 Merge with NetBSD make, pick up 3819 o meta_oodate: track cwd per process, and only consider target 3820 out-of-date if missing file is outside make's CWD. 3821 Ignore files in /tmp/ etc. 3822 o to ensure unit-tests results match, need to control LC_ALL 3823 as well as LANG. 3824 o fix for parsing bug in var.c 3825 38262010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3827 3828 * Makefile.in (MAKE_VERSION): bump version to 20101126 3829 Merge with NetBSD make, pick up 3830 o if stale dependency is an IMPSRC, search via .PATH 3831 o meta_oodate: if a referenced file is missing, target is 3832 out-of-date. 3833 o meta_oodate: if a target uses .OODATE in its commands, 3834 it (.OODATE) needs to be recomputed. 3835 o keep a pointer to youngest child node, rather than just its 3836 mtime. 3837 38382010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3839 3840 * Makefile.in (MAKE_VERSION): bump version to 20101101 3841 38422010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3843 3844 * machine.sh: like os.sh, 3845 allow for uname -p producing useless drivel 3846 38472010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3848 3849 * boot-strap: document configure knobs for meta and filemon. 3850 3851 * Makefile.in (MAKE_VERSION): bump version to 20100911 3852 Merge with NetBSD make, pick up 3853 o meta.c - meta mode 3854 3855 * make-bootstrap.sh.in: handle meta.c 3856 * configure.in: add knobs for use_meta and filemon_h 3857 also, look for dirname, str[e]sep and strlcpy 3858 * util.c: add simple err[x] and warn[x] 3859 38602010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3861 3862 * boot-strap (TOOL_DIFF): set this to ensure tests use 3863 the same version of diff that configure tested 3864 3865 * Makefile.in (MAKE_VERSION): bump version to 20100808 3866 Merge with NetBSD make, pick up 3867 o in jobs mode, when we discover we cannot make something, 3868 call PrintOnError before exit. 3869 38702010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3871 3872 * Makefile.in (MAKE_VERSION): bump version to 20100806 3873 Merge with NetBSD make, pick up 3874 o formatting fixes for ignored errors 3875 o ensure jobs are cleaned up regardless of where wait() was called. 3876 38772010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3878 3879 * Makefile.in (MAKE_VERSION): bump version to 20100618 3880 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3881 38822010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3883 3884 * Makefile.in (MAKE_VERSION): bump version to 20100616 3885 Merge with NetBSD make, pick up 3886 o man page update 3887 o call PrintOnError from JobFinish when we detect an error we 3888 are not ignoring. 3889 38902010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3891 3892 * Makefile.in (MAKE_VERSION): bump version to 20100606 3893 Merge with NetBSD make, pick up 3894 o man page update 3895 38962010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3897 3898 * Makefile.in (MAKE_VERSION): bump version to 20100605 3899 Merge with NetBSD make, pick up 3900 o use bmake_signal() which is a wrapper around sigaction() 3901 in place of signal() 3902 o add .export-env to allow exporting variables to environment 3903 without tracking (so no re-export when the internal value is 3904 changed). 3905 39062010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3907 3908 * Makefile.in (MAKE_VERSION): bump version to 20100524 3909 Merge with NetBSD make, pick up 3910 o fix for .info et al being greedy. 3911 39122010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3913 3914 * Makefile.in (MAKE_VERSION): bump version to 20100520 3915 Merge with NetBSD make, pick up 3916 o back to using realpath on argv[0] 3917 but only if contains '/' and does not start with '/'. 3918 39192010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3920 3921 * boot-strap: use absolute path for bmake when running tests. 3922 3923 * Makefile.in (MAKE_VERSION): bump version to 20100510 3924 Merge with NetBSD make, pick up 3925 o revert use of realpath on argv[0] 3926 too many corner cases. 3927 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3928 39292010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3930 3931 * Makefile.in (MAKE_VERSION): bump version to 20100505 3932 Merge with NetBSD make, pick up 3933 o fix for missed SIGCHLD when compiled with SunPRO 3934 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3935 done the job. 3936 39372010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3938 3939 * Makefile.in (MAKE_VERSION): bump version to 20100430 3940 Merge with NetBSD make, pick up 3941 o fflush stdout before writing to stdout 3942 39432010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3944 3945 * Makefile.in (MAKE_VERSION): bump version to 20100423 3946 Merge with NetBSD make, pick up 3947 o updated unit tests for Haiku (this time for sure). 3948 * boot-strap: based on patch from joerg 3949 honor --with-default-sys-path better. 3950 * boot-strap: remove mention of --with-prefix-sys-path 3951 39522010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3953 3954 * Makefile.in (MAKE_VERSION): bump version to 20100422 3955 * Merge with NetBSD make, pick up 3956 o fix for vfork() on Darwin. 3957 o fix for bogus $TMPDIR. 3958 o set .MAKE.MODE=compat for -B 3959 o set .MAKE.JOBS=max_jobs for -j max_jobs 3960 o allow unit-tests to run without any *.mk 3961 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3962 * boot-strap: ignore /usr/share/mk except on NetBSD. 3963 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3964 ensure sort(1) behaves as expected. 3965 39662010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3967 3968 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3969 39702010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3971 3972 * Makefile.in (MAKE_VERSION): bump version to 20100420 3973 * Merge with NetBSD make, pick up 3974 o fix for variable realpath() behavior. 3975 we have to stat(2) the result to be sure. 3976 o fix for .export (all) when nested vars use :sh 3977 39782010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3979 3980 * Makefile.in (MAKE_VERSION): bump version to 20100414 3981 * Merge with NetBSD make, pick up 3982 o use realpath to resolve argv[0] (for .MAKE) if needed. 3983 o add realpath from libc. 3984 o add :tA to resolve variable via realpath(3) if possible. 3985 39862010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3987 3988 * Makefile.in (MAKE_VERSION): bump version to 20100408 3989 * Merge with NetBSD make, pick up 3990 o unit tests for .ERROR, .error 3991 o fix for .ERROR to ensure it cannot be default target. 3992 39932010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3994 3995 * Makefile.in (MAKE_VERSION): bump version to 20100406 3996 * Merge with NetBSD make, pick up 3997 o fix for compat mode "Error code" going to debug_file. 3998 o fix for .ALLSRC being populated twice. 3999 o support for .info, .warning and .error directives 4000 o .MAKE.MODE to control make's operational mode 4001 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 4002 name(s). 4003 o .MAKE.DEPENDFILE to control the name of the depend file 4004 o .ERROR target - run on failure. 4005 40062010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 4007 4008 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 4009 4010 * os.sh,arch.c: patch for Haiku from joerg at netbsd 4011 40122010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 4013 4014 * Makefile.in (MAKE_VERSION): bump version to 20100222 4015 * Merge with NetBSD make, pick up 4016 o better error msg for .for with mutiple inter vars 4017 4018 * boot-strap: 4019 o use make-bootstrap.sh from joerg at netbsd 4020 to avoid the need for a native make when bootstrapping. 4021 o add "" everywhere ;-) 4022 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 4023 otherwise the pre-formated version. 4024 40252010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 4026 4027 * Makefile.in (MAKE_VERSION): bump version to 20100102 4028 * Merge with NetBSD make, pick up: 4029 o fix for -m .../ 4030 40312009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 4032 4033 * Makefile.in (MAKE_VERSION): bump version to 20091118 4034 * Merge with NetBSD make, pick up: 4035 o .unexport 4036 o report lines that start with '.' and should have ':' 4037 (catch typo's of .el*if). 4038 40392009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4040 4041 * configure.in: Ensure that srcdir and mksrc are absolute paths. 4042 40432009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4044 4045 * Makefile.in (MAKE_VERSION): fix version to 20091007 4046 40472009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 4048 4049 * Makefile.in (MAKE_VERSION): bump version to 200910007 4050 * Merge with NetBSD make, pick up: 4051 o fix for parsing of :S;...;...; applied to .for loop iterator 4052 appearing in a dependency line. 4053 40542009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4055 4056 * Makefile.in (MAKE_VERSION): bump version to 20090909 4057 * Merge with NetBSD make, pick up: 4058 o fix for -C, .CURDIR and .OBJDIR 4059 * boot-strap: 4060 o allow share_dir to be set independent of prefix. 4061 o select default share_dir better when prefix ends in $HOST_TARGET 4062 o if FORCE_BSD_MK etc were set, include them in the suggested 4063 install-mk command. 4064 40652009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 4066 4067 * Makefile.in (MAKE_VERSION): bump version to 20090908 4068 * Merge with NetBSD make, pick up: 4069 o .MAKE.LEVEL for recursion tracking 4070 o fix for :M scanning \: 4071 40722009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4073 4074 * configure.in: Don't -D__EXTENSIONS__ if 4075 AC_USE_SYSTEM_EXTENSIONS says "no". 4076 40772009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 4078 4079 * Makefile.in (MAKE_VERSION): bump version to 20090826 4080 Simplify MAKE_VERSION to just the bare date. 4081 * Merge with NetBSD make, pick up: 4082 o -C directory support. 4083 o support for SIGINFO 4084 o use $TMPDIR for temp files. 4085 o child of vfork should be careful about modifying parent's state. 4086 4087 40882009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 4089 4090 * Appy some patches for MiNT from David Brownlee 4091 40922009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 4093 4094 * Makefile.in (BMAKE_VERSION): bump version to 20090222 4095 * Merge with NetBSD make, pick up: 4096 o Possible null pointer de-ref in Var_Set. 4097 40982009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 4099 4100 * Makefile.in (BMAKE_VERSION): bump version to 20090204 4101 * Merge with NetBSD make, pick up: 4102 o bmake_malloc et al moved to their own .c 4103 o Count both () and {} when looking for the end of a :M pattern 4104 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 4105 o strlist.c - functions for processing extendable arrays of pointers to strings. 4106 o ClientData replaced with void *, so const void * can be used. 4107 o New debug flag C for DEBUG_CWD 4108 41092008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 4110 4111 * Makefile.in (BMAKE_VERSION): bump version to 20081111 4112 Apply patch from Joerg Sonnenberge to 4113 configure.in: 4114 o remove some redundant checks 4115 o check for emlloc etc only in libutil and require the whole family. 4116 util.c: 4117 o remove [v]asprintf which is no longer used. 4118 41192008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4120 4121 * Makefile.in (BMAKE_VERSION): bump version to 20081101 4122 * Merge with NetBSD make, pick up: 4123 o util.c: avoid use of putenv() - christos 4124 41252008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4126 4127 * Makefile.in (BMAKE_VERSION): bump version to 20081030 4128 pick up man page tweaks. 4129 41302008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 4131 4132 * Makefile.in: move processing of LIBOBJS to after is definition! 4133 thus we'll have getenv.c in SRCS only if needed. 4134 4135 * make.1: add examples of how to use :? 4136 4137 * Makefile.in (BMAKE_VERSION): bump version to 20081029 4138 * Merge with NetBSD make, pick up: 4139 o fix for .END processing with -j 4140 o segfault from Parse_Error when no makefile is open 4141 o handle numeric expressions in any variable expansion 4142 o debug output now defaults to stderr, -dF to change it - apb 4143 o make now uses bmake_malloc etc so that it can build natively 4144 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 4145 41462008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 4147 4148 * Makefile.in (BMAKE_VERSION): bump version to 20080808 4149 * Merge with NetBSD make, pick up: 4150 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 4151 long lines in Makefiles 4152 o optimizations for VarQuote by joerg 4153 o fix for PR/38756: dominik: make dumps core on invalid makefile 4154 41552008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 4156 4157 * Makefile.in (BMAKE_VERSION): bump version to 20080515 4158 * Merge with NetBSD make, pick up: 4159 o fix skip setting vars in VAR_GLOBAL context, to handle 4160 cases where VAR_CMD is used for other than command line vars. 4161 41622008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 4163 4164 * boot-strap (make_version): we may need to look in 4165 $prefix/share/mk for sys.mk 4166 4167 * Makefile.in (BMAKE_VERSION): bump version to 20080514 4168 * Merge with NetBSD make, pick up: 4169 o skip setting vars in VAR_GLOBAL context, when already set in 4170 VAR_CMD which takes precedence. 4171 41722008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 4173 4174 * Makefile.in (BMAKE_VERSION): bump version to 20080330 4175 * Merge with NetBSD make, pick up: 4176 o fix for ?= when LHS contains variable reference. 4177 41782008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4179 4180 * merge some patches from NetBSD pkgsrc. 4181 4182 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 4183 the MAKSYSPATH used during bootstrap. 4184 4185 * Makefile.in (BMAKE_VERSION): bump version to 20080215 4186 * Merge with NetBSD make, pick up: 4187 o warn if non-space chars follow 'empty' in a conditional. 4188 41892008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4190 4191 * Makefile.in (BMAKE_VERSION): bump version to 20080118 4192 * Merge with NetBSD make, pick up: 4193 o consider dependencies read from .depend as optional - dsl 4194 o remember when buffer for reading makefile grows - dsl 4195 o add -dl (aka LOUD) - David O'Brien 4196 41972007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 4198 4199 * Makefile.in (BMAKE_VERSION): bump version to 20071022 4200 * Merge with NetBSD make, pick up: 4201 o Allow .PATH<suffix> to be used for .include "" 4202 4203 * boot-strap: source default settings from .bmake-boot-strap.rc 4204 42052007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 4206 4207 * Makefile.in: fix maninstall on various systems 4208 provided that our man.mk is used. 4209 For non-BSD systems we install the preformatted page 4210 into $MANDIR/cat1 4211 42122007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 4213 4214 * boot-strap: make bmake.1 too, so maninstall works. 4215 42162007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 4217 4218 * Makefile.in (BMAKE_VERSION): bump version to 20071014 4219 * Merge with NetBSD make, pick up: 4220 o revamped handling of defshell - configure no longer needs to 4221 know the content of the shells array - apb 4222 o stop Var_Subst modifying its input - apb 4223 o avoid calling ParseTrackInput too often - dsl 4224 42252007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4226 4227 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4228 * Merge with NetBSD make, pick up: 4229 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4230 4231 * sigcompat.c: some tweaks for HP-UX 11.x based on 4232 patch from Tobias Nygren 4233 4234 * configure.in: update handling of --with-defshell to match 4235 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4236 will now do what one might hope - provided the chosen shell 4237 behaves enough like sh. 4238 42392007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4240 4241 * Makefile.in (BMAKE_VERSION): bump to 20071008 4242 * Merge with NetBSD make, pick up: 4243 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4244 o .export/.MAKE.EXPORTED - export of variables - sjg 4245 o .MAKE.MAKEFILES - track all makefiles read - sjg 4246 o performance improvements - dsl 4247 o revamp parallel job scheduling - dsl 4248 42492006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4250 4251 * Makefile.in (BMAKE_VERSION): bump to 20060728 4252 * Merge with NetBSD make, pick up: 4253 o extra debug info during variable and cond processing - sjg 4254 o shell definition now covers newline - rillig 4255 o minor mem leak in PrintOnError - sjg 4256 42572006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4258 4259 * Makefile.in (BMAKE_VERSION): bump to 20060511 4260 * Merge with NetBSD make, pick up: 4261 o more memory leaks - coverity 4262 o possible overflow in ArchFindMember - coverity 4263 o extract variable modifier code out of Var_Parse() 4264 so it can be called recursively - sjg 4265 o unit-tests/moderrs - sjg 4266 42672006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4268 4269 * Makefile.in (BMAKE_VERSION): bump to 20060412 4270 * Merge with NetBSD make, pick up: 4271 o fixes for some memory leaks - coverity 4272 o only read first sys.mk etc when searching sysIncPath - sjg 4273 4274 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4275 setting ${MAKEFILE} - OBATA Akio 4276 42772006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4278 4279 * Makefile.in (BMAKE_VERSION): bump to 20060318 4280 * Merge with NetBSD make, pick up: 4281 o cleanup of job.c to remove remote handling, distcc is more 4282 useful and this code was likely bit-rotting - dsl 4283 o fix for :P modifier - sjg 4284 * boot-strap: set default prefix to something reasonable 4285 (for me anyway). 4286 42872006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4288 4289 * Makefile.in (BMAKE_VERSION): bump to 20060301 4290 * Merge with NetBSD make, pick up: 4291 o make .WAIT apply recursively, document and test case - apb 4292 o allow variable modifiers in a variable appear anywhere in 4293 modifier list, document and test case - sjg 4294 42952006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4296 4297 * Makefile.in (BMAKE_VERSION): bump to 20060222 4298 * Merge with NetBSD make, pick up: 4299 o improved job token handling - dsl 4300 o SIG_DFL the correct signal before exec - dsl 4301 o more debug info during parsing - dsl 4302 o allow variable modifiers to be specified via variable - sjg 4303 * boot-strap: explain why we died if no mksrc 4304 43052005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4306 4307 * Makefile.in (BMAKE_VERSION): bump to 20051105 4308 * configure.in: always set default_sys_path 4309 default is ${prefix}/share/mk 4310 - remove prefix_sys_path, anyone wanting more than above 4311 needs to set it manually. 4312 43132005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4314 4315 * boot-strap: make this a bit easier for pkgsrc folk. 4316 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4317 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4318 43192005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4320 4321 * Makefile.in (BMAKE_VERSION): bump to 20051102 4322 * job.c (JobFinish): fix likely ancient merge lossage 4323 fix from Todd Vierling. 4324 * boot-strap (srcdir): allow setting mksrc=none 4325 43262005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4327 4328 * Makefile.in (BMAKE_VERSION): bump to 20051031 4329 * ranlib.h: skip on OSF too. 4330 (NetBSD PR 31864) 4331 43322005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4333 4334 * Makefile.in (BMAKE_VERSION): bump to 20051002 4335 fix a silly typo 4336 43372005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4338 4339 * Makefile.in (BMAKE_VERSION): bump to 20051001 4340 support for UnixWare and some other systems, 4341 based on patches from pkgsrc/bootstrap 4342 43432005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4344 4345 * Makefile.in (BMAKE_VERSION): bump to 20050901 4346 * Merge with NetBSD make, pick up: 4347 o possible parse error causing us to wander off. 4348 43492005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4350 4351 * Makefile.in (BMAKE_VERSION): bump to 20050606 4352 * Merge with NetBSD make, pick up: 4353 o :0x modifier for randomizing a list 4354 o fixes for a number of -Wuninitialized issues. 4355 43562005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4357 4358 * Makefile.in (BMAKE_VERSION): bump to 20050530 4359 * Merge with NetBSD make, pick up: 4360 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4361 4362 * README: was seriously out of date. 4363 43642005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4365 4366 * Important to use .MAKE rather than MAKE. 4367 43682005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4369 4370 * Makefile.in (BMAKE_VERSION): bump to 20050315 4371 * Merge with NetBSD make, pick up: 4372 o don't mistake .elsefoo for .else 4373 o use suffix-specific search path correctly 4374 o bunch of style nits 4375 43762004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4377 4378 * boot-strap: 4379 o ensure that args to --src and --with-mksrc 4380 are resolved before giving them to configure. 4381 o add -o "objdir" so that builder can control it, 4382 default is $OS as determined by os.sh 4383 o add -q to suppress all the install instructions. 4384 43852004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4386 4387 * Remove __IDSTRING() 4388 4389 * Makefile.in (BMAKE_VERSION): bump to 20040508 4390 * Merge with NetBSD make, pick up: 4391 o posix fixes 4392 - remove '-e' from compat mode 4393 - add support for '+' command-line prefix. 4394 o fix for handling '--' on command-line. 4395 o fix include in lst.lib/lstInt.h to simplify '-I's 4396 o we also picked up replacement of MAKE_BOOTSTRAP 4397 with !MAKE_NATIVE which is a noop, but possibly confusing. 4398 43992004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4400 4401 * Makefile.in (BMAKE_VERSION): bump to 20040414 4402 * Merge with NetBSD make, pick up: 4403 o allow quoted strings on lhs of conditionals 4404 o issue warning when extra .else is seen 4405 o print line numer when errors encountered during parsing from 4406 string. 4407 44082004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4409 4410 * Makefile.in (BMAKE_VERSION): bump to 20040220 4411 * Merge with NetBSD make, pick up: 4412 o fix for old :M parsing bug. 4413 o re-jigged unit-tests 4414 44152004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4416 4417 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4418 so that './bmake -f Makefile test' works. 4419 44202004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4421 4422 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4423 * Merge with NetBSD make, pick up: 4424 o search upwards for *.mk 4425 o fix for double free of var substitution buffers 4426 o use of getopt replaced with custom code, since the usage 4427 (re-scanning) isn't posix compatible. 4428 44292004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4430 4431 * arch.c: don't include ranlib.h on ELF systems 4432 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4433 44342004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4435 4436 * Makefile.in (BMAKE_VERSION): bump to 20040118 4437 4438 * boot-strap (while): export vars we assign to on cmdline 4439 * unit-test/Makefile.in: ternary is .PHONY 4440 44412004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4442 4443 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4444 * Merge with NetBSD make, pick up: 4445 o fix for ternary modifier 4446 44472004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4448 4449 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4450 * Merge with NetBSD make, pick up: 4451 o fix for cond.c to handle compound expressions better 4452 o variable expansion within sysV style replacements 4453 44542003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4455 4456 * Make portable snprintf safer - output to /dev/null first to 4457 check space needed. 4458 4459 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4460 * Merge with NetBSD make, pick up: 4461 o -dg3 to show input graph when things go wrong. 4462 o explicitly look for makefiles in objdir if not found in curdir so 4463 that errors in .depend etc will be reported accurarely. 4464 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4465 instead as it more accurately reflects the expected behavior and 4466 is more consistently implemented. 4467 o avoid use of asprintf. 4468 44692003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4470 4471 * util.c: Add asprintf and vasprintf. 4472 4473 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4474 * Merge with NetBSD make, pick up: 4475 :[] modifier - allows picking words from a variable. 4476 :tW modifier - allows treating value as one big word. 4477 W flag for :C and :S - allows treating value as one big word. 4478 44792003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4480 4481 * Merge with NetBSD make 4482 pick up -de flag to enable printing failed command. 4483 don't skip 1st two dir entries (normally . and ..) since 4484 coda does not have them. 4485 44862003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4487 4488 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4489 * Merge with NetBSD make, pick up: 4490 - changes for -V '${VAR}' to print fully expanded value 4491 cf. -V VAR 4492 - CompatRunCommand now prints the command that failed. 4493 - several files got updated 3 clause Berkeley license. 4494 44952003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4496 4497 * boot-strap: Allow setting configure args on command line. 4498 44992003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4500 4501 * configure.in: add --with-defshell to allow sh or ksh 4502 to be selected as default shell. 4503 4504 * Makefile.in: bump version to 20030731 4505 4506 * Merge with NetBSD make 4507 Pick up .SHELL spec for ksh and associate man page changes. 4508 Also compat mode now uses the same shell specs. 4509 45102003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4511 4512 * var.c (Var_Parse): ensure delim is initialized. 4513 4514 * unit-tests/Makefile.in: use single quotes to avoid problems from 4515 some shells. 4516 4517 * makefile.boot.in: 4518 Run the unit-tests as part of the bootstrap procedure. 4519 45202003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4521 4522 * unit-tests/Makefile.in: always force complaints from 4523 ${TEST_MAKE} to be from 'make'. 4524 4525 * configure.in: add check for 'diff -u' 4526 also fix some old autoconf'isms 4527 4528 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4529 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4530 4531 * Merge with NetBSD make 4532 Pick up fix for :ts parsing error in some cases. 4533 Pick unit-tests. 4534 45352003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4536 4537 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4538 4539 * var.c (Var_Parse): fix bug in :ts modifier, after const 4540 correctness fixes, must pass nstr to VarModify. 4541 45422003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4543 4544 * Makefile.in: BMAKE_VERSION switch to a date based version. 4545 We'll generally use the date of last import from NetBSD. 4546 4547 * Merge with NetBSD make 4548 Pick up fixes for const-correctness, now passes WARNS=3 on 4549 NetBSD. 4550 Pick up :ts modifier, allows controlling the separator used 4551 between words in variable expansion. 4552 45532003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4554 4555 * FILES: include boot-strap and os.sh 4556 4557 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4558 FreeBSD is known to be bad. 4559 4560 * makefile.boot.in (bootstrap): make this the default target. 4561 4562 * Makefile.in: bump version to 3.1.19 4563 4564 * machine.sh: avoid A-Z with tr as it is bound to lose. 4565 45662003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4567 4568 * Merge with NetBSD make 4569 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4570 Plus some doc fixes. 4571 45722003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4573 4574 * Merge with NetBSD make 4575 Pick up fix for PR/1523 - don't count a library as built, if there 4576 is no way to build it 4577 4578 * Bump version to 3.1.18 4579 45802003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4581 4582 * Merge with NetBSD make 4583 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4584 appears in src list. 4585 45862003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4587 4588 * Merge with NetBSD make (mmm 10th anniversary!) 4589 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4590 pick up -X which tells us to not export VAR=val via setenv if 4591 we are already doing so via MAKEFLAGS. This saves valuable env 4592 space on systems like Darwin. 4593 set MAKE_VERSION to 3.1.17 4594 4595 * parse.c: pix up fix for suffix rules 4596 45972003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4598 4599 * Merge with NetBSD make. 4600 pick up fix for propagating -B via MAKEFLAGS. 4601 set MAKE_VERSION to 3.1.16 4602 4603 * Apply some patches from pkgsrc-bootstrap/bmake 4604 Originally by Grant Beattie <grant@netbsd.org> 4605 I may have missed some - since they are based on bmake-3.1.12 4606 46072002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4608 4609 * makefile.boot.in (bmake): update install targets for those that 4610 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4611 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4612 4613 * bmake.cat1: update the pre-formatted man page! 4614 46152002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4616 4617 * Merge with NetBSD make. 4618 pick up fix for premature free of pointer used in call 4619 to Dir_InitCur(). 4620 set MAKE_VERSION to 3.1.15 4621 46222002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4623 4624 * configure.in: determine suitable value for MKSRC. 4625 override using --with-mksrc=PATH. 4626 4627 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4628 configs(8) will use 'sun4' as an alias for 'sparc'. 4629 46302002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4631 4632 * Merge with NetBSD make. 4633 pick up ${.PATH} 4634 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4635 set MAKE_VERSION to 3.1.14 4636 add configure checks for killpg and sys/socket.h 4637 46382002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4639 4640 * tag bmake-3-1-13 4641 4642 * makefile.boot.in (bmake): use install-mk 4643 Also setup ./mk before trying to invoke bmake.boot incase we 4644 needed install-mk to create a sys.mk for us. 4645 4646 * configure.in: If we need to add -I${srcdir}/missing, make it an 4647 absolute path so that it works for lst.lib too. 4648 4649 * make.h: always include sys/cdefs.h since we provide one if the 4650 host does not. 4651 4652 * Makefile.in (install-mk): 4653 use MKSRC/install-mk which will do the right thing. 4654 use uname -p for ARCH if possible. 4655 since install-mk will setup links bsd.prog.mk -> prog.mk if 4656 needed, just .include bsd.prog.mk 4657 4658 * Merge with NetBSD make (NetBSD-1.6) 4659 Code is ansi-C only now. 4660 Bug in handling of dotLast is fixed. 4661 Can now assign .OBJDIR and make will reset its notions of life. 4662 New modifiers :tu :tl for toUpper and toLower. 4663 4664Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4665 4666 * Merge with NetBSD make 4667 pick up fix for .END failure in compat mode. 4668 pick up fix for extra va_end() in ParseVErrorInternal. 4669 4670Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4671 4672 * configure.in: for systems that have sys/cdefs.h check if it is 4673 compatible. If not, include the one under missing, but tell it to 4674 include the native one too - necessary on Linux. 4675 4676 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4677 include_next (for gcc) to get the native sys/cdefs.h 4678 4679Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4680 4681 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4682 leaking descriptors when using -jN. 4683 4684 * job.c (JobPrintCommand): See if "curdir" exists before 4685 attempting to chdir(). Doing the chdir directly in make (when in 4686 compat mode) fails silently, so let the -jN version do the same. 4687 This can happen when building kernels in an object tree and 4688 playing clever games to reset .CURDIR. 4689 4690 * Merged with NetBSD make 4691 pick up .USEBEFORE 4692 4693Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4694 4695 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4696 4697Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4698 4699 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4700 us not to export the iterator variable when using VAR_CMD context. 4701 4702Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4703 4704 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4705 its the wrong "fix". 4706 4707Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4708 4709 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4710 We now simply append the variable names to .MAKEOVERRIDES, and 4711 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4712 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4713 Apart from fixing quoting bugs in previous version, this allows us 4714 to export vars to the environment by simply doing: 4715 .MAKEOVERRIDES+= PATH 4716 Merged again with NetBSD make, but the above is the only change. 4717 4718 * configure.in: added 4719 --disable-pwd-override disable $PWD overriding getcwd() 4720 --disable-check-make-chdir disable make trying to guess 4721 when it should automatically cd ${.CURDIR} 4722 4723 * Merge with NetBSD make, changes include: 4724 parse.c (ParseDoDependency): Spot that the syntax error is 4725 caused by an unresolved cvs/rcs conflict and say so. 4726 var.c: most of Var* functions now take a ctxt as 1st arg. 4727 now does variable substituion on rhs of sysv style modifiers. 4728 4729 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4730 is now done here. We append the name='value' to .MAKEOVERRIDES 4731 rather than directly into MAKEFLAGS as this allows a Makefile to 4732 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4733 very similar mechanism. Note that in adding name='value' to 4734 .MAKEOVERRIDES we do the moral equivalent of: 4735 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4736 4737Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4738 4739 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4740 4741 * Merged with NetBSD make 4742 make -dx can now be used to run commands via sh -x 4743 better error messages on exec failures. 4744 4745Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4746 4747 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4748 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4749 MACHINE etc otherwise they propagate from the previous bmake. 4750 4751 * configure.in (machine): allow --with-machine=generic to make 4752 configure use machine.sh to set MACHINE. 4753 4754 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4755 4756 * Makefile.in: mention in bmake.1 that we use autoconf. 4757 4758 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4759 4760Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4761 4762 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4763 as that rather defeats the usefulness of ${MAKEFILE}. 4764 4765 * main.c (MainParseArgs): append command line variable assignments 4766 to MAKEFLAGS so that they get propagated to child make's. 4767 Apparently this is required POSIX behaviour? Its useful anyway. 4768 4769Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4770 4771 * compat.c (CompatRunCommand): don't use perror() since stdio may 4772 cause problems in child of vfork(). 4773 4774 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4775 This routine prints out the .curdir where we stopped and will also 4776 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4777 4778 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4779 :@ expansion. 4780 4781 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4782 4783 * Added RCSid's for the files we've touched. 4784 4785Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4786 4787 * configure.in: Thanks to some clues from mdb@juniper.net, 4788 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4789 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4790 4791 --with-machine=MACHINE explicitly set MACHINE 4792 --with-force-machine=MACHINE set FORCE_MACHINE 4793 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4794 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4795 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4796 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4797 4798 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4799 4800 * makefile: added a pathetically simple makefile to drive 4801 bootstrapping. Running configure by hand is more useful. 4802 4803 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4804 dependent on NetBSD bsd.*.mk 4805 4806 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4807 _PATH_OBJDIRPREFIX for those that don't want a default. 4808 construct _PATH_DEFSYSPATH from the info we get from configure. 4809 4810 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4811 if MAKE_VERSION is defined. 4812 4813 * compat.c: when we bail, print out the .CURDIR we were in. 4814 4815Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4816 4817 * Merged with NetBSD make 4818 4819 * var.c: fixed a bug in the handling of the modifier :P 4820 if the node as found but the path was null, we segfault trying to 4821 duplicate it. 4822 4823Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4824 4825 * Merged with NetBSD make 4826 4827 * make.c: Make_OODate's test for a library out of date was using 4828 cmtime where it should have used mtime (my bug). 4829 4830 * compat.c: Use perror() to tell us what really went wrong when we 4831 cannot exec a command. 4832 4833Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4834 4835 * Merged with NetBSD make 4836 4837Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4838 4839 * Merged with NetBSD make 4840 4841Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4842 4843 * Merged with NetBSD make 4844 4845Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4846 4847 * Merged with NetBSD make 4848 4849Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4850 4851 * util.c: don't provide signal() since we use sigcompat.c 4852 4853 * Makefile.in: added a build target. 4854 4855 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4856 These allow some quite clever magic. 4857 4858 * main.c (main): added support for getenv(MAKESYSPATH). 4859 4860Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4861 4862 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4863 This avoids objdir having a different value depending on how a 4864 directory was reached (via command line, or subdir.mk). 4865 4866 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4867 4868Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4869 4870 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4871 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4872 I've been testing this in NetBSD's make for some weeks. 4873 4874 * Turn Makefile into Makefile.in and make it useful. 4875 4876Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4877 4878 * Imported NetBSD's -current make(1) and resolve conflicts. 4879 4880 * Applied autoconf patches from bmake v2 4881 4882 * Imported clean code base from NetBSD-1.0 4883