12026-03-12 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20260313 4 Merge with NetBSD make, pick up 5 o make: ensure .MAKE.SAVE_DOLLARS is initialized so makefiles like 6 sys.vars.mk can test its value to know how to deal with macros 7 that need to save '$' during ':='. 8 9 * Makefile: default MAKE_SAVE_DOLLARS_DEFAULT to "no" 10 for traditional behavior. 11 122026-03-10 Simon J Gerraty <sjg@beast.crufty.net> 13 14 * VERSION (_MAKE_VERSION): 20260310 15 Merge with NetBSD make, pick up 16 o unit-tests ensure TEST_MAKE is absolute path 17 and tests that make symlink for ${MAKE} can run in parallel. 18 192026-03-03 Simon J Gerraty <sjg@beast.crufty.net> 20 21 * VERSION (_MAKE_VERSION): 20260303 22 Merge with NetBSD make, pick up 23 o job.c: MaybeSubMake: Look for expansion of ${.MAKE} 24 and if necessary its basename, and only match if at start of line 25 or preceded by space. 26 272026-02-28 Simon J Gerraty <sjg@beast.crufty.net> 28 29 * Makefile: mark ${PROG} and ${OBJS} as .META 30 MaybeSubMake will otherwise mistake them for sub-makes 31 32 * VERSION (_MAKE_VERSION): 20260301 33 Merge with NetBSD make, pick up 34 o job.c: MaybeSubMake: skip control chars [@+-] at start of line 35 when checking for ${MAKE} 36 372026-02-22 Simon J Gerraty <sjg@beast.crufty.net> 38 39 * VERSION (_MAKE_VERSION): 20260222 40 o mk file update 41 422026-02-16 Simon J Gerraty <sjg@beast.crufty.net> 43 44 * VERSION (_MAKE_VERSION): 20260216 45 Merge with NetBSD make, pick up 46 o minor cleanups 47 482026-02-10 Simon J Gerraty <sjg@beast.crufty.net> 49 50 * VERSION (_MAKE_VERSION): 20260210 51 Merge with NetBSD make, pick up 52 o document that multiple variables can be set on command line. 53 o move MaybeSubMake to job.c so it can be called on expanded 54 commands for more accuracy and less overhead. 55 o main.c: set .MAKE.VERSION as read-only. 56 57 * unit-tests/opt-{chdir,where-am-i}.mk: use MAKEOBJDIRPREFIX=/ 58 to avoid tripping over an unreadable /usr/obj 59 602026-02-04 Simon J Gerraty <sjg@beast.crufty.net> 61 62 * unit-tests/varname-make_stack_trace.mk: for 63 FreeBSD and similar set .MAKE.ALWAYS_PASS_JOB_QUEUE=no 64 to ensure we get the expected errors. 65 66 * VERSION (_MAKE_VERSION): 20260202 67 Merge with NetBSD make, pick up 68 o on error avoid duplicate stack trace to stderr 69 702026-01-11 Simon J Gerraty <sjg@beast.crufty.net> 71 72 * VERSION (_MAKE_VERSION): 20260111 73 Merge with NetBSD make, pick up 74 o var.c: add explicit check for empty re as not all 75 regex libs throw an error as expected, in this case. 76 772026-01-10 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * VERSION (_MAKE_VERSION): 20260110 80 Merge with NetBSD make, pick up 81 o minor cleanups 82 832025-11-15 Simon J Gerraty <sjg@beast.crufty.net> 84 85 * boot-strap: unset more things from env and save a copy 86 to env.out for debugging. 87 882025-11-12 Simon J Gerraty <sjg@beast.crufty.net> 89 90 * VERSION (_MAKE_VERSION): 20251111 91 Merge with NetBSD make, pick up 92 o var.c: add :sh1 which only evaluates command on first reference. 93 942025-11-11 Simon J Gerraty <sjg@beast.crufty.net> 95 96 * configure.in: Force filemon=no for Cygwin and MINGW64_NT 97 982025-11-10 Simon J Gerraty <sjg@beast.crufty.net> 99 100 * unit-tests/Makefile: handle MINGW64_NT 101 mark some tests broken, filter others as per Cygwin. 102 1032025-10-23 Simon J Gerraty <sjg@beast.crufty.net> 104 105 * make.1: document MAKE_VERSION. 106 1072025-10-22 Simon J Gerraty <sjg@beast.crufty.net> 108 109 * VERSION (_MAKE_VERSION): 20251022 110 111 * configure.in: Add a check that lua is version 5.2 or later 112 if not we want to skip running check-expect.lua 113 1142025-09-16 Simon J Gerraty <sjg@beast.crufty.net> 115 116 * VERSION (_MAKE_VERSION): 20250916 117 Merge with NetBSD make, pick up 118 o var.c: avoid compiler warning from hexdigits 119 1202025-08-04 Simon J Gerraty <sjg@beast.crufty.net> 121 122 * VERSION (_MAKE_VERSION): 20250804 123 Merge with NetBSD make, pick up 124 o meta.c: allow printing only partial string to meta file 125 in jobs mode, otherwise we end up with duplicated output when 126 buffer does not end in newline. 127 Add a suitable unit test. 128 1292025-07-07 Simon J Gerraty <sjg@beast.crufty.net> 130 131 * VERSION (_MAKE_VERSION): 20250707 132 Merge with NetBSD make, pick up 133 o cond.c: improve debug log message for 'exists' function. 134 complain about unfinished escape sequences or string literals. 135 1362025-07-04 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * VERSION (_MAKE_VERSION): 20250704 139 Merge with NetBSD make, pick up 140 o make.1: add a DIAGNOSTICS section for make to reference. 141 o main.c: simplify the warning for invalid -J by refering to 142 manual page. 143 1442025-06-30 Simon J Gerraty <sjg@beast.crufty.net> 145 146 * VERSION (_MAKE_VERSION): 20250630 147 Merge with NetBSD make, pick up 148 o consistently use double quotes in error messages 149 o cond.c: if a condition is erroneous, skip the whole .if/.endif 150 o make_malloc.c: in cleanup mode, initialize freshly allocated memory 151 o str.c: error out on an ":M" modifier whose pattern ends with 152 backslash 153 o var.c: fix parsing of modifier parts for :gmtime and :localtime 154 add POSIX $^ support 155 1562025-06-18 Simon J Gerraty <sjg@beast.crufty.net> 157 158 * VERSION (_MAKE_VERSION): 20250618 159 Merge with NetBSD make, pick up 160 o parse.c: in a warning without location information, 161 print the stack trace 162 1632025-06-15 Simon J Gerraty <sjg@beast.crufty.net> 164 165 * VERSION (_MAKE_VERSION): 20250615 166 Merge with NetBSD make, pick up 167 o add on-demand inter-process stack traces 168 o job.c,meta.c: do not discard empty lines in the output of a command 169 o job.c: add job prefix if necessary in non-default filtered mode 170 o parse.c,var.c: skip inter-process stack trace when 171 MAKE_STACK_TRACE=no 172 1732025-06-12 Simon J Gerraty <sjg@beast.crufty.net> 174 175 * VERSION (_MAKE_VERSION): 20250612 176 Merge with NetBSD make, pick up 177 o use a common style for unexpected error messages 178 o parse.c: add program name to stack traces from sub-makes 179 add quotes to "in directory" line in stack traces 180 o var.c: check variable names for invalid characters when there 181 are no modifiers to apply. This detects and warns about gmake 182 syntax like: $(addprefix -I, $(LIST)) 183 1842025-06-09 Simon J Gerraty <sjg@beast.crufty.net> 185 186 * VERSION (_MAKE_VERSION): 20250606 187 Merge with NetBSD make, pick up 188 o main.c: fix bug in handling of output of children in jobs mode 189 1902025-05-28 Simon J Gerraty <sjg@beast.crufty.net> 191 192 * VERSION (_MAKE_VERSION): 20250528 193 Merge with NetBSD make, pick up 194 o show contents of MAKEFLAGS in the stack trace. 195 o main.c: delay warning about bogus -J flag, if we end up in 196 compat mode before the call to InitMaxJobs, the warning isn't 197 necessary. 198 1992025-05-25 Simon J Gerraty <sjg@beast.crufty.net> 200 201 * VERSION (_MAKE_VERSION): 20250525 202 Merge with NetBSD make, pick up 203 o main.c: set .CURDIR earlier so it can be reported in some errors. 204 2052025-05-20 Simon J Gerraty <sjg@beast.crufty.net> 206 207 * VERSION (_MAKE_VERSION): 20250520 208 Merge with NetBSD make, pick up 209 o rename variables, remove now-redundant comments 210 o job.c: clean up building the shell commands in parallel mode 211 remove timeout for polling in parallel mode 212 o main.c: clean up error message for malformed internal -J option 213 2142025-05-11 Simon J Gerraty <sjg@beast.crufty.net> 215 216 * VERSION (_MAKE_VERSION): 20250511 217 Merge with NetBSD make, pick up 218 o job.c: rename token pool variables to be more descriptive 219 move ContinueJobs further up, to eliminate a forward declaration 220 error out if writing to an internal pipe fails 221 clean up constant names and function names 222 use uniform debug log messages for the token pool 223 in the debug log, replace magic numbers with identifiers 224 o main.c: clean up error message for malformed internal -J option 225 o make.c: replace bitset in trace output with descriptive node 226 attributes 227 o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log 228 o var.c: fix order of error messages in the ":?" modifier 229 2302025-04-25 Simon J Gerraty <sjg@beast.crufty.net> 231 232 * VERSION (_MAKE_VERSION): 20250424 233 Merge with NetBSD make, pick up 234 o cleanup; replace unsigned int with just unsigned 235 Inline the TMPPAT macro, as it is only needed in a single place 236 o move struct Job from job.h to job.c 237 o job.c: group the code for handling the job token pool 238 avoid excessive values of -j 239 o make.c: fix grammar in debug log message 240 2412025-04-14 Simon J Gerraty <sjg@beast.crufty.net> 242 243 * VERSION (_MAKE_VERSION): 20250414 244 Merge with NetBSD make, pick up 245 o job.c: clean up job and output handling 246 o parse.c: after entering POSIX mode, don't leave it again 247 2482025-04-11 Simon J Gerraty <sjg@beast.crufty.net> 249 250 * VERSION (_MAKE_VERSION): 20250411 251 Merge with NetBSD make, pick up 252 o convert more messages to file:line: format 253 o for.c: condense code for parsing variable names in .for loops 254 2552025-04-10 Simon J Gerraty <sjg@beast.crufty.net> 256 257 * VERSION (_MAKE_VERSION): 20250410 258 Merge with NetBSD make, pick up 259 o cond.c: remove redundant error counter when parsing a condition 260 2612025-04-04 Simon J Gerraty <sjg@beast.crufty.net> 262 263 * VERSION (_MAKE_VERSION): 20250404 264 Merge with NetBSD make, pick up 265 o make.1: better document meta mode. 266 o var.c: fix error message for undefined variable in conditional. 267 2682025-03-30 Simon J Gerraty <sjg@beast.crufty.net> 269 270 * VERSION (_MAKE_VERSION): 20250330 271 Merge with NetBSD make, pick up 272 o in POSIX compatability mode, give preference to sysV style modifiers. 273 o in stack trace with details and includes, list the current file 274 o parse.c: report file location in more common file:line: format. 275 o var.c: simplify error handling for unknown modifiers 276 let the ":O" and ":t" modifiers fall back to the ":from=to" modifier 277 stop parsing after seeing an unknown modifier in an expression 278 fix error message for unclosed expression and invalid :[...] 279 add details to errors about ::= modifier 280 add details about indirect modifiers to the stack traces 281 in stack traces from target commands, add the command level 282 2832025-03-23 Simon J Gerraty <sjg@beast.crufty.net> 284 285 * VERSION (_MAKE_VERSION): 20250323 286 Merge with NetBSD make, pick up 287 o var.c: just ignore attempts to override a read-only global with 288 the same value. 289 2902025-03-08 Simon J Gerraty <sjg@beast.crufty.net> 291 292 * bsd.after-import.mk: by default generate makefiles 293 closer to BSD style. 294 295 * VERSION (_MAKE_VERSION): 20250308 296 Merge with NetBSD make, pick up 297 o clean up comments and code for parallel mode 298 o job.c: avoid SIGPIPE for children, call Job_Wait befor abort. 299 3002025-02-27 Simon J Gerraty <sjg@beast.crufty.net> 301 302 * VERSION (_MAKE_VERSION): 20250225 303 Merge with NetBSD make, pick up 304 o job.c: reliably remove targets on interrupt, 305 by passing signal to children first. 306 3072025-01-25 Simon J Gerraty <sjg@beast.crufty.net> 308 309 * VERSION (_MAKE_VERSION): 20250125 310 Merge with NetBSD make, sync up below change. 311 312 * unit-tests/Makefile: remove $TMPDIR via .END 313 to avoid failure in test on NFS - since the temp file for the 314 target script is open and thus gets renamed by the server rather 315 than removed. 316 3172025-01-20 Simon J Gerraty <sjg@beast.crufty.net> 318 319 * VERSION (_MAKE_VERSION): 20250120 320 Merge with NetBSD make, pick up 321 o use FORK_FUNCTION so it can be forced to fork when doing coverage. 322 o main.c: avoid memory allocation in error path after exec failure. 323 3242025-01-16 Simon J Gerraty <sjg@beast.crufty.net> 325 326 * VERSION (_MAKE_VERSION): 20250116 327 Merge with NetBSD make, pick up 328 o clarify that undefined expressions are allowed in dependencies 329 o simplify code for evaluating the '!=' variable assignment 330 3312025-01-11 Simon J Gerraty <sjg@beast.crufty.net> 332 333 * VERSION (_MAKE_VERSION): 20250111 334 Merge with NetBSD make, pick up 335 o replace "Malformed conditional" with "Variable is undefined" 336 when appropriate 337 3382025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 339 340 * VERSION (_MAKE_VERSION): 20250110 341 Merge with NetBSD make, pick up 342 o job.c: remove some unnecessary layers in job handling 343 o unit-tests: test expressions based on undefined variables 344 3452025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 346 347 * VERSION (_MAKE_VERSION): 20250101 348 Merge with NetBSD make, pick up 349 o var.c: reduce pointer indirections when unexporting a variable 350 3512024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * VERSION (_MAKE_VERSION): 20241212 354 * mk/ updates 355 3562024-11-24 Simon J Gerraty <sjg@beast.crufty.net> 357 358 * VERSION (_MAKE_VERSION): 20241124 359 Merge with NetBSD make, pick up 360 o var.c: fix confusing error message when overriding a read-only 361 variable 362 3632024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 364 365 * VERSION (_MAKE_VERSION): 20241122 366 Merge with NetBSD make, pick up 367 o unit-tests/Makefile: optimize running of tests skip extra cat 368 in 99% of cases. 369 3702024-11-15 Simon J Gerraty <sjg@beast.crufty.net> 371 372 * VERSION (_MAKE_VERSION): 20241114 373 Merge with NetBSD make, pick up 374 o make.1: note that MAKEOBJPREFIX should be absolute path 375 also that it can be set via makefile if suitable care taken. 376 3772024-11-10 Simon J Gerraty <sjg@beast.crufty.net> 378 379 * VERSION (_MAKE_VERSION): 20241110 380 Merge with NetBSD make, pick up 381 o make: allow .../ (search here and above) in 382 .MAKE.MAKEFILE_PREFERENCE and -f argument. 383 3842024-11-03 Simon J Gerraty <sjg@beast.crufty.net> 385 386 * VERSION (_MAKE_VERSION): 20241101 387 Merge with NetBSD make, pick up 388 o parse.c: report filename:linenumber in parse debug output 389 3902024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 391 392 * VERSION (_MAKE_VERSION): 20240921 393 Merge with NetBSD make, pick up 394 o make.1: Only list the defaults for MAKEFILE_PREFERENCE once. 395 396 * Makefile: use genfiles.mk to generate ${MAN} 397 so that it can be tuned for local site. 398 Ensure MAN is defined before including Makefile.inc 399 400 * Makefile: use MK_GEN_MAN to make it easier to control whether we 401 generate ${MAN} 402 4032024-09-16 Simon J Gerraty <sjg@beast.crufty.net> 404 405 * VERSION (_MAKE_VERSION): 20240909 406 407 * arch.c: fix NetBSD PR 58597 408 4092024-09-01 Simon J Gerraty <sjg@beast.crufty.net> 410 411 * Makefile: use SUBDIR.${MK_TESTS} so that we skip 412 unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS 413 414 * VERSION (_MAKE_VERSION): 20240901 415 Merge with NetBSD make, pick up 416 o reduce line length in error messages 417 o var.c: simplify printing of an evaluation stack element 418 4192024-08-29 Simon J Gerraty <sjg@beast.crufty.net> 420 421 * VERSION (_MAKE_VERSION): 20240828 422 Merge with NetBSD make, pick up 423 o add more context to error message about recursive variables 424 o treat recursive variables non-fatally - continue parsing to end 425 of makefile 426 4272024-08-12 Simon J Gerraty <sjg@beast.crufty.net> 428 429 * VERSION (_MAKE_VERSION): 20240808 430 Merge with NetBSD make, pick up 431 o improve some error messages for better clarify and readability 432 4332024-07-22 Simon J Gerraty <sjg@beast.crufty.net> 434 435 * VERSION (_MAKE_VERSION): 20240722 436 Merge with NetBSD make, pick up 437 o job.c: remove dead code 438 4392024-07-21 Simon J Gerraty <sjg@beast.crufty.net> 440 441 * VERSION (_MAKE_VERSION): 20240720 442 Merge with NetBSD make, pick up 443 o compat.c: do not run commands that have parse or evaluation errors. 444 o var.c: remove wrong error message about an undefined variable 445 4462024-07-13 Simon J Gerraty <sjg@beast.crufty.net> 447 448 * cleanup redundant differences from NetBSD make 449 o parse.c: no longer uses mmap 450 o var.c: check __STDC_VERSION__ not __STDC__ 451 4522024-07-12 Simon J Gerraty <sjg@beast.crufty.net> 453 454 * Apply some patches from NetBSD pkgsrc to reduce divergence 455 o meta.c: requires sys/select.h if available 456 o var.c: ensure SIZE_MAX has a value 457 o util.c: ensure SA_RESTART is defined 458 459 * configure.in: use *ksh* rather than just *ksh to match 460 ksh shell specification. 461 462 * unit-tests/Makefile: expand BROKEN_TESTS for ksh and 463 mksh in particular 464 4652024-07-11 Simon J Gerraty <sjg@beast.crufty.net> 466 467 * VERSION (_MAKE_VERSION): 20240711 468 Merge with NetBSD make, pick up 469 o compat.c: allow Compat_RunCommand to also handle very long 470 commands by writing to a temp file when needed. 471 o main.c: extract the temp file logic recently added to Cmd_Exec 472 to Cmd_Argv so it can be leveraged by Compat_RunCommand. 473 4742024-07-09 Simon J Gerraty <sjg@beast.crufty.net> 475 476 * VERSION (_MAKE_VERSION): 20240709 477 Merge with NetBSD make, pick up 478 o error out on parse/evaluation errors in shell commands 479 o var.c: error out on syntax errors in ':M' and ':N' modifiers 480 4812024-07-07 Simon J Gerraty <sjg@beast.crufty.net> 482 483 * VERSION (_MAKE_VERSION): 20240707 484 Merge with NetBSD make, pick up 485 o only generate code for cleanup functions in CLEANUP mode 486 o hash.c: don't track hash table chain lengths during lookup 487 unless debugging 488 o main.c: move initialization of variable scopes to targ.c 489 o var.c: remove Var_End as it is now unnecessary 490 4912024-07-06 Simon J Gerraty <sjg@beast.crufty.net> 492 493 * VERSION (_MAKE_VERSION): 20240706 494 Merge with NetBSD make, pick up 495 o reduce lint comments about ARGSUSED 496 o cond.c: error out on conditions containing the operators '&' and '|' 497 o str.c: error out on a matching malformed matching pattern '[[' 498 o var.c: in error messages, distinguish parsing from evaluating 499 in error messages for anonymous variables, log the value 500 error out on unclosed expressions during parse time 501 5022024-07-04 Simon J Gerraty <sjg@beast.crufty.net> 503 504 * VERSION (_MAKE_VERSION): 20240704 505 Merge with NetBSD make, pick up 506 o add more context information to error messages 507 o main.c: on error, print the targets to be made 508 add detailed exit status to message for failed sub-commands 509 o var.c: error out on the "Bad modifier" error message 510 5112024-07-01 Simon J Gerraty <sjg@beast.crufty.net> 512 513 * VERSION (_MAKE_VERSION): 20240701 514 Merge with NetBSD make, pick up 515 o var.c: add :tt for Title case 516 5172024-06-30 Simon J Gerraty <sjg@beast.crufty.net> 518 519 * configure.in: 20240630 further refine check for whether 520 TZ=Europe/Berlin works 521 522 * VERSION (_MAKE_VERSION): 20240630 523 Merge with NetBSD make, pick up 524 o job.c: reduce use of UNCONST 525 o main.c: add detailed exit status to message for failed sub-commands 526 o var.c: error out on some more syntax errors 527 add more context to "returned non-zero status" message 528 5292024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 530 531 * VERSION (_MAKE_VERSION): 20240625 532 Merge with NetBSD make, pick up 533 o job.c: ensure shellPath is always duped, avoid upsetting free() 534 5352024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20240616 538 Merge with NetBSD make, pick up 539 o clean up collection of context information for error messages 540 o in warnings, move the word "warning" to the front 541 o var.c: throw an error on attempt to override an internal 542 read-only variable 543 5442024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 545 546 * VERSION (_MAKE_VERSION): 20240610 547 Merge with NetBSD make, pick up 548 o for.c: remove redundant shortcut for building the .for loop body 549 5502024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 551 552 * VERSION (_MAKE_VERSION): 20240602 553 Merge with NetBSD make, pick up 554 o rename some VarEvalMode constants to better match debug names. 555 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 556 5572024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 558 559 * VERSION (_MAKE_VERSION): 20240601 560 Merge with NetBSD make, pick up 561 o add .export-all rather than allow .export with no argument 562 which can happen accidentally. 563 o if lua is available, run check-expect.lua after unit-tests 564 o main.c: use snprintf rather than strncpy 565 fix memory leak when purging realpath cache. 566 5672024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 568 569 * VERSION (_MAKE_VERSION): 20240528 570 Merge with NetBSD make, pick up 571 o fix a number of memory leaks 572 o replace magic numbers with POSIX FILENO constants 573 o hash.c: remove dead code from HashTable_DeleteEntry 574 o main.c: when complaining about unusable .OBJDIR 575 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 576 o parse.c: use fewer technical terms in debug message for dependency 577 5782024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 579 580 * VERSION (_MAKE_VERSION): 581 Merge with NetBSD make, pick up 582 o dir.c: in FindFile restore last search of .CURDIR even for 583 includes, as a number of existing makefiles are broken otherwise. 584 5852024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 586 587 * VERSION (_MAKE_VERSION): 20240519 588 Merge with NetBSD make, pick up 589 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 590 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 591 o main.c: no need to set .DOTLAST in sysIncPath 592 5932024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 594 595 * VERSION (_MAKE_VERSION): 20240508 596 Merge with NetBSD make, pick up 597 o make: ensure variables set on command line get added to 598 .MAKEOVERRIDES (even if they start with '.') so they are passed to 599 sub-makes. 600 6012024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 602 603 * VERSION (_MAKE_VERSION): 20240430 604 Merge with NetBSD make, pick up 605 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 606 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 607 6082024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 609 610 * VERSION (_MAKE_VERSION): 20240428 611 Merge with NetBSD make, pick up 612 o simplify freeing of lists 613 o arch.c: trim pointless comments 614 o var.c: delay variable assignments until actually needed 615 don't reallocate memory after evaluating an expression, result is 616 almost always short-lived. 617 6182024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20240426 621 Merge with NetBSD make, pick up 622 o job.c: in debug output, print the directory in which a job 623 failed at same time as failed target so it is more easily found in 624 build log. 625 6262024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 627 628 * VERSION (_MAKE_VERSION): 20240424 629 Merge with NetBSD make, pick up 630 o clean up comments, code and tests 631 6322024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 633 634 * VERSION (_MAKE_VERSION): 20240422 635 Merge with NetBSD make, pick up 636 o var.c: avoid LazyBuf for :*time modifiers. 637 LazyBuf's are not nul terminated so not suitable for passing to 638 functions that expect that. These modifiers are used sparingly so 639 an extra allocation is not a problem. 640 6412024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 642 643 * VERSION (_MAKE_VERSION): 20240420 644 Merge with NetBSD make, pick up 645 o provide more context information for parse/evaluate errors 646 6472024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 648 649 * VERSION (_MAKE_VERSION): 20240414 650 Merge with NetBSD make, pick up 651 o parse.c: print -dp debug info earlier so we see which 652 .if or .for line is being parsed. 653 6542024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 655 656 * VERSION (_MAKE_VERSION): 20240404 657 Merge with NetBSD make, pick up 658 o fix some unit tests for Cygwin 659 o parse.c: exit immediately after reading a null byte from a makefile 660 661 * fix generation of bmake.cat1 662 6632024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 664 665 * VERSION (_MAKE_VERSION): 20240314 666 Add/Improve support for Cygwin 667 o uname -s output isn't useful so allow configure to 668 set FORCE_MAKE_OS - to force the value of .MAKE.OS 669 and use Cygwin which matches uname -o 670 o fix some unit-tests for Cygwin 671 6722024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 673 674 * boot-strap: tests can take a long time; use a cookie to 675 skip them if bmake has not been updated since tests last 676 ran successfully. 677 678 * Makefile: Cygwin handles MANTARGET man 679 680 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 681 6822024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 683 684 * VERSION (_MAKE_VERSION): 20240309 685 Merge with NetBSD make, pick up 686 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 687 this allows a .ERROR target to ignore the case of 688 .ERROR_EXIT==6 which just means that the build actually 689 failed somewhere else. 690 6912024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 692 693 * VERSION (_MAKE_VERSION): 20240303 694 695 * var.c: on IRIX we need both inttypes.h and stdint.h 696 6972024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 698 699 * VERSION (_MAKE_VERSION): 20240301 700 Merge with NetBSD make, pick up 701 o export variables with value from target scope 702 when appropriate. 703 7042024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * VERSION (_MAKE_VERSION): 20240212 707 Merge with NetBSD make, pick up 708 o remove unneeded conditional-compilation toggles 709 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 710 GMAKEEXPORT NO_REGEX and SUNSHCMD 711 712 * configure.in: add check for regex.h 713 714 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 715 7162024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 717 718 * VERSION (_MAKE_VERSION): 20240204 719 Merge with NetBSD make, pick up 720 o var.c: fix some lint (-dL) mode parsing issues 721 7222024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 723 724 * VERSION: (_MAKE_VERSION): 20240202 725 Merge with NetBSD make, pick up 726 o make.1: note that arg to :D and :U can be empty 727 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 728 7292024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 730 731 * VERSION (_MAKE_VERSION): 20240108 732 Merge with NetBSD make, pick up 733 o miscellaneous cleanups 734 7352024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 736 737 * VERSION (_MAKE_VERSION): 20240106 738 Merge with NetBSD make, pick up 739 o fix duplicate progname when reporting an unknown target 740 o unit tests for Cmd_Exec using temp file 741 7422024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 743 744 * VERSION (_MAKE_VERSION): 20240105 745 Merge with NetBSD make, pick up 746 o main.c: Cmd_Exec write cmd to a file if too big 747 avoid blowing commandline/env limits 748 7492024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 750 751 * VERSION (_MAKE_VERSION): 20240101 752 o util.c: flesh out more of strftime 753 * configure.in: add --with-bmake-strftime 754 it is not a full implementation but enough to pass all 755 the unit-tests. 756 * parse.c: LoadFile do not append \n to empty buffer. 757 7582023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 759 760 * VERSION (_MAKE_VERSION): 20231230 761 Merge with NetBSD make, pick up 762 o simplify memory allocation for string buffers 763 o fix declared types of list nodes 764 o suff.c: clean up freeing of suffixes 765 o var.c: simplify debug message for the ':@var@...@' modifier 766 clean up variable handling 767 7682023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 769 770 * VERSION (_MAKE_VERSION): 20231226 771 Merge with NetBSD make, pick up 772 o compat.c: ensure make's output is correctly ordered with that of 773 the target when not going to a tty 774 o main.c: check for shellPath whether to call Shell_Init() 775 7762023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 777 778 * VERSION (_MAKE_VERSION): 20231224 779 Merge with NetBSD make, pick up 780 o compat.c: check for shellPath whether to call Shell_Init() 781 tweak the unit test to detect the bug thus fixed. 782 o make.1: do not claim .SHELL is only used by jobs mode. 783 7842023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 785 786 * VERSION (_MAKE_VERSION): 20231220 787 Merge with NetBSD make, pick up 788 o str.c: speed up pattern matching in the ':M' modifier 789 o var.c: fix confusing debug logging when deleting a variable 790 use consistent debug messages style when ignoring variables 791 7922023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 793 794 * VERSION (_MAKE_VERSION): 20231210 795 Merge with NetBSD make, pick up 796 o var.c: avoid segfault on empty :C match expression 797 explain in debug log why variable assignment is ignored. 798 7992023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 800 801 * VERSION (_MAKE_VERSION): 20231208 802 Merge with NetBSD make, pick up 803 o var.c: ensure fromCmd is set correctly for variables set on 804 command line. 805 8062023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 807 808 * configure.in: disable generation of 'makefile' for 809 Darwin by default. 810 811 * boot-strap: docuement --without-makefile 812 8132023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 814 815 * VERSION (_MAKE_VERSION): 20231124 816 Merge with NetBSD make, pick up 817 o main.c: cleanup processing of -j 818 fix lint warning about strchr 819 o var.c: more accurate error message for invalid ':mtime' argument 820 cleanup :[...] modifier 821 avoid reading beyond substring when comparing 822 o unit-tests cover all cases of :mtime, test and explain exporting 823 of variables 824 o cleanup comments 825 8262023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 827 828 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 829 $FreeBSD$ tag, so avoid adding it. 830 8312023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 832 833 * VERSION (_MAKE_VERSION): 20230909 834 Merge with NetBSD make, pick up 835 o main.c: allow -j to compute a multiple of ncpu 836 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 837 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 838 _SC_NPROCESSORS_ONLN 839 .MAKE.JOBS.C will be "yes" if -jC is supported 840 8412023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 842 843 * VERSION (_MAKE_VERSION): 20230820 844 Merge with NetBSD make, pick up 845 o make.1: note that :localtime is better for %s 846 o parse.c: improve error messages for invalid input. 847 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 848 correct result, it is still better to use %s:L:localtime. 849 8502023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 851 852 * VERSION (_MAKE_VERSION): 20230818 853 Merge with NetBSD make, pick up 854 o meta.c: meta_ignore - check raw path against metaIgnorePaths 855 to potentially skip call to realpath. 856 o var.c: be strict when parsing the argument of the ':mtime' modifier 857 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 858 should be used to get an equivalent value to time(3). 859 8602023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 861 862 * VERSION (_MAKE_VERSION): 20230816 863 Merge with NetBSD make, pick up 864 o cond.c: clean up multiple-inclusion guards 865 8662023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 867 868 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 869 if configure cannot work out how to control TZ. 870 Remove varmod-localtime from BROKEN_TESTS for IRIX* 871 8722023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 873 874 * VERSION (_MAKE_VERSION): 20230723 875 876 * configure.in: fix the test for wether TZ=Europe/Berlin works. 877 Depending on the time of year, if run between 22:00 and 00:00 UTC 878 the check in configure would fail incorrectly. 879 Take the day into account as well. 880 8812023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 882 883 * VERSION (_MAKE_VERSION): 20230711 884 Merge with NetBSD make, pick up 885 o make.1: clean up wording, clarify scope of '!' in conditions 886 8872023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 888 889 * make-bootstrap.sh.in: set prefix 890 If configure is run using ksh we get unexpanded ${prefix} in 891 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 892 correct result. 893 8942023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 895 896 * VERSION (_MAKE_VERSION): 20230711 897 bump version for IRIX tweaks 898 899 * make.h: undef OP_NONE if defined 900 901 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 902 903 * configure.in: override INSTALL on IRIX 904 9052023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 906 907 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 908 9092023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 910 911 * VERSION (_MAKE_VERSION): 20230622 912 Merge with NetBSD make, pick up 913 o optimize string matching for ':M' and ':N' 914 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 915 9162023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 917 918 * VERSION (_MAKE_VERSION): 20230621 919 Merge with NetBSD make, pick up 920 o more extensive tests for include guards 921 o parse.c: if a guard is already defined a file that uses the same 922 guard is still guarded by it. 923 9242023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 925 926 * VERSION (_MAKE_VERSION): 20230620 927 Merge with NetBSD make, pick up 928 o allow guards to be targets as well as variables 929 The guard targets may include variable references like 930 __${.PARSEDIR:tA}/${.PARSEFILE}__ 931 9322023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 933 934 * VERSION (_MAKE_VERSION): 20230619 935 Merge with NetBSD make, pick up 936 o unit test for .undef of readOnly vars 937 o optimization for makefiles protected from multiple-inclusion 938 skip even opening the file after first include. 939 Initially this only handles makefiles guarded by a variable 940 target guards are next. 941 9422023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 943 944 * VERSION (_MAKE_VERSION): 20230616 945 Merge with NetBSD make, pick up 946 o var.c: do not allow delete of readOnly variable 947 9482023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 949 950 * VERSION (_MAKE_VERSION): 20230601 951 Merge with NetBSD make, pick up 952 o parse.c: .break takes no args 953 o lots of unit test updates 954 9552023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 956 957 * unit-tests/Makefile: skip tests that require /dev/filemon 958 if it does not exists - issue a warning. 959 9602023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 961 962 * VERSION (_MAKE_VERSION): 20230522 963 Fix building on darwin ppc 964 965 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 966 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 967 9682023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 969 970 * VERSION (_MAKE_VERSION): 20230515 971 972 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 973 compile filemon_ktrace.c 974 9752023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 976 977 * VERSION (_MAKE_VERSION): 20230512 978 o sys.dirdeps.mk - broke after-import target 979 9802023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 981 982 * VERSION (_MAKE_VERSION): 20230510 983 Merge with NetBSD make, pick up 984 o parse.c: don't print null filename in stack traces 985 o var.c: :mtime operate on each word in variable value 986 9872023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 988 989 * VERSION (_MAKE_VERSION): 20230509 990 Merge with NetBSD make, pick up 991 o for.c: skip syntactically wrong .for loops 992 o var.c: allow for :gmtime=${mtime} 993 add :mtime[=timestamp] where timestamp is used if stat(2) 994 fails, if :mtime=error stat(2) failure causes error. 995 9962023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 997 998 * VERSION (_MAKE_VERSION): 20230504 999 Merge with NetBSD make, pick up 1000 o compat.c: fix compile on NetBSD 7.2 1001 o make.1: fix documentation of .PREFIX to match reality and POSIX 1002 o unit-tests: improved var-scope-local 1003 10042023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1005 1006 * VERSION (_MAKE_VERSION): 20230414 1007 Merge with NetBSD make, pick up 1008 o minor cleanup 1009 10102023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 1011 1012 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 1013 unlimited results in an insane number (0x7fffffffffffffff). 1014 If BMAKE_NOFILE_MAX is defined, use that instead. 1015 10162023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 1017 1018 * VERSION (_MAKE_VERSION): 20230321 1019 Merge with NetBSD make, pick up 1020 * make.1: document seemingly unexplained Error code 6. 1021 10222023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1023 1024 * VERSION (_MAKE_VERSION): 20230317 1025 Merge with NetBSD make, pick up 1026 o compat.c: CompatDeleteTarget skip .PHONY targets to be 1027 consistent with JobDeleteTarget. 1028 o job.c: fix memory leak in handling sysv :from=to modifiers 1029 10302023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 1031 1032 * VERSION (_MAKE_VERSION): 20230303 1033 Merge with NetBSD make, pick up 1034 o several updated unit-tests 1035 10362023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 1037 1038 * VERSION (_MAKE_VERSION): 20230222 1039 Merge with NetBSD make, pick up 1040 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 1041 10422023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1043 1044 * VERSION (_MAKE_VERSION): 20230218 1045 Merge with NetBSD make, pick up 1046 o var.c: fix parsing of unevaluated subexpressions with 1047 unbalanced '{}' 1048 10492023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 1050 1051 * VERSION (_MAKE_VERSION): 20230215 1052 Merge with NetBSD make, pick up 1053 o inline macros for some variable names 1054 o cond.c: reduce complexity of evaluating expressions 1055 10562023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 1057 1058 * VERSION (_MAKE_VERSION): 20230208 1059 Merge with NetBSD make, pick up 1060 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 1061 when it has been used within conditional expressions 1062 10632023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 1064 1065 * VERSION (_MAKE_VERSION): 20230127 1066 1067 * install-sh: if making directories ensure umask is set 1068 to match mode. 1069 1070 * Makefile: use DIRMODE for directories and 1071 NONBINMODE for man pages and mk files 1072 10732023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1074 1075 * VERSION (_MAKE_VERSION): 20230126 1076 Merge with NetBSD make, pick up 1077 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 1078 should be read-only. 1079 10802023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1081 1082 * VERSION (_MAKE_VERSION): 20230123 1083 Merge with NetBSD make, pick up 1084 o .[NO]READONLY: for control of read-only variables 1085 o .SYSPATH: for controlling the path searched for makefiles 1086 10872023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1088 1089 * VERSION (_MAKE_VERSION): 20230120 1090 Merge with NetBSD make, pick up 1091 o allow for white-space between command specifiers @+- 1092 o add more details to warning 'Extra targets ignored' 1093 10942023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1095 1096 * machine.sh: leverage os.sh rather than duplicate 1097 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 1098 for that purpose for the past decade or so. 1099 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 1100 11012023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 1102 1103 * VERSION (_MAKE_VERSION): 20230101 1104 Merge with NetBSD make, pick up 1105 o cleanup comments, inline some LazyBuf_ methods 1106 o unit-tests/ add/improve comments in tests 1107 o make.1: sync list of built-in variables with reality 1108 sort list of built-in variables 1109 reduce indentation of the long list of variable names 1110 use consistent markup for boolean flags 1111 move description of .MAKE.MODE below the .MAKE.META block 1112 clarify in which case an expression may omit braces 1113 11142022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 1115 1116 * VERSION (_MAKE_VERSION): 20221024 1117 Merge with NetBSD make, pick up 1118 o change return type of unlink_file back to int 1119 11202022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 1121 1122 * Makefile: Darwin and Linux can handle MANTARGET=man 1123 11242022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 1125 1126 * VERSION (_MAKE_VERSION): 20220928 1127 Merge with NetBSD make, pick up 1128 o fix more ignored returns from snprintf 1129 o compile with higher warnings 1130 11312022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1132 1133 * main.c meta.c: do not ignore return from snprintf 1134 1135 * meta.c strlcpy.c: we need prototype for strlcpy 1136 1137 * sigcompat.c: fix unused function warnings 1138 11392022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 1140 1141 * VERSION (_MAKE_VERSION): 20220924 1142 Merge with NetBSD make, pick up 1143 o fix bug in .break reset of conditional depth 1144 o overhaul and simplify tracking of conditional depth 1145 11462022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 1147 1148 * VERSION (_MAKE_VERSION): 20220912 1149 Merge with NetBSD make, pick up 1150 o man page updates 1151 11522022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 1153 1154 * VERSION (_MAKE_VERSION): 20220909 1155 Merge with NetBSD make, pick up 1156 o update unit-tests to handle deprecation of egrep 1157 o cond.c: add more details to error message for numeric comparison 1158 1159 * configure.in: allow for deprecation of egrep 1160 1161 * Makefile: Linux can handle MANTARGET=man 1162 11632022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 1164 1165 * VERSION (_MAKE_VERSION): 20220903 1166 Merge with NetBSD make, pick up 1167 o job.c: fix handling of null bytes in output 1168 11692022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1170 1171 * VERSION (_MAKE_VERSION): 20220902 1172 Merge with NetBSD make, pick up 1173 o Allow .break to terminate a .for loop early 1174 11752022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1176 1177 * VERSION (_MAKE_VERSION): 20220901 1178 Merge with NetBSD make, pick up 1179 o var.c: fix out-of-bounds errors when parsing 1180 11812022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1182 1183 * VERSION (_MAKE_VERSION): 20220824 1184 Merge with NetBSD make, pick up 1185 o var.c: revert change to modifier parsing that breaks 1186 shell variable references within ':@var@body@' 1187 o adjust unit-tests 1188 11892022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 1190 1191 * VERSION (_MAKE_VERSION): 20220818 1192 Merge with NetBSD make, pick up 1193 o fix exit status for '-q' (since 1994) 1194 11952022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1196 1197 * VERSION (_MAKE_VERSION): 20220808 1198 Merge with NetBSD make, pick up 1199 o var.c: fix parsing of modifiers containing unbalanced subexpressions 1200 extract parsing of ':D' and ':U' modifiers into separate function 1201 12022022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1203 1204 * VERSION (_MAKE_VERSION): 20220726 1205 1206 * Auto-create objdir for bmake/unit-tests if appropriate 1207 12082022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 1209 1210 * VERSION (_MAKE_VERSION): 20220724 1211 Merge with NetBSD make, pick up 1212 o make.1: describe variable assignment and evaluation more precisely 1213 o parse.c: fix out-of-bounds read when parsing an invalid line 1214 o var.c: simplify return type of IsShortVarnameValid 1215 12162022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 1217 1218 * VERSION (_MAKE_VERSION): 20220612 1219 Merge with NetBSD make, pick up 1220 o allow to randomize build order of targets 1221 .MAKE.MODE += randomize-targets can help uncover dependency bugs 1222 within a makefile. 1223 o compat.c: rename Compat_Run to Compat_MakeAll 1224 o make.c: inline MakeBuildParent 1225 inline make_abort, improve error details 1226 o parse.c: reorganize Parse_Error 1227 fix memory leak in wildcard targets and sources 1228 separate cases in HandleDependencyTargetMundane 1229 extract HandleSingleDependencyTargetMundane 1230 rename loadfile to LoadFile 1231 split IncludeFile into separate functions 1232 condense code for searching a file in the paths 1233 fix off-by-one error in buffer for .WAIT nodes 1234 o str.c: condense Str_Match 1235 make code for string matching syntactically more consistent 1236 12372022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1238 1239 * VERSION (_MAKE_VERSION): 20220418 1240 Merge with NetBSD make, pick up 1241 o ignore '.POSIX:' if not in first non-comment line 1242 of Makefile as specified by POSIX. 1243 add unit-tests for above. 1244 o meta.c: make it easier to find usage of identifiers 1245 o targ.c: add .USEBEFORE to Targ_PrintType 1246 12472022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1248 1249 * VERSION (_MAKE_VERSION): 20220414 1250 1251 * unit-tests/Makefile: simplify checks for shells with 1252 BROKEN_TESTS, this helps with other Linux distros that 1253 use dash. 1254 12552022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1256 1257 * VERSION (_MAKE_VERSION): 20220330 1258 Merge with NetBSD make, pick up 1259 o var.c: fix spacing, and a typo in a test 1260 12612022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 1262 1263 * VERSION (_MAKE_VERSION): 20220326 1264 Merge with NetBSD make, pick up 1265 o parse.c: try to include 'posix.mk' the first time 1266 .POSIX: is encountered, to allow for beter POSIX compliance. 1267 o var.c: make debug logs more readable 1268 prefer 'long long' over 'long' on 32-bit C99 platforms 1269 fix crash on .undef of an environment variable 1270 12712022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 1272 1273 * VERSION (_MAKE_VERSION): 20220303 1274 Merge with NetBSD make, pick up 1275 o tell meta mode unit tests not to expect filemon 1276 o cond.c: make debug logging for comparisons less technical 1277 o lst.c: fix mem leak in Lst_Remove 1278 o str.c: make code for string matching syntactically more consistent 1279 o var.c: simplify ParseModifier_Match 1280 12812022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 1282 1283 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 1284 1285 * VERSION (_MAKE_VERSION): 20220214 1286 Merge with NetBSD make, pick up 1287 o cond.c: simplify control flow in CondParser_Comparison 1288 o job.c: fix echoing of command with '-' in silent target in jobs mode 1289 o main.c: prefix the warning about read-only .OBJDIR with a colon 1290 o parse.c: remove redundant conditions 1291 o var.c: simplify control flow in ModifyWord_SysVSubst 1292 12932022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 1294 1295 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 1296 is any chance we have dash as .SHELL 1297 1298 * VERSION (_MAKE_VERSION): 20220208 1299 Merge with NetBSD make, pick up 1300 o more unit tests 1301 o meta.c: use a variable to hold command line to be filtered 1302 to avoid any side effects from content of command line. 1303 13042022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 1305 1306 * VERSION (_MAKE_VERSION): 20220204 1307 Merge with NetBSD make, pick up 1308 o use unsigned consistently for line numbers, avoid the need for %z 1309 o parse.c: do not step off end of input in Parse_IsVar 1310 when checking for target local variable assignments 1311 13122022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 1313 1314 * VERSION (_MAKE_VERSION): 20220202 1315 Merge with NetBSD make, pick up 1316 o remove redundant declaration of HashIter_Init 1317 o make DEBUG0 simpler 1318 13192022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1320 1321 * cast gn->lineno to avoid %z 1322 1323 * VERSION (_MAKE_VERSION): 20220130 1324 Merge with NetBSD make, pick up 1325 o more unit tests 1326 o make GNode lineno unsigned to please lint 1327 o print location of recursive variable references in commands 1328 o print "stack trace" (makefile includes) on fatal errors 1329 o make.1: refine documentation for target local assignments 1330 13312022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 1332 1333 * VERSION (_MAKE_VERSION): 20220128 1334 Merge with NetBSD make, pick up 1335 o inline functions called only once 1336 o for.c: clean up AddEscape for building the body of a .for loop 1337 o hash.c: merge duplicate code for finding an entry in a hash table 1338 replace HashEntry_KeyEquals with strncmp 1339 o make.1: document quirks of target local variable assignments. 1340 o parse.c: cleanup white-space 1341 13422022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1343 1344 * VERSION (_MAKE_VERSION): 20220126 1345 Merge with NetBSD make, pick up 1346 o allow setting target local variables 1347 o more unit tests 1348 o add missing newline after "cannot continue" message 1349 o meta.c: clean up eat_dots 1350 o parse.c: fix filename in warning about duplicate script 1351 o var.c: when expanding nested variables, check simple things first 1352 13532022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 1354 1355 * VERSION (_MAKE_VERSION): 20220116 1356 Merge with NetBSD make, pick up 1357 o fix for unit-tests/varname-makeflags on non-BSD systems 1358 o use Var_Exists rather than Var_Value where appropriate 1359 o remove unnecessary functions for expanding variable names 1360 o cond.c: inline EvalBare 1361 o main.c: lint cleanup 1362 o parse.c: condense code in Parse_IsVar 1363 use islower for parsing directives (none have upper case) 1364 13652022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1366 1367 * VERSION (_MAKE_VERSION): 20220112 1368 Merge with NetBSD make, pick up 1369 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 1370 comparion, rarely needed but useful when it is. 1371 13722022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1373 1374 * VERSION (_MAKE_VERSION): 20220110 1375 Merge with NetBSD make, pick up 1376 o inline Buf_Clear 1377 o remove redundant braces 1378 o rename and inline Targ_Precious 1379 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 1380 o for.c: clean up handling of .for loops 1381 fix reported line numbers of continuation lines 1382 add details about .for loop variables to stack traces 1383 o job.c: reduce code for initializing error handling in shell 1384 o main.c: in Cmd_Exec, return error message instead of format string 1385 have as few statements as possible between va_start and va_end 1386 add debug logging for capturing the output of external commands 1387 o make.c: use consistent variable names for varargs 1388 o make_malloc.c: remove duplicate code from bmake_strdup 1389 o parse.c: add missing printflike annotations 1390 remove redundant lines from stack traces 1391 fix stack traces in -dp mode 1392 reduce confusing code in ParseForLoop 1393 fix line number in debug log after returning from a file 1394 rename IFile and its fields to match their actual content 1395 clean up ParseDependencySources 1396 o var.c: shorten ApplyModifier_Assign 1397 rename is_shell_metachar, fix character conversion warning 1398 merge calls to ApplyModifier_Time 1399 merge duplicate code for modifiers 'gmtime' and 'localtime' 1400 14012022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 1402 1403 * parse.c: loadfile restore extra byte in buffer. 1404 14052022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1406 1407 * VERSION (_MAKE_VERSION): 20220101 1408 Merge with NetBSD make, pick up 1409 o more unit-tests 1410 o remove unnecessary words from command line options in CmdOpts 1411 o rename eunlink to unlink_file 1412 o cond.c: make ParseWord in condition parser simpler 1413 internally return false for irrelevant leaves in conditions 1414 replace table for function lookup in conditions with simple code 1415 merge duplicate types CondEvalResult and CondResult 1416 o for.c: clean up handling of .for loops and .include directives 1417 o main.c: constify cached_realpath 1418 clean up Cmd_Exec 1419 o parse.c: sync API documentation 1420 fix error message when reading more than 1 GB from stdin 1421 clean up parsing of makefiles 1422 fix line number in error message about open conditionals 1423 unexport types VarAssignOp and VarAssign 1424 clean up function names 1425 remove redundant parameters in dependency parsing functions 1426 reduce scope of the list of wildcard target names 1427 extract OP_NOTARGET into separate function 1428 clean up variable names for parsing dependency lines 1429 make debug logging a bit more human-friendly 1430 o var.c: condense code in ApplyModifier_Assign 1431 14322021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1433 1434 * VERSION (_MAKE_VERSION): 20211221 1435 Merge with NetBSD make, pick up 1436 o more unit-tests 1437 o style cleanup 1438 o in CLEANUP mode, free interned strings at the very end 1439 o fix memory leak for filenames in .for loops 1440 o buf.c: avoid memory leak 1441 o cond.c: condense CondParser_ComparisonOp 1442 o hash.c: change return type of HashTable_Set to void 1443 o job.c: change return type of Compat_RunCommand from int to bool 1444 o main.c: remove bmake_free 1445 o parse.c: condense repetetive code in ParseDirective 1446 remove dead code for handling traditional include directives 1447 clean up parsing of variable assignments 1448 remove unreachable code for parsing the dependency operator 1449 clean up loading of files 1450 fix memory leak in IncludeFile 1451 o var.c: fix memory leak when parsing a variable name 1452 fix memory leak from ${.SUFFIXES} 1453 reduce memory allocation in modifier ':?' and ':C' 1454 condense RegexReplace for the modifier ':C' and avoid strlen 1455 merge duplicate code for memory handling in Var_Parse 1456 distinguish between short-lived and environment variables 1457 rename VarFreeEnv to VarFreeShortLived 1458 14592021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 1460 1461 * cond.c: fix mem leak in CondParser_Leaf 1462 14632021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1464 1465 * VERSION (_MAKE_VERSION): 20211212 1466 Merge with NetBSD make, pick up 1467 o rename Parse_SetInput to Parse_PushInput 1468 o remove remove period from end of error messages and warnings 1469 to be more consistent 1470 o arch.c: use simpler memory management for parsing archive members 1471 o cond.c: rework and reduce recursion 1472 o for.c: rename some functions to better reflect purpose 1473 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 1474 o var.c: in parse errors, mark whitespace more clearly 1475 inline ParseEmptyArg into CondParser_FuncCallEmpty 1476 minimize calls to LazyBuf_Get in ParseVarnameLong 1477 treat .SUFFIXES as a read-only variable 1478 14792021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 1480 1481 * VERSION (_MAKE_VERSION): 20211207 1482 Merge with NetBSD make, pick up 1483 o inline HashIter_Init 1484 o parse.c: inline common subexpression in ParseRawLine 1485 o var.c: merge branches for modifiers ':D' and ':U' 1486 extract common code into Expr_Words 1487 extract common code into Expr_Str 1488 move low-level implementation details out of Var_Parse 1489 14902021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1491 1492 * VERSION (_MAKE_VERSION): 20211206 1493 Merge with NetBSD make, pick up 1494 o add unit-tests/varmod-loop-delete 1495 o for.c: inline Str_Words - reduce memory allocation 1496 o parse.c: do not try to expand fixed variable names 1497 only allocate the name of an included file if necessary 1498 clean up ParseInclude 1499 o var.c: fix use-after-free in modifier ':@' 1500 save a memory allocation in each modifier ':O' and ':u' 1501 save a memory allocation in the modifier ':[...]' 1502 in UnexportVars, replace Str_Words with Substring_Words to 1503 reduce allocations and copying. 1504 15052021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 1506 1507 * VERSION (_MAKE_VERSION): 20211204 1508 Merge with NetBSD make, pick up 1509 o flesh out a number of tests 1510 o replace enums with bitfields, this simplifies a lot of code. 1511 o var.c: refactor ParseModifierPartSubst 1512 15132021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 1514 1515 * VERSION (_MAKE_VERSION): 20211024 1516 Merge with NetBSD make, pick up 1517 o Punt on write errors - ENOSPC etc. 1518 15192021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1520 1521 * configure.in: use_defshell, set both DEFSHELL_INDEX 1522 and defshell_path if appropriate. 1523 This makes it easier to use say the KSH specification with 1524 and alternate path for the shell. 1525 1526 * configure.in compat.c: for SCO we need to force UseShell 1527 1528 * configure.in: SCO /bin/sh is not usable, provide a list of 1529 alternatives for use as .SHELL. 1530 We still have to mark some tests as broken, plus more if we end up 1531 with ksh as .SHELL. 1532 Issue a warning about skipped tests. 1533 1534 * boot-strap: leave TOOL_DIFF to configure 1535 1536 * configure.in: on SCO native cc is not usable, 1537 gcc is to be found in /usr/gnu/bin 1538 and while ancient is at least able to compile bmake. 1539 Thus we add /usr/gnu/bin to PATH if it exists, and later 1540 check if $CC would have been found via $PATH. 1541 If not we set CC to the full path of $CC. 1542 Also gnu diff is known to support -u, so if it exists use it. 1543 1544 * configure.in: move getopt to AC_REPLACE_FUNCS 1545 also add AC_C_INLINE - in an attempt to compile using 1546 native cc on SCO. 1547 1548 * configure.in: check for stresep as well as strsep, since we 1549 define the later to the former if necessary, and if we have to 1550 provide stresep we also need to provide a prototype. 1551 1552 * configure.in: we no longer need to worry about 1553 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1554 1555 * make.h: make sure we have __RCSID 1556 1557 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1558 can control it. 1559 15602021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1561 1562 * VERSION: 20211020 1563 Merge with NetBSD make, pick up 1564 o confirm sync of unit-tests 1565 15662021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1567 1568 * configure.in: check if timezone Europe/Berlin is supported 1569 if not try UTC-1 1570 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1571 symlink unit-tests -> ../unit-tests/obj so that 1572 unit-tests/Makefile.config is put in the right place. 1573 * refine filtering of .OBJDIR in unit-tests 1574 15752021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1576 1577 * Fix unit-tests on Minix 3.2.0 1578 o job.c: do not punt if read of token pipe fails for EAGAIN. 1579 On Minix at least, we are not ready to read the childExitJob pipe 1580 when poll says we are. 1581 There should actually be no reason for this pipe to be 1582 non-blocking, but while that works fine on {Net,Free}BSD it 1583 breaks another test case on Minix. 1584 o unit-tests/Makefile: deal with variants of error messages 1585 and use of obj as .OBJDIR 1586 15872021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1588 1589 * configure.in: add sigaction to AC_REPLACE_FUNCS 1590 we also need to check for sigaddset etc just for the benefit of 1591 sigact.c 1592 1593 * Add sigact.c as sigaction.c so this "just works". 1594 This should have been done back when bmake_signal started using 1595 sigaction (I only just noticed that sigact.c wasn't here ;-) 1596 Note: I no longer have access to any system where this would matter. 1597 15982021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1599 1600 * VERSION (_MAKE_VERSION): 20211011 1601 1602 * Makefile: cleanup a little 1603 1604 * configure.in: check for sigsetmask 1605 16062021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1607 1608 * VERSION (_MAKE_VERSION): 20211001 1609 Merge with NetBSD make, pick up 1610 o reduce locations reducing text size 1611 o remove unnecessary const 1612 o cond.c: fix lint warning on i386 1613 do not allow unquoted 'left == right' after modifier ':?' 1614 o hash.c: fix build for DEBUG_HASH_LOOKUP 1615 o var.c: fix memory leak in error case of the ':?' modifier 1616 16172021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1618 1619 * VERSION (_MAKE_VERSION): 20210911 1620 Merge with NetBSD make, pick up 1621 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1622 16232021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1624 1625 * VERSION (_MAKE_VERSION): 20210906 1626 Merge with NetBSD make, pick up 1627 o more unit tests 1628 o lint cleanup 1629 o rename some functions to better fit purpose 1630 o for.c: cleanup - remove unnecessary optimization 1631 fix embedded newlines 1632 o parse.c: correct case for CVS/RCS 1633 16342021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1635 1636 * VERSION (_MAKE_VERSION): 20210808 1637 Merge with NetBSD make, pick up 1638 o var.c: remove redundant initialization in ApplyModifier_Order 1639 1640 * mk/options.mk: issue warning for incorrect usage 1641 16422021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1643 1644 * var.c: use long for :On if we don't have a 64bit int type 1645 1646 * VERSION (_MAKE_VERSION): 20210803 1647 Merge with NetBSD make, pick up 1648 o rework varmod-order tests to avoid qsort instability 1649 o make.1: clarify :On entry 1650 16512021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1652 1653 * VERSION (_MAKE_VERSION): 20210731 1654 Merge with NetBSD make, pick up 1655 o fix some lint issues 1656 o more unit tests 1657 o var.c: rework of ApplyModifier_Order 1658 16592021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1660 1661 * util.c: add strto*l if HAVE_STRTO*L not defined 1662 1663 * VERSION (_MAKE_VERSION): 20210730 1664 Merge with NetBSD make, pick up 1665 o var.c: add :On and :Orn for numeric sort 1666 disabled if no 64bit type available. 1667 o _strtol.h: to implement strto*l functions 1668 16692021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1670 1671 * VERSION (_MAKE_VERSION): 20210704 1672 Merge with NetBSD make, pick up 1673 o unit-tests: fix some tests to be more portable 1674 - job-output-null not all shells do the same number of write calls 1675 - objdir-writable if TMPDIR is set; /tmp may not be usable 1676 16772021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1678 1679 * VERSION (_MAKE_VERSION): 20210701 1680 Merge with NetBSD make, pick up 1681 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1682 some tests just cannot work in some environments. 1683 o buf.c: simpler upper bound for length in Buf_AddInt 1684 o cond.c: fix grammar in error message for malformed conditional 1685 o for.c: prevent newline injection (from ${.newline}) in .for loops 1686 o var.c: use more practical data type in RegexReplace 1687 (avoid need for %zu) 1688 extract RegexReplace from ModifyWord_SubstRegex 1689 16902021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1691 1692 * VERSION (_MAKE_VERSION): 20210621 1693 Merge with NetBSD make, pick up 1694 o var.c: only report error for unmatched regex subexpression 1695 when linting (-dL) since we cannot tell when an unmatched 1696 subexpression is an expected result. 1697 o move unmatched regex subexpression tests to 1698 varmod-subst-regex.mk and enable strict (lint) mode 1699 17002021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1701 1702 * VERSION (_MAKE_VERSION): 20210616 1703 Merge with NetBSD make, pick up 1704 o more unit tests 1705 o cond.c: rename If_Eval to EvalBare 1706 improve function names for parsing conditions 1707 o job.c: fix error handling of targets that cannot be made 1708 o var.c: uncompress code in ApplyModifier_Unique 1709 17102021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1711 1712 * VERSION (_MAKE_VERSION): 20210518 1713 Merge with NetBSD make, pick up 1714 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1715 o job.c: Print -de error information when running multiple jobs 1716 17172021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1718 1719 * VERSION (_MAKE_VERSION): 20210420 1720 Merge with NetBSD make, pick up 1721 o use C99 bool type 1722 o convert VarEvalFlags back into an enum 1723 o cond.c: do not complain when skipping the condition 'no >= 10' 1724 o hash.c: avoid allocating memory for simple variable names 1725 o job.c: use distinct wording for writing to the shell commands file 1726 remove type name for the abort status in job handling 1727 rename PrintOutput to PrintFilteredOutput to avoid confusion 1728 o main.c: avoid double slash in name of temporary directory 1729 o var.c: use straight quotes for error 'Bad conditional expression' 1730 reduce memory allocations in the modifiers ':D' and ':U' 1731 rename members of ModifyWord_LoopArgs 1732 clean up pattern flags for the modifiers ':S' and ':C' 1733 reduce memory allocation and strlen calls in modifier ':from=to' 1734 in the ':Q' modifier, only allocate memory if necessary 1735 improve performance for LazyBuf 1736 remove redundant parameter from ParseVarnameLong 1737 migrate ParseModifierPart to use Substring 1738 avoid unnecessary calls to strlen when evaluating modifiers 1739 migrate ModifyWord functions to use Substring 1740 migrate handling of the modifier ':S,from,to,' to Substring 1741 reduce debug logging and memory allocation for ${:U...} 1742 reduce verbosity of the -dv debug logging for standard cases 1743 clean up debug logging for ':M' and ':N' 1744 disallow '$' in the variable name of the modifier ':@' 1745 simplify access to the name of an expression during evaluation 1746 17472021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1748 1749 * VERSION (_MAKE_VERSION): 20210330 1750 Merge with NetBSD make, pick up 1751 o replace enum bit-field with struct bit-field for VarEvalFlags 1752 o rename VARE_NONE to VARE_PARSE_ONLY 1753 o var.c: rename ApplyModifiersState to ModChain 1754 fix double varname expansion in the variable modifier '::=' 1755 change debug log for variable evaluation flags to lowercase 1756 17572021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1758 1759 * VERSION (_MAKE_VERSION): 20210314 1760 Merge with NetBSD make, pick up 1761 o var.c: avoid evaluating many modifiers in parse only mode 1762 in strict mode (-dL) many variable references are parsed twice, 1763 the first time just to report parse errors early, so we want to 1764 avoid side effects and wasted effort to the extent possible. 1765 17662021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1767 1768 * VERSION (_MAKE_VERSION): 20210226 1769 Merge with NetBSD make, pick up 1770 o remove freestanding freeIt variables 1771 link via FStr 1772 o var.c: restructure code in ParseVarname to target human readers 1773 improve error message for; 1774 bad modifier in variable expression 1775 unclosed modifier 1776 unknown modifier 1777 remove redundant parameter of ApplySingleModifier 1778 explain non-obvious code around indirect variable modifiers 1779 quote ':S' in error message about missing delimiter 1780 extract ParseModifier_Match into separate function 1781 add context information to error message about ':range' modifier 1782 add quotes around variable name in an error message 1783 reorder code in ModifyWords 1784 use more common parameter order for VarSelectWords 1785 make ModifyWord_Subst a little easier to understand 1786 do not expand variable name from the command line twice 1787 extract ExistsInCmdline from Var_SetWithFlags 1788 save a hash map lookup when defining a cmdline variable 1789 clean up VarAdd, Var_Delete, Var_ReexportVars 1790 use bit-shift expressions for VarFlags constants 1791 rename constants for VarFlags 1792 rename ExprDefined constants for debug logging 1793 rename ExprStatus to ExprDefined 1794 split parameters for evaluating variable expressions 1795 reduce redundant code around ModifyWords 1796 print error about failed shell command before overwriting variable 1797 clean up ValidShortVarname, ParseVarnameShort 1798 rename VarExprStatus to ExprStatus 1799 add functions for assigning the value of an expression 1800 rename ApplyModifiersState_Define to Expr_Define 1801 condense the code for parsing :S and :C modifiers 1802 18032021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1804 1805 * VERSION (_MAKE_VERSION): 20210206 1806 Merge with NetBSD make, pick up 1807 o unit-tests: use private TMPDIR to avoid errors from other users 1808 18092021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1810 1811 * VERSION (_MAKE_VERSION): 20210205 1812 Merge with NetBSD make, pick up 1813 o avoid strdup in mkTempFile 1814 o always use vfork 1815 o rename context and ctxt to scope 1816 o rename some VAR constants to SCOPE 1817 o Var_ functions, move the scope to the front 1818 o use shortcut functions Global_Set and Global_Append 1819 o add shortcut Global_Delete for deleting a global variable 1820 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1821 o compat.c: when exiting due to an error, print graph information 1822 o enum.c: remove overengineered Enum_ValueToString 1823 o make.c: remove unused INTERNAL flag 1824 remove unused return type of MakeBuildParent 1825 o parse.c: replace parse error "Need an operator" with better message 1826 o var.c: improve documentation about variable scopes 1827 rename Var_ValueDirect to GNode_ValueDirect 1828 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1829 merge SetVar into Var_SetWithFlags 1830 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1831 split Var_Append into Var_Append and Var_AppendExpand 1832 replace enum bit-set with bit-field 1833 o unit-tests/var-op-shell: use kill rather than kill -14 1834 which broke on darwin with recent update. 1835 18362021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1837 1838 * configure.in: check for sig_atomic_t and define it as 'int' 1839 if missing. 1840 1841 * VERSION (_MAKE_VERSION): 20210201 1842 Merge with NetBSD make, pick up 1843 o use sig_atomic_t for caught_sigchld 1844 18452021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1846 1847 * VERSION (_MAKE_VERSION): 20210130 1848 Merge with NetBSD make, pick up 1849 o more unit tests 1850 o convert SearchPath to struct 1851 o split Buf_Destroy into Buf_Done and Buf_DoneData 1852 o for.c: split For_Eval into separate functions 1853 rename struct For to struct ForLoop 1854 o job.c: do not create empty shell files in jobs mode 1855 rename JobOpenTmpFile to JobWriteShellCommands 1856 reduce unnecessary calls to waitpid 1857 o parse.c: in -dp mode, print stack trace with each diagnostic 1858 18592021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1860 1861 * VERSION (_MAKE_VERSION): 20210123 1862 Merge with NetBSD make, pick up 1863 o rename Dir_Expand to SearchPath_Expand 1864 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1865 o cond.c: fix debug output for comparison operators in conditionals 1866 o dir.c: split Dir_FindFile into separate functions 1867 18682021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1869 1870 * VERSION (_MAKE_VERSION): 20210120 1871 Merge with NetBSD make, pick up 1872 o fix some more lint nits 1873 o refine some unit tests for portability 1874 o cond.c: rework parsing 1875 18762021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1877 1878 * VERSION (_MAKE_VERSION): 20210110 1879 Merge with NetBSD make, pick up 1880 o fix lint warnings 1881 o consistently use boolean expressions in conditions 1882 18832021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1884 1885 * VERSION (_MAKE_VERSION): 20210108 1886 Merge with NetBSD make, pick up 1887 o job.c: back to polling token pipe if we want a token 1888 o main.c: always print 'stopped in' on first call 1889 The execption is if we bail because of an abort token 1890 in which case just exit 6. 1891 18922021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1893 1894 * VERSION (_MAKE_VERSION): 20210101 1895 Merge with NetBSD make, pick up 1896 o Happy New Year! 1897 o rename CmdOpts.lint to strict 1898 o exit 2 on technical errors 1899 o replace pointers in controlling conditions with booleans 1900 o replace global preserveUndefined with VARE_KEEP_UNDEF 1901 o compat.c: re-export variables from the actual make process 1902 if using vfork this is the effect anyway 1903 o cond.c: clean up VarParseResult constants 1904 o for.c: fix undefined behavior in SubstVarLong 1905 make control flow in SubstVarLong of .for loops more obvious 1906 clean up SubstVarShort in .for loops 1907 extract ForSubstBody from ForReadMore 1908 clean up ForReadMore 1909 simplify termination condition for .for loop 1910 add error handling for .for loop items 1911 job.c: re-export variables from the actual make process 1912 parse.c: remove mmap for loading files, only allow files < 1 GiB 1913 fix edge case in := with undefined in variable name 1914 skip variable expansion in ParseDependencyTargetWord 1915 var.c: split ExportVar into separate functions 1916 clean up code in extracted ExportVar functions 1917 remove dead code from ApplyModifiersIndirect 1918 split Var_Subst into easily understandable functions 1919 clean up VarParseResult constants 1920 19212020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1922 1923 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1924 19252020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1926 1927 * VERSION (_MAKE_VERSION): 20201222 1928 Merge with NetBSD make, pick up 1929 o make DEBUG macro return boolean 1930 o parse.c: fix assertion failure for files without trailing newline 1931 o var.c: allow .undef to undefine multiple variables at once 1932 remove excess newline from parse errors 1933 19342020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1935 1936 * VERSION (_MAKE_VERSION): 20201221 1937 Merge with NetBSD make, pick up 1938 o some unit-test updates 1939 19402020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1941 1942 * VERSION (_MAKE_VERSION): 20201220 1943 Merge with NetBSD make, pick up 1944 o more unit tests 1945 o return FStr from Var_Parse and Var_Value 1946 o spell nonexistent consistently 1947 o add str_basename to reduce duplicate code 1948 o compat.c: fix .ERROR_TARGET in compat -k mode 1949 extract InitSignals from Compat_Run 1950 extract UseShell from Compat_RunCommand 1951 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1952 o for.c: rename ForIterate to ForReadMore 1953 o hash.c: clean up hash function for HashTable 1954 o lst.c: rename Vector.priv_cap to cap 1955 o main.c: remove constant parameter from MakeMode 1956 o make.c: use symbolic time for 0 in Make_Recheck 1957 extract MakeChildren from MakeStartJobs 1958 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1959 fix error message for .info/.warning/.error without argument 1960 extract Var_Undef from ParseDirective 1961 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1962 rename mode constants for ParseGetLine to be more expressive 1963 reduce debugging details in Parse_SetInput 1964 fix line numbers in .for loops 1965 split ParseGetLine into separate functions 1966 fix garbled output for failed shell command 1967 var.c: remove redundant assignment in ApplyModifier_SysV 1968 error out on unknown variable modifiers at parse time 1969 remove wrong error message for indirect modifier in lint mode 1970 extract ApplySingleModifier from ApplyModifiers 1971 use FStr for memory management in Var_SetWithFlags 1972 extract SetVar from Var_SetWithFlags 1973 use FStr in VarNew 1974 extract string functions from ApplyModifier_To 1975 error out if .undef has not exactly 1 argument 1976 extract Var_DeleteVar from Var_Delete 1977 extract Var_Undef from ParseDirective 1978 clean up memory management for expanding variable expressions 1979 19802020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1981 1982 * avoid %zu 1983 1984 * lst.c: avoid anonymous union 1985 1986 * VERSION (_MAKE_VERSION): 20201212 1987 Merge with NetBSD make, pick up 1988 o more unit tests 1989 o inline Targ_Ignore and Targ_Silent 1990 o split JobFlags into separate fields 1991 o remove const from function parameters (left overs from refactoring) 1992 o eliminate boolean argument of Var_Export 1993 o make API of Buf_Init simpler 1994 o rename ParseRunOptions to ParseCommandFlags 1995 o replace *line with line[0] 1996 o compat.c: fix wrong exit status for multiple failed main targets 1997 refactor Compat_Run to show the error condition more clearly 1998 don't make .END if the main targets already failed (-k mode) 1999 fix exit status in -k mode if a dependency fails 2000 o for.c: clean up Buf_AddEscaped in .for loops 2001 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 2002 make Job_Touch simpler 2003 refactor JobFinish 2004 rename Shell.exitFlag to errFlag 2005 move Job.xtraced to ShellWriter 2006 make printing of shell commands independent from the job 2007 rename shell flags in struct Shell 2008 extract JobOpenTmpFile from JobStart 2009 rename RunFlags to CommandFlags 2010 split various Job.* into separate fields 2011 rename commandShell to shell 2012 extract InitShellNameAndPath from Shell_Init 2013 replace signal handling macros with local functions 2014 replace macro MESSAGE with local function 2015 parse.c: error out on null bytes in makefiles 2016 error out on misspelled directives 2017 rename IFile.nextbuf to readMore 2018 fix undefined behavior in ParseEOF 2019 str.c: remove redundant call to strlen in Str_Words 2020 var.c: error out on misspelled .unexport-env 2021 error out on misspelled .export directives 2022 extract ExportVars from Var_Export 2023 extract ExportVarsExpand from Var_Export 2024 eliminate boolean argument of Var_Export 2025 fix undefined behavior when exporting ${:U } 2026 rename Var_ExportVars to Var_ReexportVars 2027 rename Var_Export1 to ExportVar 2028 20292020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 2030 2031 * VERSION (_MAKE_VERSION): 20201206 2032 Merge with NetBSD make, pick up 2033 o more unit tests 2034 o inline macros for debug logging 2035 o use consistent variable names for list nodes 2036 o define constants for enum zero-values 2037 o dir.c: use fixed format for debug output of the directory cache 2038 remove Dir_InitDir 2039 o lst.c: inline Lst_Enqueue, Vector_Done 2040 o meta.c: remove unused parameter from meta_needed 2041 o parse.c: rename parse functions 2042 o suff.c: extract ExpandChildrenRegular from ExpandChildren 2043 o targ.c: don't concatenate identifiers in Targ_PrintType 2044 o var.c: remove comment decoration 2045 extract UnexportVars from Var_UnExport 2046 extract GetVarnamesToUnexport from Var_UnExport 2047 extract UnexportEnv from Var_UnExport 2048 extract UnexportVar from Var_UnExport 2049 move CleanEnv to UnexportVars 2050 replace pointer comparisons with enum 2051 add FStr to var.c to make memory handling simpler 2052 use FStr in Var_UnExport 2053 move type definitions in var.c to the top 2054 extract FreeEnvVar from Var_Parse 2055 extract ShuffleStrings from ApplyModifier_Order 2056 20572020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 2058 2059 * VERSION (_MAKE_VERSION): 20201130 2060 Merge with NetBSD make, pick up 2061 o add unit tests for META MODE 2062 o reduce memory allocation for dirSearchPath, GNode.parents, 2063 GNode.children, OpenDirs 2064 o reduce pointer indirection for GNode.cohorts and 2065 GNode.implicitParents 2066 o remove pointer indirection from GNode.commands 2067 o inline Lst_ForEachUntil in meta mode 2068 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 2069 clean up memory management for CachedDirs 2070 fix the reference count of dotLast going negative 2071 add debug logging for OpenDirs_Done 2072 extract CacheNewDir from Dir_AddDir 2073 add debug logging for reference counting of CachedDir 2074 rename some Dir functions to SearchPath 2075 o job.c: rename some global variables 2076 o main.c: reduce memory allocation in ReadBuiltinRules 2077 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 2078 CmdOpts.makefiles 2079 Add .MAKE.UID and .MAKE.GID 2080 o make.c: reduce memory allocation for/in toBeMade, 2081 Make_ProcessWait, Make_ExpandUse 2082 o meta.c: reduce memory allocation in meta_oodate 2083 o parse.c: reduce memory allocations for parsing dependencies and 2084 targets 2085 o suff.c: reduce memory allocation in suffix handling 2086 20872020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 2088 2089 * VERSION (_MAKE_VERSION): 20201124 2090 Merge with NetBSD make, pick up 2091 o .MAKE.{UID,GID} represent uid and gid running make. 2092 o fix error handling for .BEGIN and .END dependency in -k mode 2093 o fix missing "Stop." after failed .END node in -k mode 2094 o use properly typed comparisons in boolean contexts 2095 o replace a few HashTable_CreateEntry with HashTable_Set 2096 o add HashSet type 2097 o compat.c: split Compat_Make into smaller functions 2098 extract DebugFailedTarget from Compat_RunCommand 2099 o dir.c: refactor Dir_UpdateMTime 2100 migrate CachedDir.files from HashTable to HashSet 2101 o make.c: add high-level API for GNode.made 2102 21032020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 2104 2105 * VERSION (_MAKE_VERSION): 20201122 2106 Merge with NetBSD make, pick up 2107 o rename GNode.context to vars 2108 o suff.c: cleanup and refactor 2109 rename some functions and vars to better reflect usage 2110 add high-level API for CandidateSearcher 2111 o targ.c: add more debug logging for suffix handling 2112 o more unit tests 2113 o add debug logging for setting and resetting the main target 2114 21152020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 2116 2117 * VERSION (_MAKE_VERSION): 20201117 2118 Merge with NetBSD make, pick up 2119 o fix some unit-tests when .SHELL is dash 2120 o rename Targ_NewGN to GNode_New 2121 o make some GNode functions const 2122 o main.c: call Targ_Init before Var_Init 2123 cleanup PrintOnError, getTmpdir and ParseBoolean 2124 o var.c: fix error message of failed :!cmd! modifier 2125 21262020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 2127 2128 * VERSION (_MAKE_VERSION): 20201114 2129 Merge with NetBSD make, pick up 2130 o replace a few HashTable_CreateEntry with HashTable_Set 2131 o clean up cached_stats 2132 o rename DEFAULT to defaultNode 2133 o remove redundant struct make_stat 2134 o cond.c: in lint mode, check for ".else <cond>" 2135 use bitset for IfState 2136 replace large switch with if-else in Cond_EvalLine 2137 o job.c: clean up JobExec, JobStart, JobDoOutput 2138 use stderr for error message about failed touch 2139 clean up Job_Touch 2140 replace macro DBPRINTF with JobPrintln 2141 rename JobState to JobStatus 2142 main.c: switch cache for realpath from GNode to HashTable 2143 clean up Fatal 2144 clean up InitDefSysIncPath 2145 use progname instead of hard-coded 'make' in warning 2146 rename Main_SetVarObjdir to SetVarObjdir 2147 make.1: document the -S option 2148 make.c: fix debug output for GNode details 2149 use symbolic names in debug output of GNodes 2150 21512020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 2152 2153 * configure.in: fix --with-force-machine-arch 2154 2155 * VERSION (_MAKE_VERSION): 20201112 2156 Merge with NetBSD make, pick up 2157 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 2158 checks in InitObjdir. Explicit .OBJDIR target always allows 2159 read-only directory. 2160 o cond.c: clean up Cond_EvalLine 2161 21622020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 2163 2164 * VERSION (_MAKE_VERSION): 20201111 2165 Merge with NetBSD make, pick up 2166 o more unit-tests 2167 o style cleanup 2168 remove redundant parentheses from sizeof operator 2169 replace character literal 0 with '\0'. 2170 replace pointer literal 0 with NULL. 2171 remove redundant parentheses. 2172 replace (expr & mask) == 0 with !(expr & mask). 2173 use strict typing in conditions of the form !var 2174 o rename Make_OODate to GNode_IsOODate 2175 o rename Make_TimeStamp to GNode_UpdateYoungestChild 2176 o rename Var_Set_with_flags to Var_SetWithFlags 2177 o rename dieQuietly to shouldDieQuietly 2178 o buf.c: make API of Buf_Init simpler 2179 o compat.c: clean up Compat_Make, Compat_RunCommand, 2180 CompatDeleteTarget and CompatInterrupt 2181 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 2182 clean up CondParser_Comparison 2183 o main.c: rename getBoolean and s2Boolean 2184 rename MAKEFILE_PREFERENCE for consistency 2185 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 2186 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 2187 replace emptyString with allocated empty string 2188 error out on unclosed expressions after the colon 2189 21902020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 2191 2192 * VERSION (_MAKE_VERSION): 20201101 2193 Merge with NetBSD make, pick up 2194 o negate NoExecute to GNode_ShouldExecute 2195 o job.c: rename JobMatchShell to FindShellByName 2196 extract EscapeShellDblQuot from JobPrintCommand 2197 extract ParseRunOptions from JobPrintCommand 2198 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 2199 treat malformed :range, :ts and :[...] as errors 2200 add tests for the variable modifiers :[words] and :range 2201 22022020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 2203 2204 * VERSION (_MAKE_VERSION): 20201031 2205 Merge with NetBSD make, pick up 2206 o format #include directives consistently 2207 o do not look up local variables like .TARGET anywhere else 2208 o main.c: Main_SetObjdir is first called for curdir which may be 2209 readonly 2210 reduce the scope where recursive expressions are detected 2211 remove redundant :tl from getBoolean 2212 clean up mkTempFile 2213 o meta.c: simplify memory allocation in meta_create and meta_oodate 2214 o parse.c: extract loadedfile_mmap from loadfile 2215 o trace.c: document possible undefined behavior with .CURDIR 2216 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 2217 rename ismeta to is_shell_metachar 2218 remove debug logging for the :Q variable modifier 2219 rename VarIsDynamic to VarnameIsDynamic 2220 use consistent parameter order in varname parsing functions 2221 extract ParseVarnameLong from Var_Parse 2222 extract ParseVarnameShort from Var_Parse 2223 fix type of ParseModifierPart parameter delim 2224 extract IsEscapedModifierPart from ParseModifierPart 2225 clean up ModifyWords 2226 add test for combining the :@ and :? variable modifiers 2227 22282020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 2229 2230 * VERSION (_MAKE_VERSION): 20201030 2231 Merge with NetBSD make, pick up 2232 o change char * to void * in Var_Value 2233 o make iterating over HashTable simpler 2234 o rename VAR_CMD to VAR_CMDLINE 2235 o cond.c: clean up is_separator 2236 fix parse error in string literal in conditional 2237 o main.c: do not use objdir that is not writable 2238 in lint mode, exit with error status on errors 2239 o parse.c: clean up StrContainsWord 2240 fix out-of-bounds pointer in ParseTrackInput 2241 o var.c: rename Str_SYSVMatch and its parameters 2242 remove unsatisfiable conditions in Var_Set_with_flags 2243 document where the variable name is expanded 2244 fix documentation for VARP_SUB_ONE 2245 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 2246 document VAR_READONLY 2247 prevent appending to read-only variables 2248 extract MayExport from Var_Export1 2249 remove redundant evaluations in VarFind 2250 replace VarFindFlags with a simple Boolean 2251 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 2252 22532020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 2254 2255 * VERSION (_MAKE_VERSION): 20201028 2256 Merge with NetBSD make, pick up 2257 o rename defIncPath to defSysIncPath 2258 o initialize all CmdOpts fields 2259 o lst.c: inline Vector_Get 2260 o main.c: refactor main extract 2261 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 2262 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 2263 InitDefIncPath,CmdOpts_Init,UnlimitFiles 2264 o parse.c: merge curFile into includes 2265 rename predecessor to order_pred 2266 sort ParseSpecial alphabetically 2267 remove unused, undocumented .NOEXPORT 2268 rename ParseSpecial enum values consistently 2269 rename some fields of struct IFile 2270 22712020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 2272 2273 * VERSION (_MAKE_VERSION): 20201026 2274 Merge with NetBSD make, pick up 2275 o group the command line options and arguments into a struct 2276 o rename GNode.cmgn to youngestChild 2277 o rename hash functions to identify the type name 2278 o negate OP_NOP and rename it to GNode_IsTarget 2279 o add GNode_Path to access the path of a GNode 2280 o remove macros MIN and MAX 2281 o remove unused Lst_Find and Lst_FindFrom 2282 o arch.c: and make Arch_FindLib simpler 2283 clean up code layout 2284 make Arch_ParseArchive simpler 2285 o cond.c: inline CondFindStrMatch into FuncMake 2286 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 2287 omit trailing space in debug output for expanding file patterns 2288 refactor DirMatchFiles 2289 document that the SearchPath of Dir_FindFile may be NULL 2290 remove UNCONST from Dir_Expand 2291 inline DirFindName 2292 o for.c: clean up code for handling .for loops 2293 o hash.c: print hash in debug log with fixed width 2294 clean up hash table functions 2295 reduce amount of string hashing 2296 o job.c: refactor JobDeleteTarget 2297 use proper enum constants for aborting 2298 convert result of JobStart from macros to enum 2299 convert abort reason macros to enum 2300 rework Job_CheckCommands to reduce indentation 2301 rename Shell fields 2302 add field names in declaration of DEFSHELL_CUSTOM 2303 convert JobState and JobFlags to enum types 2304 move handling of the "..." command to JobPrintCommands 2305 o lst.c: clean up 2306 refactor LstNodeNew 2307 remove Lst_Open, Lst_Next, Lst_Close 2308 remove code for circular lists from Lst_Next 2309 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 2310 /dev/null or anything starting with "no" 2311 convert macros for debug flags into enum 2312 o make.c: inline Lst_Copy in Make_ExpandUse 2313 o meta.c: inline Lst_Find in meta_oodate 2314 make Lst_RemoveIf simpler in meta_oodate 2315 o parse.c: convert error level for Parse_Error to an enum 2316 o suff.c: properly terminate debug output with newline 2317 add more details to DEBUG_SRC log 2318 replace Dir_CopyDir with Dir_CopyDirSearchPath 2319 don't modify GNode name while rebuilding the suffix graph 2320 o var.c: reduce duplicate code in VarFind 2321 23222020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 2323 2324 * VERSION (_MAKE_VERSION): 20201022 2325 Merge with NetBSD make, pick up 2326 o more refactoring and simplification to reduce code size 2327 o var.c: extract CanonicalVarname from VarFind 2328 o make.c: extract UpdateImplicitParentsVars from Make_Update 2329 o main.c: extract PrintVar from doPrintVars 2330 extract HandlePWD from main 2331 o lst.c: inline simple Lst getters 2332 remove unused Lst_ForEach 2333 o job.c: move struct Shell from job.h to job.c 2334 o more unit tests 2335 23362020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 2337 2338 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 2339 23402020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 2341 2342 * VERSION (_MAKE_VERSION): 20201018 2343 Merge with NetBSD make, pick up 2344 o remove USE_IOVEC 2345 o rename some Hash_* apis to Hash* 2346 o replace execError with execDie 2347 o rename Lst_Init to Lst_New 2348 o add tags to enum types 2349 o rename Stack to Vector 2350 o parse.c: more refactoring 2351 o unit-tests: make some tests use line buffered stdout 2352 o unit-tests/Makefile: in meta mode do not make all tests depend on 2353 Makefile, it isn't necessary. 2354 23552020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 2356 2357 * main.c: check for CTL_HW being defined. 2358 * unit-tests/Makefile: ensure export tests output are POSIX compliant 2359 disable opt-debug-jobs test until it works on ubuntu 2360 2361 * VERSION (_MAKE_VERSION): 20201010 2362 Merge with NetBSD make, pick up 2363 o dir.c: remove pathname limit for Dir_FindHereOrAbove 2364 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 2365 o main.c: extract init_machine and init_machine_arch from main 2366 allow to disable debug logging options 2367 o parse.c: enable format string truncation warnings 2368 extract parsing of sources from ParseDoDependency 2369 split ParseDoSrc into smaller functions 2370 hide implementation details from Parse_DoVar 2371 clean up parsing of variable assignments 2372 split Parse_DoVar into manageable pieces 2373 don't modify the given line during Parse_DoVar 2374 fix out-of-bounds memory access in Parse_DoVar 2375 fix parsing of the :sh assignment modifier 2376 o var.c: rework memory allocation for the name of variables 2377 extract ApplyModifier_Literal into separate function 2378 in lint mode, reject modifiers without delimiter 2379 do not export variable names starting with '-' 2380 o fix double-free bug in -DCLEANUP mode 2381 o more cleanup to enable higher warnings level 2382 o more unit tests 2383 23842020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 2385 2386 * VERSION (_MAKE_VERSION): 20201002 2387 Merge with NetBSD make, pick up 2388 o dir.c: use hash table for looking up open directories by name 2389 o main.c: clean up option handling 2390 o parse.c: add missing const for Parse_AddIncludeDir 2391 o var.c: ApplyModifier_To, update pp in each branch 2392 o remove redundant function prototypes 2393 o more unit tests 2394 23952020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 2396 2397 * VERSION (_MAKE_VERSION): 20201001 2398 Merge with NetBSD make, pick up 2399 o compat.c: comment about "..." 2400 24012020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 2402 2403 * VERSION (_MAKE_VERSION): 20200930 2404 Merge with NetBSD make, pick up 2405 o job.c: split Job.jobPipe into 2 separate fields 2406 replace Lst_Open with direct iteration 2407 o lst.c: remove redundant assertions 2408 o targ.c: replace Lst_Open with direct iteration 2409 o var.c: fix bug in evaluation of indirect variable modifiers 2410 extract ApplyModifier_Quote into separate function 2411 o make debug logging simpler 2412 24132020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 2414 2415 * VERSION (_MAKE_VERSION): 20200927 2416 Merge with NetBSD make, pick up 2417 o parse.c: ensure parse errors result in 'stopped in' message. 2418 o compat.c: make parameter of Compat_RunCommand const 2419 o main.c: extract InitVarTarget from main 2420 o parse.c: rename ParseFinishLine to FinishDependencyGroup 2421 refactor ParseDoDependency 2422 o var.c: Var_Subst no longer returns string result 2423 rename Var_ParsePP back to Var_Parse 2424 in lint mode, improve error handling for undefined variables 2425 extract ParseVarname from Var_Parse 2426 o rename Lst_ForEach to Lst_ForEachUntil 2427 o inline Lst_ForEachUntil in several cases 2428 o clean up API for finding and creating GNodes 2429 o fix assertion failure in -j mode with .END node 2430 o inline and remove LstNode_Prev and LstNode_Next 2431 o use fine-grained type names for lists and their nodes 2432 o more unit tests 2433 24342020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 2435 2436 * VERSION (_MAKE_VERSION): 20200911 2437 Merge with NetBSD make, pick up 2438 o cond.c: split EvalComparison into smaller functions 2439 reorder parameters of condition parsing functions 2440 reduce code size in CondParser_Eval 2441 rename CondGetString to CondParser_String 2442 add CondLexer_SkipWhitespace 2443 group the condition parsing state into a struct 2444 in CondGetString, replace repeated Buf_Add with Buf_AddStr 2445 o migrate Var_Parse to Var_ParsePP 2446 o add wrappers around ctype.h functions 2447 o lst.c: use a stack instead of a list for the nested include path 2448 o more unit tests 2449 24502020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 2451 2452 * make-bootstrap.sh.in: adjust object list 2453 24542020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 2455 2456 * VERSION (_MAKE_VERSION): 20200902 2457 Merge with NetBSD make, pick up 2458 o use make_stat to ensure no confusion over valid fields 2459 returned by cached_stat 2460 o var.c: make VarQuote const-correct 2461 o add unit tests for .for 2462 24632020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 2464 2465 * VERSION (_MAKE_VERSION): 20200901 2466 Merge with NetBSD make, pick up 2467 o rename Hash_Table fields 2468 o make data types in Dir_HasWildcards more precise 2469 24702020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 2471 2472 * VERSION (_MAKE_VERSION): 20200831 2473 Merge with NetBSD make, pick up 2474 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 2475 o lst.c: Lst_Open renable assert that list isn't open 2476 o unit test for .TARGET dependent flags 2477 o var.c: fix aliasing bug in VarUniq 2478 o more unit tests for :u 2479 24802020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 2481 2482 * VERSION (_MAKE_VERSION): 20200830 2483 Merge with NetBSD make, pick up 2484 o allow for strict type checking for Boolean 2485 o Var_Parse never returns NULL 2486 o Var_Subst never returns NULL 2487 o Lst_Find now takes boolean match function 2488 o rename Lst_Memeber to Lst_FindDatum 2489 o rename LstNode functions to match their type 2490 o rename GNode.iParents to implicitParents 2491 o fix assertion failure for .SUFFIXES in archives 2492 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 2493 remove unreachable code from CompatRunCommand 2494 o main.c: simplify getBoolean 2495 o stc.c: replace brk_string with simpler Str_Words 2496 o suff.c: add debug macros 2497 24982020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 2499 2500 * VERSION (_MAKE_VERSION): 20200828 2501 Merge with NetBSD make, pick up 2502 o lst.c: inline LstIsValid and LstNodeIsValid 2503 o remove trailing S from Lst function names after migration complete 2504 o more comment cleanup/clarification 2505 o suff.c: clean up suffix handling 2506 o more unit tests 2507 25082020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2509 2510 * VERSION (_MAKE_VERSION): 20200826 2511 Merge with NetBSD make, pick up 2512 o enum.c: distinguish between bitsets containing flags and 2513 ordinary enums 2514 o var.c: fix error message for ::!= modifier with shell error 2515 o fix bugs in -DCLEANUP mode 2516 25172020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 2518 2519 * VERSION (_MAKE_VERSION): 20200824 2520 Merge with NetBSD make, pick up 2521 o in debug mode, print GNode details in symbols 2522 25232020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 2524 2525 * VERSION (_MAKE_VERSION): 20200823 2526 Merge with NetBSD make, pick up 2527 o lst.c: more asserts, 2528 make args to Lst_Find match others. 2529 o var.c: pass flags to VarAdd 2530 o arch.c: use Buffer 2531 o str.c: brk_string return size_t for nwords 2532 o more unit tests 2533 25342020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2535 2536 * VERSION (_MAKE_VERSION): 2537 Merge with NetBSD make, pick up 2538 o var.c: support for read-only variables eg .SHELL 2539 being the shell used to run scripts. 2540 o lst.c: more simplification 2541 o more documentation and style cleanup 2542 o more unit tests 2543 o ensure unit-test/Makefile is run by TEST_MAKE 2544 o reduce duplication of header inclusion 2545 25462020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2547 2548 * VERSION (_MAKE_VERSION): 20200821 2549 Merge with NetBSD make, pick up 2550 o lst.c: revert invalid assertion - but document it 2551 o dir.c: split Dir_Init into two functions 2552 25532020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2554 2555 * lst.c: needs inttypes.h on Linux 2556 2557 * VERSION (_MAKE_VERSION): 20200820 2558 Merge with NetBSD make, pick up 2559 o make.1: clarify some passages 2560 o var.c: more cleanup, clarify comments 2561 o make_malloc.c: remove unreachable code 2562 o cond.c: make CondGetString easier to debug 2563 o simplify list usage 2564 o unit-tests: more 2565 25662020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2567 2568 * VERSION (_MAKE_VERSION): 20200816 2569 Merge with NetBSD make, pick up 2570 o refactor unit-tests to be more fine grained 2571 not all tests moved yet 2572 25732020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2574 2575 * VERSION (_MAKE_VERSION): 20200814 2576 Merge with NetBSD make, pick up 2577 o more str_concat variants 2578 o more enums for flags 2579 o var.c: cleanup for higher warnings level 2580 25812020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2582 2583 * VERSION (_MAKE_VERSION): 20200810 2584 Merge with NetBSD make, pick up 2585 o more unit tests 2586 o general comment and style cleanup 2587 25882020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2589 2590 * VERSION (_MAKE_VERSION): 20200808 2591 Merge with NetBSD make, pick up 2592 o enum.[ch]: streamline, enums for use in flags and debug output 2593 o cond.c: cleanup 2594 o var.c: reduce duplicate code for modifiers 2595 debug logging for Var_Parse 2596 more detailed debug output 2597 o more unit tests 2598 25992020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2600 2601 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2602 so I can run tests in meta mode 2603 supress extra noise if in meta mode 2604 2605 * VERSION (_MAKE_VERSION): 20200806 2606 Merge with NetBSD make, pick up 2607 o parse.c: remove VARE_WANTRES for LINT 2608 we just want to check parsing (for now). 2609 26102020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2611 2612 * VERSION (_MAKE_VERSION): 20200805 2613 Merge with NetBSD make, pick up 2614 o make.1: Rework the description of dependence operators 2615 26162020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2617 2618 * VERSION (_MAKE_VERSION): 20200803 2619 Merge with NetBSD make, pick up 2620 o revert some C99 usage, for max portability 2621 o unit-tests/lint 2622 26232020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2624 2625 * VERSION (_MAKE_VERSION): 20200802 2626 Merge with NetBSD make, pick up 2627 o more unit tests 2628 26292020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2630 2631 * Remove NetBSD specific plumbing from unit-tests/Makefile 2632 2633 * VERSION (_MAKE_VERSION): 20200801 2634 Merge with NetBSD make, pick up 2635 o make Var_Value return const 2636 o size_t for buf sizes 2637 o optimize some buffer operations - avoid strlen 2638 26392020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2640 2641 * VERSION (_MAKE_VERSION): 20200731 2642 Merge with NetBSD make, pick up 2643 o var.c: fix undefinded behavior for incomplete :t modifier 2644 fixes unit-test/moderrs on Ubuntu 2645 o parse.c: When parsing variable assignments other than := 2646 if DEBUG(LINT) test substition of value, so we get a file and 2647 line number in the resulting error. 2648 o dir.c: fix parsing of nested braces in dependency lines 2649 add unit-tests 2650 26512020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2652 2653 * VERSION (_MAKE_VERSION): 20200730 2654 Merge with NetBSD make, pick up 2655 o var.c: minor cleanup 2656 o unit-tests: more tests to improve code coverage 2657 26582020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2659 2660 * VERSION (_MAKE_VERSION): 20200728 2661 Merge with NetBSD make, pick up 2662 o var.c: more optimizations 2663 26642020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2665 2666 * VERSION (_MAKE_VERSION): 20200726 2667 Merge with NetBSD make, pick up 2668 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2669 o lots of function comment updates 2670 o var.c: more optimizations 2671 o make return of Var_Parse const 2672 26732020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2674 2675 * VERSION (_MAKE_VERSION): 20200720 2676 Merge with NetBSD make, pick up 2677 o DEBUG_HASH report stats at end and tone down the noise 2678 o var.c: each flag type gets its own prefix. 2679 move SysV string matching to var.c 2680 make ampersand in ${VAR:from=to&} an ordinary character 2681 cleanup and simplify implementation of modifiers 2682 o make.1: move documentation for assignment modifiers 2683 26842020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2685 2686 * VERSION (_MAKE_VERSION): 20200718 2687 Merge with NetBSD make, pick up 2688 o DEBUG_HASH to see how well the hash tables are working 2689 26902020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2691 2692 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2693 26942020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2695 2696 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2697 2698 * VERSION (_MAKE_VERSION): 20200710 2699 Merge with NetBSD make, pick up 2700 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2701 o meta.c: target flagged .META is out-of-date if meta file missing 2702 27032020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2704 2705 * VERSION (_MAKE_VERSION): 20200709 2706 Merge with NetBSD make, pick up 2707 o cond.c: fix for compare_expression when doEval=0 2708 o unit-tests/Makefile: rework 2709 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2710 27112020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2712 2713 * VERSION (_MAKE_VERSION): 20200704 2714 Merge with NetBSD make, pick up 2715 (most of this by rillig@) 2716 o lots of style and white-space cleanup 2717 o lots more unit tests for variable modifiers 2718 o simplified description of some functions 2719 o str.c: refactor Str_Match 2720 o var.c: debugging output for :@ 2721 constify VarModify parameter 2722 fix :hash modifier on 16-bit platforms 2723 remove unnecessary forward declarations 2724 refactor ApplyModifier_SysV to have less indentation 2725 simplify code for :E and :R 2726 clean up code for :H and :T 2727 refactor ApplyModifiers 2728 2729 * var.c: we need stdint.h on some platforms to get uint32_t 2730 * unit-test/Makefile: we need to supress the specific error 2731 for RE substitution error in modmisc, since it varies accross 2732 different OS. 2733 27342020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2735 2736 * VERSION (_MAKE_VERSION): 20200702 2737 Merge with NetBSD make, pick up 2738 o var.c: more improvements to avoiding unnecessary evaluation 2739 use enums for flags 2740 o remove flags arg to Var_Set which outside of var.c is always 0 2741 27422020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2743 2744 * VERSION (_MAKE_VERSION): 20200701 2745 Merge with NetBSD make, pick up 2746 o var.c: with change to cond.c; ensure that nested variables 2747 within a variable name are expanded. 2748 o unit-tests/varmisc.mk: test for nested varname 2749 27502020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2751 2752 * VERSION (_MAKE_VERSION): 20200629 2753 Merge with NetBSD make, pick up 2754 o cond.c: do not eval unnecessary terms of conditionals. 2755 27562020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2757 2758 * VERSION (_MAKE_VERSION): 20200625 2759 Merge with NetBSD make, pick up 2760 o meta.c: report error if lseek in filemon_read fails 2761 27622020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2763 2764 * VERSION (_MAKE_VERSION): 20200622 2765 Merge with NetBSD make, pick up 2766 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2767 27682020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2769 2770 * VERSION (_MAKE_VERSION): 20200619 2771 Merge with NetBSD make, pick up 2772 o str.c: performance improvement for Str_Match for multiple '*' 2773 o dieQuietly: supress the failure output from make 2774 when failing node is a sub-make or a sibling failed. 2775 This cuts down greatly on unhelpful noise at the end of 2776 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2777 27782020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2779 2780 * FILES: add LICENSE to appease some packagers. 2781 This is an attempt to fairly represent the license on almost 2782 200 files, which are almost all BSD-3-Clause 2783 The few exceptions being more liberal. 2784 2785 * VERSION (_MAKE_VERSION): 20200610 2786 Merge with NetBSD make, pick up 2787 o unit test for :Or 2788 27892020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2790 2791 * VERSION (_MAKE_VERSION): 20200606 2792 Merge with NetBSD make, pick up 2793 o make.1: cleanup 2794 2795 * Makefile: fix depends for main.o which broke MAKE_VERSION 2796 27972020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2798 2799 * VERSION (_MAKE_VERSION): 20200605 2800 Merge with NetBSD make, pick up 2801 o dir.c: cached_stats - don't confuse stat and lstat results. 2802 o var.c: add :Or for reverse sort. 2803 28042020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2805 2806 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2807 also if --with-filemon= specifies path to filemon.h 2808 set use_filemon=dev 2809 * dirname.c: remove include of namespace.h 2810 28112020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2812 2813 * VERSION (_MAKE_VERSION): 20200517 2814 Merge with NetBSD make, pick up 2815 o modified dollar tests to avoid shell dependencies 2816 o new tests for .INCLUDEFROM 2817 28182020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2819 2820 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2821 to not depend so much on shell behavior 2822 28232020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2824 2825 * VERSION (_MAKE_VERSION): 20200510 2826 Merge with NetBSD make, pick up 2827 o unit test for dollar handling 2828 28292020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2830 2831 * VERSION (_MAKE_VERSION): 20200506 2832 Merge with NetBSD make, pick up 2833 o str.c: empty string does not match % pattern 2834 plus unit-test changes 2835 28362020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2837 2838 * VERSION (_MAKE_VERSION): 20200504 2839 May the 4th be with you 2840 Merge with NetBSD make, pick up 2841 o var.c: import handling of old sysV style modifier using '%' 2842 o str.c: refactor brk_string 2843 o unit-tests: add test case for lazy conditions 2844 28452020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2846 2847 * VERSION (_MAKE_VERSION): 20200418 2848 2849 * configure.in: use_makefile=no for Cygwin et al. 2850 case insensitive filesystems just don't work if both 2851 makefile and Makefile exist. 2852 NOTE: bmake does not support Cygwin and likely never will, 2853 but if brave souls want to try it - help them out. 2854 28552020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2856 2857 * VERSION (_MAKE_VERSION): 20200402 2858 Merge with NetBSD make, pick up 2859 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2860 a blank command is perfectly valid. 2861 28622020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2863 2864 * VERSION (_MAKE_VERSION): 20200330 2865 Merge with NetBSD make, pick up 2866 o make.h: extern debug_file 2867 28682020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2869 2870 * VERSION (_MAKE_VERSION): 20200318 2871 Merge with NetBSD make, pick up 2872 o meta.c: meta_oodate, check for corrupted meta file 2873 earlier and more often. 2874 28752020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2876 2877 * VERSION (_MAKE_VERSION): 20200220 2878 28792020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2880 2881 * boot-strap: unset MAKEFLAGS 2882 28832020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2884 2885 * VERSION (_MAKE_VERSION): 20200212 2886 * meta.c: meta_compat_parent check for USE_FILEMON 2887 patch from Soeren Tempel 2888 28892020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2890 2891 * VERSION: 20200205 2892 Merge with NetBSD make, pick up 2893 o meta.c: fix compat mode, need to call meta_job_output() 2894 o job.c: extra fds for meta mode not needed if using filemon_dev 2895 28962020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2897 2898 * VERSION: 20200122 2899 Merge with NetBSD make, pick up 2900 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2901 returns FALSE. 2902 29032020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2904 2905 * VERSION: 20200121 2906 Merge with NetBSD make, pick up 2907 o filemon/filemon_{dev,ktrace}.c: allow selection of 2908 filemon implementation. filemon_dev.c uses the kernel module 2909 while filemon_ktrace.c leverages the fktrace api available in 2910 NetBSD. filemon_ktrace.c can hopefully form the basis for 2911 adding support for other tracing mechanisms such as strace on 2912 Linux. 2913 o meta.c: when target is out-of-date per normal make rules 2914 record value of .OODATE in meta file. 2915 29162019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2917 2918 * VERSION: 20190926 2919 Merge with NetBSD make, pick up 2920 o parse.c: don't pass NULL to realpath(3) 2921 some versions cannot handle it. 2922 29232019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2924 2925 * VERSION: 20190409 2926 Merge with NetBSD make, pick up 2927 o parse.c: ParseDoDependency: free paths rather than assert 2928 29292018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2930 2931 * VERSION: 20181222 2932 2933 * configure.in: add --without-makefile to avoid generating 2934 makefile and make-bootstrap.sh 2935 2936 * include Makefile.inc if it exists 2937 2938 * Use Makefile and Makefile.config.in in unit-tests 2939 so we can use just: make obj && make && make test 2940 when bmake is already available. 2941 We add --without-makefile to CONFIGURE_ARGS in this case. 2942 2943 * tweak bsd.after-import.mk (captures Makefile.config etc 2944 after import to FreeBSD for example) to cope with all the above. 2945 29462018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2947 2948 * VERSION: 20181221 2949 Merge with NetBSD make, pick up 2950 o parse.c: ParseVErrorInternal use .PARSEDIR 2951 and apply if relative, and then use .PARSEFILE 2952 for consistent result. 2953 29542018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2955 2956 * VERSION: 20181220 2957 Merge with NetBSD make, pick up 2958 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2959 is relative 2960 o var.c: avoid SEGFAULT in .unexport-env 2961 when MAKELEVEL is not set 2962 29632018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2964 2965 * VERSION: 20181216 2966 Merge with NetBSD make, pick up 2967 o fix for unit-tests/varquote.mk on Debian 2968 29692018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2970 2971 * VERSION: 20180919 2972 Merge with NetBSD make, pick up 2973 o var.c: add :q 2974 o dir.c: cleanup caching of stats 2975 29762018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2977 2978 * Makefile.config.in: use += where it makes sense. 2979 29802018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2981 2982 * VERSION: 20180512 2983 Merge with NetBSD make, pick up 2984 o job.c: skip polling job token pipe 2985 29862018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2987 2988 * VERSION: 20180405 2989 Merge with NetBSD make, pick up 2990 o parse.c: be more cautious about detecting depenency line 2991 rather than sysV style include. 2992 29932018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2994 2995 * VERSION: 20180222 2996 Merge with NetBSD make, pick up 2997 o parse.c: avoid calling sysconf for every call to loadfile 2998 29992018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3000 3001 * VERSION: 20180218 3002 Merge with NetBSD make, pick up 3003 o var.c: Var_Set handle NULL value anytime. 3004 30052018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 3006 3007 * VERSION: 20180212 3008 Merge with NetBSD make, pick up 3009 o parse.c: do not treat .info as warning with -W 3010 30112017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 3012 3013 * VERSION: 20171207 3014 Merge with NetBSD make, pick up 3015 o var.c: Var_Append use Var_Set if var not previously set 3016 so that VAR_CMD is handled correctly. 3017 Add a suitable unit-test. 3018 30192017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3020 3021 * VERSION (_MAKE_VERSION): 20171126 3022 3023 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 3024 since AC_TRY_COMPILE puts input inside main() 3025 which upsets modern compilers. 3026 30272017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 3028 3029 * VERSION: 20171118 3030 Merge with NetBSD make, pick up 3031 o var.c: do not append to variable set on command line 3032 add unit-test to catch this. 3033 30342017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 3035 3036 * VERSION: 20171028 3037 Merge with NetBSD make, pick up 3038 o main.c: ignore empty MAKEOBJDIR 3039 3040 * Makefile.config.in: 3041 make @prefix@ @machine*@ and @default_sys_path@ defaults. 3042 30432017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 3044 3045 * VERSION: 20171005 3046 3047 * unit-tests/dotwait.mk: redirect stderr through pipe for more 3048 consistent result on some platforms. 3049 30502017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 3051 3052 * machine.sh: entry for AIX 3053 30542017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 3055 3056 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 3057 to a file that can be included by configure as well as make. 3058 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 3059 30602017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 3061 3062 * Makefile (_MAKE_VERSION): 20170810 3063 Merge with NetBSD make, pick up 3064 o meta.c: if target is in subdir we only need subdir name in 3065 meta_name. 3066 30672017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 3068 3069 * Makefile (_MAKE_VERSION): 20170720 3070 Merge with NetBSD make, pick up 3071 o compat.c: pass SIGINT etc onto child and wait for it to exit 3072 before we self-terminate. 3073 30742017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 3075 3076 * Makefile (_MAKE_VERSION): 20170711 3077 forgot to update after merge on 20170708 ;-) 3078 o main.c: refactor to reduce size of main function. 3079 add -v option to always fully expand values. 3080 o meta.c: ensure command output in meta file has ending newline 3081 even when filemon not being used. 3082 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 3083 pathname via ':L' since any ':' in pathname breaks that. 3084 Instead set a '${.p.}' to pathname in the target context and 3085 use that. 3086 30872017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3088 3089 * Makefile (_MAKE_VERSION): 20170510 3090 Merge with NetBSD make, pick up 3091 o main.c: Main_SetObjdir: ensure buf2 is in scope 3092 30932017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 3094 3095 * Makefile (_MAKE_VERSION): 20170505 3096 see mk/ChangeLog 3097 30982017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3099 3100 * parse.c: not everyone has stdint.h 3101 31022017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 3103 3104 * Makefile (_MAKE_VERSION): 20170501 3105 see mk/ChangeLog 3106 31072017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3108 3109 * Makefile (_MAKE_VERSION): 20170421 3110 Merge with NetBSD make, pick up 3111 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 3112 31132017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3114 3115 * Makefile (_MAKE_VERSION): 20170420 3116 Merge with NetBSD make, pick up 3117 o main.c: only use -C arg "as is" if it contains no 3118 relative component. 3119 31202017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3121 3122 * Makefile (_MAKE_VERSION): 20170418 3123 Merge with NetBSD make, pick up 3124 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 3125 31262017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 3127 3128 * Makefile (_MAKE_VERSION): 20170417 3129 Merge with NetBSD make, pick up 3130 o fixes a number of coverity complaints 3131 - check return value of fseek, fcntl 3132 - plug memory leak in Dir_FindFile, Var_LoopExpand, 3133 JobPrintCommand, ParseTraditionalInclude 3134 - use bmake_malloc() where NULL is not tollerated 3135 - use MAKE_ATTR_UNUSED rather that kludges like 3136 return(unused ? 0 : 0) 3137 - use purge_cached_realpaths() rather than abuse cached_realpath() 3138 31392017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 3140 3141 * Makefile (_MAKE_VERSION): 20170413 3142 Merge with NetBSD make, pick up 3143 o main.c: when setting .OBJDIR ignore '$' in paths. 3144 3145 * job.c: use MALLOC_OPTIONS to set malloc_options. 3146 31472017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3148 3149 * Makefile (_MAKE_VERSION): 20170411 3150 Merge with NetBSD make, pick up 3151 o str.c: Str_Match: allow [^a-z] to behave as expected. 3152 31532017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3154 3155 * Makefile (_MAKE_VERSION): 20170326 3156 Merge with NetBSD make, pick up 3157 o main.c: purge relative paths from realpath cache when .OBJDIR 3158 is changed. 3159 31602017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 3161 3162 * Makefile (_MAKE_VERSION): 20170311 3163 Merge with NetBSD make, pick up 3164 o main.c: only use -C arg "as is" if it starts with '/'. 3165 31662017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 3167 3168 * Makefile (_MAKE_VERSION): 20170301 3169 Merge with NetBSD make, pick up 3170 o main.c: use -C arg "as is" rather than getcwd() 3171 if they identify the same directory. 3172 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 3173 31742017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 3175 3176 * Makefile (_MAKE_VERSION): 20170201 3177 Merge with NetBSD make, pick up 3178 o var.c: allow :_=var and avoid use of special context. 3179 31802017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 3181 3182 * Makefile (_MAKE_VERSION): 20170130 3183 Merge with NetBSD make, pick up 3184 o var.c: add :range and :_ 3185 o main.c: partially initialize Dir_* before MainParseArgs() 3186 can be called. 3187 If -V, skip Main_ExportMAKEFLAGS() 3188 31892017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 3190 3191 * Makefile (_MAKE_VERSION): 20170114 3192 Merge with NetBSD make, pick up 3193 o var.c: allow specifying the utc value used by :{gm,local}time 3194 31952016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3196 3197 * Makefile (_MAKE_VERSION): 20161212 3198 Merge with NetBSD make, pick up 3199 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 3200 32012016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 3202 3203 * Makefile (_MAKE_VERSION): 20161209 3204 Merge with NetBSD make, pick up 3205 o main.c: cleanup setting of .OBJDIR 3206 o parse.c: avoid coredump from (var)=val 3207 32082016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3209 3210 * Makefile (_MAKE_VERSION): 20161126 3211 Merge with NetBSD make, pick up 3212 o make.c: Make_OODate: report src node name if path not set 3213 32142016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3215 3216 * Makefile (_MAKE_VERSION): 20160926 3217 Merge with NetBSD make, pick up 3218 o support for .DELETE_ON_ERROR: (remove targets that fail) 3219 32202016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3221 3222 * Makefile MAN: tweak .Dt to match ${PROG} 3223 32242016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3225 3226 * Makefile (_MAKE_VERSION): 20160818 3227 its a neater number; pick up whitespace fixes to man page. 3228 32292016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 3230 3231 * Makefile (_MAKE_VERSION): 20160817 3232 Merge with NetBSD make, pick up 3233 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 3234 so we can call it before adding entries to missingFiles. 3235 Thus we do not track files we have been told to ignore. 3236 32372016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 3238 3239 * Makefile (_MAKE_VERSION): 20160815 3240 Merge with NetBSD make, pick up 3241 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 3242 pathnames, and skip if the expansion is empty. 3243 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 3244 32452016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 3246 3247 * Makefile (_MAKE_VERSION): 20160812 3248 Merge with NetBSD make, pick up 3249 o meta.c: remove all missingFiles entries that match a deleted 3250 dir. 3251 o main.c: set .ERROR_CMD if possible. 3252 32532016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3254 3255 * Makefile (_MAKE_VERSION): 20160606 3256 Merge with NetBSD make, pick up 3257 o dir.c: extend mtimes cache to others via cached_stat() 3258 32592016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3260 3261 * Makefile (_MAKE_VERSION): 20160604 3262 Merge with NetBSD make, pick up 3263 o meta.c: missing filemon data is only relevant if we read a 3264 meta file. 3265 Also do not return oodate for a missing metafile if gn->path 3266 points to .CURDIR 3267 32682016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3269 3270 * Makefile (_MAKE_VERSION): 20160602 3271 Merge with NetBSD make, pick up 3272 o cached_realpath(): avoid hitting filesystem more than necessary. 3273 o meta.c: refactor need_meta decision, add knobs for 3274 missing meta file and filemon data wrt out-of-datedness. 3275 32762016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3277 3278 * Makefile (_MAKE_VERSION): 20160528 3279 3280 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 3281 32822016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 3283 3284 * Makefile (_MAKE_VERSION): 20160512 3285 Merge with NetBSD make, pick up 3286 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 3287 this is useful for gcov builds. 3288 o propagate errors from filemon(4). 3289 32902016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 3291 3292 * Makefile (_MAKE_VERSION): 20160509 3293 Merge with NetBSD make, pick up 3294 o remove use of non-standard types u_int etc. 3295 o meta.c: apply realpath() before matching against metaIgnorePaths 3296 32972016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 3298 3299 * Makefile (_MAKE_VERSION): 20160404 3300 Merge with NetBSD make, pick up 3301 o allow makefile to set .MAKE.JOBS 3302 3303 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 3304 33052016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 3306 3307 * Makefile (_MAKE_VERSION): 20160315 3308 Merge with NetBSD make, pick up 3309 o fix handling of archive members 3310 33112016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3312 3313 * Makefile (_MAKE_VERSION): rename variable to avoid interference 3314 with checks for ${MAKE_VERSION} 3315 33162016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 3317 3318 * Makefile (MAKE_VERSION): 20160310 3319 Merge with NetBSD make, pick up 3320 o meta.c: treat missing Read file same as Write, incase we Delete it. 3321 33222016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 3323 3324 * Makefile (MAKE_VERSION): 20160307 3325 Merge with NetBSD make, pick up 3326 o var.c: fix :ts\nnn to be octal by default. 3327 o meta.c: meta_finish() to cleanup memory. 3328 33292016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 3330 3331 * Makefile (MAKE_VERSION): 20160226 3332 Merge with NetBSD make, pick up 3333 o meta.c: allow meta file for makeDepend if makefiles want it. 3334 33352016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 3336 3337 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 3338 for backwards compatability. 3339 3340 * Makefile (MAKE_VERSION): 20160220 3341 Merge with NetBSD make, pick up 3342 o var.c: add knob to control handling of '$$' in := 3343 33442016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3345 3346 * Makefile (MAKE_VERSION): 20160218 3347 Merge with NetBSD make, pick up 3348 o var.c: add .export-literal allows us to fix sys.clean-env.mk 3349 post the changes to Var_Subst. 3350 Var_Subst now takes flags, and does not consume '$$' in := 3351 33522016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 3353 3354 * Makefile (MAKE_VERSION): 20160217 3355 Merge with NetBSD make, pick up 3356 o var.c: preserve '$$' in := 3357 o parse.c: add .dinclude for handling included 3358 makefile like .depend 3359 33602015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 3361 3362 * Makefile (MAKE_VERSION): 20151220 3363 Merge with NetBSD make, pick up 3364 o suff.c: re-initialize suffNull when clearing suffixes. 3365 33662015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 3367 3368 * Makefile (MAKE_VERSION): 20151201 3369 Merge with NetBSD make, pick up 3370 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 3371 o meta.c: meta_oodate: use lstat(2) for checking link target 3372 in case it is a symlink. 3373 o var.c: avoid calling brk_string and Var_Export1 with empty 3374 strings. 3375 33762015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3377 3378 * Makefile (MAKE_VERSION): 20151126 3379 Merge with NetBSD make, pick up 3380 o parse.c: ParseTrackInput don't access beyond 3381 end of old value. 3382 33832015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 3384 3385 * Makefile (MAKE_VERSION): 20151022 3386 3387 * Add support for BSD/OS which lacks inttypes.h 3388 and really needs sys/param.h for sys/sysctl.h 3389 also 'type' is not a shell builtin. 3390 3391 * var.c: eliminate uint32_t and need for inttypes.h 3392 3393 * main.c: PrintOnError flush stdout before run .ERROR 3394 3395 * parse.c: cope with _SC_PAGESIZE not being defined. 3396 3397 33982015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 3399 3400 * Makefile (MAKE_VERSION): 20151020 3401 Merge with NetBSD make, pick up 3402 o var.c: fix uninitialized var 3403 34042015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 3405 3406 * var.c: the conditional expressions used with ':?' can be 3407 expensive, if already discarding do not evaluate or expand 3408 anything. 3409 34102015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3411 3412 * Makefile (MAKE_VERSION): 20151010 3413 Merge with NetBSD make, pick up 3414 o Add Boolean wantit flag to Var_Subst and Var_Parse 3415 when FALSE we know we are discarding the result and can 3416 skip operations like Cmd_Exec. 3417 34182015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3419 3420 * Makefile (MAKE_VERSION): 20151009 3421 Merge with NetBSD make, pick up 3422 o var.c: don't check for NULL before free() 3423 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 3424 34252015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3426 3427 * Makefile (MAKE_VERSION): 20150910 3428 Merge with NetBSD make, pick up 3429 o main.c: with -w print Enter/Leaving messages for objdir too 3430 if necessary. 3431 o centralize shell metachar handling 3432 3433 * FILES: add metachar.[ch] 3434 34352015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3436 3437 * Makefile (MAKE_VERSION): 20150606 3438 Merge with NetBSD make, pick up 3439 o make.1: document .OBJDIR target 3440 34412015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3442 3443 * Makefile (MAKE_VERSION): 20150505 3444 Merge with NetBSD make, pick up 3445 o cond.c: be strict about lhs of comparison when evaluating .if 3446 but less so when called from variable expansion. 3447 o unit-tests/cond2.mk: test various error conditions 3448 34492015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 3450 3451 * machine.sh (MACHINE): Add Bitrig 3452 patch from joerg@netbsd.org 3453 34542015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3455 3456 * Makefile (MAKE_VERSION): 20150418 3457 Merge with NetBSD make, pick up 3458 o job.c: use memmove() rather than memcpy() 3459 3460 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 3461 case, so skip it. 3462 34632015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3464 3465 * Makefile (MAKE_VERSION): 20150411 3466 bump version - only mk/ changes. 3467 34682015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3469 3470 * Makefile (MAKE_VERSION): 20150410 3471 Merge with NetBSD make, pick up 3472 o document different handling of '-' in jobs mode vs compat 3473 o fix jobs mode so that '-' only applies to whole job 3474 when shell lacks hasErrCtl 3475 o meta.c: use separate vars to track lcwd and latestdir (read) 3476 per process 3477 34782015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 3479 3480 * Makefile (MAKE_VERSION): 20150401 3481 Merge with NetBSD make, pick up 3482 o meta.c: close meta file in child 3483 3484 * Makefile: use BINDIR.bmake if set. 3485 Same for MANDIR and SHAREDIR 3486 Handy for testing release candidates 3487 in various environments. 3488 34892015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3490 3491 * move initialization of savederr to block where it is used 3492 to avoid spurious warning from gcc5 3493 34942014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3495 3496 * Makefile (MAKE_VERSION): 20141111 3497 just a cooler number 3498 34992014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 3500 3501 * Makefile (MAKE_VERSION): 20141105 3502 Merge with NetBSD make, pick up 3503 o revert major overhaul of suffix handling 3504 and POSIX compliance - too much breakage 3505 and impossible to make backwards compatible. 3506 o we still have the new unit test structure which is ok. 3507 o meta.c ensure "-- filemon" is at start of line. 3508 35092014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 3510 3511 * configure.in: test that result of getconf PATH_MAX is numeric 3512 and discard if not. Apparently needed for Hurd. 3513 35142014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3515 3516 * Makefile (MAKE_VERSION): 20140830 3517 Merge with NetBSD make, pick up 3518 o major overhaul of suffix handling 3519 o improved POSIX compliance 3520 o overhauled unit-tests 3521 35222014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3523 3524 * Makefile (MAKE_VERSION): 20140620 3525 Merge with NetBSD make, pick up 3526 o var.c return varNoError rather than var_Error for ::= modifiers. 3527 35282014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3529 3530 * Makefile (MAKE_VERSION): 20140522 3531 Merge with NetBSD make, pick up 3532 o var.c detect some parse errors. 3533 35342014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3535 3536 * Fix spelling errors - patch from Pedro Giffuni 3537 35382014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3539 3540 * Makefile (MAKE_VERSION): 20140214 3541 Merge with NetBSD make, pick up 3542 o .INCLUDEFROM* 3543 o use Var_Value to get MAKEOBJDIR[PREFIX] 3544 o reduced realloc'ign in brk_string. 3545 * configure.in: add a check for compiler supporting __func__ 3546 35472014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3548 3549 * boot-strap: ignore mksrc=none 3550 35512014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3552 3553 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3554 35552014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3556 3557 * Makefile (MAKE_VERSION): 20140101 3558 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3559 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3560 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3561 Hurd) 3562 * configure.in: Add AC_PREREQ and check for 3563 sysctl; patch from Andrew Shadura andrewsh at debian.org 3564 35652013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3566 3567 * Makefile (MAKE_VERSION): 20131010 3568 * lose the const from arg to systcl to avoid problems on older BSDs. 3569 35702013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3571 3572 * Makefile (MAKE_VERSION): 20131001 3573 Merge with NetBSD make, pick up 3574 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3575 hw.machine_arch if necessary. 3576 o meta.c: meta_oodate - need to look at src of Link and target 3577 of Move as well. 3578 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3579 provide __arraycount() if needed. 3580 35812013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3582 3583 * Makefile (MAKE_VERSION): 20130904 3584 Merge with NetBSD make, pick up 3585 o Add VAR_INTERNAL context, so that internal setting of 3586 MAKEFILE does not override value set by makefiles. 3587 35882013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3589 3590 * Makefile (MAKE_VERSION): 20130902 3591 Merge with NetBSD make, pick up 3592 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3593 35942013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3595 3596 * Makefile (MAKE_VERSION): 20130828 3597 Merge with NetBSD make, pick up 3598 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3599 o Call Job_SetPrefix() from Job_Init() so makefiles have 3600 opportunity to set .MAKE.JOB.PREFIX 3601 36022013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3603 3604 * Makefile (MAKE_VERSION): 20130730 3605 Merge with NetBSD make, pick up 3606 o Allow suppression of --- job -- tokens by setting 3607 .MAKE.JOB.PREFIX empty. 3608 36092013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3610 3611 * Makefile (MAKE_VERSION): 20130716 3612 Merge with NetBSD make, pick up 3613 o number of gmake compatibility tweaks 3614 -w for gmake style entering/leaving messages 3615 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3616 handle MAKEFLAGS containing only letters. 3617 o when overriding a GLOBAL variable on the command line, 3618 delete it from GLOBAL context so -V doesn't show the wrong 3619 value. 3620 36212013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3622 3623 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3624 3625 * Makefile (MAKE_VERSION): 20130706 3626 Merge with NetBSD make, pick up 3627 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3628 true so that CompatRunCommand() can use it, to ensure 3629 consistent behavior with jobs mode. 3630 o use MAKE_LEVEL_ENV to define the variable to propagate 3631 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3632 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3633 paths to ignore. 3634 36352013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3636 3637 * Makefile (MAKE_VERSION): 20130604 3638 Merge with NetBSD make, pick up 3639 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3640 to avoid leaking descriptors. 3641 36422013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3643 3644 * Makefile (MAKE_VERSION): 20130528 3645 Merge with NetBSD make, pick up 3646 o var.c: cleanup some left-overs in VarHash() 3647 36482013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3649 3650 * Makefile (MAKE_VERSION): 20130520 3651 generate manifest from component FILES rather than have to 3652 update FILES when mk/FILES changes. 3653 36542013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3655 3656 * Makefile (MAKE_VERSION): 20130518 3657 Merge with NetBSD make, pick up 3658 o suff.c: don't skip all processsing for .PHONY targets 3659 else wildcard srcs do not get expanded. 3660 o var.c: expand name of variable to delete if necessary. 3661 36622013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3663 3664 * Makefile (MAKE_VERSION): 20130330 3665 Merge with NetBSD make, pick up 3666 o meta.c: refine the handling of .OODATE in commands. 3667 Rather than suppress command comparison for the entire script 3668 as though .NOMETA_CMP had been used, only suppress it for the 3669 one command line. 3670 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3671 suppress comparison of a command without otherwise affecting it. 3672 o make.1: document that 3673 36742013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3675 3676 * Makefile (MAKE_VERSION): 20130321 3677 yes, not quite right but its a cooler number. 3678 Merge with NetBSD make, pick up 3679 o parse.c: fix ParseGmakeExport to be portable 3680 and add a unit-test. 3681 * meta.c: call meta_init() before makefiles are read and if built 3682 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3683 this let's makefiles test for support. 3684 Call meta_mode_init() to process .MAKE.MODE. 3685 36862013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3687 3688 * Makefile (MAKE_VERSION): 20130305 3689 Merge with NetBSD make, pick up 3690 o run .STALE: target when a dependency from .depend is missing. 3691 o job.c: add Job_RunTarget() for the above and .BEGIN 3692 36932013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3694 3695 * Makefile (MAKE_VERSION): 20130303 3696 Merge with NetBSD make, pick up 3697 o main.c: set .MAKE.OS to utsname.sysname 3698 o job.c: more checks for read and poll errors 3699 o var.c: lose VarChangeCase() saves 4% time 3700 37012013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3702 3703 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3704 want to use MAKEOBJDIR 3705 37062013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3707 3708 * Merge with NetBSD make, pick up 3709 o make.1: more info on how shell commands are handled. 3710 o job.c,main.c: detect write errors to job pipes. 3711 37122013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3713 3714 * Makefile (MAKE_VERSION): 20130123 3715 Merge with NetBSD make, pick up 3716 o meta.c: if script uses .OODATE and meta_oodate() decides 3717 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3718 o var.c: in debug output indicate which variabale modifiers 3719 apply to. 3720 o remove Check_Cwd logic the makefiles have been fixed. 3721 37222012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3723 3724 * makefile.in: add a simple makefile for folk who insist on 3725 ./configure; make; make install 3726 it just runs boot-strap 3727 * include mk/* to accommodate the above 3728 * boot-strap: re-work to accommodate the above 3729 mksrc defaults to $Mydir/mk 3730 allow op={configure,build,install,clean,all} 3731 add options to facilitate install 3732 * Makefile.config.in: just the bits set by configure 3733 * Makefile: bump version to 20121212 3734 abandon Makefile.in (NetBSD Makefile) 3735 leverage mk/* instead 3736 * configure.in: ensure srcdir is absolute 3737 37382012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3739 3740 * Makefile.in (MAKE_VERSION): 20121111 3741 fix generation of bmake.cat1 3742 37432012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3744 3745 * Makefile.in (MAKE_VERSION): 20121109 3746 Merge with NetBSD make, pick up 3747 o make.c: MakeBuildChild: return 0 so search continues if a 3748 .ORDER dependency is detected. 3749 o unit-tests/order: test the above 3750 37512012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3752 3753 * Makefile.in (MAKE_VERSION): 20121102 3754 Merge with NetBSD make, pick up 3755 o cond.c: allow cond_state[] to grow. 3756 In meta mode with a very large tree, we can hit the limit 3757 while processing dirdeps. 3758 37592012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3760 3761 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3762 37632012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3764 3765 * Makefile.in (MAKE_VERSION): 20121010 3766 o protect syntax that only bmake parses correctly. 3767 o remove auto setting of FORCE_MACHINE, use configure's 3768 --with-force-machine=whatever if that is desired. 3769 37702012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3771 3772 * Makefile.in: do not lose history from make.1 when generating bmake.1 3773 37742012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3775 3776 * Makefile.in (MAKE_VERSION): 20121007 3777 Merge with NetBSD make, pick up 3778 o compat.c: ignore empty commands - same as jobs mode. 3779 o make.1: document meta chars that cause use of shell 3780 37812012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3782 3783 * Makefile.in (MAKE_VERSION): bump version to 20120911 3784 * bsd.after-import.mk: include Makefile.inc early and allow it to 3785 override PROG 3786 37872012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3788 3789 * Makefile.in (MAKE_VERSION): bump version to 20120831 3790 Merge with NetBSD make, pick up 3791 o cast sizeof() to int for comparison 3792 o minor make.1 tweak 3793 37942012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3795 3796 * Makefile.in (MAKE_VERSION): bump version to 20120830 3797 Merge with NetBSD make, pick up 3798 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3799 o debug flag -dV causes -V to show raw value regardless. 3800 38012012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3802 3803 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3804 gets SRCTOP set. 3805 38062012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3807 3808 * Makefile.in (MAKE_VERSION): bump version to 20120704 3809 Merge with NetBSD make, pick up 3810 o Job_ParseShell should call Shell_Init if it has been 3811 previously called. 3812 * Makefile.in: set USE_META based on configure result. 3813 also .PARSEDIR is safer indicator of bmake. 3814 38152012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3816 3817 * Makefile.in: bump version to 20120626 3818 ensure CPPFLAGS is in CFLAGS 3819 * meta.c: avoid nested externs 3820 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3821 38222012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3823 3824 * Makefile.in (MAKE_VERSION): bump version to 20120620 3825 Merge with NetBSD make, pick up 3826 o make_malloc.c: avoid including make_malloc.h again 3827 3828 * Makefile.in: avoid bmake only syntax or protect with 3829 .if defined(.MAKE.LEVEL) 3830 * bsd.after-import.mk: replace .-include with .sinclude 3831 ensure? SRCTOP gets a value 3832 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3833 38342012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3835 3836 * Makefile.in (MAKE_VERSION): bump version to 20120612 3837 Merge with NetBSD make, pick up 3838 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3839 for greater portability. 3840 o unit-tests/forloop: check that .for works as expected wrt 3841 number of times and with "quoted strings". 3842 38432012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3844 3845 * Makefile.in (MAKE_VERSION): bump version to 20120606 3846 Merge with NetBSD make, pick up 3847 o compat.c: use kill(2) rather than raise(3). 3848 * configure.in: look for sys/dev/filemon 3849 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3850 and pass BOOTSTRAP_XTRAS to boot-strap. 3851 38522012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3853 3854 * Makefile.in (MAKE_VERSION): bump version to 20120604 3855 Merge with NetBSD make, pick up 3856 o util.c and var.c share same var for tracking if environ 3857 has been reallocated. 3858 o util.c provide getenv with setenv. 3859 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3860 when the shell actively strips .MAKE.* from the environment. 3861 We still refer to the variable always as .MAKE.LEVEL 3862 * util.c fix bug in findenv() was finding prefix of name. 3863 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3864 results in more reliable termination of all activity on many 3865 platforms. 3866 38672012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3868 3869 * Makefile.in (MAKE_VERSION): bump version to 20120602 3870 Merge with NetBSD make, pick up 3871 o for.c: handle quoted items in .for list 3872 38732012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3874 3875 * Makefile.in (MAKE_VERSION): bump version to 20120530 3876 Merge with NetBSD make, pick up 3877 o compat.c: ignore empty command. 3878 38792012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3880 3881 * Makefile.in (MAKE_VERSION): bump version to 20120524 3882 * FILES: add bsd.after-import.mk: 3883 A simple means of integrating bmake into a BSD build system. 3884 38852012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3886 3887 * Makefile.in (MAKE_VERSION): bump version to 20120520 3888 Merge with NetBSD make, pick up 3889 o increased limit for nested conditionals. 3890 38912012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3892 3893 * Makefile.in (MAKE_VERSION): bump version to 20120518 3894 Merge with NetBSD make, pick up 3895 o use _exit(2) in signal hanlder 3896 o Don't use the [dir] cache when building nodes that might have 3897 changed since the last exec. 3898 o Avoid nested extern declaration warnings. 3899 39002012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3901 3902 * meta.c (fgetLine): avoid %z - not portable. 3903 * parse.c: Since we moved include of sys/mman.h 3904 and def's of MAP_COPY etc. we got dups from a merge. 3905 39062012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3907 3908 * Makefile.in (MAKE_VERSION): bump version to 20120420 3909 Merge with NetBSD make, pick up 3910 o restore duplicate supression in .MAKE.MAKEFILES 3911 runtime saving can be significant. 3912 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3913 consumption up to 20%. 3914 39152012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3916 3917 * Makefile.in (MAKE_VERSION): bump version to 20120420 3918 Merge with NetBSD make, pick up 3919 o remove duplicate supression in .MAKE.MAKEFILES 3920 o improved dir cache behavior 3921 o gmake'ish export command 3922 39232012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3924 3925 * Makefile.in (MAKE_VERSION): bump version to 20120325 3926 Merge with NetBSD make, pick up 3927 o fix parsing of :[#] in conditionals. 3928 39292012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3930 3931 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3932 since some systems cannot cope with .Nx <version> 3933 39342011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3935 3936 * Makefile.in (MAKE_VERSION): bump version to 20111111 3937 Merge with NetBSD make, pick up 3938 o debug output for .PARSEDIR and .PARSEFILE 3939 39402011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3941 3942 * Makefile.in (MAKE_VERSION): bump version to 20111010 3943 39442011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3945 3946 * boot-strap: check for an expected file in the dirs we look for. 3947 * make-bootstrap.sh: pass on LDSTATIC 3948 39492011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3950 3951 * Makefile.in (MAKE_VERSION): bump version to 20111001 3952 Merge with NetBSD make, pick up 3953 o ensure .PREFIX is set for .PHONY 3954 and .TARGET set for .PHONY run via .END 3955 o __dead used consistently 3956 39572011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3958 3959 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3960 39612011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3962 3963 * Makefile.in (MAKE_VERSION): bump version to 20110905 3964 Merge with NetBSD make, pick up 3965 o meta_oodate: ignore makeDependfile 3966 39672011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3968 3969 * Makefile.in (MAKE_VERSION): bump version to 20110828 3970 Merge with NetBSD make, pick up 3971 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3972 as SILENT if a .meta file is created 3973 39742011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3975 3976 * Makefile.in (MAKE_VERSION): bump version to 20110818 3977 Merge with NetBSD make, pick up 3978 o in meta mode, if target flagged .META a missing .meta file 3979 means target is out-of-date 3980 o fixes for gcc 4.5 warnings 3981 o simplify job printing code 3982 39832011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3984 3985 * Makefile.in (MAKE_VERSION): bump version to 20110808 3986 Merge with NetBSD make, pick up 3987 o do not touch OP_SPECIAL targets when doing make -t 3988 39892011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3990 3991 * Makefile.in (MAKE_VERSION): bump version to 20110622 3992 Merge with NetBSD make, pick up 3993 o meta_oodate detect corrupted .meta file and declare oodate. 3994 * configure.in: add check for setsid 3995 39962011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3997 3998 * Merge with NetBSD make, pick up 3999 o unit-tests/modts now works on MirBSD 4000 40012011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 4002 4003 * Makefile.in (MAKE_VERSION): bump version to 20110606 4004 Merge with NetBSD make, pick up 4005 o ApplyModifiers: when we parse a variable which is not 4006 the entire modifier string, or not followed by ':', do not 4007 consider it as containing modifiers. 4008 o loadfile: ensure newline at end of mapped file. 4009 40102011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 4011 4012 * Makefile.in (MAKE_VERSION): bump version to 20110505 4013 Merge with NetBSD make, pick up 4014 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 4015 of make's control. In meta mode, any generated file within 4016 said bailiwick, which is found to be missing, causes current 4017 target to be out-of-date. 4018 40192011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 4020 4021 * Makefile.in (MAKE_VERSION): bump version to 20110411 4022 Merge with NetBSD make, pick up 4023 o when long modifiers fail to match, check sysV style. 4024 - add a test case 4025 40262011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 4027 4028 * Makefile.in (MAKE_VERSION): bump version to 20110410 4029 Merge with NetBSD make, pick up 4030 o :hash - cheap 32bit hash of value 4031 o :localtime, :gmtime - use value as format string for strftime. 4032 40332011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 4034 4035 * Makefile.in (MAKE_VERSION): bump version to 20110330 4036 mostly because its a cooler version. 4037 Merge with NetBSD make, pick up 4038 o NetBSD tags for meta.[ch] 4039 o job.c call meta_job_finish() after meta_job_error(). 4040 o meta_job_error() should call meta_job_finish() to ensure 4041 .meta file is closed, and safe to copy - if .ERROR target wants. 4042 meta_job_finish() is safe to call repeatedly. 4043 40442011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 4045 4046 * unit-tests/modts: use printf if it is a builtin, 4047 to save us from MirBSD 4048 4049 * Makefile.in (MAKE_VERSION): bump version to 20110329 4050 Merge with NetBSD make, pick up 4051 o fix for use after free() in CondDoExists(). 4052 o meta_oodate() report extra commands and return earlier. 4053 40542011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 4055 4056 * Makefile.in (MAKE_VERSION): bump version to 20110327 4057 Merge with NetBSD make, pick up 4058 o meta.c, if .MAKE.MODE contains curdirOk=yes 4059 allow creating .meta files in .CURDIR 4060 * boot-strap (TOOL_DIFF): aparently at least on linux distro 4061 formats the output of 'type' differently - so eat any "()" 4062 40632011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 4064 4065 * Makefile.in (MAKE_VERSION): bump version to 20110306 4066 Merge with NetBSD make, pick up 4067 o meta.c, only do getcwd() once 4068 40692011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 4070 4071 * Makefile.in (MAKE_VERSION): bump version to 20110305 4072 Merge with NetBSD make, pick up 4073 o correct sysV substitution handling of empty lhs and variable 4074 o correct exists() check for dir with trailing / 4075 o correct handling of modifiers for non-existant variables 4076 during evaluation of conditionals. 4077 o ensure MAP_FILE is defined. 4078 o meta.c use curdir[] now exported by main.c 4079 40802011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 4081 4082 * Makefile.in (MAKE_VERSION): bump version to 20110225 4083 Merge with NetBSD make, pick up 4084 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 4085 makefiles have been read. 4086 o fix example of :? modifier in man page. 4087 40882011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 4089 4090 * Makefile.in (MAKE_VERSION): bump version to 20110214 4091 Merge with NetBSD make, pick up 4092 o meta.c handle realpath() failing when generating meta file 4093 name. 4094 4095 * sigcompat.c: convert to ansi so we can use higher warning levels. 4096 4097 40982011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 4099 4100 * Makefile.in (MAKE_VERSION): bump version to 20110207 4101 Merge with NetBSD make, pick up 4102 o fix for bug in meta mode. 4103 41042011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 4105 4106 * parse.c: SunOS 5.8 at least does not have MAP_FILE 4107 41082011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 4109 4110 * Makefile.in (MAKE_VERSION): bump version to 20110101 4111 Merge with NetBSD make, pick up 4112 o use mmap(2) if available, for reading makefiles 4113 41142010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 4115 4116 * Makefile.in (MAKE_VERSION): bump version to 20101215 4117 Merge with NetBSD make, pick up 4118 o ensure meta_job_error() does not report a previous .meta file 4119 as being culprit. 4120 41212010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 4122 4123 * Makefile.in (MAKE_VERSION): bump version to 20101210 4124 Merge with NetBSD make, pick up 4125 o meta_oodate: track cwd per process, and only consider target 4126 out-of-date if missing file is outside make's CWD. 4127 Ignore files in /tmp/ etc. 4128 o to ensure unit-tests results match, need to control LC_ALL 4129 as well as LANG. 4130 o fix for parsing bug in var.c 4131 41322010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 4133 4134 * Makefile.in (MAKE_VERSION): bump version to 20101126 4135 Merge with NetBSD make, pick up 4136 o if stale dependency is an IMPSRC, search via .PATH 4137 o meta_oodate: if a referenced file is missing, target is 4138 out-of-date. 4139 o meta_oodate: if a target uses .OODATE in its commands, 4140 it (.OODATE) needs to be recomputed. 4141 o keep a pointer to youngest child node, rather than just its 4142 mtime. 4143 41442010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 4145 4146 * Makefile.in (MAKE_VERSION): bump version to 20101101 4147 41482010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 4149 4150 * machine.sh: like os.sh, 4151 allow for uname -p producing useless drivel 4152 41532010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 4154 4155 * boot-strap: document configure knobs for meta and filemon. 4156 4157 * Makefile.in (MAKE_VERSION): bump version to 20100911 4158 Merge with NetBSD make, pick up 4159 o meta.c - meta mode 4160 4161 * make-bootstrap.sh.in: handle meta.c 4162 * configure.in: add knobs for use_meta and filemon_h 4163 also, look for dirname, str[e]sep and strlcpy 4164 * util.c: add simple err[x] and warn[x] 4165 41662010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 4167 4168 * boot-strap (TOOL_DIFF): set this to ensure tests use 4169 the same version of diff that configure tested 4170 4171 * Makefile.in (MAKE_VERSION): bump version to 20100808 4172 Merge with NetBSD make, pick up 4173 o in jobs mode, when we discover we cannot make something, 4174 call PrintOnError before exit. 4175 41762010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 4177 4178 * Makefile.in (MAKE_VERSION): bump version to 20100806 4179 Merge with NetBSD make, pick up 4180 o formatting fixes for ignored errors 4181 o ensure jobs are cleaned up regardless of where wait() was called. 4182 41832010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 4184 4185 * Makefile.in (MAKE_VERSION): bump version to 20100618 4186 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 4187 41882010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 4189 4190 * Makefile.in (MAKE_VERSION): bump version to 20100616 4191 Merge with NetBSD make, pick up 4192 o man page update 4193 o call PrintOnError from JobFinish when we detect an error we 4194 are not ignoring. 4195 41962010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 4197 4198 * Makefile.in (MAKE_VERSION): bump version to 20100606 4199 Merge with NetBSD make, pick up 4200 o man page update 4201 42022010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 4203 4204 * Makefile.in (MAKE_VERSION): bump version to 20100605 4205 Merge with NetBSD make, pick up 4206 o use bmake_signal() which is a wrapper around sigaction() 4207 in place of signal() 4208 o add .export-env to allow exporting variables to environment 4209 without tracking (so no re-export when the internal value is 4210 changed). 4211 42122010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 4213 4214 * Makefile.in (MAKE_VERSION): bump version to 20100524 4215 Merge with NetBSD make, pick up 4216 o fix for .info et al being greedy. 4217 42182010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 4219 4220 * Makefile.in (MAKE_VERSION): bump version to 20100520 4221 Merge with NetBSD make, pick up 4222 o back to using realpath on argv[0] 4223 but only if contains '/' and does not start with '/'. 4224 42252010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 4226 4227 * boot-strap: use absolute path for bmake when running tests. 4228 4229 * Makefile.in (MAKE_VERSION): bump version to 20100510 4230 Merge with NetBSD make, pick up 4231 o revert use of realpath on argv[0] 4232 too many corner cases. 4233 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 4234 42352010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 4236 4237 * Makefile.in (MAKE_VERSION): bump version to 20100505 4238 Merge with NetBSD make, pick up 4239 o fix for missed SIGCHLD when compiled with SunPRO 4240 actually for bmake, defining FORCE_POSIX_SIGNALS would have 4241 done the job. 4242 42432010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 4244 4245 * Makefile.in (MAKE_VERSION): bump version to 20100430 4246 Merge with NetBSD make, pick up 4247 o fflush stdout before writing to stdout 4248 42492010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 4250 4251 * Makefile.in (MAKE_VERSION): bump version to 20100423 4252 Merge with NetBSD make, pick up 4253 o updated unit tests for Haiku (this time for sure). 4254 * boot-strap: based on patch from joerg 4255 honor --with-default-sys-path better. 4256 * boot-strap: remove mention of --with-prefix-sys-path 4257 42582010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 4259 4260 * Makefile.in (MAKE_VERSION): bump version to 20100422 4261 * Merge with NetBSD make, pick up 4262 o fix for vfork() on Darwin. 4263 o fix for bogus $TMPDIR. 4264 o set .MAKE.MODE=compat for -B 4265 o set .MAKE.JOBS=max_jobs for -j max_jobs 4266 o allow unit-tests to run without any *.mk 4267 o unit-tests/modmisc be more conservative in dirs presumed to exist. 4268 * boot-strap: ignore /usr/share/mk except on NetBSD. 4269 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 4270 ensure sort(1) behaves as expected. 4271 42722010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 4273 4274 * boot-strap: add FindHereOrAbove so we can use -m .../mk 4275 42762010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 4277 4278 * Makefile.in (MAKE_VERSION): bump version to 20100420 4279 * Merge with NetBSD make, pick up 4280 o fix for variable realpath() behavior. 4281 we have to stat(2) the result to be sure. 4282 o fix for .export (all) when nested vars use :sh 4283 42842010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 4285 4286 * Makefile.in (MAKE_VERSION): bump version to 20100414 4287 * Merge with NetBSD make, pick up 4288 o use realpath to resolve argv[0] (for .MAKE) if needed. 4289 o add realpath from libc. 4290 o add :tA to resolve variable via realpath(3) if possible. 4291 42922010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 4293 4294 * Makefile.in (MAKE_VERSION): bump version to 20100408 4295 * Merge with NetBSD make, pick up 4296 o unit tests for .ERROR, .error 4297 o fix for .ERROR to ensure it cannot be default target. 4298 42992010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 4300 4301 * Makefile.in (MAKE_VERSION): bump version to 20100406 4302 * Merge with NetBSD make, pick up 4303 o fix for compat mode "Error code" going to debug_file. 4304 o fix for .ALLSRC being populated twice. 4305 o support for .info, .warning and .error directives 4306 o .MAKE.MODE to control make's operational mode 4307 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 4308 name(s). 4309 o .MAKE.DEPENDFILE to control the name of the depend file 4310 o .ERROR target - run on failure. 4311 43122010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 4313 4314 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 4315 4316 * os.sh,arch.c: patch for Haiku from joerg at netbsd 4317 43182010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 4319 4320 * Makefile.in (MAKE_VERSION): bump version to 20100222 4321 * Merge with NetBSD make, pick up 4322 o better error msg for .for with mutiple inter vars 4323 4324 * boot-strap: 4325 o use make-bootstrap.sh from joerg at netbsd 4326 to avoid the need for a native make when bootstrapping. 4327 o add "" everywhere ;-) 4328 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 4329 otherwise the pre-formated version. 4330 43312010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 4332 4333 * Makefile.in (MAKE_VERSION): bump version to 20100102 4334 * Merge with NetBSD make, pick up: 4335 o fix for -m .../ 4336 43372009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 4338 4339 * Makefile.in (MAKE_VERSION): bump version to 20091118 4340 * Merge with NetBSD make, pick up: 4341 o .unexport 4342 o report lines that start with '.' and should have ':' 4343 (catch typo's of .el*if). 4344 43452009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4346 4347 * configure.in: Ensure that srcdir and mksrc are absolute paths. 4348 43492009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4350 4351 * Makefile.in (MAKE_VERSION): fix version to 20091007 4352 43532009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 4354 4355 * Makefile.in (MAKE_VERSION): bump version to 200910007 4356 * Merge with NetBSD make, pick up: 4357 o fix for parsing of :S;...;...; applied to .for loop iterator 4358 appearing in a dependency line. 4359 43602009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4361 4362 * Makefile.in (MAKE_VERSION): bump version to 20090909 4363 * Merge with NetBSD make, pick up: 4364 o fix for -C, .CURDIR and .OBJDIR 4365 * boot-strap: 4366 o allow share_dir to be set independent of prefix. 4367 o select default share_dir better when prefix ends in $HOST_TARGET 4368 o if FORCE_BSD_MK etc were set, include them in the suggested 4369 install-mk command. 4370 43712009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 4372 4373 * Makefile.in (MAKE_VERSION): bump version to 20090908 4374 * Merge with NetBSD make, pick up: 4375 o .MAKE.LEVEL for recursion tracking 4376 o fix for :M scanning \: 4377 43782009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4379 4380 * configure.in: Don't -D__EXTENSIONS__ if 4381 AC_USE_SYSTEM_EXTENSIONS says "no". 4382 43832009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 4384 4385 * Makefile.in (MAKE_VERSION): bump version to 20090826 4386 Simplify MAKE_VERSION to just the bare date. 4387 * Merge with NetBSD make, pick up: 4388 o -C directory support. 4389 o support for SIGINFO 4390 o use $TMPDIR for temp files. 4391 o child of vfork should be careful about modifying parent's state. 4392 4393 43942009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 4395 4396 * Appy some patches for MiNT from David Brownlee 4397 43982009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 4399 4400 * Makefile.in (BMAKE_VERSION): bump version to 20090222 4401 * Merge with NetBSD make, pick up: 4402 o Possible null pointer de-ref in Var_Set. 4403 44042009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 4405 4406 * Makefile.in (BMAKE_VERSION): bump version to 20090204 4407 * Merge with NetBSD make, pick up: 4408 o bmake_malloc et al moved to their own .c 4409 o Count both () and {} when looking for the end of a :M pattern 4410 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 4411 o strlist.c - functions for processing extendable arrays of pointers to strings. 4412 o ClientData replaced with void *, so const void * can be used. 4413 o New debug flag C for DEBUG_CWD 4414 44152008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 4416 4417 * Makefile.in (BMAKE_VERSION): bump version to 20081111 4418 Apply patch from Joerg Sonnenberge to 4419 configure.in: 4420 o remove some redundant checks 4421 o check for emlloc etc only in libutil and require the whole family. 4422 util.c: 4423 o remove [v]asprintf which is no longer used. 4424 44252008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4426 4427 * Makefile.in (BMAKE_VERSION): bump version to 20081101 4428 * Merge with NetBSD make, pick up: 4429 o util.c: avoid use of putenv() - christos 4430 44312008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4432 4433 * Makefile.in (BMAKE_VERSION): bump version to 20081030 4434 pick up man page tweaks. 4435 44362008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 4437 4438 * Makefile.in: move processing of LIBOBJS to after is definition! 4439 thus we'll have getenv.c in SRCS only if needed. 4440 4441 * make.1: add examples of how to use :? 4442 4443 * Makefile.in (BMAKE_VERSION): bump version to 20081029 4444 * Merge with NetBSD make, pick up: 4445 o fix for .END processing with -j 4446 o segfault from Parse_Error when no makefile is open 4447 o handle numeric expressions in any variable expansion 4448 o debug output now defaults to stderr, -dF to change it - apb 4449 o make now uses bmake_malloc etc so that it can build natively 4450 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 4451 44522008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 4453 4454 * Makefile.in (BMAKE_VERSION): bump version to 20080808 4455 * Merge with NetBSD make, pick up: 4456 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 4457 long lines in Makefiles 4458 o optimizations for VarQuote by joerg 4459 o fix for PR/38756: dominik: make dumps core on invalid makefile 4460 44612008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 4462 4463 * Makefile.in (BMAKE_VERSION): bump version to 20080515 4464 * Merge with NetBSD make, pick up: 4465 o fix skip setting vars in VAR_GLOBAL context, to handle 4466 cases where VAR_CMD is used for other than command line vars. 4467 44682008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 4469 4470 * boot-strap (make_version): we may need to look in 4471 $prefix/share/mk for sys.mk 4472 4473 * Makefile.in (BMAKE_VERSION): bump version to 20080514 4474 * Merge with NetBSD make, pick up: 4475 o skip setting vars in VAR_GLOBAL context, when already set in 4476 VAR_CMD which takes precedence. 4477 44782008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 4479 4480 * Makefile.in (BMAKE_VERSION): bump version to 20080330 4481 * Merge with NetBSD make, pick up: 4482 o fix for ?= when LHS contains variable reference. 4483 44842008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4485 4486 * merge some patches from NetBSD pkgsrc. 4487 4488 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 4489 the MAKSYSPATH used during bootstrap. 4490 4491 * Makefile.in (BMAKE_VERSION): bump version to 20080215 4492 * Merge with NetBSD make, pick up: 4493 o warn if non-space chars follow 'empty' in a conditional. 4494 44952008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4496 4497 * Makefile.in (BMAKE_VERSION): bump version to 20080118 4498 * Merge with NetBSD make, pick up: 4499 o consider dependencies read from .depend as optional - dsl 4500 o remember when buffer for reading makefile grows - dsl 4501 o add -dl (aka LOUD) - David O'Brien 4502 45032007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 4504 4505 * Makefile.in (BMAKE_VERSION): bump version to 20071022 4506 * Merge with NetBSD make, pick up: 4507 o Allow .PATH<suffix> to be used for .include "" 4508 4509 * boot-strap: source default settings from .bmake-boot-strap.rc 4510 45112007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 4512 4513 * Makefile.in: fix maninstall on various systems 4514 provided that our man.mk is used. 4515 For non-BSD systems we install the preformatted page 4516 into $MANDIR/cat1 4517 45182007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 4519 4520 * boot-strap: make bmake.1 too, so maninstall works. 4521 45222007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 4523 4524 * Makefile.in (BMAKE_VERSION): bump version to 20071014 4525 * Merge with NetBSD make, pick up: 4526 o revamped handling of defshell - configure no longer needs to 4527 know the content of the shells array - apb 4528 o stop Var_Subst modifying its input - apb 4529 o avoid calling ParseTrackInput too often - dsl 4530 45312007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4532 4533 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4534 * Merge with NetBSD make, pick up: 4535 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4536 4537 * sigcompat.c: some tweaks for HP-UX 11.x based on 4538 patch from Tobias Nygren 4539 4540 * configure.in: update handling of --with-defshell to match 4541 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4542 will now do what one might hope - provided the chosen shell 4543 behaves enough like sh. 4544 45452007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4546 4547 * Makefile.in (BMAKE_VERSION): bump to 20071008 4548 * Merge with NetBSD make, pick up: 4549 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4550 o .export/.MAKE.EXPORTED - export of variables - sjg 4551 o .MAKE.MAKEFILES - track all makefiles read - sjg 4552 o performance improvements - dsl 4553 o revamp parallel job scheduling - dsl 4554 45552006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4556 4557 * Makefile.in (BMAKE_VERSION): bump to 20060728 4558 * Merge with NetBSD make, pick up: 4559 o extra debug info during variable and cond processing - sjg 4560 o shell definition now covers newline - rillig 4561 o minor mem leak in PrintOnError - sjg 4562 45632006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4564 4565 * Makefile.in (BMAKE_VERSION): bump to 20060511 4566 * Merge with NetBSD make, pick up: 4567 o more memory leaks - coverity 4568 o possible overflow in ArchFindMember - coverity 4569 o extract variable modifier code out of Var_Parse() 4570 so it can be called recursively - sjg 4571 o unit-tests/moderrs - sjg 4572 45732006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4574 4575 * Makefile.in (BMAKE_VERSION): bump to 20060412 4576 * Merge with NetBSD make, pick up: 4577 o fixes for some memory leaks - coverity 4578 o only read first sys.mk etc when searching sysIncPath - sjg 4579 4580 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4581 setting ${MAKEFILE} - OBATA Akio 4582 45832006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4584 4585 * Makefile.in (BMAKE_VERSION): bump to 20060318 4586 * Merge with NetBSD make, pick up: 4587 o cleanup of job.c to remove remote handling, distcc is more 4588 useful and this code was likely bit-rotting - dsl 4589 o fix for :P modifier - sjg 4590 * boot-strap: set default prefix to something reasonable 4591 (for me anyway). 4592 45932006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4594 4595 * Makefile.in (BMAKE_VERSION): bump to 20060301 4596 * Merge with NetBSD make, pick up: 4597 o make .WAIT apply recursively, document and test case - apb 4598 o allow variable modifiers in a variable appear anywhere in 4599 modifier list, document and test case - sjg 4600 46012006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4602 4603 * Makefile.in (BMAKE_VERSION): bump to 20060222 4604 * Merge with NetBSD make, pick up: 4605 o improved job token handling - dsl 4606 o SIG_DFL the correct signal before exec - dsl 4607 o more debug info during parsing - dsl 4608 o allow variable modifiers to be specified via variable - sjg 4609 * boot-strap: explain why we died if no mksrc 4610 46112005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4612 4613 * Makefile.in (BMAKE_VERSION): bump to 20051105 4614 * configure.in: always set default_sys_path 4615 default is ${prefix}/share/mk 4616 - remove prefix_sys_path, anyone wanting more than above 4617 needs to set it manually. 4618 46192005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4620 4621 * boot-strap: make this a bit easier for pkgsrc folk. 4622 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4623 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4624 46252005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4626 4627 * Makefile.in (BMAKE_VERSION): bump to 20051102 4628 * job.c (JobFinish): fix likely ancient merge lossage 4629 fix from Todd Vierling. 4630 * boot-strap (srcdir): allow setting mksrc=none 4631 46322005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4633 4634 * Makefile.in (BMAKE_VERSION): bump to 20051031 4635 * ranlib.h: skip on OSF too. 4636 (NetBSD PR 31864) 4637 46382005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4639 4640 * Makefile.in (BMAKE_VERSION): bump to 20051002 4641 fix a silly typo 4642 46432005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4644 4645 * Makefile.in (BMAKE_VERSION): bump to 20051001 4646 support for UnixWare and some other systems, 4647 based on patches from pkgsrc/bootstrap 4648 46492005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4650 4651 * Makefile.in (BMAKE_VERSION): bump to 20050901 4652 * Merge with NetBSD make, pick up: 4653 o possible parse error causing us to wander off. 4654 46552005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4656 4657 * Makefile.in (BMAKE_VERSION): bump to 20050606 4658 * Merge with NetBSD make, pick up: 4659 o :0x modifier for randomizing a list 4660 o fixes for a number of -Wuninitialized issues. 4661 46622005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4663 4664 * Makefile.in (BMAKE_VERSION): bump to 20050530 4665 * Merge with NetBSD make, pick up: 4666 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4667 4668 * README: was seriously out of date. 4669 46702005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4671 4672 * Important to use .MAKE rather than MAKE. 4673 46742005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4675 4676 * Makefile.in (BMAKE_VERSION): bump to 20050315 4677 * Merge with NetBSD make, pick up: 4678 o don't mistake .elsefoo for .else 4679 o use suffix-specific search path correctly 4680 o bunch of style nits 4681 46822004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4683 4684 * boot-strap: 4685 o ensure that args to --src and --with-mksrc 4686 are resolved before giving them to configure. 4687 o add -o "objdir" so that builder can control it, 4688 default is $OS as determined by os.sh 4689 o add -q to suppress all the install instructions. 4690 46912004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4692 4693 * Remove __IDSTRING() 4694 4695 * Makefile.in (BMAKE_VERSION): bump to 20040508 4696 * Merge with NetBSD make, pick up: 4697 o posix fixes 4698 - remove '-e' from compat mode 4699 - add support for '+' command-line prefix. 4700 o fix for handling '--' on command-line. 4701 o fix include in lst.lib/lstInt.h to simplify '-I's 4702 o we also picked up replacement of MAKE_BOOTSTRAP 4703 with !MAKE_NATIVE which is a noop, but possibly confusing. 4704 47052004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4706 4707 * Makefile.in (BMAKE_VERSION): bump to 20040414 4708 * Merge with NetBSD make, pick up: 4709 o allow quoted strings on lhs of conditionals 4710 o issue warning when extra .else is seen 4711 o print line numer when errors encountered during parsing from 4712 string. 4713 47142004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4715 4716 * Makefile.in (BMAKE_VERSION): bump to 20040220 4717 * Merge with NetBSD make, pick up: 4718 o fix for old :M parsing bug. 4719 o re-jigged unit-tests 4720 47212004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4722 4723 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4724 so that './bmake -f Makefile test' works. 4725 47262004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4727 4728 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4729 * Merge with NetBSD make, pick up: 4730 o search upwards for *.mk 4731 o fix for double free of var substitution buffers 4732 o use of getopt replaced with custom code, since the usage 4733 (re-scanning) isn't posix compatible. 4734 47352004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4736 4737 * arch.c: don't include ranlib.h on ELF systems 4738 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4739 47402004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4741 4742 * Makefile.in (BMAKE_VERSION): bump to 20040118 4743 4744 * boot-strap (while): export vars we assign to on cmdline 4745 * unit-test/Makefile.in: ternary is .PHONY 4746 47472004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4748 4749 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4750 * Merge with NetBSD make, pick up: 4751 o fix for ternary modifier 4752 47532004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4754 4755 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4756 * Merge with NetBSD make, pick up: 4757 o fix for cond.c to handle compound expressions better 4758 o variable expansion within sysV style replacements 4759 47602003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4761 4762 * Make portable snprintf safer - output to /dev/null first to 4763 check space needed. 4764 4765 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4766 * Merge with NetBSD make, pick up: 4767 o -dg3 to show input graph when things go wrong. 4768 o explicitly look for makefiles in objdir if not found in curdir so 4769 that errors in .depend etc will be reported accurarely. 4770 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4771 instead as it more accurately reflects the expected behavior and 4772 is more consistently implemented. 4773 o avoid use of asprintf. 4774 47752003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4776 4777 * util.c: Add asprintf and vasprintf. 4778 4779 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4780 * Merge with NetBSD make, pick up: 4781 :[] modifier - allows picking words from a variable. 4782 :tW modifier - allows treating value as one big word. 4783 W flag for :C and :S - allows treating value as one big word. 4784 47852003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4786 4787 * Merge with NetBSD make 4788 pick up -de flag to enable printing failed command. 4789 don't skip 1st two dir entries (normally . and ..) since 4790 coda does not have them. 4791 47922003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4793 4794 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4795 * Merge with NetBSD make, pick up: 4796 - changes for -V '${VAR}' to print fully expanded value 4797 cf. -V VAR 4798 - CompatRunCommand now prints the command that failed. 4799 - several files got updated 3 clause Berkeley license. 4800 48012003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4802 4803 * boot-strap: Allow setting configure args on command line. 4804 48052003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4806 4807 * configure.in: add --with-defshell to allow sh or ksh 4808 to be selected as default shell. 4809 4810 * Makefile.in: bump version to 20030731 4811 4812 * Merge with NetBSD make 4813 Pick up .SHELL spec for ksh and associate man page changes. 4814 Also compat mode now uses the same shell specs. 4815 48162003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4817 4818 * var.c (Var_Parse): ensure delim is initialized. 4819 4820 * unit-tests/Makefile.in: use single quotes to avoid problems from 4821 some shells. 4822 4823 * makefile.boot.in: 4824 Run the unit-tests as part of the bootstrap procedure. 4825 48262003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4827 4828 * unit-tests/Makefile.in: always force complaints from 4829 ${TEST_MAKE} to be from 'make'. 4830 4831 * configure.in: add check for 'diff -u' 4832 also fix some old autoconf'isms 4833 4834 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4835 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4836 4837 * Merge with NetBSD make 4838 Pick up fix for :ts parsing error in some cases. 4839 Pick unit-tests. 4840 48412003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4842 4843 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4844 4845 * var.c (Var_Parse): fix bug in :ts modifier, after const 4846 correctness fixes, must pass nstr to VarModify. 4847 48482003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4849 4850 * Makefile.in: BMAKE_VERSION switch to a date based version. 4851 We'll generally use the date of last import from NetBSD. 4852 4853 * Merge with NetBSD make 4854 Pick up fixes for const-correctness, now passes WARNS=3 on 4855 NetBSD. 4856 Pick up :ts modifier, allows controlling the separator used 4857 between words in variable expansion. 4858 48592003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4860 4861 * FILES: include boot-strap and os.sh 4862 4863 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4864 FreeBSD is known to be bad. 4865 4866 * makefile.boot.in (bootstrap): make this the default target. 4867 4868 * Makefile.in: bump version to 3.1.19 4869 4870 * machine.sh: avoid A-Z with tr as it is bound to lose. 4871 48722003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4873 4874 * Merge with NetBSD make 4875 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4876 Plus some doc fixes. 4877 48782003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4879 4880 * Merge with NetBSD make 4881 Pick up fix for PR/1523 - don't count a library as built, if there 4882 is no way to build it 4883 4884 * Bump version to 3.1.18 4885 48862003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4887 4888 * Merge with NetBSD make 4889 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4890 appears in src list. 4891 48922003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4893 4894 * Merge with NetBSD make (mmm 10th anniversary!) 4895 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4896 pick up -X which tells us to not export VAR=val via setenv if 4897 we are already doing so via MAKEFLAGS. This saves valuable env 4898 space on systems like Darwin. 4899 set MAKE_VERSION to 3.1.17 4900 4901 * parse.c: pix up fix for suffix rules 4902 49032003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4904 4905 * Merge with NetBSD make. 4906 pick up fix for propagating -B via MAKEFLAGS. 4907 set MAKE_VERSION to 3.1.16 4908 4909 * Apply some patches from pkgsrc-bootstrap/bmake 4910 Originally by Grant Beattie <grant@netbsd.org> 4911 I may have missed some - since they are based on bmake-3.1.12 4912 49132002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4914 4915 * makefile.boot.in (bmake): update install targets for those that 4916 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4917 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4918 4919 * bmake.cat1: update the pre-formatted man page! 4920 49212002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4922 4923 * Merge with NetBSD make. 4924 pick up fix for premature free of pointer used in call 4925 to Dir_InitCur(). 4926 set MAKE_VERSION to 3.1.15 4927 49282002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4929 4930 * configure.in: determine suitable value for MKSRC. 4931 override using --with-mksrc=PATH. 4932 4933 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4934 configs(8) will use 'sun4' as an alias for 'sparc'. 4935 49362002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4937 4938 * Merge with NetBSD make. 4939 pick up ${.PATH} 4940 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4941 set MAKE_VERSION to 3.1.14 4942 add configure checks for killpg and sys/socket.h 4943 49442002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4945 4946 * tag bmake-3-1-13 4947 4948 * makefile.boot.in (bmake): use install-mk 4949 Also setup ./mk before trying to invoke bmake.boot incase we 4950 needed install-mk to create a sys.mk for us. 4951 4952 * configure.in: If we need to add -I${srcdir}/missing, make it an 4953 absolute path so that it works for lst.lib too. 4954 4955 * make.h: always include sys/cdefs.h since we provide one if the 4956 host does not. 4957 4958 * Makefile.in (install-mk): 4959 use MKSRC/install-mk which will do the right thing. 4960 use uname -p for ARCH if possible. 4961 since install-mk will setup links bsd.prog.mk -> prog.mk if 4962 needed, just .include bsd.prog.mk 4963 4964 * Merge with NetBSD make (NetBSD-1.6) 4965 Code is ansi-C only now. 4966 Bug in handling of dotLast is fixed. 4967 Can now assign .OBJDIR and make will reset its notions of life. 4968 New modifiers :tu :tl for toUpper and toLower. 4969 4970Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4971 4972 * Merge with NetBSD make 4973 pick up fix for .END failure in compat mode. 4974 pick up fix for extra va_end() in ParseVErrorInternal. 4975 4976Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4977 4978 * configure.in: for systems that have sys/cdefs.h check if it is 4979 compatible. If not, include the one under missing, but tell it to 4980 include the native one too - necessary on Linux. 4981 4982 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4983 include_next (for gcc) to get the native sys/cdefs.h 4984 4985Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4986 4987 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4988 leaking descriptors when using -jN. 4989 4990 * job.c (JobPrintCommand): See if "curdir" exists before 4991 attempting to chdir(). Doing the chdir directly in make (when in 4992 compat mode) fails silently, so let the -jN version do the same. 4993 This can happen when building kernels in an object tree and 4994 playing clever games to reset .CURDIR. 4995 4996 * Merged with NetBSD make 4997 pick up .USEBEFORE 4998 4999Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5000 5001 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 5002 5003Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5004 5005 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 5006 us not to export the iterator variable when using VAR_CMD context. 5007 5008Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5009 5010 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 5011 its the wrong "fix". 5012 5013Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5014 5015 * Redesigned export of VAR_CMD's via MAKEFLAGS. 5016 We now simply append the variable names to .MAKEOVERRIDES, and 5017 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 5018 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 5019 Apart from fixing quoting bugs in previous version, this allows us 5020 to export vars to the environment by simply doing: 5021 .MAKEOVERRIDES+= PATH 5022 Merged again with NetBSD make, but the above is the only change. 5023 5024 * configure.in: added 5025 --disable-pwd-override disable $PWD overriding getcwd() 5026 --disable-check-make-chdir disable make trying to guess 5027 when it should automatically cd ${.CURDIR} 5028 5029 * Merge with NetBSD make, changes include: 5030 parse.c (ParseDoDependency): Spot that the syntax error is 5031 caused by an unresolved cvs/rcs conflict and say so. 5032 var.c: most of Var* functions now take a ctxt as 1st arg. 5033 now does variable substituion on rhs of sysv style modifiers. 5034 5035 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 5036 is now done here. We append the name='value' to .MAKEOVERRIDES 5037 rather than directly into MAKEFLAGS as this allows a Makefile to 5038 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 5039 very similar mechanism. Note that in adding name='value' to 5040 .MAKEOVERRIDES we do the moral equivalent of: 5041 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 5042 5043Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5044 5045 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 5046 5047 * Merged with NetBSD make 5048 make -dx can now be used to run commands via sh -x 5049 better error messages on exec failures. 5050 5051Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5052 5053 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 5054 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 5055 MACHINE etc otherwise they propagate from the previous bmake. 5056 5057 * configure.in (machine): allow --with-machine=generic to make 5058 configure use machine.sh to set MACHINE. 5059 5060 * job.c (JobInterrupt): convert to using WAIT_T and friends. 5061 5062 * Makefile.in: mention in bmake.1 that we use autoconf. 5063 5064 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 5065 5066Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5067 5068 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 5069 as that rather defeats the usefulness of ${MAKEFILE}. 5070 5071 * main.c (MainParseArgs): append command line variable assignments 5072 to MAKEFLAGS so that they get propagated to child make's. 5073 Apparently this is required POSIX behaviour? Its useful anyway. 5074 5075Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5076 5077 * compat.c (CompatRunCommand): don't use perror() since stdio may 5078 cause problems in child of vfork(). 5079 5080 * compat.c, main.c: Call PrintOnError() when we are going to bail. 5081 This routine prints out the .curdir where we stopped and will also 5082 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 5083 5084 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 5085 :@ expansion. 5086 5087 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 5088 5089 * Added RCSid's for the files we've touched. 5090 5091Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5092 5093 * configure.in: Thanks to some clues from mdb@juniper.net, 5094 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 5095 as well as what ends up in _PATH_DEFSYSPATH. We now have: 5096 5097 --with-machine=MACHINE explicitly set MACHINE 5098 --with-force-machine=MACHINE set FORCE_MACHINE 5099 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 5100 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 5101 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 5102 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 5103 5104 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 5105 5106 * makefile: added a pathetically simple makefile to drive 5107 bootstrapping. Running configure by hand is more useful. 5108 5109 * Makefile.in: added MAKE_VERSION, and reworked things to be less 5110 dependent on NetBSD bsd.*.mk 5111 5112 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 5113 _PATH_OBJDIRPREFIX for those that don't want a default. 5114 construct _PATH_DEFSYSPATH from the info we get from configure. 5115 5116 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 5117 if MAKE_VERSION is defined. 5118 5119 * compat.c: when we bail, print out the .CURDIR we were in. 5120 5121Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5122 5123 * Merged with NetBSD make 5124 5125 * var.c: fixed a bug in the handling of the modifier :P 5126 if the node as found but the path was null, we segfault trying to 5127 duplicate it. 5128 5129Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5130 5131 * Merged with NetBSD make 5132 5133 * make.c: Make_OODate's test for a library out of date was using 5134 cmtime where it should have used mtime (my bug). 5135 5136 * compat.c: Use perror() to tell us what really went wrong when we 5137 cannot exec a command. 5138 5139Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5140 5141 * Merged with NetBSD make 5142 5143Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5144 5145 * Merged with NetBSD make 5146 5147Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5148 5149 * Merged with NetBSD make 5150 5151Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5152 5153 * Merged with NetBSD make 5154 5155Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5156 5157 * util.c: don't provide signal() since we use sigcompat.c 5158 5159 * Makefile.in: added a build target. 5160 5161 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 5162 These allow some quite clever magic. 5163 5164 * main.c (main): added support for getenv(MAKESYSPATH). 5165 5166Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5167 5168 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 5169 This avoids objdir having a different value depending on how a 5170 directory was reached (via command line, or subdir.mk). 5171 5172 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 5173 5174Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5175 5176 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 5177 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 5178 I've been testing this in NetBSD's make for some weeks. 5179 5180 * Turn Makefile into Makefile.in and make it useful. 5181 5182Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5183 5184 * Imported NetBSD's -current make(1) and resolve conflicts. 5185 5186 * Applied autoconf patches from bmake v2 5187 5188 * Imported clean code base from NetBSD-1.0 5189