12026-05-08 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20260508 4 Merge with NetBSD make, pick up 5 o make.1: fix description of '-' handling in jobs-mod 6 by intenting it correctly. 7 82026-04-13 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20260406 11 Merge with NetBSD make, pick up 12 o cleanup unnecessary parens 13 14 * configure.in: add --with-save-dollars to control default for 15 .MAKE.SAVE.DOLLARS - address FreeBSD PR 294436 16 172026-03-12 Simon J Gerraty <sjg@beast.crufty.net> 18 19 * VERSION (_MAKE_VERSION): 20260313 20 Merge with NetBSD make, pick up 21 o make: ensure .MAKE.SAVE_DOLLARS is initialized so makefiles like 22 sys.vars.mk can test its value to know how to deal with macros 23 that need to save '$' during ':='. 24 25 * Makefile: default MAKE_SAVE_DOLLARS_DEFAULT to "no" 26 for traditional behavior. 27 282026-03-10 Simon J Gerraty <sjg@beast.crufty.net> 29 30 * VERSION (_MAKE_VERSION): 20260310 31 Merge with NetBSD make, pick up 32 o unit-tests ensure TEST_MAKE is absolute path 33 and tests that make symlink for ${MAKE} can run in parallel. 34 352026-03-03 Simon J Gerraty <sjg@beast.crufty.net> 36 37 * VERSION (_MAKE_VERSION): 20260303 38 Merge with NetBSD make, pick up 39 o job.c: MaybeSubMake: Look for expansion of ${.MAKE} 40 and if necessary its basename, and only match if at start of line 41 or preceded by space. 42 432026-02-28 Simon J Gerraty <sjg@beast.crufty.net> 44 45 * Makefile: mark ${PROG} and ${OBJS} as .META 46 MaybeSubMake will otherwise mistake them for sub-makes 47 48 * VERSION (_MAKE_VERSION): 20260301 49 Merge with NetBSD make, pick up 50 o job.c: MaybeSubMake: skip control chars [@+-] at start of line 51 when checking for ${MAKE} 52 532026-02-22 Simon J Gerraty <sjg@beast.crufty.net> 54 55 * VERSION (_MAKE_VERSION): 20260222 56 o mk file update 57 582026-02-16 Simon J Gerraty <sjg@beast.crufty.net> 59 60 * VERSION (_MAKE_VERSION): 20260216 61 Merge with NetBSD make, pick up 62 o minor cleanups 63 642026-02-10 Simon J Gerraty <sjg@beast.crufty.net> 65 66 * VERSION (_MAKE_VERSION): 20260210 67 Merge with NetBSD make, pick up 68 o document that multiple variables can be set on command line. 69 o move MaybeSubMake to job.c so it can be called on expanded 70 commands for more accuracy and less overhead. 71 o main.c: set .MAKE.VERSION as read-only. 72 73 * unit-tests/opt-{chdir,where-am-i}.mk: use MAKEOBJDIRPREFIX=/ 74 to avoid tripping over an unreadable /usr/obj 75 762026-02-04 Simon J Gerraty <sjg@beast.crufty.net> 77 78 * unit-tests/varname-make_stack_trace.mk: for 79 FreeBSD and similar set .MAKE.ALWAYS_PASS_JOB_QUEUE=no 80 to ensure we get the expected errors. 81 82 * VERSION (_MAKE_VERSION): 20260202 83 Merge with NetBSD make, pick up 84 o on error avoid duplicate stack trace to stderr 85 862026-01-11 Simon J Gerraty <sjg@beast.crufty.net> 87 88 * VERSION (_MAKE_VERSION): 20260111 89 Merge with NetBSD make, pick up 90 o var.c: add explicit check for empty re as not all 91 regex libs throw an error as expected, in this case. 92 932026-01-10 Simon J Gerraty <sjg@beast.crufty.net> 94 95 * VERSION (_MAKE_VERSION): 20260110 96 Merge with NetBSD make, pick up 97 o minor cleanups 98 992025-11-15 Simon J Gerraty <sjg@beast.crufty.net> 100 101 * boot-strap: unset more things from env and save a copy 102 to env.out for debugging. 103 1042025-11-12 Simon J Gerraty <sjg@beast.crufty.net> 105 106 * VERSION (_MAKE_VERSION): 20251111 107 Merge with NetBSD make, pick up 108 o var.c: add :sh1 which only evaluates command on first reference. 109 1102025-11-11 Simon J Gerraty <sjg@beast.crufty.net> 111 112 * configure.in: Force filemon=no for Cygwin and MINGW64_NT 113 1142025-11-10 Simon J Gerraty <sjg@beast.crufty.net> 115 116 * unit-tests/Makefile: handle MINGW64_NT 117 mark some tests broken, filter others as per Cygwin. 118 1192025-10-23 Simon J Gerraty <sjg@beast.crufty.net> 120 121 * make.1: document MAKE_VERSION. 122 1232025-10-22 Simon J Gerraty <sjg@beast.crufty.net> 124 125 * VERSION (_MAKE_VERSION): 20251022 126 127 * configure.in: Add a check that lua is version 5.2 or later 128 if not we want to skip running check-expect.lua 129 1302025-09-16 Simon J Gerraty <sjg@beast.crufty.net> 131 132 * VERSION (_MAKE_VERSION): 20250916 133 Merge with NetBSD make, pick up 134 o var.c: avoid compiler warning from hexdigits 135 1362025-08-04 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * VERSION (_MAKE_VERSION): 20250804 139 Merge with NetBSD make, pick up 140 o meta.c: allow printing only partial string to meta file 141 in jobs mode, otherwise we end up with duplicated output when 142 buffer does not end in newline. 143 Add a suitable unit test. 144 1452025-07-07 Simon J Gerraty <sjg@beast.crufty.net> 146 147 * VERSION (_MAKE_VERSION): 20250707 148 Merge with NetBSD make, pick up 149 o cond.c: improve debug log message for 'exists' function. 150 complain about unfinished escape sequences or string literals. 151 1522025-07-04 Simon J Gerraty <sjg@beast.crufty.net> 153 154 * VERSION (_MAKE_VERSION): 20250704 155 Merge with NetBSD make, pick up 156 o make.1: add a DIAGNOSTICS section for make to reference. 157 o main.c: simplify the warning for invalid -J by refering to 158 manual page. 159 1602025-06-30 Simon J Gerraty <sjg@beast.crufty.net> 161 162 * VERSION (_MAKE_VERSION): 20250630 163 Merge with NetBSD make, pick up 164 o consistently use double quotes in error messages 165 o cond.c: if a condition is erroneous, skip the whole .if/.endif 166 o make_malloc.c: in cleanup mode, initialize freshly allocated memory 167 o str.c: error out on an ":M" modifier whose pattern ends with 168 backslash 169 o var.c: fix parsing of modifier parts for :gmtime and :localtime 170 add POSIX $^ support 171 1722025-06-18 Simon J Gerraty <sjg@beast.crufty.net> 173 174 * VERSION (_MAKE_VERSION): 20250618 175 Merge with NetBSD make, pick up 176 o parse.c: in a warning without location information, 177 print the stack trace 178 1792025-06-15 Simon J Gerraty <sjg@beast.crufty.net> 180 181 * VERSION (_MAKE_VERSION): 20250615 182 Merge with NetBSD make, pick up 183 o add on-demand inter-process stack traces 184 o job.c,meta.c: do not discard empty lines in the output of a command 185 o job.c: add job prefix if necessary in non-default filtered mode 186 o parse.c,var.c: skip inter-process stack trace when 187 MAKE_STACK_TRACE=no 188 1892025-06-12 Simon J Gerraty <sjg@beast.crufty.net> 190 191 * VERSION (_MAKE_VERSION): 20250612 192 Merge with NetBSD make, pick up 193 o use a common style for unexpected error messages 194 o parse.c: add program name to stack traces from sub-makes 195 add quotes to "in directory" line in stack traces 196 o var.c: check variable names for invalid characters when there 197 are no modifiers to apply. This detects and warns about gmake 198 syntax like: $(addprefix -I, $(LIST)) 199 2002025-06-09 Simon J Gerraty <sjg@beast.crufty.net> 201 202 * VERSION (_MAKE_VERSION): 20250606 203 Merge with NetBSD make, pick up 204 o main.c: fix bug in handling of output of children in jobs mode 205 2062025-05-28 Simon J Gerraty <sjg@beast.crufty.net> 207 208 * VERSION (_MAKE_VERSION): 20250528 209 Merge with NetBSD make, pick up 210 o show contents of MAKEFLAGS in the stack trace. 211 o main.c: delay warning about bogus -J flag, if we end up in 212 compat mode before the call to InitMaxJobs, the warning isn't 213 necessary. 214 2152025-05-25 Simon J Gerraty <sjg@beast.crufty.net> 216 217 * VERSION (_MAKE_VERSION): 20250525 218 Merge with NetBSD make, pick up 219 o main.c: set .CURDIR earlier so it can be reported in some errors. 220 2212025-05-20 Simon J Gerraty <sjg@beast.crufty.net> 222 223 * VERSION (_MAKE_VERSION): 20250520 224 Merge with NetBSD make, pick up 225 o rename variables, remove now-redundant comments 226 o job.c: clean up building the shell commands in parallel mode 227 remove timeout for polling in parallel mode 228 o main.c: clean up error message for malformed internal -J option 229 2302025-05-11 Simon J Gerraty <sjg@beast.crufty.net> 231 232 * VERSION (_MAKE_VERSION): 20250511 233 Merge with NetBSD make, pick up 234 o job.c: rename token pool variables to be more descriptive 235 move ContinueJobs further up, to eliminate a forward declaration 236 error out if writing to an internal pipe fails 237 clean up constant names and function names 238 use uniform debug log messages for the token pool 239 in the debug log, replace magic numbers with identifiers 240 o main.c: clean up error message for malformed internal -J option 241 o make.c: replace bitset in trace output with descriptive node 242 attributes 243 o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log 244 o var.c: fix order of error messages in the ":?" modifier 245 2462025-04-25 Simon J Gerraty <sjg@beast.crufty.net> 247 248 * VERSION (_MAKE_VERSION): 20250424 249 Merge with NetBSD make, pick up 250 o cleanup; replace unsigned int with just unsigned 251 Inline the TMPPAT macro, as it is only needed in a single place 252 o move struct Job from job.h to job.c 253 o job.c: group the code for handling the job token pool 254 avoid excessive values of -j 255 o make.c: fix grammar in debug log message 256 2572025-04-14 Simon J Gerraty <sjg@beast.crufty.net> 258 259 * VERSION (_MAKE_VERSION): 20250414 260 Merge with NetBSD make, pick up 261 o job.c: clean up job and output handling 262 o parse.c: after entering POSIX mode, don't leave it again 263 2642025-04-11 Simon J Gerraty <sjg@beast.crufty.net> 265 266 * VERSION (_MAKE_VERSION): 20250411 267 Merge with NetBSD make, pick up 268 o convert more messages to file:line: format 269 o for.c: condense code for parsing variable names in .for loops 270 2712025-04-10 Simon J Gerraty <sjg@beast.crufty.net> 272 273 * VERSION (_MAKE_VERSION): 20250410 274 Merge with NetBSD make, pick up 275 o cond.c: remove redundant error counter when parsing a condition 276 2772025-04-04 Simon J Gerraty <sjg@beast.crufty.net> 278 279 * VERSION (_MAKE_VERSION): 20250404 280 Merge with NetBSD make, pick up 281 o make.1: better document meta mode. 282 o var.c: fix error message for undefined variable in conditional. 283 2842025-03-30 Simon J Gerraty <sjg@beast.crufty.net> 285 286 * VERSION (_MAKE_VERSION): 20250330 287 Merge with NetBSD make, pick up 288 o in POSIX compatability mode, give preference to sysV style modifiers. 289 o in stack trace with details and includes, list the current file 290 o parse.c: report file location in more common file:line: format. 291 o var.c: simplify error handling for unknown modifiers 292 let the ":O" and ":t" modifiers fall back to the ":from=to" modifier 293 stop parsing after seeing an unknown modifier in an expression 294 fix error message for unclosed expression and invalid :[...] 295 add details to errors about ::= modifier 296 add details about indirect modifiers to the stack traces 297 in stack traces from target commands, add the command level 298 2992025-03-23 Simon J Gerraty <sjg@beast.crufty.net> 300 301 * VERSION (_MAKE_VERSION): 20250323 302 Merge with NetBSD make, pick up 303 o var.c: just ignore attempts to override a read-only global with 304 the same value. 305 3062025-03-08 Simon J Gerraty <sjg@beast.crufty.net> 307 308 * bsd.after-import.mk: by default generate makefiles 309 closer to BSD style. 310 311 * VERSION (_MAKE_VERSION): 20250308 312 Merge with NetBSD make, pick up 313 o clean up comments and code for parallel mode 314 o job.c: avoid SIGPIPE for children, call Job_Wait befor abort. 315 3162025-02-27 Simon J Gerraty <sjg@beast.crufty.net> 317 318 * VERSION (_MAKE_VERSION): 20250225 319 Merge with NetBSD make, pick up 320 o job.c: reliably remove targets on interrupt, 321 by passing signal to children first. 322 3232025-01-25 Simon J Gerraty <sjg@beast.crufty.net> 324 325 * VERSION (_MAKE_VERSION): 20250125 326 Merge with NetBSD make, sync up below change. 327 328 * unit-tests/Makefile: remove $TMPDIR via .END 329 to avoid failure in test on NFS - since the temp file for the 330 target script is open and thus gets renamed by the server rather 331 than removed. 332 3332025-01-20 Simon J Gerraty <sjg@beast.crufty.net> 334 335 * VERSION (_MAKE_VERSION): 20250120 336 Merge with NetBSD make, pick up 337 o use FORK_FUNCTION so it can be forced to fork when doing coverage. 338 o main.c: avoid memory allocation in error path after exec failure. 339 3402025-01-16 Simon J Gerraty <sjg@beast.crufty.net> 341 342 * VERSION (_MAKE_VERSION): 20250116 343 Merge with NetBSD make, pick up 344 o clarify that undefined expressions are allowed in dependencies 345 o simplify code for evaluating the '!=' variable assignment 346 3472025-01-11 Simon J Gerraty <sjg@beast.crufty.net> 348 349 * VERSION (_MAKE_VERSION): 20250111 350 Merge with NetBSD make, pick up 351 o replace "Malformed conditional" with "Variable is undefined" 352 when appropriate 353 3542025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 355 356 * VERSION (_MAKE_VERSION): 20250110 357 Merge with NetBSD make, pick up 358 o job.c: remove some unnecessary layers in job handling 359 o unit-tests: test expressions based on undefined variables 360 3612025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 362 363 * VERSION (_MAKE_VERSION): 20250101 364 Merge with NetBSD make, pick up 365 o var.c: reduce pointer indirections when unexporting a variable 366 3672024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 368 369 * VERSION (_MAKE_VERSION): 20241212 370 * mk/ updates 371 3722024-11-24 Simon J Gerraty <sjg@beast.crufty.net> 373 374 * VERSION (_MAKE_VERSION): 20241124 375 Merge with NetBSD make, pick up 376 o var.c: fix confusing error message when overriding a read-only 377 variable 378 3792024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 380 381 * VERSION (_MAKE_VERSION): 20241122 382 Merge with NetBSD make, pick up 383 o unit-tests/Makefile: optimize running of tests skip extra cat 384 in 99% of cases. 385 3862024-11-15 Simon J Gerraty <sjg@beast.crufty.net> 387 388 * VERSION (_MAKE_VERSION): 20241114 389 Merge with NetBSD make, pick up 390 o make.1: note that MAKEOBJPREFIX should be absolute path 391 also that it can be set via makefile if suitable care taken. 392 3932024-11-10 Simon J Gerraty <sjg@beast.crufty.net> 394 395 * VERSION (_MAKE_VERSION): 20241110 396 Merge with NetBSD make, pick up 397 o make: allow .../ (search here and above) in 398 .MAKE.MAKEFILE_PREFERENCE and -f argument. 399 4002024-11-03 Simon J Gerraty <sjg@beast.crufty.net> 401 402 * VERSION (_MAKE_VERSION): 20241101 403 Merge with NetBSD make, pick up 404 o parse.c: report filename:linenumber in parse debug output 405 4062024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 407 408 * VERSION (_MAKE_VERSION): 20240921 409 Merge with NetBSD make, pick up 410 o make.1: Only list the defaults for MAKEFILE_PREFERENCE once. 411 412 * Makefile: use genfiles.mk to generate ${MAN} 413 so that it can be tuned for local site. 414 Ensure MAN is defined before including Makefile.inc 415 416 * Makefile: use MK_GEN_MAN to make it easier to control whether we 417 generate ${MAN} 418 4192024-09-16 Simon J Gerraty <sjg@beast.crufty.net> 420 421 * VERSION (_MAKE_VERSION): 20240909 422 423 * arch.c: fix NetBSD PR 58597 424 4252024-09-01 Simon J Gerraty <sjg@beast.crufty.net> 426 427 * Makefile: use SUBDIR.${MK_TESTS} so that we skip 428 unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS 429 430 * VERSION (_MAKE_VERSION): 20240901 431 Merge with NetBSD make, pick up 432 o reduce line length in error messages 433 o var.c: simplify printing of an evaluation stack element 434 4352024-08-29 Simon J Gerraty <sjg@beast.crufty.net> 436 437 * VERSION (_MAKE_VERSION): 20240828 438 Merge with NetBSD make, pick up 439 o add more context to error message about recursive variables 440 o treat recursive variables non-fatally - continue parsing to end 441 of makefile 442 4432024-08-12 Simon J Gerraty <sjg@beast.crufty.net> 444 445 * VERSION (_MAKE_VERSION): 20240808 446 Merge with NetBSD make, pick up 447 o improve some error messages for better clarify and readability 448 4492024-07-22 Simon J Gerraty <sjg@beast.crufty.net> 450 451 * VERSION (_MAKE_VERSION): 20240722 452 Merge with NetBSD make, pick up 453 o job.c: remove dead code 454 4552024-07-21 Simon J Gerraty <sjg@beast.crufty.net> 456 457 * VERSION (_MAKE_VERSION): 20240720 458 Merge with NetBSD make, pick up 459 o compat.c: do not run commands that have parse or evaluation errors. 460 o var.c: remove wrong error message about an undefined variable 461 4622024-07-13 Simon J Gerraty <sjg@beast.crufty.net> 463 464 * cleanup redundant differences from NetBSD make 465 o parse.c: no longer uses mmap 466 o var.c: check __STDC_VERSION__ not __STDC__ 467 4682024-07-12 Simon J Gerraty <sjg@beast.crufty.net> 469 470 * Apply some patches from NetBSD pkgsrc to reduce divergence 471 o meta.c: requires sys/select.h if available 472 o var.c: ensure SIZE_MAX has a value 473 o util.c: ensure SA_RESTART is defined 474 475 * configure.in: use *ksh* rather than just *ksh to match 476 ksh shell specification. 477 478 * unit-tests/Makefile: expand BROKEN_TESTS for ksh and 479 mksh in particular 480 4812024-07-11 Simon J Gerraty <sjg@beast.crufty.net> 482 483 * VERSION (_MAKE_VERSION): 20240711 484 Merge with NetBSD make, pick up 485 o compat.c: allow Compat_RunCommand to also handle very long 486 commands by writing to a temp file when needed. 487 o main.c: extract the temp file logic recently added to Cmd_Exec 488 to Cmd_Argv so it can be leveraged by Compat_RunCommand. 489 4902024-07-09 Simon J Gerraty <sjg@beast.crufty.net> 491 492 * VERSION (_MAKE_VERSION): 20240709 493 Merge with NetBSD make, pick up 494 o error out on parse/evaluation errors in shell commands 495 o var.c: error out on syntax errors in ':M' and ':N' modifiers 496 4972024-07-07 Simon J Gerraty <sjg@beast.crufty.net> 498 499 * VERSION (_MAKE_VERSION): 20240707 500 Merge with NetBSD make, pick up 501 o only generate code for cleanup functions in CLEANUP mode 502 o hash.c: don't track hash table chain lengths during lookup 503 unless debugging 504 o main.c: move initialization of variable scopes to targ.c 505 o var.c: remove Var_End as it is now unnecessary 506 5072024-07-06 Simon J Gerraty <sjg@beast.crufty.net> 508 509 * VERSION (_MAKE_VERSION): 20240706 510 Merge with NetBSD make, pick up 511 o reduce lint comments about ARGSUSED 512 o cond.c: error out on conditions containing the operators '&' and '|' 513 o str.c: error out on a matching malformed matching pattern '[[' 514 o var.c: in error messages, distinguish parsing from evaluating 515 in error messages for anonymous variables, log the value 516 error out on unclosed expressions during parse time 517 5182024-07-04 Simon J Gerraty <sjg@beast.crufty.net> 519 520 * VERSION (_MAKE_VERSION): 20240704 521 Merge with NetBSD make, pick up 522 o add more context information to error messages 523 o main.c: on error, print the targets to be made 524 add detailed exit status to message for failed sub-commands 525 o var.c: error out on the "Bad modifier" error message 526 5272024-07-01 Simon J Gerraty <sjg@beast.crufty.net> 528 529 * VERSION (_MAKE_VERSION): 20240701 530 Merge with NetBSD make, pick up 531 o var.c: add :tt for Title case 532 5332024-06-30 Simon J Gerraty <sjg@beast.crufty.net> 534 535 * configure.in: 20240630 further refine check for whether 536 TZ=Europe/Berlin works 537 538 * VERSION (_MAKE_VERSION): 20240630 539 Merge with NetBSD make, pick up 540 o job.c: reduce use of UNCONST 541 o main.c: add detailed exit status to message for failed sub-commands 542 o var.c: error out on some more syntax errors 543 add more context to "returned non-zero status" message 544 5452024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 546 547 * VERSION (_MAKE_VERSION): 20240625 548 Merge with NetBSD make, pick up 549 o job.c: ensure shellPath is always duped, avoid upsetting free() 550 5512024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 552 553 * VERSION (_MAKE_VERSION): 20240616 554 Merge with NetBSD make, pick up 555 o clean up collection of context information for error messages 556 o in warnings, move the word "warning" to the front 557 o var.c: throw an error on attempt to override an internal 558 read-only variable 559 5602024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 561 562 * VERSION (_MAKE_VERSION): 20240610 563 Merge with NetBSD make, pick up 564 o for.c: remove redundant shortcut for building the .for loop body 565 5662024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 567 568 * VERSION (_MAKE_VERSION): 20240602 569 Merge with NetBSD make, pick up 570 o rename some VarEvalMode constants to better match debug names. 571 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 572 5732024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 574 575 * VERSION (_MAKE_VERSION): 20240601 576 Merge with NetBSD make, pick up 577 o add .export-all rather than allow .export with no argument 578 which can happen accidentally. 579 o if lua is available, run check-expect.lua after unit-tests 580 o main.c: use snprintf rather than strncpy 581 fix memory leak when purging realpath cache. 582 5832024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 584 585 * VERSION (_MAKE_VERSION): 20240528 586 Merge with NetBSD make, pick up 587 o fix a number of memory leaks 588 o replace magic numbers with POSIX FILENO constants 589 o hash.c: remove dead code from HashTable_DeleteEntry 590 o main.c: when complaining about unusable .OBJDIR 591 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 592 o parse.c: use fewer technical terms in debug message for dependency 593 5942024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 595 596 * VERSION (_MAKE_VERSION): 597 Merge with NetBSD make, pick up 598 o dir.c: in FindFile restore last search of .CURDIR even for 599 includes, as a number of existing makefiles are broken otherwise. 600 6012024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 602 603 * VERSION (_MAKE_VERSION): 20240519 604 Merge with NetBSD make, pick up 605 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 606 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 607 o main.c: no need to set .DOTLAST in sysIncPath 608 6092024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 610 611 * VERSION (_MAKE_VERSION): 20240508 612 Merge with NetBSD make, pick up 613 o make: ensure variables set on command line get added to 614 .MAKEOVERRIDES (even if they start with '.') so they are passed to 615 sub-makes. 616 6172024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 618 619 * VERSION (_MAKE_VERSION): 20240430 620 Merge with NetBSD make, pick up 621 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 622 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 623 6242024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 625 626 * VERSION (_MAKE_VERSION): 20240428 627 Merge with NetBSD make, pick up 628 o simplify freeing of lists 629 o arch.c: trim pointless comments 630 o var.c: delay variable assignments until actually needed 631 don't reallocate memory after evaluating an expression, result is 632 almost always short-lived. 633 6342024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 635 636 * VERSION (_MAKE_VERSION): 20240426 637 Merge with NetBSD make, pick up 638 o job.c: in debug output, print the directory in which a job 639 failed at same time as failed target so it is more easily found in 640 build log. 641 6422024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 643 644 * VERSION (_MAKE_VERSION): 20240424 645 Merge with NetBSD make, pick up 646 o clean up comments, code and tests 647 6482024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 649 650 * VERSION (_MAKE_VERSION): 20240422 651 Merge with NetBSD make, pick up 652 o var.c: avoid LazyBuf for :*time modifiers. 653 LazyBuf's are not nul terminated so not suitable for passing to 654 functions that expect that. These modifiers are used sparingly so 655 an extra allocation is not a problem. 656 6572024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 658 659 * VERSION (_MAKE_VERSION): 20240420 660 Merge with NetBSD make, pick up 661 o provide more context information for parse/evaluate errors 662 6632024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 664 665 * VERSION (_MAKE_VERSION): 20240414 666 Merge with NetBSD make, pick up 667 o parse.c: print -dp debug info earlier so we see which 668 .if or .for line is being parsed. 669 6702024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 671 672 * VERSION (_MAKE_VERSION): 20240404 673 Merge with NetBSD make, pick up 674 o fix some unit tests for Cygwin 675 o parse.c: exit immediately after reading a null byte from a makefile 676 677 * fix generation of bmake.cat1 678 6792024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 680 681 * VERSION (_MAKE_VERSION): 20240314 682 Add/Improve support for Cygwin 683 o uname -s output isn't useful so allow configure to 684 set FORCE_MAKE_OS - to force the value of .MAKE.OS 685 and use Cygwin which matches uname -o 686 o fix some unit-tests for Cygwin 687 6882024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 689 690 * boot-strap: tests can take a long time; use a cookie to 691 skip them if bmake has not been updated since tests last 692 ran successfully. 693 694 * Makefile: Cygwin handles MANTARGET man 695 696 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 697 6982024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * VERSION (_MAKE_VERSION): 20240309 701 Merge with NetBSD make, pick up 702 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 703 this allows a .ERROR target to ignore the case of 704 .ERROR_EXIT==6 which just means that the build actually 705 failed somewhere else. 706 7072024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 708 709 * VERSION (_MAKE_VERSION): 20240303 710 711 * var.c: on IRIX we need both inttypes.h and stdint.h 712 7132024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 714 715 * VERSION (_MAKE_VERSION): 20240301 716 Merge with NetBSD make, pick up 717 o export variables with value from target scope 718 when appropriate. 719 7202024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 721 722 * VERSION (_MAKE_VERSION): 20240212 723 Merge with NetBSD make, pick up 724 o remove unneeded conditional-compilation toggles 725 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 726 GMAKEEXPORT NO_REGEX and SUNSHCMD 727 728 * configure.in: add check for regex.h 729 730 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 731 7322024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 733 734 * VERSION (_MAKE_VERSION): 20240204 735 Merge with NetBSD make, pick up 736 o var.c: fix some lint (-dL) mode parsing issues 737 7382024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 739 740 * VERSION: (_MAKE_VERSION): 20240202 741 Merge with NetBSD make, pick up 742 o make.1: note that arg to :D and :U can be empty 743 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 744 7452024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 746 747 * VERSION (_MAKE_VERSION): 20240108 748 Merge with NetBSD make, pick up 749 o miscellaneous cleanups 750 7512024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 752 753 * VERSION (_MAKE_VERSION): 20240106 754 Merge with NetBSD make, pick up 755 o fix duplicate progname when reporting an unknown target 756 o unit tests for Cmd_Exec using temp file 757 7582024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 759 760 * VERSION (_MAKE_VERSION): 20240105 761 Merge with NetBSD make, pick up 762 o main.c: Cmd_Exec write cmd to a file if too big 763 avoid blowing commandline/env limits 764 7652024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 766 767 * VERSION (_MAKE_VERSION): 20240101 768 o util.c: flesh out more of strftime 769 * configure.in: add --with-bmake-strftime 770 it is not a full implementation but enough to pass all 771 the unit-tests. 772 * parse.c: LoadFile do not append \n to empty buffer. 773 7742023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 775 776 * VERSION (_MAKE_VERSION): 20231230 777 Merge with NetBSD make, pick up 778 o simplify memory allocation for string buffers 779 o fix declared types of list nodes 780 o suff.c: clean up freeing of suffixes 781 o var.c: simplify debug message for the ':@var@...@' modifier 782 clean up variable handling 783 7842023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 785 786 * VERSION (_MAKE_VERSION): 20231226 787 Merge with NetBSD make, pick up 788 o compat.c: ensure make's output is correctly ordered with that of 789 the target when not going to a tty 790 o main.c: check for shellPath whether to call Shell_Init() 791 7922023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 793 794 * VERSION (_MAKE_VERSION): 20231224 795 Merge with NetBSD make, pick up 796 o compat.c: check for shellPath whether to call Shell_Init() 797 tweak the unit test to detect the bug thus fixed. 798 o make.1: do not claim .SHELL is only used by jobs mode. 799 8002023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 801 802 * VERSION (_MAKE_VERSION): 20231220 803 Merge with NetBSD make, pick up 804 o str.c: speed up pattern matching in the ':M' modifier 805 o var.c: fix confusing debug logging when deleting a variable 806 use consistent debug messages style when ignoring variables 807 8082023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 809 810 * VERSION (_MAKE_VERSION): 20231210 811 Merge with NetBSD make, pick up 812 o var.c: avoid segfault on empty :C match expression 813 explain in debug log why variable assignment is ignored. 814 8152023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 816 817 * VERSION (_MAKE_VERSION): 20231208 818 Merge with NetBSD make, pick up 819 o var.c: ensure fromCmd is set correctly for variables set on 820 command line. 821 8222023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 823 824 * configure.in: disable generation of 'makefile' for 825 Darwin by default. 826 827 * boot-strap: docuement --without-makefile 828 8292023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 830 831 * VERSION (_MAKE_VERSION): 20231124 832 Merge with NetBSD make, pick up 833 o main.c: cleanup processing of -j 834 fix lint warning about strchr 835 o var.c: more accurate error message for invalid ':mtime' argument 836 cleanup :[...] modifier 837 avoid reading beyond substring when comparing 838 o unit-tests cover all cases of :mtime, test and explain exporting 839 of variables 840 o cleanup comments 841 8422023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 843 844 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 845 $FreeBSD$ tag, so avoid adding it. 846 8472023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 848 849 * VERSION (_MAKE_VERSION): 20230909 850 Merge with NetBSD make, pick up 851 o main.c: allow -j to compute a multiple of ncpu 852 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 853 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 854 _SC_NPROCESSORS_ONLN 855 .MAKE.JOBS.C will be "yes" if -jC is supported 856 8572023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 858 859 * VERSION (_MAKE_VERSION): 20230820 860 Merge with NetBSD make, pick up 861 o make.1: note that :localtime is better for %s 862 o parse.c: improve error messages for invalid input. 863 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 864 correct result, it is still better to use %s:L:localtime. 865 8662023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 867 868 * VERSION (_MAKE_VERSION): 20230818 869 Merge with NetBSD make, pick up 870 o meta.c: meta_ignore - check raw path against metaIgnorePaths 871 to potentially skip call to realpath. 872 o var.c: be strict when parsing the argument of the ':mtime' modifier 873 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 874 should be used to get an equivalent value to time(3). 875 8762023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 877 878 * VERSION (_MAKE_VERSION): 20230816 879 Merge with NetBSD make, pick up 880 o cond.c: clean up multiple-inclusion guards 881 8822023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 885 if configure cannot work out how to control TZ. 886 Remove varmod-localtime from BROKEN_TESTS for IRIX* 887 8882023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 889 890 * VERSION (_MAKE_VERSION): 20230723 891 892 * configure.in: fix the test for wether TZ=Europe/Berlin works. 893 Depending on the time of year, if run between 22:00 and 00:00 UTC 894 the check in configure would fail incorrectly. 895 Take the day into account as well. 896 8972023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 898 899 * VERSION (_MAKE_VERSION): 20230711 900 Merge with NetBSD make, pick up 901 o make.1: clean up wording, clarify scope of '!' in conditions 902 9032023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 904 905 * make-bootstrap.sh.in: set prefix 906 If configure is run using ksh we get unexpanded ${prefix} in 907 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 908 correct result. 909 9102023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 911 912 * VERSION (_MAKE_VERSION): 20230711 913 bump version for IRIX tweaks 914 915 * make.h: undef OP_NONE if defined 916 917 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 918 919 * configure.in: override INSTALL on IRIX 920 9212023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 922 923 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 924 9252023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 926 927 * VERSION (_MAKE_VERSION): 20230622 928 Merge with NetBSD make, pick up 929 o optimize string matching for ':M' and ':N' 930 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 931 9322023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 933 934 * VERSION (_MAKE_VERSION): 20230621 935 Merge with NetBSD make, pick up 936 o more extensive tests for include guards 937 o parse.c: if a guard is already defined a file that uses the same 938 guard is still guarded by it. 939 9402023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 941 942 * VERSION (_MAKE_VERSION): 20230620 943 Merge with NetBSD make, pick up 944 o allow guards to be targets as well as variables 945 The guard targets may include variable references like 946 __${.PARSEDIR:tA}/${.PARSEFILE}__ 947 9482023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 949 950 * VERSION (_MAKE_VERSION): 20230619 951 Merge with NetBSD make, pick up 952 o unit test for .undef of readOnly vars 953 o optimization for makefiles protected from multiple-inclusion 954 skip even opening the file after first include. 955 Initially this only handles makefiles guarded by a variable 956 target guards are next. 957 9582023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 959 960 * VERSION (_MAKE_VERSION): 20230616 961 Merge with NetBSD make, pick up 962 o var.c: do not allow delete of readOnly variable 963 9642023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 965 966 * VERSION (_MAKE_VERSION): 20230601 967 Merge with NetBSD make, pick up 968 o parse.c: .break takes no args 969 o lots of unit test updates 970 9712023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 972 973 * unit-tests/Makefile: skip tests that require /dev/filemon 974 if it does not exists - issue a warning. 975 9762023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 977 978 * VERSION (_MAKE_VERSION): 20230522 979 Fix building on darwin ppc 980 981 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 982 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 983 9842023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 985 986 * VERSION (_MAKE_VERSION): 20230515 987 988 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 989 compile filemon_ktrace.c 990 9912023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 992 993 * VERSION (_MAKE_VERSION): 20230512 994 o sys.dirdeps.mk - broke after-import target 995 9962023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 997 998 * VERSION (_MAKE_VERSION): 20230510 999 Merge with NetBSD make, pick up 1000 o parse.c: don't print null filename in stack traces 1001 o var.c: :mtime operate on each word in variable value 1002 10032023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 1004 1005 * VERSION (_MAKE_VERSION): 20230509 1006 Merge with NetBSD make, pick up 1007 o for.c: skip syntactically wrong .for loops 1008 o var.c: allow for :gmtime=${mtime} 1009 add :mtime[=timestamp] where timestamp is used if stat(2) 1010 fails, if :mtime=error stat(2) failure causes error. 1011 10122023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 1013 1014 * VERSION (_MAKE_VERSION): 20230504 1015 Merge with NetBSD make, pick up 1016 o compat.c: fix compile on NetBSD 7.2 1017 o make.1: fix documentation of .PREFIX to match reality and POSIX 1018 o unit-tests: improved var-scope-local 1019 10202023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1021 1022 * VERSION (_MAKE_VERSION): 20230414 1023 Merge with NetBSD make, pick up 1024 o minor cleanup 1025 10262023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 1027 1028 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 1029 unlimited results in an insane number (0x7fffffffffffffff). 1030 If BMAKE_NOFILE_MAX is defined, use that instead. 1031 10322023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 1033 1034 * VERSION (_MAKE_VERSION): 20230321 1035 Merge with NetBSD make, pick up 1036 * make.1: document seemingly unexplained Error code 6. 1037 10382023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1039 1040 * VERSION (_MAKE_VERSION): 20230317 1041 Merge with NetBSD make, pick up 1042 o compat.c: CompatDeleteTarget skip .PHONY targets to be 1043 consistent with JobDeleteTarget. 1044 o job.c: fix memory leak in handling sysv :from=to modifiers 1045 10462023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 1047 1048 * VERSION (_MAKE_VERSION): 20230303 1049 Merge with NetBSD make, pick up 1050 o several updated unit-tests 1051 10522023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 1053 1054 * VERSION (_MAKE_VERSION): 20230222 1055 Merge with NetBSD make, pick up 1056 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 1057 10582023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1059 1060 * VERSION (_MAKE_VERSION): 20230218 1061 Merge with NetBSD make, pick up 1062 o var.c: fix parsing of unevaluated subexpressions with 1063 unbalanced '{}' 1064 10652023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 1066 1067 * VERSION (_MAKE_VERSION): 20230215 1068 Merge with NetBSD make, pick up 1069 o inline macros for some variable names 1070 o cond.c: reduce complexity of evaluating expressions 1071 10722023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 1073 1074 * VERSION (_MAKE_VERSION): 20230208 1075 Merge with NetBSD make, pick up 1076 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 1077 when it has been used within conditional expressions 1078 10792023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 1080 1081 * VERSION (_MAKE_VERSION): 20230127 1082 1083 * install-sh: if making directories ensure umask is set 1084 to match mode. 1085 1086 * Makefile: use DIRMODE for directories and 1087 NONBINMODE for man pages and mk files 1088 10892023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1090 1091 * VERSION (_MAKE_VERSION): 20230126 1092 Merge with NetBSD make, pick up 1093 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 1094 should be read-only. 1095 10962023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1097 1098 * VERSION (_MAKE_VERSION): 20230123 1099 Merge with NetBSD make, pick up 1100 o .[NO]READONLY: for control of read-only variables 1101 o .SYSPATH: for controlling the path searched for makefiles 1102 11032023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1104 1105 * VERSION (_MAKE_VERSION): 20230120 1106 Merge with NetBSD make, pick up 1107 o allow for white-space between command specifiers @+- 1108 o add more details to warning 'Extra targets ignored' 1109 11102023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1111 1112 * machine.sh: leverage os.sh rather than duplicate 1113 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 1114 for that purpose for the past decade or so. 1115 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 1116 11172023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 1118 1119 * VERSION (_MAKE_VERSION): 20230101 1120 Merge with NetBSD make, pick up 1121 o cleanup comments, inline some LazyBuf_ methods 1122 o unit-tests/ add/improve comments in tests 1123 o make.1: sync list of built-in variables with reality 1124 sort list of built-in variables 1125 reduce indentation of the long list of variable names 1126 use consistent markup for boolean flags 1127 move description of .MAKE.MODE below the .MAKE.META block 1128 clarify in which case an expression may omit braces 1129 11302022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 1131 1132 * VERSION (_MAKE_VERSION): 20221024 1133 Merge with NetBSD make, pick up 1134 o change return type of unlink_file back to int 1135 11362022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 1137 1138 * Makefile: Darwin and Linux can handle MANTARGET=man 1139 11402022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 1141 1142 * VERSION (_MAKE_VERSION): 20220928 1143 Merge with NetBSD make, pick up 1144 o fix more ignored returns from snprintf 1145 o compile with higher warnings 1146 11472022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1148 1149 * main.c meta.c: do not ignore return from snprintf 1150 1151 * meta.c strlcpy.c: we need prototype for strlcpy 1152 1153 * sigcompat.c: fix unused function warnings 1154 11552022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 1156 1157 * VERSION (_MAKE_VERSION): 20220924 1158 Merge with NetBSD make, pick up 1159 o fix bug in .break reset of conditional depth 1160 o overhaul and simplify tracking of conditional depth 1161 11622022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 1163 1164 * VERSION (_MAKE_VERSION): 20220912 1165 Merge with NetBSD make, pick up 1166 o man page updates 1167 11682022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 1169 1170 * VERSION (_MAKE_VERSION): 20220909 1171 Merge with NetBSD make, pick up 1172 o update unit-tests to handle deprecation of egrep 1173 o cond.c: add more details to error message for numeric comparison 1174 1175 * configure.in: allow for deprecation of egrep 1176 1177 * Makefile: Linux can handle MANTARGET=man 1178 11792022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 1180 1181 * VERSION (_MAKE_VERSION): 20220903 1182 Merge with NetBSD make, pick up 1183 o job.c: fix handling of null bytes in output 1184 11852022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1186 1187 * VERSION (_MAKE_VERSION): 20220902 1188 Merge with NetBSD make, pick up 1189 o Allow .break to terminate a .for loop early 1190 11912022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1192 1193 * VERSION (_MAKE_VERSION): 20220901 1194 Merge with NetBSD make, pick up 1195 o var.c: fix out-of-bounds errors when parsing 1196 11972022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1198 1199 * VERSION (_MAKE_VERSION): 20220824 1200 Merge with NetBSD make, pick up 1201 o var.c: revert change to modifier parsing that breaks 1202 shell variable references within ':@var@body@' 1203 o adjust unit-tests 1204 12052022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 1206 1207 * VERSION (_MAKE_VERSION): 20220818 1208 Merge with NetBSD make, pick up 1209 o fix exit status for '-q' (since 1994) 1210 12112022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1212 1213 * VERSION (_MAKE_VERSION): 20220808 1214 Merge with NetBSD make, pick up 1215 o var.c: fix parsing of modifiers containing unbalanced subexpressions 1216 extract parsing of ':D' and ':U' modifiers into separate function 1217 12182022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1219 1220 * VERSION (_MAKE_VERSION): 20220726 1221 1222 * Auto-create objdir for bmake/unit-tests if appropriate 1223 12242022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 1225 1226 * VERSION (_MAKE_VERSION): 20220724 1227 Merge with NetBSD make, pick up 1228 o make.1: describe variable assignment and evaluation more precisely 1229 o parse.c: fix out-of-bounds read when parsing an invalid line 1230 o var.c: simplify return type of IsShortVarnameValid 1231 12322022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 1233 1234 * VERSION (_MAKE_VERSION): 20220612 1235 Merge with NetBSD make, pick up 1236 o allow to randomize build order of targets 1237 .MAKE.MODE += randomize-targets can help uncover dependency bugs 1238 within a makefile. 1239 o compat.c: rename Compat_Run to Compat_MakeAll 1240 o make.c: inline MakeBuildParent 1241 inline make_abort, improve error details 1242 o parse.c: reorganize Parse_Error 1243 fix memory leak in wildcard targets and sources 1244 separate cases in HandleDependencyTargetMundane 1245 extract HandleSingleDependencyTargetMundane 1246 rename loadfile to LoadFile 1247 split IncludeFile into separate functions 1248 condense code for searching a file in the paths 1249 fix off-by-one error in buffer for .WAIT nodes 1250 o str.c: condense Str_Match 1251 make code for string matching syntactically more consistent 1252 12532022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1254 1255 * VERSION (_MAKE_VERSION): 20220418 1256 Merge with NetBSD make, pick up 1257 o ignore '.POSIX:' if not in first non-comment line 1258 of Makefile as specified by POSIX. 1259 add unit-tests for above. 1260 o meta.c: make it easier to find usage of identifiers 1261 o targ.c: add .USEBEFORE to Targ_PrintType 1262 12632022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1264 1265 * VERSION (_MAKE_VERSION): 20220414 1266 1267 * unit-tests/Makefile: simplify checks for shells with 1268 BROKEN_TESTS, this helps with other Linux distros that 1269 use dash. 1270 12712022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1272 1273 * VERSION (_MAKE_VERSION): 20220330 1274 Merge with NetBSD make, pick up 1275 o var.c: fix spacing, and a typo in a test 1276 12772022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 1278 1279 * VERSION (_MAKE_VERSION): 20220326 1280 Merge with NetBSD make, pick up 1281 o parse.c: try to include 'posix.mk' the first time 1282 .POSIX: is encountered, to allow for beter POSIX compliance. 1283 o var.c: make debug logs more readable 1284 prefer 'long long' over 'long' on 32-bit C99 platforms 1285 fix crash on .undef of an environment variable 1286 12872022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 1288 1289 * VERSION (_MAKE_VERSION): 20220303 1290 Merge with NetBSD make, pick up 1291 o tell meta mode unit tests not to expect filemon 1292 o cond.c: make debug logging for comparisons less technical 1293 o lst.c: fix mem leak in Lst_Remove 1294 o str.c: make code for string matching syntactically more consistent 1295 o var.c: simplify ParseModifier_Match 1296 12972022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 1298 1299 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 1300 1301 * VERSION (_MAKE_VERSION): 20220214 1302 Merge with NetBSD make, pick up 1303 o cond.c: simplify control flow in CondParser_Comparison 1304 o job.c: fix echoing of command with '-' in silent target in jobs mode 1305 o main.c: prefix the warning about read-only .OBJDIR with a colon 1306 o parse.c: remove redundant conditions 1307 o var.c: simplify control flow in ModifyWord_SysVSubst 1308 13092022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 1310 1311 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 1312 is any chance we have dash as .SHELL 1313 1314 * VERSION (_MAKE_VERSION): 20220208 1315 Merge with NetBSD make, pick up 1316 o more unit tests 1317 o meta.c: use a variable to hold command line to be filtered 1318 to avoid any side effects from content of command line. 1319 13202022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 1321 1322 * VERSION (_MAKE_VERSION): 20220204 1323 Merge with NetBSD make, pick up 1324 o use unsigned consistently for line numbers, avoid the need for %z 1325 o parse.c: do not step off end of input in Parse_IsVar 1326 when checking for target local variable assignments 1327 13282022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 1329 1330 * VERSION (_MAKE_VERSION): 20220202 1331 Merge with NetBSD make, pick up 1332 o remove redundant declaration of HashIter_Init 1333 o make DEBUG0 simpler 1334 13352022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1336 1337 * cast gn->lineno to avoid %z 1338 1339 * VERSION (_MAKE_VERSION): 20220130 1340 Merge with NetBSD make, pick up 1341 o more unit tests 1342 o make GNode lineno unsigned to please lint 1343 o print location of recursive variable references in commands 1344 o print "stack trace" (makefile includes) on fatal errors 1345 o make.1: refine documentation for target local assignments 1346 13472022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 1348 1349 * VERSION (_MAKE_VERSION): 20220128 1350 Merge with NetBSD make, pick up 1351 o inline functions called only once 1352 o for.c: clean up AddEscape for building the body of a .for loop 1353 o hash.c: merge duplicate code for finding an entry in a hash table 1354 replace HashEntry_KeyEquals with strncmp 1355 o make.1: document quirks of target local variable assignments. 1356 o parse.c: cleanup white-space 1357 13582022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1359 1360 * VERSION (_MAKE_VERSION): 20220126 1361 Merge with NetBSD make, pick up 1362 o allow setting target local variables 1363 o more unit tests 1364 o add missing newline after "cannot continue" message 1365 o meta.c: clean up eat_dots 1366 o parse.c: fix filename in warning about duplicate script 1367 o var.c: when expanding nested variables, check simple things first 1368 13692022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 1370 1371 * VERSION (_MAKE_VERSION): 20220116 1372 Merge with NetBSD make, pick up 1373 o fix for unit-tests/varname-makeflags on non-BSD systems 1374 o use Var_Exists rather than Var_Value where appropriate 1375 o remove unnecessary functions for expanding variable names 1376 o cond.c: inline EvalBare 1377 o main.c: lint cleanup 1378 o parse.c: condense code in Parse_IsVar 1379 use islower for parsing directives (none have upper case) 1380 13812022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1382 1383 * VERSION (_MAKE_VERSION): 20220112 1384 Merge with NetBSD make, pick up 1385 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 1386 comparion, rarely needed but useful when it is. 1387 13882022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1389 1390 * VERSION (_MAKE_VERSION): 20220110 1391 Merge with NetBSD make, pick up 1392 o inline Buf_Clear 1393 o remove redundant braces 1394 o rename and inline Targ_Precious 1395 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 1396 o for.c: clean up handling of .for loops 1397 fix reported line numbers of continuation lines 1398 add details about .for loop variables to stack traces 1399 o job.c: reduce code for initializing error handling in shell 1400 o main.c: in Cmd_Exec, return error message instead of format string 1401 have as few statements as possible between va_start and va_end 1402 add debug logging for capturing the output of external commands 1403 o make.c: use consistent variable names for varargs 1404 o make_malloc.c: remove duplicate code from bmake_strdup 1405 o parse.c: add missing printflike annotations 1406 remove redundant lines from stack traces 1407 fix stack traces in -dp mode 1408 reduce confusing code in ParseForLoop 1409 fix line number in debug log after returning from a file 1410 rename IFile and its fields to match their actual content 1411 clean up ParseDependencySources 1412 o var.c: shorten ApplyModifier_Assign 1413 rename is_shell_metachar, fix character conversion warning 1414 merge calls to ApplyModifier_Time 1415 merge duplicate code for modifiers 'gmtime' and 'localtime' 1416 14172022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 1418 1419 * parse.c: loadfile restore extra byte in buffer. 1420 14212022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1422 1423 * VERSION (_MAKE_VERSION): 20220101 1424 Merge with NetBSD make, pick up 1425 o more unit-tests 1426 o remove unnecessary words from command line options in CmdOpts 1427 o rename eunlink to unlink_file 1428 o cond.c: make ParseWord in condition parser simpler 1429 internally return false for irrelevant leaves in conditions 1430 replace table for function lookup in conditions with simple code 1431 merge duplicate types CondEvalResult and CondResult 1432 o for.c: clean up handling of .for loops and .include directives 1433 o main.c: constify cached_realpath 1434 clean up Cmd_Exec 1435 o parse.c: sync API documentation 1436 fix error message when reading more than 1 GB from stdin 1437 clean up parsing of makefiles 1438 fix line number in error message about open conditionals 1439 unexport types VarAssignOp and VarAssign 1440 clean up function names 1441 remove redundant parameters in dependency parsing functions 1442 reduce scope of the list of wildcard target names 1443 extract OP_NOTARGET into separate function 1444 clean up variable names for parsing dependency lines 1445 make debug logging a bit more human-friendly 1446 o var.c: condense code in ApplyModifier_Assign 1447 14482021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1449 1450 * VERSION (_MAKE_VERSION): 20211221 1451 Merge with NetBSD make, pick up 1452 o more unit-tests 1453 o style cleanup 1454 o in CLEANUP mode, free interned strings at the very end 1455 o fix memory leak for filenames in .for loops 1456 o buf.c: avoid memory leak 1457 o cond.c: condense CondParser_ComparisonOp 1458 o hash.c: change return type of HashTable_Set to void 1459 o job.c: change return type of Compat_RunCommand from int to bool 1460 o main.c: remove bmake_free 1461 o parse.c: condense repetetive code in ParseDirective 1462 remove dead code for handling traditional include directives 1463 clean up parsing of variable assignments 1464 remove unreachable code for parsing the dependency operator 1465 clean up loading of files 1466 fix memory leak in IncludeFile 1467 o var.c: fix memory leak when parsing a variable name 1468 fix memory leak from ${.SUFFIXES} 1469 reduce memory allocation in modifier ':?' and ':C' 1470 condense RegexReplace for the modifier ':C' and avoid strlen 1471 merge duplicate code for memory handling in Var_Parse 1472 distinguish between short-lived and environment variables 1473 rename VarFreeEnv to VarFreeShortLived 1474 14752021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 1476 1477 * cond.c: fix mem leak in CondParser_Leaf 1478 14792021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1480 1481 * VERSION (_MAKE_VERSION): 20211212 1482 Merge with NetBSD make, pick up 1483 o rename Parse_SetInput to Parse_PushInput 1484 o remove remove period from end of error messages and warnings 1485 to be more consistent 1486 o arch.c: use simpler memory management for parsing archive members 1487 o cond.c: rework and reduce recursion 1488 o for.c: rename some functions to better reflect purpose 1489 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 1490 o var.c: in parse errors, mark whitespace more clearly 1491 inline ParseEmptyArg into CondParser_FuncCallEmpty 1492 minimize calls to LazyBuf_Get in ParseVarnameLong 1493 treat .SUFFIXES as a read-only variable 1494 14952021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 1496 1497 * VERSION (_MAKE_VERSION): 20211207 1498 Merge with NetBSD make, pick up 1499 o inline HashIter_Init 1500 o parse.c: inline common subexpression in ParseRawLine 1501 o var.c: merge branches for modifiers ':D' and ':U' 1502 extract common code into Expr_Words 1503 extract common code into Expr_Str 1504 move low-level implementation details out of Var_Parse 1505 15062021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1507 1508 * VERSION (_MAKE_VERSION): 20211206 1509 Merge with NetBSD make, pick up 1510 o add unit-tests/varmod-loop-delete 1511 o for.c: inline Str_Words - reduce memory allocation 1512 o parse.c: do not try to expand fixed variable names 1513 only allocate the name of an included file if necessary 1514 clean up ParseInclude 1515 o var.c: fix use-after-free in modifier ':@' 1516 save a memory allocation in each modifier ':O' and ':u' 1517 save a memory allocation in the modifier ':[...]' 1518 in UnexportVars, replace Str_Words with Substring_Words to 1519 reduce allocations and copying. 1520 15212021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 1522 1523 * VERSION (_MAKE_VERSION): 20211204 1524 Merge with NetBSD make, pick up 1525 o flesh out a number of tests 1526 o replace enums with bitfields, this simplifies a lot of code. 1527 o var.c: refactor ParseModifierPartSubst 1528 15292021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 1530 1531 * VERSION (_MAKE_VERSION): 20211024 1532 Merge with NetBSD make, pick up 1533 o Punt on write errors - ENOSPC etc. 1534 15352021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1536 1537 * configure.in: use_defshell, set both DEFSHELL_INDEX 1538 and defshell_path if appropriate. 1539 This makes it easier to use say the KSH specification with 1540 and alternate path for the shell. 1541 1542 * configure.in compat.c: for SCO we need to force UseShell 1543 1544 * configure.in: SCO /bin/sh is not usable, provide a list of 1545 alternatives for use as .SHELL. 1546 We still have to mark some tests as broken, plus more if we end up 1547 with ksh as .SHELL. 1548 Issue a warning about skipped tests. 1549 1550 * boot-strap: leave TOOL_DIFF to configure 1551 1552 * configure.in: on SCO native cc is not usable, 1553 gcc is to be found in /usr/gnu/bin 1554 and while ancient is at least able to compile bmake. 1555 Thus we add /usr/gnu/bin to PATH if it exists, and later 1556 check if $CC would have been found via $PATH. 1557 If not we set CC to the full path of $CC. 1558 Also gnu diff is known to support -u, so if it exists use it. 1559 1560 * configure.in: move getopt to AC_REPLACE_FUNCS 1561 also add AC_C_INLINE - in an attempt to compile using 1562 native cc on SCO. 1563 1564 * configure.in: check for stresep as well as strsep, since we 1565 define the later to the former if necessary, and if we have to 1566 provide stresep we also need to provide a prototype. 1567 1568 * configure.in: we no longer need to worry about 1569 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1570 1571 * make.h: make sure we have __RCSID 1572 1573 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1574 can control it. 1575 15762021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1577 1578 * VERSION: 20211020 1579 Merge with NetBSD make, pick up 1580 o confirm sync of unit-tests 1581 15822021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1583 1584 * configure.in: check if timezone Europe/Berlin is supported 1585 if not try UTC-1 1586 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1587 symlink unit-tests -> ../unit-tests/obj so that 1588 unit-tests/Makefile.config is put in the right place. 1589 * refine filtering of .OBJDIR in unit-tests 1590 15912021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1592 1593 * Fix unit-tests on Minix 3.2.0 1594 o job.c: do not punt if read of token pipe fails for EAGAIN. 1595 On Minix at least, we are not ready to read the childExitJob pipe 1596 when poll says we are. 1597 There should actually be no reason for this pipe to be 1598 non-blocking, but while that works fine on {Net,Free}BSD it 1599 breaks another test case on Minix. 1600 o unit-tests/Makefile: deal with variants of error messages 1601 and use of obj as .OBJDIR 1602 16032021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1604 1605 * configure.in: add sigaction to AC_REPLACE_FUNCS 1606 we also need to check for sigaddset etc just for the benefit of 1607 sigact.c 1608 1609 * Add sigact.c as sigaction.c so this "just works". 1610 This should have been done back when bmake_signal started using 1611 sigaction (I only just noticed that sigact.c wasn't here ;-) 1612 Note: I no longer have access to any system where this would matter. 1613 16142021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1615 1616 * VERSION (_MAKE_VERSION): 20211011 1617 1618 * Makefile: cleanup a little 1619 1620 * configure.in: check for sigsetmask 1621 16222021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1623 1624 * VERSION (_MAKE_VERSION): 20211001 1625 Merge with NetBSD make, pick up 1626 o reduce locations reducing text size 1627 o remove unnecessary const 1628 o cond.c: fix lint warning on i386 1629 do not allow unquoted 'left == right' after modifier ':?' 1630 o hash.c: fix build for DEBUG_HASH_LOOKUP 1631 o var.c: fix memory leak in error case of the ':?' modifier 1632 16332021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1634 1635 * VERSION (_MAKE_VERSION): 20210911 1636 Merge with NetBSD make, pick up 1637 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1638 16392021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1640 1641 * VERSION (_MAKE_VERSION): 20210906 1642 Merge with NetBSD make, pick up 1643 o more unit tests 1644 o lint cleanup 1645 o rename some functions to better fit purpose 1646 o for.c: cleanup - remove unnecessary optimization 1647 fix embedded newlines 1648 o parse.c: correct case for CVS/RCS 1649 16502021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1651 1652 * VERSION (_MAKE_VERSION): 20210808 1653 Merge with NetBSD make, pick up 1654 o var.c: remove redundant initialization in ApplyModifier_Order 1655 1656 * mk/options.mk: issue warning for incorrect usage 1657 16582021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1659 1660 * var.c: use long for :On if we don't have a 64bit int type 1661 1662 * VERSION (_MAKE_VERSION): 20210803 1663 Merge with NetBSD make, pick up 1664 o rework varmod-order tests to avoid qsort instability 1665 o make.1: clarify :On entry 1666 16672021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1668 1669 * VERSION (_MAKE_VERSION): 20210731 1670 Merge with NetBSD make, pick up 1671 o fix some lint issues 1672 o more unit tests 1673 o var.c: rework of ApplyModifier_Order 1674 16752021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1676 1677 * util.c: add strto*l if HAVE_STRTO*L not defined 1678 1679 * VERSION (_MAKE_VERSION): 20210730 1680 Merge with NetBSD make, pick up 1681 o var.c: add :On and :Orn for numeric sort 1682 disabled if no 64bit type available. 1683 o _strtol.h: to implement strto*l functions 1684 16852021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1686 1687 * VERSION (_MAKE_VERSION): 20210704 1688 Merge with NetBSD make, pick up 1689 o unit-tests: fix some tests to be more portable 1690 - job-output-null not all shells do the same number of write calls 1691 - objdir-writable if TMPDIR is set; /tmp may not be usable 1692 16932021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1694 1695 * VERSION (_MAKE_VERSION): 20210701 1696 Merge with NetBSD make, pick up 1697 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1698 some tests just cannot work in some environments. 1699 o buf.c: simpler upper bound for length in Buf_AddInt 1700 o cond.c: fix grammar in error message for malformed conditional 1701 o for.c: prevent newline injection (from ${.newline}) in .for loops 1702 o var.c: use more practical data type in RegexReplace 1703 (avoid need for %zu) 1704 extract RegexReplace from ModifyWord_SubstRegex 1705 17062021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1707 1708 * VERSION (_MAKE_VERSION): 20210621 1709 Merge with NetBSD make, pick up 1710 o var.c: only report error for unmatched regex subexpression 1711 when linting (-dL) since we cannot tell when an unmatched 1712 subexpression is an expected result. 1713 o move unmatched regex subexpression tests to 1714 varmod-subst-regex.mk and enable strict (lint) mode 1715 17162021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1717 1718 * VERSION (_MAKE_VERSION): 20210616 1719 Merge with NetBSD make, pick up 1720 o more unit tests 1721 o cond.c: rename If_Eval to EvalBare 1722 improve function names for parsing conditions 1723 o job.c: fix error handling of targets that cannot be made 1724 o var.c: uncompress code in ApplyModifier_Unique 1725 17262021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1727 1728 * VERSION (_MAKE_VERSION): 20210518 1729 Merge with NetBSD make, pick up 1730 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1731 o job.c: Print -de error information when running multiple jobs 1732 17332021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1734 1735 * VERSION (_MAKE_VERSION): 20210420 1736 Merge with NetBSD make, pick up 1737 o use C99 bool type 1738 o convert VarEvalFlags back into an enum 1739 o cond.c: do not complain when skipping the condition 'no >= 10' 1740 o hash.c: avoid allocating memory for simple variable names 1741 o job.c: use distinct wording for writing to the shell commands file 1742 remove type name for the abort status in job handling 1743 rename PrintOutput to PrintFilteredOutput to avoid confusion 1744 o main.c: avoid double slash in name of temporary directory 1745 o var.c: use straight quotes for error 'Bad conditional expression' 1746 reduce memory allocations in the modifiers ':D' and ':U' 1747 rename members of ModifyWord_LoopArgs 1748 clean up pattern flags for the modifiers ':S' and ':C' 1749 reduce memory allocation and strlen calls in modifier ':from=to' 1750 in the ':Q' modifier, only allocate memory if necessary 1751 improve performance for LazyBuf 1752 remove redundant parameter from ParseVarnameLong 1753 migrate ParseModifierPart to use Substring 1754 avoid unnecessary calls to strlen when evaluating modifiers 1755 migrate ModifyWord functions to use Substring 1756 migrate handling of the modifier ':S,from,to,' to Substring 1757 reduce debug logging and memory allocation for ${:U...} 1758 reduce verbosity of the -dv debug logging for standard cases 1759 clean up debug logging for ':M' and ':N' 1760 disallow '$' in the variable name of the modifier ':@' 1761 simplify access to the name of an expression during evaluation 1762 17632021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1764 1765 * VERSION (_MAKE_VERSION): 20210330 1766 Merge with NetBSD make, pick up 1767 o replace enum bit-field with struct bit-field for VarEvalFlags 1768 o rename VARE_NONE to VARE_PARSE_ONLY 1769 o var.c: rename ApplyModifiersState to ModChain 1770 fix double varname expansion in the variable modifier '::=' 1771 change debug log for variable evaluation flags to lowercase 1772 17732021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1774 1775 * VERSION (_MAKE_VERSION): 20210314 1776 Merge with NetBSD make, pick up 1777 o var.c: avoid evaluating many modifiers in parse only mode 1778 in strict mode (-dL) many variable references are parsed twice, 1779 the first time just to report parse errors early, so we want to 1780 avoid side effects and wasted effort to the extent possible. 1781 17822021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1783 1784 * VERSION (_MAKE_VERSION): 20210226 1785 Merge with NetBSD make, pick up 1786 o remove freestanding freeIt variables 1787 link via FStr 1788 o var.c: restructure code in ParseVarname to target human readers 1789 improve error message for; 1790 bad modifier in variable expression 1791 unclosed modifier 1792 unknown modifier 1793 remove redundant parameter of ApplySingleModifier 1794 explain non-obvious code around indirect variable modifiers 1795 quote ':S' in error message about missing delimiter 1796 extract ParseModifier_Match into separate function 1797 add context information to error message about ':range' modifier 1798 add quotes around variable name in an error message 1799 reorder code in ModifyWords 1800 use more common parameter order for VarSelectWords 1801 make ModifyWord_Subst a little easier to understand 1802 do not expand variable name from the command line twice 1803 extract ExistsInCmdline from Var_SetWithFlags 1804 save a hash map lookup when defining a cmdline variable 1805 clean up VarAdd, Var_Delete, Var_ReexportVars 1806 use bit-shift expressions for VarFlags constants 1807 rename constants for VarFlags 1808 rename ExprDefined constants for debug logging 1809 rename ExprStatus to ExprDefined 1810 split parameters for evaluating variable expressions 1811 reduce redundant code around ModifyWords 1812 print error about failed shell command before overwriting variable 1813 clean up ValidShortVarname, ParseVarnameShort 1814 rename VarExprStatus to ExprStatus 1815 add functions for assigning the value of an expression 1816 rename ApplyModifiersState_Define to Expr_Define 1817 condense the code for parsing :S and :C modifiers 1818 18192021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1820 1821 * VERSION (_MAKE_VERSION): 20210206 1822 Merge with NetBSD make, pick up 1823 o unit-tests: use private TMPDIR to avoid errors from other users 1824 18252021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1826 1827 * VERSION (_MAKE_VERSION): 20210205 1828 Merge with NetBSD make, pick up 1829 o avoid strdup in mkTempFile 1830 o always use vfork 1831 o rename context and ctxt to scope 1832 o rename some VAR constants to SCOPE 1833 o Var_ functions, move the scope to the front 1834 o use shortcut functions Global_Set and Global_Append 1835 o add shortcut Global_Delete for deleting a global variable 1836 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1837 o compat.c: when exiting due to an error, print graph information 1838 o enum.c: remove overengineered Enum_ValueToString 1839 o make.c: remove unused INTERNAL flag 1840 remove unused return type of MakeBuildParent 1841 o parse.c: replace parse error "Need an operator" with better message 1842 o var.c: improve documentation about variable scopes 1843 rename Var_ValueDirect to GNode_ValueDirect 1844 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1845 merge SetVar into Var_SetWithFlags 1846 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1847 split Var_Append into Var_Append and Var_AppendExpand 1848 replace enum bit-set with bit-field 1849 o unit-tests/var-op-shell: use kill rather than kill -14 1850 which broke on darwin with recent update. 1851 18522021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1853 1854 * configure.in: check for sig_atomic_t and define it as 'int' 1855 if missing. 1856 1857 * VERSION (_MAKE_VERSION): 20210201 1858 Merge with NetBSD make, pick up 1859 o use sig_atomic_t for caught_sigchld 1860 18612021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1862 1863 * VERSION (_MAKE_VERSION): 20210130 1864 Merge with NetBSD make, pick up 1865 o more unit tests 1866 o convert SearchPath to struct 1867 o split Buf_Destroy into Buf_Done and Buf_DoneData 1868 o for.c: split For_Eval into separate functions 1869 rename struct For to struct ForLoop 1870 o job.c: do not create empty shell files in jobs mode 1871 rename JobOpenTmpFile to JobWriteShellCommands 1872 reduce unnecessary calls to waitpid 1873 o parse.c: in -dp mode, print stack trace with each diagnostic 1874 18752021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1876 1877 * VERSION (_MAKE_VERSION): 20210123 1878 Merge with NetBSD make, pick up 1879 o rename Dir_Expand to SearchPath_Expand 1880 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1881 o cond.c: fix debug output for comparison operators in conditionals 1882 o dir.c: split Dir_FindFile into separate functions 1883 18842021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1885 1886 * VERSION (_MAKE_VERSION): 20210120 1887 Merge with NetBSD make, pick up 1888 o fix some more lint nits 1889 o refine some unit tests for portability 1890 o cond.c: rework parsing 1891 18922021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1893 1894 * VERSION (_MAKE_VERSION): 20210110 1895 Merge with NetBSD make, pick up 1896 o fix lint warnings 1897 o consistently use boolean expressions in conditions 1898 18992021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1900 1901 * VERSION (_MAKE_VERSION): 20210108 1902 Merge with NetBSD make, pick up 1903 o job.c: back to polling token pipe if we want a token 1904 o main.c: always print 'stopped in' on first call 1905 The execption is if we bail because of an abort token 1906 in which case just exit 6. 1907 19082021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1909 1910 * VERSION (_MAKE_VERSION): 20210101 1911 Merge with NetBSD make, pick up 1912 o Happy New Year! 1913 o rename CmdOpts.lint to strict 1914 o exit 2 on technical errors 1915 o replace pointers in controlling conditions with booleans 1916 o replace global preserveUndefined with VARE_KEEP_UNDEF 1917 o compat.c: re-export variables from the actual make process 1918 if using vfork this is the effect anyway 1919 o cond.c: clean up VarParseResult constants 1920 o for.c: fix undefined behavior in SubstVarLong 1921 make control flow in SubstVarLong of .for loops more obvious 1922 clean up SubstVarShort in .for loops 1923 extract ForSubstBody from ForReadMore 1924 clean up ForReadMore 1925 simplify termination condition for .for loop 1926 add error handling for .for loop items 1927 job.c: re-export variables from the actual make process 1928 parse.c: remove mmap for loading files, only allow files < 1 GiB 1929 fix edge case in := with undefined in variable name 1930 skip variable expansion in ParseDependencyTargetWord 1931 var.c: split ExportVar into separate functions 1932 clean up code in extracted ExportVar functions 1933 remove dead code from ApplyModifiersIndirect 1934 split Var_Subst into easily understandable functions 1935 clean up VarParseResult constants 1936 19372020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1938 1939 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1940 19412020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1942 1943 * VERSION (_MAKE_VERSION): 20201222 1944 Merge with NetBSD make, pick up 1945 o make DEBUG macro return boolean 1946 o parse.c: fix assertion failure for files without trailing newline 1947 o var.c: allow .undef to undefine multiple variables at once 1948 remove excess newline from parse errors 1949 19502020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1951 1952 * VERSION (_MAKE_VERSION): 20201221 1953 Merge with NetBSD make, pick up 1954 o some unit-test updates 1955 19562020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1957 1958 * VERSION (_MAKE_VERSION): 20201220 1959 Merge with NetBSD make, pick up 1960 o more unit tests 1961 o return FStr from Var_Parse and Var_Value 1962 o spell nonexistent consistently 1963 o add str_basename to reduce duplicate code 1964 o compat.c: fix .ERROR_TARGET in compat -k mode 1965 extract InitSignals from Compat_Run 1966 extract UseShell from Compat_RunCommand 1967 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1968 o for.c: rename ForIterate to ForReadMore 1969 o hash.c: clean up hash function for HashTable 1970 o lst.c: rename Vector.priv_cap to cap 1971 o main.c: remove constant parameter from MakeMode 1972 o make.c: use symbolic time for 0 in Make_Recheck 1973 extract MakeChildren from MakeStartJobs 1974 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1975 fix error message for .info/.warning/.error without argument 1976 extract Var_Undef from ParseDirective 1977 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1978 rename mode constants for ParseGetLine to be more expressive 1979 reduce debugging details in Parse_SetInput 1980 fix line numbers in .for loops 1981 split ParseGetLine into separate functions 1982 fix garbled output for failed shell command 1983 var.c: remove redundant assignment in ApplyModifier_SysV 1984 error out on unknown variable modifiers at parse time 1985 remove wrong error message for indirect modifier in lint mode 1986 extract ApplySingleModifier from ApplyModifiers 1987 use FStr for memory management in Var_SetWithFlags 1988 extract SetVar from Var_SetWithFlags 1989 use FStr in VarNew 1990 extract string functions from ApplyModifier_To 1991 error out if .undef has not exactly 1 argument 1992 extract Var_DeleteVar from Var_Delete 1993 extract Var_Undef from ParseDirective 1994 clean up memory management for expanding variable expressions 1995 19962020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1997 1998 * avoid %zu 1999 2000 * lst.c: avoid anonymous union 2001 2002 * VERSION (_MAKE_VERSION): 20201212 2003 Merge with NetBSD make, pick up 2004 o more unit tests 2005 o inline Targ_Ignore and Targ_Silent 2006 o split JobFlags into separate fields 2007 o remove const from function parameters (left overs from refactoring) 2008 o eliminate boolean argument of Var_Export 2009 o make API of Buf_Init simpler 2010 o rename ParseRunOptions to ParseCommandFlags 2011 o replace *line with line[0] 2012 o compat.c: fix wrong exit status for multiple failed main targets 2013 refactor Compat_Run to show the error condition more clearly 2014 don't make .END if the main targets already failed (-k mode) 2015 fix exit status in -k mode if a dependency fails 2016 o for.c: clean up Buf_AddEscaped in .for loops 2017 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 2018 make Job_Touch simpler 2019 refactor JobFinish 2020 rename Shell.exitFlag to errFlag 2021 move Job.xtraced to ShellWriter 2022 make printing of shell commands independent from the job 2023 rename shell flags in struct Shell 2024 extract JobOpenTmpFile from JobStart 2025 rename RunFlags to CommandFlags 2026 split various Job.* into separate fields 2027 rename commandShell to shell 2028 extract InitShellNameAndPath from Shell_Init 2029 replace signal handling macros with local functions 2030 replace macro MESSAGE with local function 2031 parse.c: error out on null bytes in makefiles 2032 error out on misspelled directives 2033 rename IFile.nextbuf to readMore 2034 fix undefined behavior in ParseEOF 2035 str.c: remove redundant call to strlen in Str_Words 2036 var.c: error out on misspelled .unexport-env 2037 error out on misspelled .export directives 2038 extract ExportVars from Var_Export 2039 extract ExportVarsExpand from Var_Export 2040 eliminate boolean argument of Var_Export 2041 fix undefined behavior when exporting ${:U } 2042 rename Var_ExportVars to Var_ReexportVars 2043 rename Var_Export1 to ExportVar 2044 20452020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 2046 2047 * VERSION (_MAKE_VERSION): 20201206 2048 Merge with NetBSD make, pick up 2049 o more unit tests 2050 o inline macros for debug logging 2051 o use consistent variable names for list nodes 2052 o define constants for enum zero-values 2053 o dir.c: use fixed format for debug output of the directory cache 2054 remove Dir_InitDir 2055 o lst.c: inline Lst_Enqueue, Vector_Done 2056 o meta.c: remove unused parameter from meta_needed 2057 o parse.c: rename parse functions 2058 o suff.c: extract ExpandChildrenRegular from ExpandChildren 2059 o targ.c: don't concatenate identifiers in Targ_PrintType 2060 o var.c: remove comment decoration 2061 extract UnexportVars from Var_UnExport 2062 extract GetVarnamesToUnexport from Var_UnExport 2063 extract UnexportEnv from Var_UnExport 2064 extract UnexportVar from Var_UnExport 2065 move CleanEnv to UnexportVars 2066 replace pointer comparisons with enum 2067 add FStr to var.c to make memory handling simpler 2068 use FStr in Var_UnExport 2069 move type definitions in var.c to the top 2070 extract FreeEnvVar from Var_Parse 2071 extract ShuffleStrings from ApplyModifier_Order 2072 20732020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 2074 2075 * VERSION (_MAKE_VERSION): 20201130 2076 Merge with NetBSD make, pick up 2077 o add unit tests for META MODE 2078 o reduce memory allocation for dirSearchPath, GNode.parents, 2079 GNode.children, OpenDirs 2080 o reduce pointer indirection for GNode.cohorts and 2081 GNode.implicitParents 2082 o remove pointer indirection from GNode.commands 2083 o inline Lst_ForEachUntil in meta mode 2084 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 2085 clean up memory management for CachedDirs 2086 fix the reference count of dotLast going negative 2087 add debug logging for OpenDirs_Done 2088 extract CacheNewDir from Dir_AddDir 2089 add debug logging for reference counting of CachedDir 2090 rename some Dir functions to SearchPath 2091 o job.c: rename some global variables 2092 o main.c: reduce memory allocation in ReadBuiltinRules 2093 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 2094 CmdOpts.makefiles 2095 Add .MAKE.UID and .MAKE.GID 2096 o make.c: reduce memory allocation for/in toBeMade, 2097 Make_ProcessWait, Make_ExpandUse 2098 o meta.c: reduce memory allocation in meta_oodate 2099 o parse.c: reduce memory allocations for parsing dependencies and 2100 targets 2101 o suff.c: reduce memory allocation in suffix handling 2102 21032020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 2104 2105 * VERSION (_MAKE_VERSION): 20201124 2106 Merge with NetBSD make, pick up 2107 o .MAKE.{UID,GID} represent uid and gid running make. 2108 o fix error handling for .BEGIN and .END dependency in -k mode 2109 o fix missing "Stop." after failed .END node in -k mode 2110 o use properly typed comparisons in boolean contexts 2111 o replace a few HashTable_CreateEntry with HashTable_Set 2112 o add HashSet type 2113 o compat.c: split Compat_Make into smaller functions 2114 extract DebugFailedTarget from Compat_RunCommand 2115 o dir.c: refactor Dir_UpdateMTime 2116 migrate CachedDir.files from HashTable to HashSet 2117 o make.c: add high-level API for GNode.made 2118 21192020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 2120 2121 * VERSION (_MAKE_VERSION): 20201122 2122 Merge with NetBSD make, pick up 2123 o rename GNode.context to vars 2124 o suff.c: cleanup and refactor 2125 rename some functions and vars to better reflect usage 2126 add high-level API for CandidateSearcher 2127 o targ.c: add more debug logging for suffix handling 2128 o more unit tests 2129 o add debug logging for setting and resetting the main target 2130 21312020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 2132 2133 * VERSION (_MAKE_VERSION): 20201117 2134 Merge with NetBSD make, pick up 2135 o fix some unit-tests when .SHELL is dash 2136 o rename Targ_NewGN to GNode_New 2137 o make some GNode functions const 2138 o main.c: call Targ_Init before Var_Init 2139 cleanup PrintOnError, getTmpdir and ParseBoolean 2140 o var.c: fix error message of failed :!cmd! modifier 2141 21422020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 2143 2144 * VERSION (_MAKE_VERSION): 20201114 2145 Merge with NetBSD make, pick up 2146 o replace a few HashTable_CreateEntry with HashTable_Set 2147 o clean up cached_stats 2148 o rename DEFAULT to defaultNode 2149 o remove redundant struct make_stat 2150 o cond.c: in lint mode, check for ".else <cond>" 2151 use bitset for IfState 2152 replace large switch with if-else in Cond_EvalLine 2153 o job.c: clean up JobExec, JobStart, JobDoOutput 2154 use stderr for error message about failed touch 2155 clean up Job_Touch 2156 replace macro DBPRINTF with JobPrintln 2157 rename JobState to JobStatus 2158 main.c: switch cache for realpath from GNode to HashTable 2159 clean up Fatal 2160 clean up InitDefSysIncPath 2161 use progname instead of hard-coded 'make' in warning 2162 rename Main_SetVarObjdir to SetVarObjdir 2163 make.1: document the -S option 2164 make.c: fix debug output for GNode details 2165 use symbolic names in debug output of GNodes 2166 21672020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 2168 2169 * configure.in: fix --with-force-machine-arch 2170 2171 * VERSION (_MAKE_VERSION): 20201112 2172 Merge with NetBSD make, pick up 2173 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 2174 checks in InitObjdir. Explicit .OBJDIR target always allows 2175 read-only directory. 2176 o cond.c: clean up Cond_EvalLine 2177 21782020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 2179 2180 * VERSION (_MAKE_VERSION): 20201111 2181 Merge with NetBSD make, pick up 2182 o more unit-tests 2183 o style cleanup 2184 remove redundant parentheses from sizeof operator 2185 replace character literal 0 with '\0'. 2186 replace pointer literal 0 with NULL. 2187 remove redundant parentheses. 2188 replace (expr & mask) == 0 with !(expr & mask). 2189 use strict typing in conditions of the form !var 2190 o rename Make_OODate to GNode_IsOODate 2191 o rename Make_TimeStamp to GNode_UpdateYoungestChild 2192 o rename Var_Set_with_flags to Var_SetWithFlags 2193 o rename dieQuietly to shouldDieQuietly 2194 o buf.c: make API of Buf_Init simpler 2195 o compat.c: clean up Compat_Make, Compat_RunCommand, 2196 CompatDeleteTarget and CompatInterrupt 2197 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 2198 clean up CondParser_Comparison 2199 o main.c: rename getBoolean and s2Boolean 2200 rename MAKEFILE_PREFERENCE for consistency 2201 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 2202 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 2203 replace emptyString with allocated empty string 2204 error out on unclosed expressions after the colon 2205 22062020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 2207 2208 * VERSION (_MAKE_VERSION): 20201101 2209 Merge with NetBSD make, pick up 2210 o negate NoExecute to GNode_ShouldExecute 2211 o job.c: rename JobMatchShell to FindShellByName 2212 extract EscapeShellDblQuot from JobPrintCommand 2213 extract ParseRunOptions from JobPrintCommand 2214 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 2215 treat malformed :range, :ts and :[...] as errors 2216 add tests for the variable modifiers :[words] and :range 2217 22182020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 2219 2220 * VERSION (_MAKE_VERSION): 20201031 2221 Merge with NetBSD make, pick up 2222 o format #include directives consistently 2223 o do not look up local variables like .TARGET anywhere else 2224 o main.c: Main_SetObjdir is first called for curdir which may be 2225 readonly 2226 reduce the scope where recursive expressions are detected 2227 remove redundant :tl from getBoolean 2228 clean up mkTempFile 2229 o meta.c: simplify memory allocation in meta_create and meta_oodate 2230 o parse.c: extract loadedfile_mmap from loadfile 2231 o trace.c: document possible undefined behavior with .CURDIR 2232 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 2233 rename ismeta to is_shell_metachar 2234 remove debug logging for the :Q variable modifier 2235 rename VarIsDynamic to VarnameIsDynamic 2236 use consistent parameter order in varname parsing functions 2237 extract ParseVarnameLong from Var_Parse 2238 extract ParseVarnameShort from Var_Parse 2239 fix type of ParseModifierPart parameter delim 2240 extract IsEscapedModifierPart from ParseModifierPart 2241 clean up ModifyWords 2242 add test for combining the :@ and :? variable modifiers 2243 22442020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 2245 2246 * VERSION (_MAKE_VERSION): 20201030 2247 Merge with NetBSD make, pick up 2248 o change char * to void * in Var_Value 2249 o make iterating over HashTable simpler 2250 o rename VAR_CMD to VAR_CMDLINE 2251 o cond.c: clean up is_separator 2252 fix parse error in string literal in conditional 2253 o main.c: do not use objdir that is not writable 2254 in lint mode, exit with error status on errors 2255 o parse.c: clean up StrContainsWord 2256 fix out-of-bounds pointer in ParseTrackInput 2257 o var.c: rename Str_SYSVMatch and its parameters 2258 remove unsatisfiable conditions in Var_Set_with_flags 2259 document where the variable name is expanded 2260 fix documentation for VARP_SUB_ONE 2261 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 2262 document VAR_READONLY 2263 prevent appending to read-only variables 2264 extract MayExport from Var_Export1 2265 remove redundant evaluations in VarFind 2266 replace VarFindFlags with a simple Boolean 2267 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 2268 22692020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 2270 2271 * VERSION (_MAKE_VERSION): 20201028 2272 Merge with NetBSD make, pick up 2273 o rename defIncPath to defSysIncPath 2274 o initialize all CmdOpts fields 2275 o lst.c: inline Vector_Get 2276 o main.c: refactor main extract 2277 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 2278 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 2279 InitDefIncPath,CmdOpts_Init,UnlimitFiles 2280 o parse.c: merge curFile into includes 2281 rename predecessor to order_pred 2282 sort ParseSpecial alphabetically 2283 remove unused, undocumented .NOEXPORT 2284 rename ParseSpecial enum values consistently 2285 rename some fields of struct IFile 2286 22872020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 2288 2289 * VERSION (_MAKE_VERSION): 20201026 2290 Merge with NetBSD make, pick up 2291 o group the command line options and arguments into a struct 2292 o rename GNode.cmgn to youngestChild 2293 o rename hash functions to identify the type name 2294 o negate OP_NOP and rename it to GNode_IsTarget 2295 o add GNode_Path to access the path of a GNode 2296 o remove macros MIN and MAX 2297 o remove unused Lst_Find and Lst_FindFrom 2298 o arch.c: and make Arch_FindLib simpler 2299 clean up code layout 2300 make Arch_ParseArchive simpler 2301 o cond.c: inline CondFindStrMatch into FuncMake 2302 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 2303 omit trailing space in debug output for expanding file patterns 2304 refactor DirMatchFiles 2305 document that the SearchPath of Dir_FindFile may be NULL 2306 remove UNCONST from Dir_Expand 2307 inline DirFindName 2308 o for.c: clean up code for handling .for loops 2309 o hash.c: print hash in debug log with fixed width 2310 clean up hash table functions 2311 reduce amount of string hashing 2312 o job.c: refactor JobDeleteTarget 2313 use proper enum constants for aborting 2314 convert result of JobStart from macros to enum 2315 convert abort reason macros to enum 2316 rework Job_CheckCommands to reduce indentation 2317 rename Shell fields 2318 add field names in declaration of DEFSHELL_CUSTOM 2319 convert JobState and JobFlags to enum types 2320 move handling of the "..." command to JobPrintCommands 2321 o lst.c: clean up 2322 refactor LstNodeNew 2323 remove Lst_Open, Lst_Next, Lst_Close 2324 remove code for circular lists from Lst_Next 2325 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 2326 /dev/null or anything starting with "no" 2327 convert macros for debug flags into enum 2328 o make.c: inline Lst_Copy in Make_ExpandUse 2329 o meta.c: inline Lst_Find in meta_oodate 2330 make Lst_RemoveIf simpler in meta_oodate 2331 o parse.c: convert error level for Parse_Error to an enum 2332 o suff.c: properly terminate debug output with newline 2333 add more details to DEBUG_SRC log 2334 replace Dir_CopyDir with Dir_CopyDirSearchPath 2335 don't modify GNode name while rebuilding the suffix graph 2336 o var.c: reduce duplicate code in VarFind 2337 23382020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 2339 2340 * VERSION (_MAKE_VERSION): 20201022 2341 Merge with NetBSD make, pick up 2342 o more refactoring and simplification to reduce code size 2343 o var.c: extract CanonicalVarname from VarFind 2344 o make.c: extract UpdateImplicitParentsVars from Make_Update 2345 o main.c: extract PrintVar from doPrintVars 2346 extract HandlePWD from main 2347 o lst.c: inline simple Lst getters 2348 remove unused Lst_ForEach 2349 o job.c: move struct Shell from job.h to job.c 2350 o more unit tests 2351 23522020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 2353 2354 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 2355 23562020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 2357 2358 * VERSION (_MAKE_VERSION): 20201018 2359 Merge with NetBSD make, pick up 2360 o remove USE_IOVEC 2361 o rename some Hash_* apis to Hash* 2362 o replace execError with execDie 2363 o rename Lst_Init to Lst_New 2364 o add tags to enum types 2365 o rename Stack to Vector 2366 o parse.c: more refactoring 2367 o unit-tests: make some tests use line buffered stdout 2368 o unit-tests/Makefile: in meta mode do not make all tests depend on 2369 Makefile, it isn't necessary. 2370 23712020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 2372 2373 * main.c: check for CTL_HW being defined. 2374 * unit-tests/Makefile: ensure export tests output are POSIX compliant 2375 disable opt-debug-jobs test until it works on ubuntu 2376 2377 * VERSION (_MAKE_VERSION): 20201010 2378 Merge with NetBSD make, pick up 2379 o dir.c: remove pathname limit for Dir_FindHereOrAbove 2380 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 2381 o main.c: extract init_machine and init_machine_arch from main 2382 allow to disable debug logging options 2383 o parse.c: enable format string truncation warnings 2384 extract parsing of sources from ParseDoDependency 2385 split ParseDoSrc into smaller functions 2386 hide implementation details from Parse_DoVar 2387 clean up parsing of variable assignments 2388 split Parse_DoVar into manageable pieces 2389 don't modify the given line during Parse_DoVar 2390 fix out-of-bounds memory access in Parse_DoVar 2391 fix parsing of the :sh assignment modifier 2392 o var.c: rework memory allocation for the name of variables 2393 extract ApplyModifier_Literal into separate function 2394 in lint mode, reject modifiers without delimiter 2395 do not export variable names starting with '-' 2396 o fix double-free bug in -DCLEANUP mode 2397 o more cleanup to enable higher warnings level 2398 o more unit tests 2399 24002020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 2401 2402 * VERSION (_MAKE_VERSION): 20201002 2403 Merge with NetBSD make, pick up 2404 o dir.c: use hash table for looking up open directories by name 2405 o main.c: clean up option handling 2406 o parse.c: add missing const for Parse_AddIncludeDir 2407 o var.c: ApplyModifier_To, update pp in each branch 2408 o remove redundant function prototypes 2409 o more unit tests 2410 24112020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 2412 2413 * VERSION (_MAKE_VERSION): 20201001 2414 Merge with NetBSD make, pick up 2415 o compat.c: comment about "..." 2416 24172020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 2418 2419 * VERSION (_MAKE_VERSION): 20200930 2420 Merge with NetBSD make, pick up 2421 o job.c: split Job.jobPipe into 2 separate fields 2422 replace Lst_Open with direct iteration 2423 o lst.c: remove redundant assertions 2424 o targ.c: replace Lst_Open with direct iteration 2425 o var.c: fix bug in evaluation of indirect variable modifiers 2426 extract ApplyModifier_Quote into separate function 2427 o make debug logging simpler 2428 24292020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 2430 2431 * VERSION (_MAKE_VERSION): 20200927 2432 Merge with NetBSD make, pick up 2433 o parse.c: ensure parse errors result in 'stopped in' message. 2434 o compat.c: make parameter of Compat_RunCommand const 2435 o main.c: extract InitVarTarget from main 2436 o parse.c: rename ParseFinishLine to FinishDependencyGroup 2437 refactor ParseDoDependency 2438 o var.c: Var_Subst no longer returns string result 2439 rename Var_ParsePP back to Var_Parse 2440 in lint mode, improve error handling for undefined variables 2441 extract ParseVarname from Var_Parse 2442 o rename Lst_ForEach to Lst_ForEachUntil 2443 o inline Lst_ForEachUntil in several cases 2444 o clean up API for finding and creating GNodes 2445 o fix assertion failure in -j mode with .END node 2446 o inline and remove LstNode_Prev and LstNode_Next 2447 o use fine-grained type names for lists and their nodes 2448 o more unit tests 2449 24502020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 2451 2452 * VERSION (_MAKE_VERSION): 20200911 2453 Merge with NetBSD make, pick up 2454 o cond.c: split EvalComparison into smaller functions 2455 reorder parameters of condition parsing functions 2456 reduce code size in CondParser_Eval 2457 rename CondGetString to CondParser_String 2458 add CondLexer_SkipWhitespace 2459 group the condition parsing state into a struct 2460 in CondGetString, replace repeated Buf_Add with Buf_AddStr 2461 o migrate Var_Parse to Var_ParsePP 2462 o add wrappers around ctype.h functions 2463 o lst.c: use a stack instead of a list for the nested include path 2464 o more unit tests 2465 24662020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 2467 2468 * make-bootstrap.sh.in: adjust object list 2469 24702020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 2471 2472 * VERSION (_MAKE_VERSION): 20200902 2473 Merge with NetBSD make, pick up 2474 o use make_stat to ensure no confusion over valid fields 2475 returned by cached_stat 2476 o var.c: make VarQuote const-correct 2477 o add unit tests for .for 2478 24792020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 2480 2481 * VERSION (_MAKE_VERSION): 20200901 2482 Merge with NetBSD make, pick up 2483 o rename Hash_Table fields 2484 o make data types in Dir_HasWildcards more precise 2485 24862020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 2487 2488 * VERSION (_MAKE_VERSION): 20200831 2489 Merge with NetBSD make, pick up 2490 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 2491 o lst.c: Lst_Open renable assert that list isn't open 2492 o unit test for .TARGET dependent flags 2493 o var.c: fix aliasing bug in VarUniq 2494 o more unit tests for :u 2495 24962020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 2497 2498 * VERSION (_MAKE_VERSION): 20200830 2499 Merge with NetBSD make, pick up 2500 o allow for strict type checking for Boolean 2501 o Var_Parse never returns NULL 2502 o Var_Subst never returns NULL 2503 o Lst_Find now takes boolean match function 2504 o rename Lst_Memeber to Lst_FindDatum 2505 o rename LstNode functions to match their type 2506 o rename GNode.iParents to implicitParents 2507 o fix assertion failure for .SUFFIXES in archives 2508 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 2509 remove unreachable code from CompatRunCommand 2510 o main.c: simplify getBoolean 2511 o stc.c: replace brk_string with simpler Str_Words 2512 o suff.c: add debug macros 2513 25142020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 2515 2516 * VERSION (_MAKE_VERSION): 20200828 2517 Merge with NetBSD make, pick up 2518 o lst.c: inline LstIsValid and LstNodeIsValid 2519 o remove trailing S from Lst function names after migration complete 2520 o more comment cleanup/clarification 2521 o suff.c: clean up suffix handling 2522 o more unit tests 2523 25242020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2525 2526 * VERSION (_MAKE_VERSION): 20200826 2527 Merge with NetBSD make, pick up 2528 o enum.c: distinguish between bitsets containing flags and 2529 ordinary enums 2530 o var.c: fix error message for ::!= modifier with shell error 2531 o fix bugs in -DCLEANUP mode 2532 25332020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 2534 2535 * VERSION (_MAKE_VERSION): 20200824 2536 Merge with NetBSD make, pick up 2537 o in debug mode, print GNode details in symbols 2538 25392020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 2540 2541 * VERSION (_MAKE_VERSION): 20200823 2542 Merge with NetBSD make, pick up 2543 o lst.c: more asserts, 2544 make args to Lst_Find match others. 2545 o var.c: pass flags to VarAdd 2546 o arch.c: use Buffer 2547 o str.c: brk_string return size_t for nwords 2548 o more unit tests 2549 25502020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2551 2552 * VERSION (_MAKE_VERSION): 2553 Merge with NetBSD make, pick up 2554 o var.c: support for read-only variables eg .SHELL 2555 being the shell used to run scripts. 2556 o lst.c: more simplification 2557 o more documentation and style cleanup 2558 o more unit tests 2559 o ensure unit-test/Makefile is run by TEST_MAKE 2560 o reduce duplication of header inclusion 2561 25622020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2563 2564 * VERSION (_MAKE_VERSION): 20200821 2565 Merge with NetBSD make, pick up 2566 o lst.c: revert invalid assertion - but document it 2567 o dir.c: split Dir_Init into two functions 2568 25692020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2570 2571 * lst.c: needs inttypes.h on Linux 2572 2573 * VERSION (_MAKE_VERSION): 20200820 2574 Merge with NetBSD make, pick up 2575 o make.1: clarify some passages 2576 o var.c: more cleanup, clarify comments 2577 o make_malloc.c: remove unreachable code 2578 o cond.c: make CondGetString easier to debug 2579 o simplify list usage 2580 o unit-tests: more 2581 25822020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2583 2584 * VERSION (_MAKE_VERSION): 20200816 2585 Merge with NetBSD make, pick up 2586 o refactor unit-tests to be more fine grained 2587 not all tests moved yet 2588 25892020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2590 2591 * VERSION (_MAKE_VERSION): 20200814 2592 Merge with NetBSD make, pick up 2593 o more str_concat variants 2594 o more enums for flags 2595 o var.c: cleanup for higher warnings level 2596 25972020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2598 2599 * VERSION (_MAKE_VERSION): 20200810 2600 Merge with NetBSD make, pick up 2601 o more unit tests 2602 o general comment and style cleanup 2603 26042020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2605 2606 * VERSION (_MAKE_VERSION): 20200808 2607 Merge with NetBSD make, pick up 2608 o enum.[ch]: streamline, enums for use in flags and debug output 2609 o cond.c: cleanup 2610 o var.c: reduce duplicate code for modifiers 2611 debug logging for Var_Parse 2612 more detailed debug output 2613 o more unit tests 2614 26152020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2616 2617 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2618 so I can run tests in meta mode 2619 supress extra noise if in meta mode 2620 2621 * VERSION (_MAKE_VERSION): 20200806 2622 Merge with NetBSD make, pick up 2623 o parse.c: remove VARE_WANTRES for LINT 2624 we just want to check parsing (for now). 2625 26262020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2627 2628 * VERSION (_MAKE_VERSION): 20200805 2629 Merge with NetBSD make, pick up 2630 o make.1: Rework the description of dependence operators 2631 26322020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2633 2634 * VERSION (_MAKE_VERSION): 20200803 2635 Merge with NetBSD make, pick up 2636 o revert some C99 usage, for max portability 2637 o unit-tests/lint 2638 26392020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2640 2641 * VERSION (_MAKE_VERSION): 20200802 2642 Merge with NetBSD make, pick up 2643 o more unit tests 2644 26452020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2646 2647 * Remove NetBSD specific plumbing from unit-tests/Makefile 2648 2649 * VERSION (_MAKE_VERSION): 20200801 2650 Merge with NetBSD make, pick up 2651 o make Var_Value return const 2652 o size_t for buf sizes 2653 o optimize some buffer operations - avoid strlen 2654 26552020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2656 2657 * VERSION (_MAKE_VERSION): 20200731 2658 Merge with NetBSD make, pick up 2659 o var.c: fix undefinded behavior for incomplete :t modifier 2660 fixes unit-test/moderrs on Ubuntu 2661 o parse.c: When parsing variable assignments other than := 2662 if DEBUG(LINT) test substition of value, so we get a file and 2663 line number in the resulting error. 2664 o dir.c: fix parsing of nested braces in dependency lines 2665 add unit-tests 2666 26672020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2668 2669 * VERSION (_MAKE_VERSION): 20200730 2670 Merge with NetBSD make, pick up 2671 o var.c: minor cleanup 2672 o unit-tests: more tests to improve code coverage 2673 26742020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2675 2676 * VERSION (_MAKE_VERSION): 20200728 2677 Merge with NetBSD make, pick up 2678 o var.c: more optimizations 2679 26802020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2681 2682 * VERSION (_MAKE_VERSION): 20200726 2683 Merge with NetBSD make, pick up 2684 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2685 o lots of function comment updates 2686 o var.c: more optimizations 2687 o make return of Var_Parse const 2688 26892020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2690 2691 * VERSION (_MAKE_VERSION): 20200720 2692 Merge with NetBSD make, pick up 2693 o DEBUG_HASH report stats at end and tone down the noise 2694 o var.c: each flag type gets its own prefix. 2695 move SysV string matching to var.c 2696 make ampersand in ${VAR:from=to&} an ordinary character 2697 cleanup and simplify implementation of modifiers 2698 o make.1: move documentation for assignment modifiers 2699 27002020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2701 2702 * VERSION (_MAKE_VERSION): 20200718 2703 Merge with NetBSD make, pick up 2704 o DEBUG_HASH to see how well the hash tables are working 2705 27062020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2707 2708 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2709 27102020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2711 2712 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2713 2714 * VERSION (_MAKE_VERSION): 20200710 2715 Merge with NetBSD make, pick up 2716 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2717 o meta.c: target flagged .META is out-of-date if meta file missing 2718 27192020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2720 2721 * VERSION (_MAKE_VERSION): 20200709 2722 Merge with NetBSD make, pick up 2723 o cond.c: fix for compare_expression when doEval=0 2724 o unit-tests/Makefile: rework 2725 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2726 27272020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2728 2729 * VERSION (_MAKE_VERSION): 20200704 2730 Merge with NetBSD make, pick up 2731 (most of this by rillig@) 2732 o lots of style and white-space cleanup 2733 o lots more unit tests for variable modifiers 2734 o simplified description of some functions 2735 o str.c: refactor Str_Match 2736 o var.c: debugging output for :@ 2737 constify VarModify parameter 2738 fix :hash modifier on 16-bit platforms 2739 remove unnecessary forward declarations 2740 refactor ApplyModifier_SysV to have less indentation 2741 simplify code for :E and :R 2742 clean up code for :H and :T 2743 refactor ApplyModifiers 2744 2745 * var.c: we need stdint.h on some platforms to get uint32_t 2746 * unit-test/Makefile: we need to supress the specific error 2747 for RE substitution error in modmisc, since it varies accross 2748 different OS. 2749 27502020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2751 2752 * VERSION (_MAKE_VERSION): 20200702 2753 Merge with NetBSD make, pick up 2754 o var.c: more improvements to avoiding unnecessary evaluation 2755 use enums for flags 2756 o remove flags arg to Var_Set which outside of var.c is always 0 2757 27582020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2759 2760 * VERSION (_MAKE_VERSION): 20200701 2761 Merge with NetBSD make, pick up 2762 o var.c: with change to cond.c; ensure that nested variables 2763 within a variable name are expanded. 2764 o unit-tests/varmisc.mk: test for nested varname 2765 27662020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2767 2768 * VERSION (_MAKE_VERSION): 20200629 2769 Merge with NetBSD make, pick up 2770 o cond.c: do not eval unnecessary terms of conditionals. 2771 27722020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2773 2774 * VERSION (_MAKE_VERSION): 20200625 2775 Merge with NetBSD make, pick up 2776 o meta.c: report error if lseek in filemon_read fails 2777 27782020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2779 2780 * VERSION (_MAKE_VERSION): 20200622 2781 Merge with NetBSD make, pick up 2782 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2783 27842020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2785 2786 * VERSION (_MAKE_VERSION): 20200619 2787 Merge with NetBSD make, pick up 2788 o str.c: performance improvement for Str_Match for multiple '*' 2789 o dieQuietly: supress the failure output from make 2790 when failing node is a sub-make or a sibling failed. 2791 This cuts down greatly on unhelpful noise at the end of 2792 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2793 27942020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2795 2796 * FILES: add LICENSE to appease some packagers. 2797 This is an attempt to fairly represent the license on almost 2798 200 files, which are almost all BSD-3-Clause 2799 The few exceptions being more liberal. 2800 2801 * VERSION (_MAKE_VERSION): 20200610 2802 Merge with NetBSD make, pick up 2803 o unit test for :Or 2804 28052020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2806 2807 * VERSION (_MAKE_VERSION): 20200606 2808 Merge with NetBSD make, pick up 2809 o make.1: cleanup 2810 2811 * Makefile: fix depends for main.o which broke MAKE_VERSION 2812 28132020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2814 2815 * VERSION (_MAKE_VERSION): 20200605 2816 Merge with NetBSD make, pick up 2817 o dir.c: cached_stats - don't confuse stat and lstat results. 2818 o var.c: add :Or for reverse sort. 2819 28202020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2821 2822 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2823 also if --with-filemon= specifies path to filemon.h 2824 set use_filemon=dev 2825 * dirname.c: remove include of namespace.h 2826 28272020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2828 2829 * VERSION (_MAKE_VERSION): 20200517 2830 Merge with NetBSD make, pick up 2831 o modified dollar tests to avoid shell dependencies 2832 o new tests for .INCLUDEFROM 2833 28342020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2835 2836 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2837 to not depend so much on shell behavior 2838 28392020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2840 2841 * VERSION (_MAKE_VERSION): 20200510 2842 Merge with NetBSD make, pick up 2843 o unit test for dollar handling 2844 28452020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2846 2847 * VERSION (_MAKE_VERSION): 20200506 2848 Merge with NetBSD make, pick up 2849 o str.c: empty string does not match % pattern 2850 plus unit-test changes 2851 28522020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2853 2854 * VERSION (_MAKE_VERSION): 20200504 2855 May the 4th be with you 2856 Merge with NetBSD make, pick up 2857 o var.c: import handling of old sysV style modifier using '%' 2858 o str.c: refactor brk_string 2859 o unit-tests: add test case for lazy conditions 2860 28612020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2862 2863 * VERSION (_MAKE_VERSION): 20200418 2864 2865 * configure.in: use_makefile=no for Cygwin et al. 2866 case insensitive filesystems just don't work if both 2867 makefile and Makefile exist. 2868 NOTE: bmake does not support Cygwin and likely never will, 2869 but if brave souls want to try it - help them out. 2870 28712020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2872 2873 * VERSION (_MAKE_VERSION): 20200402 2874 Merge with NetBSD make, pick up 2875 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2876 a blank command is perfectly valid. 2877 28782020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2879 2880 * VERSION (_MAKE_VERSION): 20200330 2881 Merge with NetBSD make, pick up 2882 o make.h: extern debug_file 2883 28842020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2885 2886 * VERSION (_MAKE_VERSION): 20200318 2887 Merge with NetBSD make, pick up 2888 o meta.c: meta_oodate, check for corrupted meta file 2889 earlier and more often. 2890 28912020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2892 2893 * VERSION (_MAKE_VERSION): 20200220 2894 28952020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2896 2897 * boot-strap: unset MAKEFLAGS 2898 28992020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2900 2901 * VERSION (_MAKE_VERSION): 20200212 2902 * meta.c: meta_compat_parent check for USE_FILEMON 2903 patch from Soeren Tempel 2904 29052020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2906 2907 * VERSION: 20200205 2908 Merge with NetBSD make, pick up 2909 o meta.c: fix compat mode, need to call meta_job_output() 2910 o job.c: extra fds for meta mode not needed if using filemon_dev 2911 29122020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2913 2914 * VERSION: 20200122 2915 Merge with NetBSD make, pick up 2916 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2917 returns FALSE. 2918 29192020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2920 2921 * VERSION: 20200121 2922 Merge with NetBSD make, pick up 2923 o filemon/filemon_{dev,ktrace}.c: allow selection of 2924 filemon implementation. filemon_dev.c uses the kernel module 2925 while filemon_ktrace.c leverages the fktrace api available in 2926 NetBSD. filemon_ktrace.c can hopefully form the basis for 2927 adding support for other tracing mechanisms such as strace on 2928 Linux. 2929 o meta.c: when target is out-of-date per normal make rules 2930 record value of .OODATE in meta file. 2931 29322019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2933 2934 * VERSION: 20190926 2935 Merge with NetBSD make, pick up 2936 o parse.c: don't pass NULL to realpath(3) 2937 some versions cannot handle it. 2938 29392019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2940 2941 * VERSION: 20190409 2942 Merge with NetBSD make, pick up 2943 o parse.c: ParseDoDependency: free paths rather than assert 2944 29452018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2946 2947 * VERSION: 20181222 2948 2949 * configure.in: add --without-makefile to avoid generating 2950 makefile and make-bootstrap.sh 2951 2952 * include Makefile.inc if it exists 2953 2954 * Use Makefile and Makefile.config.in in unit-tests 2955 so we can use just: make obj && make && make test 2956 when bmake is already available. 2957 We add --without-makefile to CONFIGURE_ARGS in this case. 2958 2959 * tweak bsd.after-import.mk (captures Makefile.config etc 2960 after import to FreeBSD for example) to cope with all the above. 2961 29622018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2963 2964 * VERSION: 20181221 2965 Merge with NetBSD make, pick up 2966 o parse.c: ParseVErrorInternal use .PARSEDIR 2967 and apply if relative, and then use .PARSEFILE 2968 for consistent result. 2969 29702018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2971 2972 * VERSION: 20181220 2973 Merge with NetBSD make, pick up 2974 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2975 is relative 2976 o var.c: avoid SEGFAULT in .unexport-env 2977 when MAKELEVEL is not set 2978 29792018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2980 2981 * VERSION: 20181216 2982 Merge with NetBSD make, pick up 2983 o fix for unit-tests/varquote.mk on Debian 2984 29852018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2986 2987 * VERSION: 20180919 2988 Merge with NetBSD make, pick up 2989 o var.c: add :q 2990 o dir.c: cleanup caching of stats 2991 29922018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2993 2994 * Makefile.config.in: use += where it makes sense. 2995 29962018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2997 2998 * VERSION: 20180512 2999 Merge with NetBSD make, pick up 3000 o job.c: skip polling job token pipe 3001 30022018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3003 3004 * VERSION: 20180405 3005 Merge with NetBSD make, pick up 3006 o parse.c: be more cautious about detecting depenency line 3007 rather than sysV style include. 3008 30092018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 3010 3011 * VERSION: 20180222 3012 Merge with NetBSD make, pick up 3013 o parse.c: avoid calling sysconf for every call to loadfile 3014 30152018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3016 3017 * VERSION: 20180218 3018 Merge with NetBSD make, pick up 3019 o var.c: Var_Set handle NULL value anytime. 3020 30212018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 3022 3023 * VERSION: 20180212 3024 Merge with NetBSD make, pick up 3025 o parse.c: do not treat .info as warning with -W 3026 30272017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 3028 3029 * VERSION: 20171207 3030 Merge with NetBSD make, pick up 3031 o var.c: Var_Append use Var_Set if var not previously set 3032 so that VAR_CMD is handled correctly. 3033 Add a suitable unit-test. 3034 30352017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3036 3037 * VERSION (_MAKE_VERSION): 20171126 3038 3039 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 3040 since AC_TRY_COMPILE puts input inside main() 3041 which upsets modern compilers. 3042 30432017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 3044 3045 * VERSION: 20171118 3046 Merge with NetBSD make, pick up 3047 o var.c: do not append to variable set on command line 3048 add unit-test to catch this. 3049 30502017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 3051 3052 * VERSION: 20171028 3053 Merge with NetBSD make, pick up 3054 o main.c: ignore empty MAKEOBJDIR 3055 3056 * Makefile.config.in: 3057 make @prefix@ @machine*@ and @default_sys_path@ defaults. 3058 30592017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 3060 3061 * VERSION: 20171005 3062 3063 * unit-tests/dotwait.mk: redirect stderr through pipe for more 3064 consistent result on some platforms. 3065 30662017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 3067 3068 * machine.sh: entry for AIX 3069 30702017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 3071 3072 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 3073 to a file that can be included by configure as well as make. 3074 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 3075 30762017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 3077 3078 * Makefile (_MAKE_VERSION): 20170810 3079 Merge with NetBSD make, pick up 3080 o meta.c: if target is in subdir we only need subdir name in 3081 meta_name. 3082 30832017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 3084 3085 * Makefile (_MAKE_VERSION): 20170720 3086 Merge with NetBSD make, pick up 3087 o compat.c: pass SIGINT etc onto child and wait for it to exit 3088 before we self-terminate. 3089 30902017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 3091 3092 * Makefile (_MAKE_VERSION): 20170711 3093 forgot to update after merge on 20170708 ;-) 3094 o main.c: refactor to reduce size of main function. 3095 add -v option to always fully expand values. 3096 o meta.c: ensure command output in meta file has ending newline 3097 even when filemon not being used. 3098 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 3099 pathname via ':L' since any ':' in pathname breaks that. 3100 Instead set a '${.p.}' to pathname in the target context and 3101 use that. 3102 31032017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3104 3105 * Makefile (_MAKE_VERSION): 20170510 3106 Merge with NetBSD make, pick up 3107 o main.c: Main_SetObjdir: ensure buf2 is in scope 3108 31092017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 3110 3111 * Makefile (_MAKE_VERSION): 20170505 3112 see mk/ChangeLog 3113 31142017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3115 3116 * parse.c: not everyone has stdint.h 3117 31182017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 3119 3120 * Makefile (_MAKE_VERSION): 20170501 3121 see mk/ChangeLog 3122 31232017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3124 3125 * Makefile (_MAKE_VERSION): 20170421 3126 Merge with NetBSD make, pick up 3127 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 3128 31292017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3130 3131 * Makefile (_MAKE_VERSION): 20170420 3132 Merge with NetBSD make, pick up 3133 o main.c: only use -C arg "as is" if it contains no 3134 relative component. 3135 31362017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3137 3138 * Makefile (_MAKE_VERSION): 20170418 3139 Merge with NetBSD make, pick up 3140 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 3141 31422017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 3143 3144 * Makefile (_MAKE_VERSION): 20170417 3145 Merge with NetBSD make, pick up 3146 o fixes a number of coverity complaints 3147 - check return value of fseek, fcntl 3148 - plug memory leak in Dir_FindFile, Var_LoopExpand, 3149 JobPrintCommand, ParseTraditionalInclude 3150 - use bmake_malloc() where NULL is not tollerated 3151 - use MAKE_ATTR_UNUSED rather that kludges like 3152 return(unused ? 0 : 0) 3153 - use purge_cached_realpaths() rather than abuse cached_realpath() 3154 31552017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 3156 3157 * Makefile (_MAKE_VERSION): 20170413 3158 Merge with NetBSD make, pick up 3159 o main.c: when setting .OBJDIR ignore '$' in paths. 3160 3161 * job.c: use MALLOC_OPTIONS to set malloc_options. 3162 31632017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3164 3165 * Makefile (_MAKE_VERSION): 20170411 3166 Merge with NetBSD make, pick up 3167 o str.c: Str_Match: allow [^a-z] to behave as expected. 3168 31692017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3170 3171 * Makefile (_MAKE_VERSION): 20170326 3172 Merge with NetBSD make, pick up 3173 o main.c: purge relative paths from realpath cache when .OBJDIR 3174 is changed. 3175 31762017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 3177 3178 * Makefile (_MAKE_VERSION): 20170311 3179 Merge with NetBSD make, pick up 3180 o main.c: only use -C arg "as is" if it starts with '/'. 3181 31822017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 3183 3184 * Makefile (_MAKE_VERSION): 20170301 3185 Merge with NetBSD make, pick up 3186 o main.c: use -C arg "as is" rather than getcwd() 3187 if they identify the same directory. 3188 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 3189 31902017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 3191 3192 * Makefile (_MAKE_VERSION): 20170201 3193 Merge with NetBSD make, pick up 3194 o var.c: allow :_=var and avoid use of special context. 3195 31962017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 3197 3198 * Makefile (_MAKE_VERSION): 20170130 3199 Merge with NetBSD make, pick up 3200 o var.c: add :range and :_ 3201 o main.c: partially initialize Dir_* before MainParseArgs() 3202 can be called. 3203 If -V, skip Main_ExportMAKEFLAGS() 3204 32052017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 3206 3207 * Makefile (_MAKE_VERSION): 20170114 3208 Merge with NetBSD make, pick up 3209 o var.c: allow specifying the utc value used by :{gm,local}time 3210 32112016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3212 3213 * Makefile (_MAKE_VERSION): 20161212 3214 Merge with NetBSD make, pick up 3215 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 3216 32172016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 3218 3219 * Makefile (_MAKE_VERSION): 20161209 3220 Merge with NetBSD make, pick up 3221 o main.c: cleanup setting of .OBJDIR 3222 o parse.c: avoid coredump from (var)=val 3223 32242016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3225 3226 * Makefile (_MAKE_VERSION): 20161126 3227 Merge with NetBSD make, pick up 3228 o make.c: Make_OODate: report src node name if path not set 3229 32302016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3231 3232 * Makefile (_MAKE_VERSION): 20160926 3233 Merge with NetBSD make, pick up 3234 o support for .DELETE_ON_ERROR: (remove targets that fail) 3235 32362016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3237 3238 * Makefile MAN: tweak .Dt to match ${PROG} 3239 32402016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3241 3242 * Makefile (_MAKE_VERSION): 20160818 3243 its a neater number; pick up whitespace fixes to man page. 3244 32452016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 3246 3247 * Makefile (_MAKE_VERSION): 20160817 3248 Merge with NetBSD make, pick up 3249 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 3250 so we can call it before adding entries to missingFiles. 3251 Thus we do not track files we have been told to ignore. 3252 32532016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 3254 3255 * Makefile (_MAKE_VERSION): 20160815 3256 Merge with NetBSD make, pick up 3257 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 3258 pathnames, and skip if the expansion is empty. 3259 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 3260 32612016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 3262 3263 * Makefile (_MAKE_VERSION): 20160812 3264 Merge with NetBSD make, pick up 3265 o meta.c: remove all missingFiles entries that match a deleted 3266 dir. 3267 o main.c: set .ERROR_CMD if possible. 3268 32692016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3270 3271 * Makefile (_MAKE_VERSION): 20160606 3272 Merge with NetBSD make, pick up 3273 o dir.c: extend mtimes cache to others via cached_stat() 3274 32752016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3276 3277 * Makefile (_MAKE_VERSION): 20160604 3278 Merge with NetBSD make, pick up 3279 o meta.c: missing filemon data is only relevant if we read a 3280 meta file. 3281 Also do not return oodate for a missing metafile if gn->path 3282 points to .CURDIR 3283 32842016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3285 3286 * Makefile (_MAKE_VERSION): 20160602 3287 Merge with NetBSD make, pick up 3288 o cached_realpath(): avoid hitting filesystem more than necessary. 3289 o meta.c: refactor need_meta decision, add knobs for 3290 missing meta file and filemon data wrt out-of-datedness. 3291 32922016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3293 3294 * Makefile (_MAKE_VERSION): 20160528 3295 3296 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 3297 32982016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 3299 3300 * Makefile (_MAKE_VERSION): 20160512 3301 Merge with NetBSD make, pick up 3302 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 3303 this is useful for gcov builds. 3304 o propagate errors from filemon(4). 3305 33062016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 3307 3308 * Makefile (_MAKE_VERSION): 20160509 3309 Merge with NetBSD make, pick up 3310 o remove use of non-standard types u_int etc. 3311 o meta.c: apply realpath() before matching against metaIgnorePaths 3312 33132016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 3314 3315 * Makefile (_MAKE_VERSION): 20160404 3316 Merge with NetBSD make, pick up 3317 o allow makefile to set .MAKE.JOBS 3318 3319 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 3320 33212016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 3322 3323 * Makefile (_MAKE_VERSION): 20160315 3324 Merge with NetBSD make, pick up 3325 o fix handling of archive members 3326 33272016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3328 3329 * Makefile (_MAKE_VERSION): rename variable to avoid interference 3330 with checks for ${MAKE_VERSION} 3331 33322016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 3333 3334 * Makefile (MAKE_VERSION): 20160310 3335 Merge with NetBSD make, pick up 3336 o meta.c: treat missing Read file same as Write, incase we Delete it. 3337 33382016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 3339 3340 * Makefile (MAKE_VERSION): 20160307 3341 Merge with NetBSD make, pick up 3342 o var.c: fix :ts\nnn to be octal by default. 3343 o meta.c: meta_finish() to cleanup memory. 3344 33452016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 3346 3347 * Makefile (MAKE_VERSION): 20160226 3348 Merge with NetBSD make, pick up 3349 o meta.c: allow meta file for makeDepend if makefiles want it. 3350 33512016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 3352 3353 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 3354 for backwards compatability. 3355 3356 * Makefile (MAKE_VERSION): 20160220 3357 Merge with NetBSD make, pick up 3358 o var.c: add knob to control handling of '$$' in := 3359 33602016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3361 3362 * Makefile (MAKE_VERSION): 20160218 3363 Merge with NetBSD make, pick up 3364 o var.c: add .export-literal allows us to fix sys.clean-env.mk 3365 post the changes to Var_Subst. 3366 Var_Subst now takes flags, and does not consume '$$' in := 3367 33682016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 3369 3370 * Makefile (MAKE_VERSION): 20160217 3371 Merge with NetBSD make, pick up 3372 o var.c: preserve '$$' in := 3373 o parse.c: add .dinclude for handling included 3374 makefile like .depend 3375 33762015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 3377 3378 * Makefile (MAKE_VERSION): 20151220 3379 Merge with NetBSD make, pick up 3380 o suff.c: re-initialize suffNull when clearing suffixes. 3381 33822015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 3383 3384 * Makefile (MAKE_VERSION): 20151201 3385 Merge with NetBSD make, pick up 3386 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 3387 o meta.c: meta_oodate: use lstat(2) for checking link target 3388 in case it is a symlink. 3389 o var.c: avoid calling brk_string and Var_Export1 with empty 3390 strings. 3391 33922015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3393 3394 * Makefile (MAKE_VERSION): 20151126 3395 Merge with NetBSD make, pick up 3396 o parse.c: ParseTrackInput don't access beyond 3397 end of old value. 3398 33992015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 3400 3401 * Makefile (MAKE_VERSION): 20151022 3402 3403 * Add support for BSD/OS which lacks inttypes.h 3404 and really needs sys/param.h for sys/sysctl.h 3405 also 'type' is not a shell builtin. 3406 3407 * var.c: eliminate uint32_t and need for inttypes.h 3408 3409 * main.c: PrintOnError flush stdout before run .ERROR 3410 3411 * parse.c: cope with _SC_PAGESIZE not being defined. 3412 3413 34142015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 3415 3416 * Makefile (MAKE_VERSION): 20151020 3417 Merge with NetBSD make, pick up 3418 o var.c: fix uninitialized var 3419 34202015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 3421 3422 * var.c: the conditional expressions used with ':?' can be 3423 expensive, if already discarding do not evaluate or expand 3424 anything. 3425 34262015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3427 3428 * Makefile (MAKE_VERSION): 20151010 3429 Merge with NetBSD make, pick up 3430 o Add Boolean wantit flag to Var_Subst and Var_Parse 3431 when FALSE we know we are discarding the result and can 3432 skip operations like Cmd_Exec. 3433 34342015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3435 3436 * Makefile (MAKE_VERSION): 20151009 3437 Merge with NetBSD make, pick up 3438 o var.c: don't check for NULL before free() 3439 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 3440 34412015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3442 3443 * Makefile (MAKE_VERSION): 20150910 3444 Merge with NetBSD make, pick up 3445 o main.c: with -w print Enter/Leaving messages for objdir too 3446 if necessary. 3447 o centralize shell metachar handling 3448 3449 * FILES: add metachar.[ch] 3450 34512015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3452 3453 * Makefile (MAKE_VERSION): 20150606 3454 Merge with NetBSD make, pick up 3455 o make.1: document .OBJDIR target 3456 34572015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3458 3459 * Makefile (MAKE_VERSION): 20150505 3460 Merge with NetBSD make, pick up 3461 o cond.c: be strict about lhs of comparison when evaluating .if 3462 but less so when called from variable expansion. 3463 o unit-tests/cond2.mk: test various error conditions 3464 34652015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 3466 3467 * machine.sh (MACHINE): Add Bitrig 3468 patch from joerg@netbsd.org 3469 34702015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3471 3472 * Makefile (MAKE_VERSION): 20150418 3473 Merge with NetBSD make, pick up 3474 o job.c: use memmove() rather than memcpy() 3475 3476 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 3477 case, so skip it. 3478 34792015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3480 3481 * Makefile (MAKE_VERSION): 20150411 3482 bump version - only mk/ changes. 3483 34842015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3485 3486 * Makefile (MAKE_VERSION): 20150410 3487 Merge with NetBSD make, pick up 3488 o document different handling of '-' in jobs mode vs compat 3489 o fix jobs mode so that '-' only applies to whole job 3490 when shell lacks hasErrCtl 3491 o meta.c: use separate vars to track lcwd and latestdir (read) 3492 per process 3493 34942015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 3495 3496 * Makefile (MAKE_VERSION): 20150401 3497 Merge with NetBSD make, pick up 3498 o meta.c: close meta file in child 3499 3500 * Makefile: use BINDIR.bmake if set. 3501 Same for MANDIR and SHAREDIR 3502 Handy for testing release candidates 3503 in various environments. 3504 35052015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3506 3507 * move initialization of savederr to block where it is used 3508 to avoid spurious warning from gcc5 3509 35102014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3511 3512 * Makefile (MAKE_VERSION): 20141111 3513 just a cooler number 3514 35152014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 3516 3517 * Makefile (MAKE_VERSION): 20141105 3518 Merge with NetBSD make, pick up 3519 o revert major overhaul of suffix handling 3520 and POSIX compliance - too much breakage 3521 and impossible to make backwards compatible. 3522 o we still have the new unit test structure which is ok. 3523 o meta.c ensure "-- filemon" is at start of line. 3524 35252014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 3526 3527 * configure.in: test that result of getconf PATH_MAX is numeric 3528 and discard if not. Apparently needed for Hurd. 3529 35302014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3531 3532 * Makefile (MAKE_VERSION): 20140830 3533 Merge with NetBSD make, pick up 3534 o major overhaul of suffix handling 3535 o improved POSIX compliance 3536 o overhauled unit-tests 3537 35382014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3539 3540 * Makefile (MAKE_VERSION): 20140620 3541 Merge with NetBSD make, pick up 3542 o var.c return varNoError rather than var_Error for ::= modifiers. 3543 35442014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3545 3546 * Makefile (MAKE_VERSION): 20140522 3547 Merge with NetBSD make, pick up 3548 o var.c detect some parse errors. 3549 35502014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3551 3552 * Fix spelling errors - patch from Pedro Giffuni 3553 35542014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3555 3556 * Makefile (MAKE_VERSION): 20140214 3557 Merge with NetBSD make, pick up 3558 o .INCLUDEFROM* 3559 o use Var_Value to get MAKEOBJDIR[PREFIX] 3560 o reduced realloc'ign in brk_string. 3561 * configure.in: add a check for compiler supporting __func__ 3562 35632014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3564 3565 * boot-strap: ignore mksrc=none 3566 35672014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3568 3569 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3570 35712014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3572 3573 * Makefile (MAKE_VERSION): 20140101 3574 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3575 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3576 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3577 Hurd) 3578 * configure.in: Add AC_PREREQ and check for 3579 sysctl; patch from Andrew Shadura andrewsh at debian.org 3580 35812013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3582 3583 * Makefile (MAKE_VERSION): 20131010 3584 * lose the const from arg to systcl to avoid problems on older BSDs. 3585 35862013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3587 3588 * Makefile (MAKE_VERSION): 20131001 3589 Merge with NetBSD make, pick up 3590 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3591 hw.machine_arch if necessary. 3592 o meta.c: meta_oodate - need to look at src of Link and target 3593 of Move as well. 3594 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3595 provide __arraycount() if needed. 3596 35972013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3598 3599 * Makefile (MAKE_VERSION): 20130904 3600 Merge with NetBSD make, pick up 3601 o Add VAR_INTERNAL context, so that internal setting of 3602 MAKEFILE does not override value set by makefiles. 3603 36042013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3605 3606 * Makefile (MAKE_VERSION): 20130902 3607 Merge with NetBSD make, pick up 3608 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3609 36102013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3611 3612 * Makefile (MAKE_VERSION): 20130828 3613 Merge with NetBSD make, pick up 3614 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3615 o Call Job_SetPrefix() from Job_Init() so makefiles have 3616 opportunity to set .MAKE.JOB.PREFIX 3617 36182013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3619 3620 * Makefile (MAKE_VERSION): 20130730 3621 Merge with NetBSD make, pick up 3622 o Allow suppression of --- job -- tokens by setting 3623 .MAKE.JOB.PREFIX empty. 3624 36252013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3626 3627 * Makefile (MAKE_VERSION): 20130716 3628 Merge with NetBSD make, pick up 3629 o number of gmake compatibility tweaks 3630 -w for gmake style entering/leaving messages 3631 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3632 handle MAKEFLAGS containing only letters. 3633 o when overriding a GLOBAL variable on the command line, 3634 delete it from GLOBAL context so -V doesn't show the wrong 3635 value. 3636 36372013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3638 3639 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3640 3641 * Makefile (MAKE_VERSION): 20130706 3642 Merge with NetBSD make, pick up 3643 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3644 true so that CompatRunCommand() can use it, to ensure 3645 consistent behavior with jobs mode. 3646 o use MAKE_LEVEL_ENV to define the variable to propagate 3647 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3648 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3649 paths to ignore. 3650 36512013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3652 3653 * Makefile (MAKE_VERSION): 20130604 3654 Merge with NetBSD make, pick up 3655 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3656 to avoid leaking descriptors. 3657 36582013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3659 3660 * Makefile (MAKE_VERSION): 20130528 3661 Merge with NetBSD make, pick up 3662 o var.c: cleanup some left-overs in VarHash() 3663 36642013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3665 3666 * Makefile (MAKE_VERSION): 20130520 3667 generate manifest from component FILES rather than have to 3668 update FILES when mk/FILES changes. 3669 36702013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3671 3672 * Makefile (MAKE_VERSION): 20130518 3673 Merge with NetBSD make, pick up 3674 o suff.c: don't skip all processsing for .PHONY targets 3675 else wildcard srcs do not get expanded. 3676 o var.c: expand name of variable to delete if necessary. 3677 36782013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3679 3680 * Makefile (MAKE_VERSION): 20130330 3681 Merge with NetBSD make, pick up 3682 o meta.c: refine the handling of .OODATE in commands. 3683 Rather than suppress command comparison for the entire script 3684 as though .NOMETA_CMP had been used, only suppress it for the 3685 one command line. 3686 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3687 suppress comparison of a command without otherwise affecting it. 3688 o make.1: document that 3689 36902013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3691 3692 * Makefile (MAKE_VERSION): 20130321 3693 yes, not quite right but its a cooler number. 3694 Merge with NetBSD make, pick up 3695 o parse.c: fix ParseGmakeExport to be portable 3696 and add a unit-test. 3697 * meta.c: call meta_init() before makefiles are read and if built 3698 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3699 this let's makefiles test for support. 3700 Call meta_mode_init() to process .MAKE.MODE. 3701 37022013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3703 3704 * Makefile (MAKE_VERSION): 20130305 3705 Merge with NetBSD make, pick up 3706 o run .STALE: target when a dependency from .depend is missing. 3707 o job.c: add Job_RunTarget() for the above and .BEGIN 3708 37092013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3710 3711 * Makefile (MAKE_VERSION): 20130303 3712 Merge with NetBSD make, pick up 3713 o main.c: set .MAKE.OS to utsname.sysname 3714 o job.c: more checks for read and poll errors 3715 o var.c: lose VarChangeCase() saves 4% time 3716 37172013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3718 3719 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3720 want to use MAKEOBJDIR 3721 37222013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3723 3724 * Merge with NetBSD make, pick up 3725 o make.1: more info on how shell commands are handled. 3726 o job.c,main.c: detect write errors to job pipes. 3727 37282013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3729 3730 * Makefile (MAKE_VERSION): 20130123 3731 Merge with NetBSD make, pick up 3732 o meta.c: if script uses .OODATE and meta_oodate() decides 3733 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3734 o var.c: in debug output indicate which variabale modifiers 3735 apply to. 3736 o remove Check_Cwd logic the makefiles have been fixed. 3737 37382012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3739 3740 * makefile.in: add a simple makefile for folk who insist on 3741 ./configure; make; make install 3742 it just runs boot-strap 3743 * include mk/* to accommodate the above 3744 * boot-strap: re-work to accommodate the above 3745 mksrc defaults to $Mydir/mk 3746 allow op={configure,build,install,clean,all} 3747 add options to facilitate install 3748 * Makefile.config.in: just the bits set by configure 3749 * Makefile: bump version to 20121212 3750 abandon Makefile.in (NetBSD Makefile) 3751 leverage mk/* instead 3752 * configure.in: ensure srcdir is absolute 3753 37542012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3755 3756 * Makefile.in (MAKE_VERSION): 20121111 3757 fix generation of bmake.cat1 3758 37592012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3760 3761 * Makefile.in (MAKE_VERSION): 20121109 3762 Merge with NetBSD make, pick up 3763 o make.c: MakeBuildChild: return 0 so search continues if a 3764 .ORDER dependency is detected. 3765 o unit-tests/order: test the above 3766 37672012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3768 3769 * Makefile.in (MAKE_VERSION): 20121102 3770 Merge with NetBSD make, pick up 3771 o cond.c: allow cond_state[] to grow. 3772 In meta mode with a very large tree, we can hit the limit 3773 while processing dirdeps. 3774 37752012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3776 3777 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3778 37792012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3780 3781 * Makefile.in (MAKE_VERSION): 20121010 3782 o protect syntax that only bmake parses correctly. 3783 o remove auto setting of FORCE_MACHINE, use configure's 3784 --with-force-machine=whatever if that is desired. 3785 37862012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3787 3788 * Makefile.in: do not lose history from make.1 when generating bmake.1 3789 37902012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3791 3792 * Makefile.in (MAKE_VERSION): 20121007 3793 Merge with NetBSD make, pick up 3794 o compat.c: ignore empty commands - same as jobs mode. 3795 o make.1: document meta chars that cause use of shell 3796 37972012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3798 3799 * Makefile.in (MAKE_VERSION): bump version to 20120911 3800 * bsd.after-import.mk: include Makefile.inc early and allow it to 3801 override PROG 3802 38032012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3804 3805 * Makefile.in (MAKE_VERSION): bump version to 20120831 3806 Merge with NetBSD make, pick up 3807 o cast sizeof() to int for comparison 3808 o minor make.1 tweak 3809 38102012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3811 3812 * Makefile.in (MAKE_VERSION): bump version to 20120830 3813 Merge with NetBSD make, pick up 3814 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3815 o debug flag -dV causes -V to show raw value regardless. 3816 38172012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3818 3819 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3820 gets SRCTOP set. 3821 38222012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3823 3824 * Makefile.in (MAKE_VERSION): bump version to 20120704 3825 Merge with NetBSD make, pick up 3826 o Job_ParseShell should call Shell_Init if it has been 3827 previously called. 3828 * Makefile.in: set USE_META based on configure result. 3829 also .PARSEDIR is safer indicator of bmake. 3830 38312012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3832 3833 * Makefile.in: bump version to 20120626 3834 ensure CPPFLAGS is in CFLAGS 3835 * meta.c: avoid nested externs 3836 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3837 38382012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3839 3840 * Makefile.in (MAKE_VERSION): bump version to 20120620 3841 Merge with NetBSD make, pick up 3842 o make_malloc.c: avoid including make_malloc.h again 3843 3844 * Makefile.in: avoid bmake only syntax or protect with 3845 .if defined(.MAKE.LEVEL) 3846 * bsd.after-import.mk: replace .-include with .sinclude 3847 ensure? SRCTOP gets a value 3848 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3849 38502012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3851 3852 * Makefile.in (MAKE_VERSION): bump version to 20120612 3853 Merge with NetBSD make, pick up 3854 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3855 for greater portability. 3856 o unit-tests/forloop: check that .for works as expected wrt 3857 number of times and with "quoted strings". 3858 38592012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3860 3861 * Makefile.in (MAKE_VERSION): bump version to 20120606 3862 Merge with NetBSD make, pick up 3863 o compat.c: use kill(2) rather than raise(3). 3864 * configure.in: look for sys/dev/filemon 3865 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3866 and pass BOOTSTRAP_XTRAS to boot-strap. 3867 38682012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3869 3870 * Makefile.in (MAKE_VERSION): bump version to 20120604 3871 Merge with NetBSD make, pick up 3872 o util.c and var.c share same var for tracking if environ 3873 has been reallocated. 3874 o util.c provide getenv with setenv. 3875 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3876 when the shell actively strips .MAKE.* from the environment. 3877 We still refer to the variable always as .MAKE.LEVEL 3878 * util.c fix bug in findenv() was finding prefix of name. 3879 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3880 results in more reliable termination of all activity on many 3881 platforms. 3882 38832012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3884 3885 * Makefile.in (MAKE_VERSION): bump version to 20120602 3886 Merge with NetBSD make, pick up 3887 o for.c: handle quoted items in .for list 3888 38892012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3890 3891 * Makefile.in (MAKE_VERSION): bump version to 20120530 3892 Merge with NetBSD make, pick up 3893 o compat.c: ignore empty command. 3894 38952012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3896 3897 * Makefile.in (MAKE_VERSION): bump version to 20120524 3898 * FILES: add bsd.after-import.mk: 3899 A simple means of integrating bmake into a BSD build system. 3900 39012012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3902 3903 * Makefile.in (MAKE_VERSION): bump version to 20120520 3904 Merge with NetBSD make, pick up 3905 o increased limit for nested conditionals. 3906 39072012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3908 3909 * Makefile.in (MAKE_VERSION): bump version to 20120518 3910 Merge with NetBSD make, pick up 3911 o use _exit(2) in signal hanlder 3912 o Don't use the [dir] cache when building nodes that might have 3913 changed since the last exec. 3914 o Avoid nested extern declaration warnings. 3915 39162012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3917 3918 * meta.c (fgetLine): avoid %z - not portable. 3919 * parse.c: Since we moved include of sys/mman.h 3920 and def's of MAP_COPY etc. we got dups from a merge. 3921 39222012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3923 3924 * Makefile.in (MAKE_VERSION): bump version to 20120420 3925 Merge with NetBSD make, pick up 3926 o restore duplicate supression in .MAKE.MAKEFILES 3927 runtime saving can be significant. 3928 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3929 consumption up to 20%. 3930 39312012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3932 3933 * Makefile.in (MAKE_VERSION): bump version to 20120420 3934 Merge with NetBSD make, pick up 3935 o remove duplicate supression in .MAKE.MAKEFILES 3936 o improved dir cache behavior 3937 o gmake'ish export command 3938 39392012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3940 3941 * Makefile.in (MAKE_VERSION): bump version to 20120325 3942 Merge with NetBSD make, pick up 3943 o fix parsing of :[#] in conditionals. 3944 39452012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3946 3947 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3948 since some systems cannot cope with .Nx <version> 3949 39502011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3951 3952 * Makefile.in (MAKE_VERSION): bump version to 20111111 3953 Merge with NetBSD make, pick up 3954 o debug output for .PARSEDIR and .PARSEFILE 3955 39562011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3957 3958 * Makefile.in (MAKE_VERSION): bump version to 20111010 3959 39602011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3961 3962 * boot-strap: check for an expected file in the dirs we look for. 3963 * make-bootstrap.sh: pass on LDSTATIC 3964 39652011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3966 3967 * Makefile.in (MAKE_VERSION): bump version to 20111001 3968 Merge with NetBSD make, pick up 3969 o ensure .PREFIX is set for .PHONY 3970 and .TARGET set for .PHONY run via .END 3971 o __dead used consistently 3972 39732011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3974 3975 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3976 39772011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3978 3979 * Makefile.in (MAKE_VERSION): bump version to 20110905 3980 Merge with NetBSD make, pick up 3981 o meta_oodate: ignore makeDependfile 3982 39832011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3984 3985 * Makefile.in (MAKE_VERSION): bump version to 20110828 3986 Merge with NetBSD make, pick up 3987 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3988 as SILENT if a .meta file is created 3989 39902011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3991 3992 * Makefile.in (MAKE_VERSION): bump version to 20110818 3993 Merge with NetBSD make, pick up 3994 o in meta mode, if target flagged .META a missing .meta file 3995 means target is out-of-date 3996 o fixes for gcc 4.5 warnings 3997 o simplify job printing code 3998 39992011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 4000 4001 * Makefile.in (MAKE_VERSION): bump version to 20110808 4002 Merge with NetBSD make, pick up 4003 o do not touch OP_SPECIAL targets when doing make -t 4004 40052011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 4006 4007 * Makefile.in (MAKE_VERSION): bump version to 20110622 4008 Merge with NetBSD make, pick up 4009 o meta_oodate detect corrupted .meta file and declare oodate. 4010 * configure.in: add check for setsid 4011 40122011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 4013 4014 * Merge with NetBSD make, pick up 4015 o unit-tests/modts now works on MirBSD 4016 40172011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 4018 4019 * Makefile.in (MAKE_VERSION): bump version to 20110606 4020 Merge with NetBSD make, pick up 4021 o ApplyModifiers: when we parse a variable which is not 4022 the entire modifier string, or not followed by ':', do not 4023 consider it as containing modifiers. 4024 o loadfile: ensure newline at end of mapped file. 4025 40262011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 4027 4028 * Makefile.in (MAKE_VERSION): bump version to 20110505 4029 Merge with NetBSD make, pick up 4030 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 4031 of make's control. In meta mode, any generated file within 4032 said bailiwick, which is found to be missing, causes current 4033 target to be out-of-date. 4034 40352011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 4036 4037 * Makefile.in (MAKE_VERSION): bump version to 20110411 4038 Merge with NetBSD make, pick up 4039 o when long modifiers fail to match, check sysV style. 4040 - add a test case 4041 40422011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 4043 4044 * Makefile.in (MAKE_VERSION): bump version to 20110410 4045 Merge with NetBSD make, pick up 4046 o :hash - cheap 32bit hash of value 4047 o :localtime, :gmtime - use value as format string for strftime. 4048 40492011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 4050 4051 * Makefile.in (MAKE_VERSION): bump version to 20110330 4052 mostly because its a cooler version. 4053 Merge with NetBSD make, pick up 4054 o NetBSD tags for meta.[ch] 4055 o job.c call meta_job_finish() after meta_job_error(). 4056 o meta_job_error() should call meta_job_finish() to ensure 4057 .meta file is closed, and safe to copy - if .ERROR target wants. 4058 meta_job_finish() is safe to call repeatedly. 4059 40602011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 4061 4062 * unit-tests/modts: use printf if it is a builtin, 4063 to save us from MirBSD 4064 4065 * Makefile.in (MAKE_VERSION): bump version to 20110329 4066 Merge with NetBSD make, pick up 4067 o fix for use after free() in CondDoExists(). 4068 o meta_oodate() report extra commands and return earlier. 4069 40702011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 4071 4072 * Makefile.in (MAKE_VERSION): bump version to 20110327 4073 Merge with NetBSD make, pick up 4074 o meta.c, if .MAKE.MODE contains curdirOk=yes 4075 allow creating .meta files in .CURDIR 4076 * boot-strap (TOOL_DIFF): aparently at least on linux distro 4077 formats the output of 'type' differently - so eat any "()" 4078 40792011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 4080 4081 * Makefile.in (MAKE_VERSION): bump version to 20110306 4082 Merge with NetBSD make, pick up 4083 o meta.c, only do getcwd() once 4084 40852011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 4086 4087 * Makefile.in (MAKE_VERSION): bump version to 20110305 4088 Merge with NetBSD make, pick up 4089 o correct sysV substitution handling of empty lhs and variable 4090 o correct exists() check for dir with trailing / 4091 o correct handling of modifiers for non-existant variables 4092 during evaluation of conditionals. 4093 o ensure MAP_FILE is defined. 4094 o meta.c use curdir[] now exported by main.c 4095 40962011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 4097 4098 * Makefile.in (MAKE_VERSION): bump version to 20110225 4099 Merge with NetBSD make, pick up 4100 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 4101 makefiles have been read. 4102 o fix example of :? modifier in man page. 4103 41042011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 4105 4106 * Makefile.in (MAKE_VERSION): bump version to 20110214 4107 Merge with NetBSD make, pick up 4108 o meta.c handle realpath() failing when generating meta file 4109 name. 4110 4111 * sigcompat.c: convert to ansi so we can use higher warning levels. 4112 4113 41142011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 4115 4116 * Makefile.in (MAKE_VERSION): bump version to 20110207 4117 Merge with NetBSD make, pick up 4118 o fix for bug in meta mode. 4119 41202011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 4121 4122 * parse.c: SunOS 5.8 at least does not have MAP_FILE 4123 41242011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 4125 4126 * Makefile.in (MAKE_VERSION): bump version to 20110101 4127 Merge with NetBSD make, pick up 4128 o use mmap(2) if available, for reading makefiles 4129 41302010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 4131 4132 * Makefile.in (MAKE_VERSION): bump version to 20101215 4133 Merge with NetBSD make, pick up 4134 o ensure meta_job_error() does not report a previous .meta file 4135 as being culprit. 4136 41372010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 4138 4139 * Makefile.in (MAKE_VERSION): bump version to 20101210 4140 Merge with NetBSD make, pick up 4141 o meta_oodate: track cwd per process, and only consider target 4142 out-of-date if missing file is outside make's CWD. 4143 Ignore files in /tmp/ etc. 4144 o to ensure unit-tests results match, need to control LC_ALL 4145 as well as LANG. 4146 o fix for parsing bug in var.c 4147 41482010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 4149 4150 * Makefile.in (MAKE_VERSION): bump version to 20101126 4151 Merge with NetBSD make, pick up 4152 o if stale dependency is an IMPSRC, search via .PATH 4153 o meta_oodate: if a referenced file is missing, target is 4154 out-of-date. 4155 o meta_oodate: if a target uses .OODATE in its commands, 4156 it (.OODATE) needs to be recomputed. 4157 o keep a pointer to youngest child node, rather than just its 4158 mtime. 4159 41602010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 4161 4162 * Makefile.in (MAKE_VERSION): bump version to 20101101 4163 41642010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 4165 4166 * machine.sh: like os.sh, 4167 allow for uname -p producing useless drivel 4168 41692010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 4170 4171 * boot-strap: document configure knobs for meta and filemon. 4172 4173 * Makefile.in (MAKE_VERSION): bump version to 20100911 4174 Merge with NetBSD make, pick up 4175 o meta.c - meta mode 4176 4177 * make-bootstrap.sh.in: handle meta.c 4178 * configure.in: add knobs for use_meta and filemon_h 4179 also, look for dirname, str[e]sep and strlcpy 4180 * util.c: add simple err[x] and warn[x] 4181 41822010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 4183 4184 * boot-strap (TOOL_DIFF): set this to ensure tests use 4185 the same version of diff that configure tested 4186 4187 * Makefile.in (MAKE_VERSION): bump version to 20100808 4188 Merge with NetBSD make, pick up 4189 o in jobs mode, when we discover we cannot make something, 4190 call PrintOnError before exit. 4191 41922010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 4193 4194 * Makefile.in (MAKE_VERSION): bump version to 20100806 4195 Merge with NetBSD make, pick up 4196 o formatting fixes for ignored errors 4197 o ensure jobs are cleaned up regardless of where wait() was called. 4198 41992010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 4200 4201 * Makefile.in (MAKE_VERSION): bump version to 20100618 4202 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 4203 42042010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 4205 4206 * Makefile.in (MAKE_VERSION): bump version to 20100616 4207 Merge with NetBSD make, pick up 4208 o man page update 4209 o call PrintOnError from JobFinish when we detect an error we 4210 are not ignoring. 4211 42122010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 4213 4214 * Makefile.in (MAKE_VERSION): bump version to 20100606 4215 Merge with NetBSD make, pick up 4216 o man page update 4217 42182010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 4219 4220 * Makefile.in (MAKE_VERSION): bump version to 20100605 4221 Merge with NetBSD make, pick up 4222 o use bmake_signal() which is a wrapper around sigaction() 4223 in place of signal() 4224 o add .export-env to allow exporting variables to environment 4225 without tracking (so no re-export when the internal value is 4226 changed). 4227 42282010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 4229 4230 * Makefile.in (MAKE_VERSION): bump version to 20100524 4231 Merge with NetBSD make, pick up 4232 o fix for .info et al being greedy. 4233 42342010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 4235 4236 * Makefile.in (MAKE_VERSION): bump version to 20100520 4237 Merge with NetBSD make, pick up 4238 o back to using realpath on argv[0] 4239 but only if contains '/' and does not start with '/'. 4240 42412010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 4242 4243 * boot-strap: use absolute path for bmake when running tests. 4244 4245 * Makefile.in (MAKE_VERSION): bump version to 20100510 4246 Merge with NetBSD make, pick up 4247 o revert use of realpath on argv[0] 4248 too many corner cases. 4249 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 4250 42512010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 4252 4253 * Makefile.in (MAKE_VERSION): bump version to 20100505 4254 Merge with NetBSD make, pick up 4255 o fix for missed SIGCHLD when compiled with SunPRO 4256 actually for bmake, defining FORCE_POSIX_SIGNALS would have 4257 done the job. 4258 42592010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 4260 4261 * Makefile.in (MAKE_VERSION): bump version to 20100430 4262 Merge with NetBSD make, pick up 4263 o fflush stdout before writing to stdout 4264 42652010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 4266 4267 * Makefile.in (MAKE_VERSION): bump version to 20100423 4268 Merge with NetBSD make, pick up 4269 o updated unit tests for Haiku (this time for sure). 4270 * boot-strap: based on patch from joerg 4271 honor --with-default-sys-path better. 4272 * boot-strap: remove mention of --with-prefix-sys-path 4273 42742010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 4275 4276 * Makefile.in (MAKE_VERSION): bump version to 20100422 4277 * Merge with NetBSD make, pick up 4278 o fix for vfork() on Darwin. 4279 o fix for bogus $TMPDIR. 4280 o set .MAKE.MODE=compat for -B 4281 o set .MAKE.JOBS=max_jobs for -j max_jobs 4282 o allow unit-tests to run without any *.mk 4283 o unit-tests/modmisc be more conservative in dirs presumed to exist. 4284 * boot-strap: ignore /usr/share/mk except on NetBSD. 4285 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 4286 ensure sort(1) behaves as expected. 4287 42882010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 4289 4290 * boot-strap: add FindHereOrAbove so we can use -m .../mk 4291 42922010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 4293 4294 * Makefile.in (MAKE_VERSION): bump version to 20100420 4295 * Merge with NetBSD make, pick up 4296 o fix for variable realpath() behavior. 4297 we have to stat(2) the result to be sure. 4298 o fix for .export (all) when nested vars use :sh 4299 43002010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 4301 4302 * Makefile.in (MAKE_VERSION): bump version to 20100414 4303 * Merge with NetBSD make, pick up 4304 o use realpath to resolve argv[0] (for .MAKE) if needed. 4305 o add realpath from libc. 4306 o add :tA to resolve variable via realpath(3) if possible. 4307 43082010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 4309 4310 * Makefile.in (MAKE_VERSION): bump version to 20100408 4311 * Merge with NetBSD make, pick up 4312 o unit tests for .ERROR, .error 4313 o fix for .ERROR to ensure it cannot be default target. 4314 43152010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 4316 4317 * Makefile.in (MAKE_VERSION): bump version to 20100406 4318 * Merge with NetBSD make, pick up 4319 o fix for compat mode "Error code" going to debug_file. 4320 o fix for .ALLSRC being populated twice. 4321 o support for .info, .warning and .error directives 4322 o .MAKE.MODE to control make's operational mode 4323 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 4324 name(s). 4325 o .MAKE.DEPENDFILE to control the name of the depend file 4326 o .ERROR target - run on failure. 4327 43282010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 4329 4330 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 4331 4332 * os.sh,arch.c: patch for Haiku from joerg at netbsd 4333 43342010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 4335 4336 * Makefile.in (MAKE_VERSION): bump version to 20100222 4337 * Merge with NetBSD make, pick up 4338 o better error msg for .for with mutiple inter vars 4339 4340 * boot-strap: 4341 o use make-bootstrap.sh from joerg at netbsd 4342 to avoid the need for a native make when bootstrapping. 4343 o add "" everywhere ;-) 4344 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 4345 otherwise the pre-formated version. 4346 43472010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 4348 4349 * Makefile.in (MAKE_VERSION): bump version to 20100102 4350 * Merge with NetBSD make, pick up: 4351 o fix for -m .../ 4352 43532009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 4354 4355 * Makefile.in (MAKE_VERSION): bump version to 20091118 4356 * Merge with NetBSD make, pick up: 4357 o .unexport 4358 o report lines that start with '.' and should have ':' 4359 (catch typo's of .el*if). 4360 43612009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4362 4363 * configure.in: Ensure that srcdir and mksrc are absolute paths. 4364 43652009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4366 4367 * Makefile.in (MAKE_VERSION): fix version to 20091007 4368 43692009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 4370 4371 * Makefile.in (MAKE_VERSION): bump version to 200910007 4372 * Merge with NetBSD make, pick up: 4373 o fix for parsing of :S;...;...; applied to .for loop iterator 4374 appearing in a dependency line. 4375 43762009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4377 4378 * Makefile.in (MAKE_VERSION): bump version to 20090909 4379 * Merge with NetBSD make, pick up: 4380 o fix for -C, .CURDIR and .OBJDIR 4381 * boot-strap: 4382 o allow share_dir to be set independent of prefix. 4383 o select default share_dir better when prefix ends in $HOST_TARGET 4384 o if FORCE_BSD_MK etc were set, include them in the suggested 4385 install-mk command. 4386 43872009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 4388 4389 * Makefile.in (MAKE_VERSION): bump version to 20090908 4390 * Merge with NetBSD make, pick up: 4391 o .MAKE.LEVEL for recursion tracking 4392 o fix for :M scanning \: 4393 43942009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4395 4396 * configure.in: Don't -D__EXTENSIONS__ if 4397 AC_USE_SYSTEM_EXTENSIONS says "no". 4398 43992009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 4400 4401 * Makefile.in (MAKE_VERSION): bump version to 20090826 4402 Simplify MAKE_VERSION to just the bare date. 4403 * Merge with NetBSD make, pick up: 4404 o -C directory support. 4405 o support for SIGINFO 4406 o use $TMPDIR for temp files. 4407 o child of vfork should be careful about modifying parent's state. 4408 4409 44102009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 4411 4412 * Appy some patches for MiNT from David Brownlee 4413 44142009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 4415 4416 * Makefile.in (BMAKE_VERSION): bump version to 20090222 4417 * Merge with NetBSD make, pick up: 4418 o Possible null pointer de-ref in Var_Set. 4419 44202009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 4421 4422 * Makefile.in (BMAKE_VERSION): bump version to 20090204 4423 * Merge with NetBSD make, pick up: 4424 o bmake_malloc et al moved to their own .c 4425 o Count both () and {} when looking for the end of a :M pattern 4426 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 4427 o strlist.c - functions for processing extendable arrays of pointers to strings. 4428 o ClientData replaced with void *, so const void * can be used. 4429 o New debug flag C for DEBUG_CWD 4430 44312008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 4432 4433 * Makefile.in (BMAKE_VERSION): bump version to 20081111 4434 Apply patch from Joerg Sonnenberge to 4435 configure.in: 4436 o remove some redundant checks 4437 o check for emlloc etc only in libutil and require the whole family. 4438 util.c: 4439 o remove [v]asprintf which is no longer used. 4440 44412008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4442 4443 * Makefile.in (BMAKE_VERSION): bump version to 20081101 4444 * Merge with NetBSD make, pick up: 4445 o util.c: avoid use of putenv() - christos 4446 44472008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4448 4449 * Makefile.in (BMAKE_VERSION): bump version to 20081030 4450 pick up man page tweaks. 4451 44522008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 4453 4454 * Makefile.in: move processing of LIBOBJS to after is definition! 4455 thus we'll have getenv.c in SRCS only if needed. 4456 4457 * make.1: add examples of how to use :? 4458 4459 * Makefile.in (BMAKE_VERSION): bump version to 20081029 4460 * Merge with NetBSD make, pick up: 4461 o fix for .END processing with -j 4462 o segfault from Parse_Error when no makefile is open 4463 o handle numeric expressions in any variable expansion 4464 o debug output now defaults to stderr, -dF to change it - apb 4465 o make now uses bmake_malloc etc so that it can build natively 4466 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 4467 44682008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 4469 4470 * Makefile.in (BMAKE_VERSION): bump version to 20080808 4471 * Merge with NetBSD make, pick up: 4472 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 4473 long lines in Makefiles 4474 o optimizations for VarQuote by joerg 4475 o fix for PR/38756: dominik: make dumps core on invalid makefile 4476 44772008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 4478 4479 * Makefile.in (BMAKE_VERSION): bump version to 20080515 4480 * Merge with NetBSD make, pick up: 4481 o fix skip setting vars in VAR_GLOBAL context, to handle 4482 cases where VAR_CMD is used for other than command line vars. 4483 44842008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 4485 4486 * boot-strap (make_version): we may need to look in 4487 $prefix/share/mk for sys.mk 4488 4489 * Makefile.in (BMAKE_VERSION): bump version to 20080514 4490 * Merge with NetBSD make, pick up: 4491 o skip setting vars in VAR_GLOBAL context, when already set in 4492 VAR_CMD which takes precedence. 4493 44942008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 4495 4496 * Makefile.in (BMAKE_VERSION): bump version to 20080330 4497 * Merge with NetBSD make, pick up: 4498 o fix for ?= when LHS contains variable reference. 4499 45002008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4501 4502 * merge some patches from NetBSD pkgsrc. 4503 4504 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 4505 the MAKSYSPATH used during bootstrap. 4506 4507 * Makefile.in (BMAKE_VERSION): bump version to 20080215 4508 * Merge with NetBSD make, pick up: 4509 o warn if non-space chars follow 'empty' in a conditional. 4510 45112008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4512 4513 * Makefile.in (BMAKE_VERSION): bump version to 20080118 4514 * Merge with NetBSD make, pick up: 4515 o consider dependencies read from .depend as optional - dsl 4516 o remember when buffer for reading makefile grows - dsl 4517 o add -dl (aka LOUD) - David O'Brien 4518 45192007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 4520 4521 * Makefile.in (BMAKE_VERSION): bump version to 20071022 4522 * Merge with NetBSD make, pick up: 4523 o Allow .PATH<suffix> to be used for .include "" 4524 4525 * boot-strap: source default settings from .bmake-boot-strap.rc 4526 45272007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 4528 4529 * Makefile.in: fix maninstall on various systems 4530 provided that our man.mk is used. 4531 For non-BSD systems we install the preformatted page 4532 into $MANDIR/cat1 4533 45342007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 4535 4536 * boot-strap: make bmake.1 too, so maninstall works. 4537 45382007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 4539 4540 * Makefile.in (BMAKE_VERSION): bump version to 20071014 4541 * Merge with NetBSD make, pick up: 4542 o revamped handling of defshell - configure no longer needs to 4543 know the content of the shells array - apb 4544 o stop Var_Subst modifying its input - apb 4545 o avoid calling ParseTrackInput too often - dsl 4546 45472007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4548 4549 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4550 * Merge with NetBSD make, pick up: 4551 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4552 4553 * sigcompat.c: some tweaks for HP-UX 11.x based on 4554 patch from Tobias Nygren 4555 4556 * configure.in: update handling of --with-defshell to match 4557 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4558 will now do what one might hope - provided the chosen shell 4559 behaves enough like sh. 4560 45612007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4562 4563 * Makefile.in (BMAKE_VERSION): bump to 20071008 4564 * Merge with NetBSD make, pick up: 4565 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4566 o .export/.MAKE.EXPORTED - export of variables - sjg 4567 o .MAKE.MAKEFILES - track all makefiles read - sjg 4568 o performance improvements - dsl 4569 o revamp parallel job scheduling - dsl 4570 45712006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4572 4573 * Makefile.in (BMAKE_VERSION): bump to 20060728 4574 * Merge with NetBSD make, pick up: 4575 o extra debug info during variable and cond processing - sjg 4576 o shell definition now covers newline - rillig 4577 o minor mem leak in PrintOnError - sjg 4578 45792006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4580 4581 * Makefile.in (BMAKE_VERSION): bump to 20060511 4582 * Merge with NetBSD make, pick up: 4583 o more memory leaks - coverity 4584 o possible overflow in ArchFindMember - coverity 4585 o extract variable modifier code out of Var_Parse() 4586 so it can be called recursively - sjg 4587 o unit-tests/moderrs - sjg 4588 45892006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4590 4591 * Makefile.in (BMAKE_VERSION): bump to 20060412 4592 * Merge with NetBSD make, pick up: 4593 o fixes for some memory leaks - coverity 4594 o only read first sys.mk etc when searching sysIncPath - sjg 4595 4596 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4597 setting ${MAKEFILE} - OBATA Akio 4598 45992006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4600 4601 * Makefile.in (BMAKE_VERSION): bump to 20060318 4602 * Merge with NetBSD make, pick up: 4603 o cleanup of job.c to remove remote handling, distcc is more 4604 useful and this code was likely bit-rotting - dsl 4605 o fix for :P modifier - sjg 4606 * boot-strap: set default prefix to something reasonable 4607 (for me anyway). 4608 46092006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4610 4611 * Makefile.in (BMAKE_VERSION): bump to 20060301 4612 * Merge with NetBSD make, pick up: 4613 o make .WAIT apply recursively, document and test case - apb 4614 o allow variable modifiers in a variable appear anywhere in 4615 modifier list, document and test case - sjg 4616 46172006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4618 4619 * Makefile.in (BMAKE_VERSION): bump to 20060222 4620 * Merge with NetBSD make, pick up: 4621 o improved job token handling - dsl 4622 o SIG_DFL the correct signal before exec - dsl 4623 o more debug info during parsing - dsl 4624 o allow variable modifiers to be specified via variable - sjg 4625 * boot-strap: explain why we died if no mksrc 4626 46272005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4628 4629 * Makefile.in (BMAKE_VERSION): bump to 20051105 4630 * configure.in: always set default_sys_path 4631 default is ${prefix}/share/mk 4632 - remove prefix_sys_path, anyone wanting more than above 4633 needs to set it manually. 4634 46352005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4636 4637 * boot-strap: make this a bit easier for pkgsrc folk. 4638 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4639 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4640 46412005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4642 4643 * Makefile.in (BMAKE_VERSION): bump to 20051102 4644 * job.c (JobFinish): fix likely ancient merge lossage 4645 fix from Todd Vierling. 4646 * boot-strap (srcdir): allow setting mksrc=none 4647 46482005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4649 4650 * Makefile.in (BMAKE_VERSION): bump to 20051031 4651 * ranlib.h: skip on OSF too. 4652 (NetBSD PR 31864) 4653 46542005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4655 4656 * Makefile.in (BMAKE_VERSION): bump to 20051002 4657 fix a silly typo 4658 46592005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4660 4661 * Makefile.in (BMAKE_VERSION): bump to 20051001 4662 support for UnixWare and some other systems, 4663 based on patches from pkgsrc/bootstrap 4664 46652005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4666 4667 * Makefile.in (BMAKE_VERSION): bump to 20050901 4668 * Merge with NetBSD make, pick up: 4669 o possible parse error causing us to wander off. 4670 46712005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4672 4673 * Makefile.in (BMAKE_VERSION): bump to 20050606 4674 * Merge with NetBSD make, pick up: 4675 o :0x modifier for randomizing a list 4676 o fixes for a number of -Wuninitialized issues. 4677 46782005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4679 4680 * Makefile.in (BMAKE_VERSION): bump to 20050530 4681 * Merge with NetBSD make, pick up: 4682 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4683 4684 * README: was seriously out of date. 4685 46862005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4687 4688 * Important to use .MAKE rather than MAKE. 4689 46902005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4691 4692 * Makefile.in (BMAKE_VERSION): bump to 20050315 4693 * Merge with NetBSD make, pick up: 4694 o don't mistake .elsefoo for .else 4695 o use suffix-specific search path correctly 4696 o bunch of style nits 4697 46982004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4699 4700 * boot-strap: 4701 o ensure that args to --src and --with-mksrc 4702 are resolved before giving them to configure. 4703 o add -o "objdir" so that builder can control it, 4704 default is $OS as determined by os.sh 4705 o add -q to suppress all the install instructions. 4706 47072004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4708 4709 * Remove __IDSTRING() 4710 4711 * Makefile.in (BMAKE_VERSION): bump to 20040508 4712 * Merge with NetBSD make, pick up: 4713 o posix fixes 4714 - remove '-e' from compat mode 4715 - add support for '+' command-line prefix. 4716 o fix for handling '--' on command-line. 4717 o fix include in lst.lib/lstInt.h to simplify '-I's 4718 o we also picked up replacement of MAKE_BOOTSTRAP 4719 with !MAKE_NATIVE which is a noop, but possibly confusing. 4720 47212004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4722 4723 * Makefile.in (BMAKE_VERSION): bump to 20040414 4724 * Merge with NetBSD make, pick up: 4725 o allow quoted strings on lhs of conditionals 4726 o issue warning when extra .else is seen 4727 o print line numer when errors encountered during parsing from 4728 string. 4729 47302004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4731 4732 * Makefile.in (BMAKE_VERSION): bump to 20040220 4733 * Merge with NetBSD make, pick up: 4734 o fix for old :M parsing bug. 4735 o re-jigged unit-tests 4736 47372004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4738 4739 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4740 so that './bmake -f Makefile test' works. 4741 47422004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4743 4744 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4745 * Merge with NetBSD make, pick up: 4746 o search upwards for *.mk 4747 o fix for double free of var substitution buffers 4748 o use of getopt replaced with custom code, since the usage 4749 (re-scanning) isn't posix compatible. 4750 47512004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4752 4753 * arch.c: don't include ranlib.h on ELF systems 4754 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4755 47562004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4757 4758 * Makefile.in (BMAKE_VERSION): bump to 20040118 4759 4760 * boot-strap (while): export vars we assign to on cmdline 4761 * unit-test/Makefile.in: ternary is .PHONY 4762 47632004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4764 4765 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4766 * Merge with NetBSD make, pick up: 4767 o fix for ternary modifier 4768 47692004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4770 4771 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4772 * Merge with NetBSD make, pick up: 4773 o fix for cond.c to handle compound expressions better 4774 o variable expansion within sysV style replacements 4775 47762003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4777 4778 * Make portable snprintf safer - output to /dev/null first to 4779 check space needed. 4780 4781 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4782 * Merge with NetBSD make, pick up: 4783 o -dg3 to show input graph when things go wrong. 4784 o explicitly look for makefiles in objdir if not found in curdir so 4785 that errors in .depend etc will be reported accurarely. 4786 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4787 instead as it more accurately reflects the expected behavior and 4788 is more consistently implemented. 4789 o avoid use of asprintf. 4790 47912003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4792 4793 * util.c: Add asprintf and vasprintf. 4794 4795 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4796 * Merge with NetBSD make, pick up: 4797 :[] modifier - allows picking words from a variable. 4798 :tW modifier - allows treating value as one big word. 4799 W flag for :C and :S - allows treating value as one big word. 4800 48012003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4802 4803 * Merge with NetBSD make 4804 pick up -de flag to enable printing failed command. 4805 don't skip 1st two dir entries (normally . and ..) since 4806 coda does not have them. 4807 48082003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4809 4810 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4811 * Merge with NetBSD make, pick up: 4812 - changes for -V '${VAR}' to print fully expanded value 4813 cf. -V VAR 4814 - CompatRunCommand now prints the command that failed. 4815 - several files got updated 3 clause Berkeley license. 4816 48172003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4818 4819 * boot-strap: Allow setting configure args on command line. 4820 48212003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4822 4823 * configure.in: add --with-defshell to allow sh or ksh 4824 to be selected as default shell. 4825 4826 * Makefile.in: bump version to 20030731 4827 4828 * Merge with NetBSD make 4829 Pick up .SHELL spec for ksh and associate man page changes. 4830 Also compat mode now uses the same shell specs. 4831 48322003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4833 4834 * var.c (Var_Parse): ensure delim is initialized. 4835 4836 * unit-tests/Makefile.in: use single quotes to avoid problems from 4837 some shells. 4838 4839 * makefile.boot.in: 4840 Run the unit-tests as part of the bootstrap procedure. 4841 48422003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4843 4844 * unit-tests/Makefile.in: always force complaints from 4845 ${TEST_MAKE} to be from 'make'. 4846 4847 * configure.in: add check for 'diff -u' 4848 also fix some old autoconf'isms 4849 4850 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4851 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4852 4853 * Merge with NetBSD make 4854 Pick up fix for :ts parsing error in some cases. 4855 Pick unit-tests. 4856 48572003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4858 4859 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4860 4861 * var.c (Var_Parse): fix bug in :ts modifier, after const 4862 correctness fixes, must pass nstr to VarModify. 4863 48642003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4865 4866 * Makefile.in: BMAKE_VERSION switch to a date based version. 4867 We'll generally use the date of last import from NetBSD. 4868 4869 * Merge with NetBSD make 4870 Pick up fixes for const-correctness, now passes WARNS=3 on 4871 NetBSD. 4872 Pick up :ts modifier, allows controlling the separator used 4873 between words in variable expansion. 4874 48752003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4876 4877 * FILES: include boot-strap and os.sh 4878 4879 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4880 FreeBSD is known to be bad. 4881 4882 * makefile.boot.in (bootstrap): make this the default target. 4883 4884 * Makefile.in: bump version to 3.1.19 4885 4886 * machine.sh: avoid A-Z with tr as it is bound to lose. 4887 48882003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4889 4890 * Merge with NetBSD make 4891 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4892 Plus some doc fixes. 4893 48942003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4895 4896 * Merge with NetBSD make 4897 Pick up fix for PR/1523 - don't count a library as built, if there 4898 is no way to build it 4899 4900 * Bump version to 3.1.18 4901 49022003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4903 4904 * Merge with NetBSD make 4905 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4906 appears in src list. 4907 49082003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4909 4910 * Merge with NetBSD make (mmm 10th anniversary!) 4911 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4912 pick up -X which tells us to not export VAR=val via setenv if 4913 we are already doing so via MAKEFLAGS. This saves valuable env 4914 space on systems like Darwin. 4915 set MAKE_VERSION to 3.1.17 4916 4917 * parse.c: pix up fix for suffix rules 4918 49192003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4920 4921 * Merge with NetBSD make. 4922 pick up fix for propagating -B via MAKEFLAGS. 4923 set MAKE_VERSION to 3.1.16 4924 4925 * Apply some patches from pkgsrc-bootstrap/bmake 4926 Originally by Grant Beattie <grant@netbsd.org> 4927 I may have missed some - since they are based on bmake-3.1.12 4928 49292002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4930 4931 * makefile.boot.in (bmake): update install targets for those that 4932 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4933 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4934 4935 * bmake.cat1: update the pre-formatted man page! 4936 49372002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4938 4939 * Merge with NetBSD make. 4940 pick up fix for premature free of pointer used in call 4941 to Dir_InitCur(). 4942 set MAKE_VERSION to 3.1.15 4943 49442002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4945 4946 * configure.in: determine suitable value for MKSRC. 4947 override using --with-mksrc=PATH. 4948 4949 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4950 configs(8) will use 'sun4' as an alias for 'sparc'. 4951 49522002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4953 4954 * Merge with NetBSD make. 4955 pick up ${.PATH} 4956 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4957 set MAKE_VERSION to 3.1.14 4958 add configure checks for killpg and sys/socket.h 4959 49602002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4961 4962 * tag bmake-3-1-13 4963 4964 * makefile.boot.in (bmake): use install-mk 4965 Also setup ./mk before trying to invoke bmake.boot incase we 4966 needed install-mk to create a sys.mk for us. 4967 4968 * configure.in: If we need to add -I${srcdir}/missing, make it an 4969 absolute path so that it works for lst.lib too. 4970 4971 * make.h: always include sys/cdefs.h since we provide one if the 4972 host does not. 4973 4974 * Makefile.in (install-mk): 4975 use MKSRC/install-mk which will do the right thing. 4976 use uname -p for ARCH if possible. 4977 since install-mk will setup links bsd.prog.mk -> prog.mk if 4978 needed, just .include bsd.prog.mk 4979 4980 * Merge with NetBSD make (NetBSD-1.6) 4981 Code is ansi-C only now. 4982 Bug in handling of dotLast is fixed. 4983 Can now assign .OBJDIR and make will reset its notions of life. 4984 New modifiers :tu :tl for toUpper and toLower. 4985 4986Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4987 4988 * Merge with NetBSD make 4989 pick up fix for .END failure in compat mode. 4990 pick up fix for extra va_end() in ParseVErrorInternal. 4991 4992Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4993 4994 * configure.in: for systems that have sys/cdefs.h check if it is 4995 compatible. If not, include the one under missing, but tell it to 4996 include the native one too - necessary on Linux. 4997 4998 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4999 include_next (for gcc) to get the native sys/cdefs.h 5000 5001Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5002 5003 * job.c (JobFinish): Fix an earlier merge bug that resulted in 5004 leaking descriptors when using -jN. 5005 5006 * job.c (JobPrintCommand): See if "curdir" exists before 5007 attempting to chdir(). Doing the chdir directly in make (when in 5008 compat mode) fails silently, so let the -jN version do the same. 5009 This can happen when building kernels in an object tree and 5010 playing clever games to reset .CURDIR. 5011 5012 * Merged with NetBSD make 5013 pick up .USEBEFORE 5014 5015Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5016 5017 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 5018 5019Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5020 5021 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 5022 us not to export the iterator variable when using VAR_CMD context. 5023 5024Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5025 5026 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 5027 its the wrong "fix". 5028 5029Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5030 5031 * Redesigned export of VAR_CMD's via MAKEFLAGS. 5032 We now simply append the variable names to .MAKEOVERRIDES, and 5033 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 5034 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 5035 Apart from fixing quoting bugs in previous version, this allows us 5036 to export vars to the environment by simply doing: 5037 .MAKEOVERRIDES+= PATH 5038 Merged again with NetBSD make, but the above is the only change. 5039 5040 * configure.in: added 5041 --disable-pwd-override disable $PWD overriding getcwd() 5042 --disable-check-make-chdir disable make trying to guess 5043 when it should automatically cd ${.CURDIR} 5044 5045 * Merge with NetBSD make, changes include: 5046 parse.c (ParseDoDependency): Spot that the syntax error is 5047 caused by an unresolved cvs/rcs conflict and say so. 5048 var.c: most of Var* functions now take a ctxt as 1st arg. 5049 now does variable substituion on rhs of sysv style modifiers. 5050 5051 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 5052 is now done here. We append the name='value' to .MAKEOVERRIDES 5053 rather than directly into MAKEFLAGS as this allows a Makefile to 5054 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 5055 very similar mechanism. Note that in adding name='value' to 5056 .MAKEOVERRIDES we do the moral equivalent of: 5057 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 5058 5059Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5060 5061 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 5062 5063 * Merged with NetBSD make 5064 make -dx can now be used to run commands via sh -x 5065 better error messages on exec failures. 5066 5067Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5068 5069 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 5070 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 5071 MACHINE etc otherwise they propagate from the previous bmake. 5072 5073 * configure.in (machine): allow --with-machine=generic to make 5074 configure use machine.sh to set MACHINE. 5075 5076 * job.c (JobInterrupt): convert to using WAIT_T and friends. 5077 5078 * Makefile.in: mention in bmake.1 that we use autoconf. 5079 5080 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 5081 5082Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5083 5084 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 5085 as that rather defeats the usefulness of ${MAKEFILE}. 5086 5087 * main.c (MainParseArgs): append command line variable assignments 5088 to MAKEFLAGS so that they get propagated to child make's. 5089 Apparently this is required POSIX behaviour? Its useful anyway. 5090 5091Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5092 5093 * compat.c (CompatRunCommand): don't use perror() since stdio may 5094 cause problems in child of vfork(). 5095 5096 * compat.c, main.c: Call PrintOnError() when we are going to bail. 5097 This routine prints out the .curdir where we stopped and will also 5098 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 5099 5100 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 5101 :@ expansion. 5102 5103 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 5104 5105 * Added RCSid's for the files we've touched. 5106 5107Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5108 5109 * configure.in: Thanks to some clues from mdb@juniper.net, 5110 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 5111 as well as what ends up in _PATH_DEFSYSPATH. We now have: 5112 5113 --with-machine=MACHINE explicitly set MACHINE 5114 --with-force-machine=MACHINE set FORCE_MACHINE 5115 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 5116 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 5117 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 5118 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 5119 5120 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 5121 5122 * makefile: added a pathetically simple makefile to drive 5123 bootstrapping. Running configure by hand is more useful. 5124 5125 * Makefile.in: added MAKE_VERSION, and reworked things to be less 5126 dependent on NetBSD bsd.*.mk 5127 5128 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 5129 _PATH_OBJDIRPREFIX for those that don't want a default. 5130 construct _PATH_DEFSYSPATH from the info we get from configure. 5131 5132 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 5133 if MAKE_VERSION is defined. 5134 5135 * compat.c: when we bail, print out the .CURDIR we were in. 5136 5137Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5138 5139 * Merged with NetBSD make 5140 5141 * var.c: fixed a bug in the handling of the modifier :P 5142 if the node as found but the path was null, we segfault trying to 5143 duplicate it. 5144 5145Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5146 5147 * Merged with NetBSD make 5148 5149 * make.c: Make_OODate's test for a library out of date was using 5150 cmtime where it should have used mtime (my bug). 5151 5152 * compat.c: Use perror() to tell us what really went wrong when we 5153 cannot exec a command. 5154 5155Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5156 5157 * Merged with NetBSD make 5158 5159Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5160 5161 * Merged with NetBSD make 5162 5163Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5164 5165 * Merged with NetBSD make 5166 5167Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5168 5169 * Merged with NetBSD make 5170 5171Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5172 5173 * util.c: don't provide signal() since we use sigcompat.c 5174 5175 * Makefile.in: added a build target. 5176 5177 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 5178 These allow some quite clever magic. 5179 5180 * main.c (main): added support for getenv(MAKESYSPATH). 5181 5182Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5183 5184 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 5185 This avoids objdir having a different value depending on how a 5186 directory was reached (via command line, or subdir.mk). 5187 5188 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 5189 5190Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5191 5192 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 5193 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 5194 I've been testing this in NetBSD's make for some weeks. 5195 5196 * Turn Makefile into Makefile.in and make it useful. 5197 5198Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5199 5200 * Imported NetBSD's -current make(1) and resolve conflicts. 5201 5202 * Applied autoconf patches from bmake v2 5203 5204 * Imported clean code base from NetBSD-1.0 5205