12025-07-07 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20250707 4 Merge with NetBSD make, pick up 5 o cond.c: improve debug log message for 'exists' function. 6 complain about unfinished escape sequences or string literals. 7 82025-07-04 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20250704 11 Merge with NetBSD make, pick up 12 o make.1: add a DIAGNOSTICS section for make to reference. 13 o main.c: simplify the warning for invalid -J by refering to 14 manual page. 15 162025-06-30 Simon J Gerraty <sjg@beast.crufty.net> 17 18 * VERSION (_MAKE_VERSION): 20250630 19 Merge with NetBSD make, pick up 20 o consistently use double quotes in error messages 21 o cond.c: if a condition is erroneous, skip the whole .if/.endif 22 o make_malloc.c: in cleanup mode, initialize freshly allocated memory 23 o str.c: error out on an ":M" modifier whose pattern ends with 24 backslash 25 o var.c: fix parsing of modifier parts for :gmtime and :localtime 26 add POSIX $^ support 27 282025-06-18 Simon J Gerraty <sjg@beast.crufty.net> 29 30 * VERSION (_MAKE_VERSION): 20250618 31 Merge with NetBSD make, pick up 32 o parse.c: in a warning without location information, 33 print the stack trace 34 352025-06-15 Simon J Gerraty <sjg@beast.crufty.net> 36 37 * VERSION (_MAKE_VERSION): 20250615 38 Merge with NetBSD make, pick up 39 o add on-demand inter-process stack traces 40 o job.c,meta.c: do not discard empty lines in the output of a command 41 o job.c: add job prefix if necessary in non-default filtered mode 42 o parse.c,var.c: skip inter-process stack trace when 43 MAKE_STACK_TRACE=no 44 452025-06-12 Simon J Gerraty <sjg@beast.crufty.net> 46 47 * VERSION (_MAKE_VERSION): 20250612 48 Merge with NetBSD make, pick up 49 o use a common style for unexpected error messages 50 o parse.c: add program name to stack traces from sub-makes 51 add quotes to "in directory" line in stack traces 52 o var.c: check variable names for invalid characters when there 53 are no modifiers to apply. This detects and warns about gmake 54 syntax like: $(addprefix -I, $(LIST)) 55 562025-06-09 Simon J Gerraty <sjg@beast.crufty.net> 57 58 * VERSION (_MAKE_VERSION): 20250606 59 Merge with NetBSD make, pick up 60 o main.c: fix bug in handling of output of children in jobs mode 61 622025-05-28 Simon J Gerraty <sjg@beast.crufty.net> 63 64 * VERSION (_MAKE_VERSION): 20250528 65 Merge with NetBSD make, pick up 66 o show contents of MAKEFLAGS in the stack trace. 67 o main.c: delay warning about bogus -J flag, if we end up in 68 compat mode before the call to InitMaxJobs, the warning isn't 69 necessary. 70 712025-05-25 Simon J Gerraty <sjg@beast.crufty.net> 72 73 * VERSION (_MAKE_VERSION): 20250525 74 Merge with NetBSD make, pick up 75 o main.c: set .CURDIR earlier so it can be reported in some errors. 76 772025-05-20 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * VERSION (_MAKE_VERSION): 20250520 80 Merge with NetBSD make, pick up 81 o rename variables, remove now-redundant comments 82 o job.c: clean up building the shell commands in parallel mode 83 remove timeout for polling in parallel mode 84 o main.c: clean up error message for malformed internal -J option 85 862025-05-11 Simon J Gerraty <sjg@beast.crufty.net> 87 88 * VERSION (_MAKE_VERSION): 20250511 89 Merge with NetBSD make, pick up 90 o job.c: rename token pool variables to be more descriptive 91 move ContinueJobs further up, to eliminate a forward declaration 92 error out if writing to an internal pipe fails 93 clean up constant names and function names 94 use uniform debug log messages for the token pool 95 in the debug log, replace magic numbers with identifiers 96 o main.c: clean up error message for malformed internal -J option 97 o make.c: replace bitset in trace output with descriptive node 98 attributes 99 o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log 100 o var.c: fix order of error messages in the ":?" modifier 101 1022025-04-25 Simon J Gerraty <sjg@beast.crufty.net> 103 104 * VERSION (_MAKE_VERSION): 20250424 105 Merge with NetBSD make, pick up 106 o cleanup; replace unsigned int with just unsigned 107 Inline the TMPPAT macro, as it is only needed in a single place 108 o move struct Job from job.h to job.c 109 o job.c: group the code for handling the job token pool 110 avoid excessive values of -j 111 o make.c: fix grammar in debug log message 112 1132025-04-14 Simon J Gerraty <sjg@beast.crufty.net> 114 115 * VERSION (_MAKE_VERSION): 20250414 116 Merge with NetBSD make, pick up 117 o job.c: clean up job and output handling 118 o parse.c: after entering POSIX mode, don't leave it again 119 1202025-04-11 Simon J Gerraty <sjg@beast.crufty.net> 121 122 * VERSION (_MAKE_VERSION): 20250411 123 Merge with NetBSD make, pick up 124 o convert more messages to file:line: format 125 o for.c: condense code for parsing variable names in .for loops 126 1272025-04-10 Simon J Gerraty <sjg@beast.crufty.net> 128 129 * VERSION (_MAKE_VERSION): 20250410 130 Merge with NetBSD make, pick up 131 o cond.c: remove redundant error counter when parsing a condition 132 1332025-04-04 Simon J Gerraty <sjg@beast.crufty.net> 134 135 * VERSION (_MAKE_VERSION): 20250404 136 Merge with NetBSD make, pick up 137 o make.1: better document meta mode. 138 o var.c: fix error message for undefined variable in conditional. 139 1402025-03-30 Simon J Gerraty <sjg@beast.crufty.net> 141 142 * VERSION (_MAKE_VERSION): 20250330 143 Merge with NetBSD make, pick up 144 o in POSIX compatability mode, give preference to sysV style modifiers. 145 o in stack trace with details and includes, list the current file 146 o parse.c: report file location in more common file:line: format. 147 o var.c: simplify error handling for unknown modifiers 148 let the ":O" and ":t" modifiers fall back to the ":from=to" modifier 149 stop parsing after seeing an unknown modifier in an expression 150 fix error message for unclosed expression and invalid :[...] 151 add details to errors about ::= modifier 152 add details about indirect modifiers to the stack traces 153 in stack traces from target commands, add the command level 154 1552025-03-23 Simon J Gerraty <sjg@beast.crufty.net> 156 157 * VERSION (_MAKE_VERSION): 20250323 158 Merge with NetBSD make, pick up 159 o var.c: just ignore attempts to override a read-only global with 160 the same value. 161 1622025-03-08 Simon J Gerraty <sjg@beast.crufty.net> 163 164 * bsd.after-import.mk: by default generate makefiles 165 closer to BSD style. 166 167 * VERSION (_MAKE_VERSION): 20250308 168 Merge with NetBSD make, pick up 169 o clean up comments and code for parallel mode 170 o job.c: avoid SIGPIPE for children, call Job_Wait befor abort. 171 1722025-02-27 Simon J Gerraty <sjg@beast.crufty.net> 173 174 * VERSION (_MAKE_VERSION): 20250225 175 Merge with NetBSD make, pick up 176 o job.c: reliably remove targets on interrupt, 177 by passing signal to children first. 178 1792025-01-25 Simon J Gerraty <sjg@beast.crufty.net> 180 181 * VERSION (_MAKE_VERSION): 20250125 182 Merge with NetBSD make, sync up below change. 183 184 * unit-tests/Makefile: remove $TMPDIR via .END 185 to avoid failure in test on NFS - since the temp file for the 186 target script is open and thus gets renamed by the server rather 187 than removed. 188 1892025-01-20 Simon J Gerraty <sjg@beast.crufty.net> 190 191 * VERSION (_MAKE_VERSION): 20250120 192 Merge with NetBSD make, pick up 193 o use FORK_FUNCTION so it can be forced to fork when doing coverage. 194 o main.c: avoid memory allocation in error path after exec failure. 195 1962025-01-16 Simon J Gerraty <sjg@beast.crufty.net> 197 198 * VERSION (_MAKE_VERSION): 20250116 199 Merge with NetBSD make, pick up 200 o clarify that undefined expressions are allowed in dependencies 201 o simplify code for evaluating the '!=' variable assignment 202 2032025-01-11 Simon J Gerraty <sjg@beast.crufty.net> 204 205 * VERSION (_MAKE_VERSION): 20250111 206 Merge with NetBSD make, pick up 207 o replace "Malformed conditional" with "Variable is undefined" 208 when appropriate 209 2102025-01-10 Simon J Gerraty <sjg@beast.crufty.net> 211 212 * VERSION (_MAKE_VERSION): 20250110 213 Merge with NetBSD make, pick up 214 o job.c: remove some unnecessary layers in job handling 215 o unit-tests: test expressions based on undefined variables 216 2172025-01-01 Simon J Gerraty <sjg@beast.crufty.net> 218 219 * VERSION (_MAKE_VERSION): 20250101 220 Merge with NetBSD make, pick up 221 o var.c: reduce pointer indirections when unexporting a variable 222 2232024-12-12 Simon J Gerraty <sjg@beast.crufty.net> 224 225 * VERSION (_MAKE_VERSION): 20241212 226 * mk/ updates 227 2282024-11-24 Simon J Gerraty <sjg@beast.crufty.net> 229 230 * VERSION (_MAKE_VERSION): 20241124 231 Merge with NetBSD make, pick up 232 o var.c: fix confusing error message when overriding a read-only 233 variable 234 2352024-11-22 Simon J Gerraty <sjg@beast.crufty.net> 236 237 * VERSION (_MAKE_VERSION): 20241122 238 Merge with NetBSD make, pick up 239 o unit-tests/Makefile: optimize running of tests skip extra cat 240 in 99% of cases. 241 2422024-11-15 Simon J Gerraty <sjg@beast.crufty.net> 243 244 * VERSION (_MAKE_VERSION): 20241114 245 Merge with NetBSD make, pick up 246 o make.1: note that MAKEOBJPREFIX should be absolute path 247 also that it can be set via makefile if suitable care taken. 248 2492024-11-10 Simon J Gerraty <sjg@beast.crufty.net> 250 251 * VERSION (_MAKE_VERSION): 20241110 252 Merge with NetBSD make, pick up 253 o make: allow .../ (search here and above) in 254 .MAKE.MAKEFILE_PREFERENCE and -f argument. 255 2562024-11-03 Simon J Gerraty <sjg@beast.crufty.net> 257 258 * VERSION (_MAKE_VERSION): 20241101 259 Merge with NetBSD make, pick up 260 o parse.c: report filename:linenumber in parse debug output 261 2622024-09-21 Simon J Gerraty <sjg@beast.crufty.net> 263 264 * VERSION (_MAKE_VERSION): 20240921 265 Merge with NetBSD make, pick up 266 o make.1: Only list the defaults for MAKEFILE_PREFERENCE once. 267 268 * Makefile: use genfiles.mk to generate ${MAN} 269 so that it can be tuned for local site. 270 Ensure MAN is defined before including Makefile.inc 271 272 * Makefile: use MK_GEN_MAN to make it easier to control whether we 273 generate ${MAN} 274 2752024-09-16 Simon J Gerraty <sjg@beast.crufty.net> 276 277 * VERSION (_MAKE_VERSION): 20240909 278 279 * arch.c: fix NetBSD PR 58597 280 2812024-09-01 Simon J Gerraty <sjg@beast.crufty.net> 282 283 * Makefile: use SUBDIR.${MK_TESTS} so that we skip 284 unit-tests for obj and clean when FreeBSD is building WITHOUT_TESTS 285 286 * VERSION (_MAKE_VERSION): 20240901 287 Merge with NetBSD make, pick up 288 o reduce line length in error messages 289 o var.c: simplify printing of an evaluation stack element 290 2912024-08-29 Simon J Gerraty <sjg@beast.crufty.net> 292 293 * VERSION (_MAKE_VERSION): 20240828 294 Merge with NetBSD make, pick up 295 o add more context to error message about recursive variables 296 o treat recursive variables non-fatally - continue parsing to end 297 of makefile 298 2992024-08-12 Simon J Gerraty <sjg@beast.crufty.net> 300 301 * VERSION (_MAKE_VERSION): 20240808 302 Merge with NetBSD make, pick up 303 o improve some error messages for better clarify and readability 304 3052024-07-22 Simon J Gerraty <sjg@beast.crufty.net> 306 307 * VERSION (_MAKE_VERSION): 20240722 308 Merge with NetBSD make, pick up 309 o job.c: remove dead code 310 3112024-07-21 Simon J Gerraty <sjg@beast.crufty.net> 312 313 * VERSION (_MAKE_VERSION): 20240720 314 Merge with NetBSD make, pick up 315 o compat.c: do not run commands that have parse or evaluation errors. 316 o var.c: remove wrong error message about an undefined variable 317 3182024-07-13 Simon J Gerraty <sjg@beast.crufty.net> 319 320 * cleanup redundant differences from NetBSD make 321 o parse.c: no longer uses mmap 322 o var.c: check __STDC_VERSION__ not __STDC__ 323 3242024-07-12 Simon J Gerraty <sjg@beast.crufty.net> 325 326 * Apply some patches from NetBSD pkgsrc to reduce divergence 327 o meta.c: requires sys/select.h if available 328 o var.c: ensure SIZE_MAX has a value 329 o util.c: ensure SA_RESTART is defined 330 331 * configure.in: use *ksh* rather than just *ksh to match 332 ksh shell specification. 333 334 * unit-tests/Makefile: expand BROKEN_TESTS for ksh and 335 mksh in particular 336 3372024-07-11 Simon J Gerraty <sjg@beast.crufty.net> 338 339 * VERSION (_MAKE_VERSION): 20240711 340 Merge with NetBSD make, pick up 341 o compat.c: allow Compat_RunCommand to also handle very long 342 commands by writing to a temp file when needed. 343 o main.c: extract the temp file logic recently added to Cmd_Exec 344 to Cmd_Argv so it can be leveraged by Compat_RunCommand. 345 3462024-07-09 Simon J Gerraty <sjg@beast.crufty.net> 347 348 * VERSION (_MAKE_VERSION): 20240709 349 Merge with NetBSD make, pick up 350 o error out on parse/evaluation errors in shell commands 351 o var.c: error out on syntax errors in ':M' and ':N' modifiers 352 3532024-07-07 Simon J Gerraty <sjg@beast.crufty.net> 354 355 * VERSION (_MAKE_VERSION): 20240707 356 Merge with NetBSD make, pick up 357 o only generate code for cleanup functions in CLEANUP mode 358 o hash.c: don't track hash table chain lengths during lookup 359 unless debugging 360 o main.c: move initialization of variable scopes to targ.c 361 o var.c: remove Var_End as it is now unnecessary 362 3632024-07-06 Simon J Gerraty <sjg@beast.crufty.net> 364 365 * VERSION (_MAKE_VERSION): 20240706 366 Merge with NetBSD make, pick up 367 o reduce lint comments about ARGSUSED 368 o cond.c: error out on conditions containing the operators '&' and '|' 369 o str.c: error out on a matching malformed matching pattern '[[' 370 o var.c: in error messages, distinguish parsing from evaluating 371 in error messages for anonymous variables, log the value 372 error out on unclosed expressions during parse time 373 3742024-07-04 Simon J Gerraty <sjg@beast.crufty.net> 375 376 * VERSION (_MAKE_VERSION): 20240704 377 Merge with NetBSD make, pick up 378 o add more context information to error messages 379 o main.c: on error, print the targets to be made 380 add detailed exit status to message for failed sub-commands 381 o var.c: error out on the "Bad modifier" error message 382 3832024-07-01 Simon J Gerraty <sjg@beast.crufty.net> 384 385 * VERSION (_MAKE_VERSION): 20240701 386 Merge with NetBSD make, pick up 387 o var.c: add :tt for Title case 388 3892024-06-30 Simon J Gerraty <sjg@beast.crufty.net> 390 391 * configure.in: 20240630 further refine check for whether 392 TZ=Europe/Berlin works 393 394 * VERSION (_MAKE_VERSION): 20240630 395 Merge with NetBSD make, pick up 396 o job.c: reduce use of UNCONST 397 o main.c: add detailed exit status to message for failed sub-commands 398 o var.c: error out on some more syntax errors 399 add more context to "returned non-zero status" message 400 4012024-06-25 Simon J Gerraty <sjg@beast.crufty.net> 402 403 * VERSION (_MAKE_VERSION): 20240625 404 Merge with NetBSD make, pick up 405 o job.c: ensure shellPath is always duped, avoid upsetting free() 406 4072024-06-16 Simon J Gerraty <sjg@beast.crufty.net> 408 409 * VERSION (_MAKE_VERSION): 20240616 410 Merge with NetBSD make, pick up 411 o clean up collection of context information for error messages 412 o in warnings, move the word "warning" to the front 413 o var.c: throw an error on attempt to override an internal 414 read-only variable 415 4162024-06-10 Simon J Gerraty <sjg@beast.crufty.net> 417 418 * VERSION (_MAKE_VERSION): 20240610 419 Merge with NetBSD make, pick up 420 o for.c: remove redundant shortcut for building the .for loop body 421 4222024-06-02 Simon J Gerraty <sjg@beast.crufty.net> 423 424 * VERSION (_MAKE_VERSION): 20240602 425 Merge with NetBSD make, pick up 426 o rename some VarEvalMode constants to better match debug names. 427 o var.c: avoid out-of-bounds read when parsing indirect modifiers. 428 4292024-06-01 Simon J Gerraty <sjg@beast.crufty.net> 430 431 * VERSION (_MAKE_VERSION): 20240601 432 Merge with NetBSD make, pick up 433 o add .export-all rather than allow .export with no argument 434 which can happen accidentally. 435 o if lua is available, run check-expect.lua after unit-tests 436 o main.c: use snprintf rather than strncpy 437 fix memory leak when purging realpath cache. 438 4392024-05-28 Simon J Gerraty <sjg@beast.crufty.net> 440 441 * VERSION (_MAKE_VERSION): 20240528 442 Merge with NetBSD make, pick up 443 o fix a number of memory leaks 444 o replace magic numbers with POSIX FILENO constants 445 o hash.c: remove dead code from HashTable_DeleteEntry 446 o main.c: when complaining about unusable .OBJDIR 447 call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true. 448 o parse.c: use fewer technical terms in debug message for dependency 449 4502024-05-20 Simon J Gerraty <sjg@beast.crufty.net> 451 452 * VERSION (_MAKE_VERSION): 453 Merge with NetBSD make, pick up 454 o dir.c: in FindFile restore last search of .CURDIR even for 455 includes, as a number of existing makefiles are broken otherwise. 456 4572024-05-19 Simon J Gerraty <sjg@beast.crufty.net> 458 459 * VERSION (_MAKE_VERSION): 20240519 460 Merge with NetBSD make, pick up 461 o dir.c: Add Dir_FindInclude, FindFile without looking in .CURDIR. 462 Also fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty. 463 o main.c: no need to set .DOTLAST in sysIncPath 464 4652024-05-07 Simon J Gerraty <sjg@beast.crufty.net> 466 467 * VERSION (_MAKE_VERSION): 20240508 468 Merge with NetBSD make, pick up 469 o make: ensure variables set on command line get added to 470 .MAKEOVERRIDES (even if they start with '.') so they are passed to 471 sub-makes. 472 4732024-04-30 Simon J Gerraty <sjg@beast.crufty.net> 474 475 * VERSION (_MAKE_VERSION): 20240430 476 Merge with NetBSD make, pick up 477 o main.c: ensure '.include <makefile>' respects MAKESYSPATH. 478 Dir_FindFile will search .CURDIR first unless ".DOTLAST" is seen. 479 4802024-04-28 Simon J Gerraty <sjg@beast.crufty.net> 481 482 * VERSION (_MAKE_VERSION): 20240428 483 Merge with NetBSD make, pick up 484 o simplify freeing of lists 485 o arch.c: trim pointless comments 486 o var.c: delay variable assignments until actually needed 487 don't reallocate memory after evaluating an expression, result is 488 almost always short-lived. 489 4902024-04-26 Simon J Gerraty <sjg@beast.crufty.net> 491 492 * VERSION (_MAKE_VERSION): 20240426 493 Merge with NetBSD make, pick up 494 o job.c: in debug output, print the directory in which a job 495 failed at same time as failed target so it is more easily found in 496 build log. 497 4982024-04-24 Simon J Gerraty <sjg@beast.crufty.net> 499 500 * VERSION (_MAKE_VERSION): 20240424 501 Merge with NetBSD make, pick up 502 o clean up comments, code and tests 503 5042024-04-23 Simon J Gerraty <sjg@beast.crufty.net> 505 506 * VERSION (_MAKE_VERSION): 20240422 507 Merge with NetBSD make, pick up 508 o var.c: avoid LazyBuf for :*time modifiers. 509 LazyBuf's are not nul terminated so not suitable for passing to 510 functions that expect that. These modifiers are used sparingly so 511 an extra allocation is not a problem. 512 5132024-04-20 Simon J Gerraty <sjg@beast.crufty.net> 514 515 * VERSION (_MAKE_VERSION): 20240420 516 Merge with NetBSD make, pick up 517 o provide more context information for parse/evaluate errors 518 5192024-04-14 Simon J Gerraty <sjg@beast.crufty.net> 520 521 * VERSION (_MAKE_VERSION): 20240414 522 Merge with NetBSD make, pick up 523 o parse.c: print -dp debug info earlier so we see which 524 .if or .for line is being parsed. 525 5262024-04-04 Simon J Gerraty <sjg@beast.crufty.net> 527 528 * VERSION (_MAKE_VERSION): 20240404 529 Merge with NetBSD make, pick up 530 o fix some unit tests for Cygwin 531 o parse.c: exit immediately after reading a null byte from a makefile 532 533 * fix generation of bmake.cat1 534 5352024-03-19 Simon J Gerraty <sjg@beast.crufty.net> 536 537 * VERSION (_MAKE_VERSION): 20240314 538 Add/Improve support for Cygwin 539 o uname -s output isn't useful so allow configure to 540 set FORCE_MAKE_OS - to force the value of .MAKE.OS 541 and use Cygwin which matches uname -o 542 o fix some unit-tests for Cygwin 543 5442024-03-10 Simon J Gerraty <sjg@beast.crufty.net> 545 546 * boot-strap: tests can take a long time; use a cookie to 547 skip them if bmake has not been updated since tests last 548 ran successfully. 549 550 * Makefile: Cygwin handles MANTARGET man 551 552 * unit-tests/Makefile: set BROKEN_TESTS for Cygwin 553 5542024-03-09 Simon J Gerraty <sjg@beast.crufty.net> 555 556 * VERSION (_MAKE_VERSION): 20240309 557 Merge with NetBSD make, pick up 558 o set .ERROR_EXIT to the exit status of .ERROR_TARGET 559 this allows a .ERROR target to ignore the case of 560 .ERROR_EXIT==6 which just means that the build actually 561 failed somewhere else. 562 5632024-03-04 Simon J Gerraty <sjg@beast.crufty.net> 564 565 * VERSION (_MAKE_VERSION): 20240303 566 567 * var.c: on IRIX we need both inttypes.h and stdint.h 568 5692024-03-01 Simon J Gerraty <sjg@beast.crufty.net> 570 571 * VERSION (_MAKE_VERSION): 20240301 572 Merge with NetBSD make, pick up 573 o export variables with value from target scope 574 when appropriate. 575 5762024-02-12 Simon J Gerraty <sjg@beast.crufty.net> 577 578 * VERSION (_MAKE_VERSION): 20240212 579 Merge with NetBSD make, pick up 580 o remove unneeded conditional-compilation toggles 581 INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB, 582 GMAKEEXPORT NO_REGEX and SUNSHCMD 583 584 * configure.in: add check for regex.h 585 586 * var.c: replace use of NO_REGEX with HAVE_REGEX_H 587 5882024-02-04 Simon J Gerraty <sjg@beast.crufty.net> 589 590 * VERSION (_MAKE_VERSION): 20240204 591 Merge with NetBSD make, pick up 592 o var.c: fix some lint (-dL) mode parsing issues 593 5942024-02-02 Simon J Gerraty <sjg@beast.crufty.net> 595 596 * VERSION: (_MAKE_VERSION): 20240202 597 Merge with NetBSD make, pick up 598 o make.1: note that arg to :D and :U can be empty 599 o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no 600 6012024-01-08 Simon J Gerraty <sjg@beast.crufty.net> 602 603 * VERSION (_MAKE_VERSION): 20240108 604 Merge with NetBSD make, pick up 605 o miscellaneous cleanups 606 6072024-01-06 Simon J Gerraty <sjg@beast.crufty.net> 608 609 * VERSION (_MAKE_VERSION): 20240106 610 Merge with NetBSD make, pick up 611 o fix duplicate progname when reporting an unknown target 612 o unit tests for Cmd_Exec using temp file 613 6142024-01-05 Simon J Gerraty <sjg@beast.crufty.net> 615 616 * VERSION (_MAKE_VERSION): 20240105 617 Merge with NetBSD make, pick up 618 o main.c: Cmd_Exec write cmd to a file if too big 619 avoid blowing commandline/env limits 620 6212024-01-02 Simon J Gerraty <sjg@beast.crufty.net> 622 623 * VERSION (_MAKE_VERSION): 20240101 624 o util.c: flesh out more of strftime 625 * configure.in: add --with-bmake-strftime 626 it is not a full implementation but enough to pass all 627 the unit-tests. 628 * parse.c: LoadFile do not append \n to empty buffer. 629 6302023-12-30 Simon J Gerraty <sjg@beast.crufty.net> 631 632 * VERSION (_MAKE_VERSION): 20231230 633 Merge with NetBSD make, pick up 634 o simplify memory allocation for string buffers 635 o fix declared types of list nodes 636 o suff.c: clean up freeing of suffixes 637 o var.c: simplify debug message for the ':@var@...@' modifier 638 clean up variable handling 639 6402023-12-26 Simon J Gerraty <sjg@beast.crufty.net> 641 642 * VERSION (_MAKE_VERSION): 20231226 643 Merge with NetBSD make, pick up 644 o compat.c: ensure make's output is correctly ordered with that of 645 the target when not going to a tty 646 o main.c: check for shellPath whether to call Shell_Init() 647 6482023-12-24 Simon J Gerraty <sjg@beast.crufty.net> 649 650 * VERSION (_MAKE_VERSION): 20231224 651 Merge with NetBSD make, pick up 652 o compat.c: check for shellPath whether to call Shell_Init() 653 tweak the unit test to detect the bug thus fixed. 654 o make.1: do not claim .SHELL is only used by jobs mode. 655 6562023-12-22 Simon J Gerraty <sjg@beast.crufty.net> 657 658 * VERSION (_MAKE_VERSION): 20231220 659 Merge with NetBSD make, pick up 660 o str.c: speed up pattern matching in the ':M' modifier 661 o var.c: fix confusing debug logging when deleting a variable 662 use consistent debug messages style when ignoring variables 663 6642023-12-10 Simon J Gerraty <sjg@beast.crufty.net> 665 666 * VERSION (_MAKE_VERSION): 20231210 667 Merge with NetBSD make, pick up 668 o var.c: avoid segfault on empty :C match expression 669 explain in debug log why variable assignment is ignored. 670 6712023-12-08 Simon J Gerraty <sjg@beast.crufty.net> 672 673 * VERSION (_MAKE_VERSION): 20231208 674 Merge with NetBSD make, pick up 675 o var.c: ensure fromCmd is set correctly for variables set on 676 command line. 677 6782023-11-26 Simon J Gerraty <sjg@beast.crufty.net> 679 680 * configure.in: disable generation of 'makefile' for 681 Darwin by default. 682 683 * boot-strap: docuement --without-makefile 684 6852023-11-24 Simon J Gerraty <sjg@beast.crufty.net> 686 687 * VERSION (_MAKE_VERSION): 20231124 688 Merge with NetBSD make, pick up 689 o main.c: cleanup processing of -j 690 fix lint warning about strchr 691 o var.c: more accurate error message for invalid ':mtime' argument 692 cleanup :[...] modifier 693 avoid reading beyond substring when comparing 694 o unit-tests cover all cases of :mtime, test and explain exporting 695 of variables 696 o cleanup comments 697 6982023-09-17 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses 701 $FreeBSD$ tag, so avoid adding it. 702 7032023-09-09 Simon J Gerraty <sjg@beast.crufty.net> 704 705 * VERSION (_MAKE_VERSION): 20230909 706 Merge with NetBSD make, pick up 707 o main.c: allow -j to compute a multiple of ncpu 708 If _SC_NPROCESSORS_ONLN is supported; and -j arg is a floating 709 point number or ends in 'C' compute .MAKE.JOBS as a multiple of 710 _SC_NPROCESSORS_ONLN 711 .MAKE.JOBS.C will be "yes" if -jC is supported 712 7132023-08-20 Simon J Gerraty <sjg@beast.crufty.net> 714 715 * VERSION (_MAKE_VERSION): 20230820 716 Merge with NetBSD make, pick up 717 o make.1: note that :localtime is better for %s 718 o parse.c: improve error messages for invalid input. 719 o var.c: fix for %s:L:gmtime - set TZ=UTC and use localtime to get 720 correct result, it is still better to use %s:L:localtime. 721 7222023-08-18 Simon J Gerraty <sjg@beast.crufty.net> 723 724 * VERSION (_MAKE_VERSION): 20230818 725 Merge with NetBSD make, pick up 726 o meta.c: meta_ignore - check raw path against metaIgnorePaths 727 to potentially skip call to realpath. 728 o var.c: be strict when parsing the argument of the ':mtime' modifier 729 o unit-tests/varmod-mtime.mk: document why '${%s:L:localtime}' 730 should be used to get an equivalent value to time(3). 731 7322023-08-16 Simon J Gerraty <sjg@beast.crufty.net> 733 734 * VERSION (_MAKE_VERSION): 20230816 735 Merge with NetBSD make, pick up 736 o cond.c: clean up multiple-inclusion guards 737 7382023-07-25 Simon J Gerraty <sjg@beast.crufty.net> 739 740 * unit-tests/Makefile: addd varmod-localtime to BROKEN_TESTS 741 if configure cannot work out how to control TZ. 742 Remove varmod-localtime from BROKEN_TESTS for IRIX* 743 7442023-07-24 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * VERSION (_MAKE_VERSION): 20230723 747 748 * configure.in: fix the test for wether TZ=Europe/Berlin works. 749 Depending on the time of year, if run between 22:00 and 00:00 UTC 750 the check in configure would fail incorrectly. 751 Take the day into account as well. 752 7532023-07-18 Simon J Gerraty <sjg@beast.crufty.net> 754 755 * VERSION (_MAKE_VERSION): 20230711 756 Merge with NetBSD make, pick up 757 o make.1: clean up wording, clarify scope of '!' in conditions 758 7592023-07-15 Simon J Gerraty <sjg@beast.crufty.net> 760 761 * make-bootstrap.sh.in: set prefix 762 If configure is run using ksh we get unexpanded ${prefix} in 763 DEFAULT_SYS_PATH, by ensuring prefix is set we should still get 764 correct result. 765 7662023-07-13 Simon J Gerraty <sjg@beast.crufty.net> 767 768 * VERSION (_MAKE_VERSION): 20230711 769 bump version for IRIX tweaks 770 771 * make.h: undef OP_NONE if defined 772 773 * unit-tests/Makefile: set BROKEN_TESTS for IRIX 774 775 * configure.in: override INSTALL on IRIX 776 7772023-06-27 Simon J Gerraty <sjg@beast.crufty.net> 778 779 * boot-strap op_test: ensure we set TEST_MAKE as we want it. 780 7812023-06-22 Simon J Gerraty <sjg@beast.crufty.net> 782 783 * VERSION (_MAKE_VERSION): 20230622 784 Merge with NetBSD make, pick up 785 o optimize string matching for ':M' and ':N' 786 o warn about malformed patterns in ':M', ':N' and '.if make(...)' 787 7882023-06-21 Simon J Gerraty <sjg@beast.crufty.net> 789 790 * VERSION (_MAKE_VERSION): 20230621 791 Merge with NetBSD make, pick up 792 o more extensive tests for include guards 793 o parse.c: if a guard is already defined a file that uses the same 794 guard is still guarded by it. 795 7962023-06-20 Simon J Gerraty <sjg@beast.crufty.net> 797 798 * VERSION (_MAKE_VERSION): 20230620 799 Merge with NetBSD make, pick up 800 o allow guards to be targets as well as variables 801 The guard targets may include variable references like 802 __${.PARSEDIR:tA}/${.PARSEFILE}__ 803 8042023-06-19 Simon J Gerraty <sjg@beast.crufty.net> 805 806 * VERSION (_MAKE_VERSION): 20230619 807 Merge with NetBSD make, pick up 808 o unit test for .undef of readOnly vars 809 o optimization for makefiles protected from multiple-inclusion 810 skip even opening the file after first include. 811 Initially this only handles makefiles guarded by a variable 812 target guards are next. 813 8142023-06-16 Simon J Gerraty <sjg@beast.crufty.net> 815 816 * VERSION (_MAKE_VERSION): 20230616 817 Merge with NetBSD make, pick up 818 o var.c: do not allow delete of readOnly variable 819 8202023-06-03 Simon J Gerraty <sjg@beast.crufty.net> 821 822 * VERSION (_MAKE_VERSION): 20230601 823 Merge with NetBSD make, pick up 824 o parse.c: .break takes no args 825 o lots of unit test updates 826 8272023-05-29 Simon J Gerraty <sjg@beast.crufty.net> 828 829 * unit-tests/Makefile: skip tests that require /dev/filemon 830 if it does not exists - issue a warning. 831 8322023-05-22 Simon J Gerraty <sjg@beast.crufty.net> 833 834 * VERSION (_MAKE_VERSION): 20230522 835 Fix building on darwin ppc 836 837 * os.sh (MACHINE): Darwin powerpc cannot use `uname -m` 838 also recent NetBSD uses x86_64 for MACHINE_ARCH so conform. 839 8402023-05-15 Simon J Gerraty <sjg@beast.crufty.net> 841 842 * VERSION (_MAKE_VERSION): 20230515 843 844 * Makefile (COPTS.filemon_ktrace.c): NetBSD 7 needs help to 845 compile filemon_ktrace.c 846 8472023-05-13 Simon J Gerraty <sjg@beast.crufty.net> 848 849 * VERSION (_MAKE_VERSION): 20230512 850 o sys.dirdeps.mk - broke after-import target 851 8522023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 853 854 * VERSION (_MAKE_VERSION): 20230510 855 Merge with NetBSD make, pick up 856 o parse.c: don't print null filename in stack traces 857 o var.c: :mtime operate on each word in variable value 858 8592023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 860 861 * VERSION (_MAKE_VERSION): 20230509 862 Merge with NetBSD make, pick up 863 o for.c: skip syntactically wrong .for loops 864 o var.c: allow for :gmtime=${mtime} 865 add :mtime[=timestamp] where timestamp is used if stat(2) 866 fails, if :mtime=error stat(2) failure causes error. 867 8682023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 869 870 * VERSION (_MAKE_VERSION): 20230504 871 Merge with NetBSD make, pick up 872 o compat.c: fix compile on NetBSD 7.2 873 o make.1: fix documentation of .PREFIX to match reality and POSIX 874 o unit-tests: improved var-scope-local 875 8762023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 877 878 * VERSION (_MAKE_VERSION): 20230414 879 Merge with NetBSD make, pick up 880 o minor cleanup 881 8822023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 885 unlimited results in an insane number (0x7fffffffffffffff). 886 If BMAKE_NOFILE_MAX is defined, use that instead. 887 8882023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 889 890 * VERSION (_MAKE_VERSION): 20230321 891 Merge with NetBSD make, pick up 892 * make.1: document seemingly unexplained Error code 6. 893 8942023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 895 896 * VERSION (_MAKE_VERSION): 20230317 897 Merge with NetBSD make, pick up 898 o compat.c: CompatDeleteTarget skip .PHONY targets to be 899 consistent with JobDeleteTarget. 900 o job.c: fix memory leak in handling sysv :from=to modifiers 901 9022023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 903 904 * VERSION (_MAKE_VERSION): 20230303 905 Merge with NetBSD make, pick up 906 o several updated unit-tests 907 9082023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 909 910 * VERSION (_MAKE_VERSION): 20230222 911 Merge with NetBSD make, pick up 912 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 913 9142023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 915 916 * VERSION (_MAKE_VERSION): 20230218 917 Merge with NetBSD make, pick up 918 o var.c: fix parsing of unevaluated subexpressions with 919 unbalanced '{}' 920 9212023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 922 923 * VERSION (_MAKE_VERSION): 20230215 924 Merge with NetBSD make, pick up 925 o inline macros for some variable names 926 o cond.c: reduce complexity of evaluating expressions 927 9282023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 929 930 * VERSION (_MAKE_VERSION): 20230208 931 Merge with NetBSD make, pick up 932 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 933 when it has been used within conditional expressions 934 9352023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 936 937 * VERSION (_MAKE_VERSION): 20230127 938 939 * install-sh: if making directories ensure umask is set 940 to match mode. 941 942 * Makefile: use DIRMODE for directories and 943 NONBINMODE for man pages and mk files 944 9452023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 946 947 * VERSION (_MAKE_VERSION): 20230126 948 Merge with NetBSD make, pick up 949 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 950 should be read-only. 951 9522023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 953 954 * VERSION (_MAKE_VERSION): 20230123 955 Merge with NetBSD make, pick up 956 o .[NO]READONLY: for control of read-only variables 957 o .SYSPATH: for controlling the path searched for makefiles 958 9592023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 960 961 * VERSION (_MAKE_VERSION): 20230120 962 Merge with NetBSD make, pick up 963 o allow for white-space between command specifiers @+- 964 o add more details to warning 'Extra targets ignored' 965 9662023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 967 968 * machine.sh: leverage os.sh rather than duplicate 969 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 970 for that purpose for the past decade or so. 971 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 972 9732023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 974 975 * VERSION (_MAKE_VERSION): 20230101 976 Merge with NetBSD make, pick up 977 o cleanup comments, inline some LazyBuf_ methods 978 o unit-tests/ add/improve comments in tests 979 o make.1: sync list of built-in variables with reality 980 sort list of built-in variables 981 reduce indentation of the long list of variable names 982 use consistent markup for boolean flags 983 move description of .MAKE.MODE below the .MAKE.META block 984 clarify in which case an expression may omit braces 985 9862022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 987 988 * VERSION (_MAKE_VERSION): 20221024 989 Merge with NetBSD make, pick up 990 o change return type of unlink_file back to int 991 9922022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 993 994 * Makefile: Darwin and Linux can handle MANTARGET=man 995 9962022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 997 998 * VERSION (_MAKE_VERSION): 20220928 999 Merge with NetBSD make, pick up 1000 o fix more ignored returns from snprintf 1001 o compile with higher warnings 1002 10032022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1004 1005 * main.c meta.c: do not ignore return from snprintf 1006 1007 * meta.c strlcpy.c: we need prototype for strlcpy 1008 1009 * sigcompat.c: fix unused function warnings 1010 10112022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 1012 1013 * VERSION (_MAKE_VERSION): 20220924 1014 Merge with NetBSD make, pick up 1015 o fix bug in .break reset of conditional depth 1016 o overhaul and simplify tracking of conditional depth 1017 10182022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 1019 1020 * VERSION (_MAKE_VERSION): 20220912 1021 Merge with NetBSD make, pick up 1022 o man page updates 1023 10242022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 1025 1026 * VERSION (_MAKE_VERSION): 20220909 1027 Merge with NetBSD make, pick up 1028 o update unit-tests to handle deprecation of egrep 1029 o cond.c: add more details to error message for numeric comparison 1030 1031 * configure.in: allow for deprecation of egrep 1032 1033 * Makefile: Linux can handle MANTARGET=man 1034 10352022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 1036 1037 * VERSION (_MAKE_VERSION): 20220903 1038 Merge with NetBSD make, pick up 1039 o job.c: fix handling of null bytes in output 1040 10412022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1042 1043 * VERSION (_MAKE_VERSION): 20220902 1044 Merge with NetBSD make, pick up 1045 o Allow .break to terminate a .for loop early 1046 10472022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1048 1049 * VERSION (_MAKE_VERSION): 20220901 1050 Merge with NetBSD make, pick up 1051 o var.c: fix out-of-bounds errors when parsing 1052 10532022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1054 1055 * VERSION (_MAKE_VERSION): 20220824 1056 Merge with NetBSD make, pick up 1057 o var.c: revert change to modifier parsing that breaks 1058 shell variable references within ':@var@body@' 1059 o adjust unit-tests 1060 10612022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 1062 1063 * VERSION (_MAKE_VERSION): 20220818 1064 Merge with NetBSD make, pick up 1065 o fix exit status for '-q' (since 1994) 1066 10672022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1068 1069 * VERSION (_MAKE_VERSION): 20220808 1070 Merge with NetBSD make, pick up 1071 o var.c: fix parsing of modifiers containing unbalanced subexpressions 1072 extract parsing of ':D' and ':U' modifiers into separate function 1073 10742022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1075 1076 * VERSION (_MAKE_VERSION): 20220726 1077 1078 * Auto-create objdir for bmake/unit-tests if appropriate 1079 10802022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 1081 1082 * VERSION (_MAKE_VERSION): 20220724 1083 Merge with NetBSD make, pick up 1084 o make.1: describe variable assignment and evaluation more precisely 1085 o parse.c: fix out-of-bounds read when parsing an invalid line 1086 o var.c: simplify return type of IsShortVarnameValid 1087 10882022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 1089 1090 * VERSION (_MAKE_VERSION): 20220612 1091 Merge with NetBSD make, pick up 1092 o allow to randomize build order of targets 1093 .MAKE.MODE += randomize-targets can help uncover dependency bugs 1094 within a makefile. 1095 o compat.c: rename Compat_Run to Compat_MakeAll 1096 o make.c: inline MakeBuildParent 1097 inline make_abort, improve error details 1098 o parse.c: reorganize Parse_Error 1099 fix memory leak in wildcard targets and sources 1100 separate cases in HandleDependencyTargetMundane 1101 extract HandleSingleDependencyTargetMundane 1102 rename loadfile to LoadFile 1103 split IncludeFile into separate functions 1104 condense code for searching a file in the paths 1105 fix off-by-one error in buffer for .WAIT nodes 1106 o str.c: condense Str_Match 1107 make code for string matching syntactically more consistent 1108 11092022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1110 1111 * VERSION (_MAKE_VERSION): 20220418 1112 Merge with NetBSD make, pick up 1113 o ignore '.POSIX:' if not in first non-comment line 1114 of Makefile as specified by POSIX. 1115 add unit-tests for above. 1116 o meta.c: make it easier to find usage of identifiers 1117 o targ.c: add .USEBEFORE to Targ_PrintType 1118 11192022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 1120 1121 * VERSION (_MAKE_VERSION): 20220414 1122 1123 * unit-tests/Makefile: simplify checks for shells with 1124 BROKEN_TESTS, this helps with other Linux distros that 1125 use dash. 1126 11272022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1128 1129 * VERSION (_MAKE_VERSION): 20220330 1130 Merge with NetBSD make, pick up 1131 o var.c: fix spacing, and a typo in a test 1132 11332022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 1134 1135 * VERSION (_MAKE_VERSION): 20220326 1136 Merge with NetBSD make, pick up 1137 o parse.c: try to include 'posix.mk' the first time 1138 .POSIX: is encountered, to allow for beter POSIX compliance. 1139 o var.c: make debug logs more readable 1140 prefer 'long long' over 'long' on 32-bit C99 platforms 1141 fix crash on .undef of an environment variable 1142 11432022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 1144 1145 * VERSION (_MAKE_VERSION): 20220303 1146 Merge with NetBSD make, pick up 1147 o tell meta mode unit tests not to expect filemon 1148 o cond.c: make debug logging for comparisons less technical 1149 o lst.c: fix mem leak in Lst_Remove 1150 o str.c: make code for string matching syntactically more consistent 1151 o var.c: simplify ParseModifier_Match 1152 11532022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 1154 1155 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 1156 1157 * VERSION (_MAKE_VERSION): 20220214 1158 Merge with NetBSD make, pick up 1159 o cond.c: simplify control flow in CondParser_Comparison 1160 o job.c: fix echoing of command with '-' in silent target in jobs mode 1161 o main.c: prefix the warning about read-only .OBJDIR with a colon 1162 o parse.c: remove redundant conditions 1163 o var.c: simplify control flow in ModifyWord_SysVSubst 1164 11652022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 1166 1167 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 1168 is any chance we have dash as .SHELL 1169 1170 * VERSION (_MAKE_VERSION): 20220208 1171 Merge with NetBSD make, pick up 1172 o more unit tests 1173 o meta.c: use a variable to hold command line to be filtered 1174 to avoid any side effects from content of command line. 1175 11762022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 1177 1178 * VERSION (_MAKE_VERSION): 20220204 1179 Merge with NetBSD make, pick up 1180 o use unsigned consistently for line numbers, avoid the need for %z 1181 o parse.c: do not step off end of input in Parse_IsVar 1182 when checking for target local variable assignments 1183 11842022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 1185 1186 * VERSION (_MAKE_VERSION): 20220202 1187 Merge with NetBSD make, pick up 1188 o remove redundant declaration of HashIter_Init 1189 o make DEBUG0 simpler 1190 11912022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1192 1193 * cast gn->lineno to avoid %z 1194 1195 * VERSION (_MAKE_VERSION): 20220130 1196 Merge with NetBSD make, pick up 1197 o more unit tests 1198 o make GNode lineno unsigned to please lint 1199 o print location of recursive variable references in commands 1200 o print "stack trace" (makefile includes) on fatal errors 1201 o make.1: refine documentation for target local assignments 1202 12032022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 1204 1205 * VERSION (_MAKE_VERSION): 20220128 1206 Merge with NetBSD make, pick up 1207 o inline functions called only once 1208 o for.c: clean up AddEscape for building the body of a .for loop 1209 o hash.c: merge duplicate code for finding an entry in a hash table 1210 replace HashEntry_KeyEquals with strncmp 1211 o make.1: document quirks of target local variable assignments. 1212 o parse.c: cleanup white-space 1213 12142022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 1215 1216 * VERSION (_MAKE_VERSION): 20220126 1217 Merge with NetBSD make, pick up 1218 o allow setting target local variables 1219 o more unit tests 1220 o add missing newline after "cannot continue" message 1221 o meta.c: clean up eat_dots 1222 o parse.c: fix filename in warning about duplicate script 1223 o var.c: when expanding nested variables, check simple things first 1224 12252022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 1226 1227 * VERSION (_MAKE_VERSION): 20220116 1228 Merge with NetBSD make, pick up 1229 o fix for unit-tests/varname-makeflags on non-BSD systems 1230 o use Var_Exists rather than Var_Value where appropriate 1231 o remove unnecessary functions for expanding variable names 1232 o cond.c: inline EvalBare 1233 o main.c: lint cleanup 1234 o parse.c: condense code in Parse_IsVar 1235 use islower for parsing directives (none have upper case) 1236 12372022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 1238 1239 * VERSION (_MAKE_VERSION): 20220112 1240 Merge with NetBSD make, pick up 1241 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 1242 comparion, rarely needed but useful when it is. 1243 12442022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1245 1246 * VERSION (_MAKE_VERSION): 20220110 1247 Merge with NetBSD make, pick up 1248 o inline Buf_Clear 1249 o remove redundant braces 1250 o rename and inline Targ_Precious 1251 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 1252 o for.c: clean up handling of .for loops 1253 fix reported line numbers of continuation lines 1254 add details about .for loop variables to stack traces 1255 o job.c: reduce code for initializing error handling in shell 1256 o main.c: in Cmd_Exec, return error message instead of format string 1257 have as few statements as possible between va_start and va_end 1258 add debug logging for capturing the output of external commands 1259 o make.c: use consistent variable names for varargs 1260 o make_malloc.c: remove duplicate code from bmake_strdup 1261 o parse.c: add missing printflike annotations 1262 remove redundant lines from stack traces 1263 fix stack traces in -dp mode 1264 reduce confusing code in ParseForLoop 1265 fix line number in debug log after returning from a file 1266 rename IFile and its fields to match their actual content 1267 clean up ParseDependencySources 1268 o var.c: shorten ApplyModifier_Assign 1269 rename is_shell_metachar, fix character conversion warning 1270 merge calls to ApplyModifier_Time 1271 merge duplicate code for modifiers 'gmtime' and 'localtime' 1272 12732022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 1274 1275 * parse.c: loadfile restore extra byte in buffer. 1276 12772022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1278 1279 * VERSION (_MAKE_VERSION): 20220101 1280 Merge with NetBSD make, pick up 1281 o more unit-tests 1282 o remove unnecessary words from command line options in CmdOpts 1283 o rename eunlink to unlink_file 1284 o cond.c: make ParseWord in condition parser simpler 1285 internally return false for irrelevant leaves in conditions 1286 replace table for function lookup in conditions with simple code 1287 merge duplicate types CondEvalResult and CondResult 1288 o for.c: clean up handling of .for loops and .include directives 1289 o main.c: constify cached_realpath 1290 clean up Cmd_Exec 1291 o parse.c: sync API documentation 1292 fix error message when reading more than 1 GB from stdin 1293 clean up parsing of makefiles 1294 fix line number in error message about open conditionals 1295 unexport types VarAssignOp and VarAssign 1296 clean up function names 1297 remove redundant parameters in dependency parsing functions 1298 reduce scope of the list of wildcard target names 1299 extract OP_NOTARGET into separate function 1300 clean up variable names for parsing dependency lines 1301 make debug logging a bit more human-friendly 1302 o var.c: condense code in ApplyModifier_Assign 1303 13042021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1305 1306 * VERSION (_MAKE_VERSION): 20211221 1307 Merge with NetBSD make, pick up 1308 o more unit-tests 1309 o style cleanup 1310 o in CLEANUP mode, free interned strings at the very end 1311 o fix memory leak for filenames in .for loops 1312 o buf.c: avoid memory leak 1313 o cond.c: condense CondParser_ComparisonOp 1314 o hash.c: change return type of HashTable_Set to void 1315 o job.c: change return type of Compat_RunCommand from int to bool 1316 o main.c: remove bmake_free 1317 o parse.c: condense repetetive code in ParseDirective 1318 remove dead code for handling traditional include directives 1319 clean up parsing of variable assignments 1320 remove unreachable code for parsing the dependency operator 1321 clean up loading of files 1322 fix memory leak in IncludeFile 1323 o var.c: fix memory leak when parsing a variable name 1324 fix memory leak from ${.SUFFIXES} 1325 reduce memory allocation in modifier ':?' and ':C' 1326 condense RegexReplace for the modifier ':C' and avoid strlen 1327 merge duplicate code for memory handling in Var_Parse 1328 distinguish between short-lived and environment variables 1329 rename VarFreeEnv to VarFreeShortLived 1330 13312021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 1332 1333 * cond.c: fix mem leak in CondParser_Leaf 1334 13352021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1336 1337 * VERSION (_MAKE_VERSION): 20211212 1338 Merge with NetBSD make, pick up 1339 o rename Parse_SetInput to Parse_PushInput 1340 o remove remove period from end of error messages and warnings 1341 to be more consistent 1342 o arch.c: use simpler memory management for parsing archive members 1343 o cond.c: rework and reduce recursion 1344 o for.c: rename some functions to better reflect purpose 1345 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 1346 o var.c: in parse errors, mark whitespace more clearly 1347 inline ParseEmptyArg into CondParser_FuncCallEmpty 1348 minimize calls to LazyBuf_Get in ParseVarnameLong 1349 treat .SUFFIXES as a read-only variable 1350 13512021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 1352 1353 * VERSION (_MAKE_VERSION): 20211207 1354 Merge with NetBSD make, pick up 1355 o inline HashIter_Init 1356 o parse.c: inline common subexpression in ParseRawLine 1357 o var.c: merge branches for modifiers ':D' and ':U' 1358 extract common code into Expr_Words 1359 extract common code into Expr_Str 1360 move low-level implementation details out of Var_Parse 1361 13622021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1363 1364 * VERSION (_MAKE_VERSION): 20211206 1365 Merge with NetBSD make, pick up 1366 o add unit-tests/varmod-loop-delete 1367 o for.c: inline Str_Words - reduce memory allocation 1368 o parse.c: do not try to expand fixed variable names 1369 only allocate the name of an included file if necessary 1370 clean up ParseInclude 1371 o var.c: fix use-after-free in modifier ':@' 1372 save a memory allocation in each modifier ':O' and ':u' 1373 save a memory allocation in the modifier ':[...]' 1374 in UnexportVars, replace Str_Words with Substring_Words to 1375 reduce allocations and copying. 1376 13772021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 1378 1379 * VERSION (_MAKE_VERSION): 20211204 1380 Merge with NetBSD make, pick up 1381 o flesh out a number of tests 1382 o replace enums with bitfields, this simplifies a lot of code. 1383 o var.c: refactor ParseModifierPartSubst 1384 13852021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 1386 1387 * VERSION (_MAKE_VERSION): 20211024 1388 Merge with NetBSD make, pick up 1389 o Punt on write errors - ENOSPC etc. 1390 13912021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1392 1393 * configure.in: use_defshell, set both DEFSHELL_INDEX 1394 and defshell_path if appropriate. 1395 This makes it easier to use say the KSH specification with 1396 and alternate path for the shell. 1397 1398 * configure.in compat.c: for SCO we need to force UseShell 1399 1400 * configure.in: SCO /bin/sh is not usable, provide a list of 1401 alternatives for use as .SHELL. 1402 We still have to mark some tests as broken, plus more if we end up 1403 with ksh as .SHELL. 1404 Issue a warning about skipped tests. 1405 1406 * boot-strap: leave TOOL_DIFF to configure 1407 1408 * configure.in: on SCO native cc is not usable, 1409 gcc is to be found in /usr/gnu/bin 1410 and while ancient is at least able to compile bmake. 1411 Thus we add /usr/gnu/bin to PATH if it exists, and later 1412 check if $CC would have been found via $PATH. 1413 If not we set CC to the full path of $CC. 1414 Also gnu diff is known to support -u, so if it exists use it. 1415 1416 * configure.in: move getopt to AC_REPLACE_FUNCS 1417 also add AC_C_INLINE - in an attempt to compile using 1418 native cc on SCO. 1419 1420 * configure.in: check for stresep as well as strsep, since we 1421 define the later to the former if necessary, and if we have to 1422 provide stresep we also need to provide a prototype. 1423 1424 * configure.in: we no longer need to worry about 1425 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 1426 1427 * make.h: make sure we have __RCSID 1428 1429 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 1430 can control it. 1431 14322021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 1433 1434 * VERSION: 20211020 1435 Merge with NetBSD make, pick up 1436 o confirm sync of unit-tests 1437 14382021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1439 1440 * configure.in: check if timezone Europe/Berlin is supported 1441 if not try UTC-1 1442 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 1443 symlink unit-tests -> ../unit-tests/obj so that 1444 unit-tests/Makefile.config is put in the right place. 1445 * refine filtering of .OBJDIR in unit-tests 1446 14472021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 1448 1449 * Fix unit-tests on Minix 3.2.0 1450 o job.c: do not punt if read of token pipe fails for EAGAIN. 1451 On Minix at least, we are not ready to read the childExitJob pipe 1452 when poll says we are. 1453 There should actually be no reason for this pipe to be 1454 non-blocking, but while that works fine on {Net,Free}BSD it 1455 breaks another test case on Minix. 1456 o unit-tests/Makefile: deal with variants of error messages 1457 and use of obj as .OBJDIR 1458 14592021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 1460 1461 * configure.in: add sigaction to AC_REPLACE_FUNCS 1462 we also need to check for sigaddset etc just for the benefit of 1463 sigact.c 1464 1465 * Add sigact.c as sigaction.c so this "just works". 1466 This should have been done back when bmake_signal started using 1467 sigaction (I only just noticed that sigact.c wasn't here ;-) 1468 Note: I no longer have access to any system where this would matter. 1469 14702021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 1471 1472 * VERSION (_MAKE_VERSION): 20211011 1473 1474 * Makefile: cleanup a little 1475 1476 * configure.in: check for sigsetmask 1477 14782021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1479 1480 * VERSION (_MAKE_VERSION): 20211001 1481 Merge with NetBSD make, pick up 1482 o reduce locations reducing text size 1483 o remove unnecessary const 1484 o cond.c: fix lint warning on i386 1485 do not allow unquoted 'left == right' after modifier ':?' 1486 o hash.c: fix build for DEBUG_HASH_LOOKUP 1487 o var.c: fix memory leak in error case of the ':?' modifier 1488 14892021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1490 1491 * VERSION (_MAKE_VERSION): 20210911 1492 Merge with NetBSD make, pick up 1493 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 1494 14952021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 1496 1497 * VERSION (_MAKE_VERSION): 20210906 1498 Merge with NetBSD make, pick up 1499 o more unit tests 1500 o lint cleanup 1501 o rename some functions to better fit purpose 1502 o for.c: cleanup - remove unnecessary optimization 1503 fix embedded newlines 1504 o parse.c: correct case for CVS/RCS 1505 15062021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 1507 1508 * VERSION (_MAKE_VERSION): 20210808 1509 Merge with NetBSD make, pick up 1510 o var.c: remove redundant initialization in ApplyModifier_Order 1511 1512 * mk/options.mk: issue warning for incorrect usage 1513 15142021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1515 1516 * var.c: use long for :On if we don't have a 64bit int type 1517 1518 * VERSION (_MAKE_VERSION): 20210803 1519 Merge with NetBSD make, pick up 1520 o rework varmod-order tests to avoid qsort instability 1521 o make.1: clarify :On entry 1522 15232021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1524 1525 * VERSION (_MAKE_VERSION): 20210731 1526 Merge with NetBSD make, pick up 1527 o fix some lint issues 1528 o more unit tests 1529 o var.c: rework of ApplyModifier_Order 1530 15312021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1532 1533 * util.c: add strto*l if HAVE_STRTO*L not defined 1534 1535 * VERSION (_MAKE_VERSION): 20210730 1536 Merge with NetBSD make, pick up 1537 o var.c: add :On and :Orn for numeric sort 1538 disabled if no 64bit type available. 1539 o _strtol.h: to implement strto*l functions 1540 15412021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1542 1543 * VERSION (_MAKE_VERSION): 20210704 1544 Merge with NetBSD make, pick up 1545 o unit-tests: fix some tests to be more portable 1546 - job-output-null not all shells do the same number of write calls 1547 - objdir-writable if TMPDIR is set; /tmp may not be usable 1548 15492021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1550 1551 * VERSION (_MAKE_VERSION): 20210701 1552 Merge with NetBSD make, pick up 1553 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 1554 some tests just cannot work in some environments. 1555 o buf.c: simpler upper bound for length in Buf_AddInt 1556 o cond.c: fix grammar in error message for malformed conditional 1557 o for.c: prevent newline injection (from ${.newline}) in .for loops 1558 o var.c: use more practical data type in RegexReplace 1559 (avoid need for %zu) 1560 extract RegexReplace from ModifyWord_SubstRegex 1561 15622021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 1563 1564 * VERSION (_MAKE_VERSION): 20210621 1565 Merge with NetBSD make, pick up 1566 o var.c: only report error for unmatched regex subexpression 1567 when linting (-dL) since we cannot tell when an unmatched 1568 subexpression is an expected result. 1569 o move unmatched regex subexpression tests to 1570 varmod-subst-regex.mk and enable strict (lint) mode 1571 15722021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 1573 1574 * VERSION (_MAKE_VERSION): 20210616 1575 Merge with NetBSD make, pick up 1576 o more unit tests 1577 o cond.c: rename If_Eval to EvalBare 1578 improve function names for parsing conditions 1579 o job.c: fix error handling of targets that cannot be made 1580 o var.c: uncompress code in ApplyModifier_Unique 1581 15822021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 1583 1584 * VERSION (_MAKE_VERSION): 20210518 1585 Merge with NetBSD make, pick up 1586 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 1587 o job.c: Print -de error information when running multiple jobs 1588 15892021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 1590 1591 * VERSION (_MAKE_VERSION): 20210420 1592 Merge with NetBSD make, pick up 1593 o use C99 bool type 1594 o convert VarEvalFlags back into an enum 1595 o cond.c: do not complain when skipping the condition 'no >= 10' 1596 o hash.c: avoid allocating memory for simple variable names 1597 o job.c: use distinct wording for writing to the shell commands file 1598 remove type name for the abort status in job handling 1599 rename PrintOutput to PrintFilteredOutput to avoid confusion 1600 o main.c: avoid double slash in name of temporary directory 1601 o var.c: use straight quotes for error 'Bad conditional expression' 1602 reduce memory allocations in the modifiers ':D' and ':U' 1603 rename members of ModifyWord_LoopArgs 1604 clean up pattern flags for the modifiers ':S' and ':C' 1605 reduce memory allocation and strlen calls in modifier ':from=to' 1606 in the ':Q' modifier, only allocate memory if necessary 1607 improve performance for LazyBuf 1608 remove redundant parameter from ParseVarnameLong 1609 migrate ParseModifierPart to use Substring 1610 avoid unnecessary calls to strlen when evaluating modifiers 1611 migrate ModifyWord functions to use Substring 1612 migrate handling of the modifier ':S,from,to,' to Substring 1613 reduce debug logging and memory allocation for ${:U...} 1614 reduce verbosity of the -dv debug logging for standard cases 1615 clean up debug logging for ':M' and ':N' 1616 disallow '$' in the variable name of the modifier ':@' 1617 simplify access to the name of an expression during evaluation 1618 16192021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1620 1621 * VERSION (_MAKE_VERSION): 20210330 1622 Merge with NetBSD make, pick up 1623 o replace enum bit-field with struct bit-field for VarEvalFlags 1624 o rename VARE_NONE to VARE_PARSE_ONLY 1625 o var.c: rename ApplyModifiersState to ModChain 1626 fix double varname expansion in the variable modifier '::=' 1627 change debug log for variable evaluation flags to lowercase 1628 16292021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 1630 1631 * VERSION (_MAKE_VERSION): 20210314 1632 Merge with NetBSD make, pick up 1633 o var.c: avoid evaluating many modifiers in parse only mode 1634 in strict mode (-dL) many variable references are parsed twice, 1635 the first time just to report parse errors early, so we want to 1636 avoid side effects and wasted effort to the extent possible. 1637 16382021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 1639 1640 * VERSION (_MAKE_VERSION): 20210226 1641 Merge with NetBSD make, pick up 1642 o remove freestanding freeIt variables 1643 link via FStr 1644 o var.c: restructure code in ParseVarname to target human readers 1645 improve error message for; 1646 bad modifier in variable expression 1647 unclosed modifier 1648 unknown modifier 1649 remove redundant parameter of ApplySingleModifier 1650 explain non-obvious code around indirect variable modifiers 1651 quote ':S' in error message about missing delimiter 1652 extract ParseModifier_Match into separate function 1653 add context information to error message about ':range' modifier 1654 add quotes around variable name in an error message 1655 reorder code in ModifyWords 1656 use more common parameter order for VarSelectWords 1657 make ModifyWord_Subst a little easier to understand 1658 do not expand variable name from the command line twice 1659 extract ExistsInCmdline from Var_SetWithFlags 1660 save a hash map lookup when defining a cmdline variable 1661 clean up VarAdd, Var_Delete, Var_ReexportVars 1662 use bit-shift expressions for VarFlags constants 1663 rename constants for VarFlags 1664 rename ExprDefined constants for debug logging 1665 rename ExprStatus to ExprDefined 1666 split parameters for evaluating variable expressions 1667 reduce redundant code around ModifyWords 1668 print error about failed shell command before overwriting variable 1669 clean up ValidShortVarname, ParseVarnameShort 1670 rename VarExprStatus to ExprStatus 1671 add functions for assigning the value of an expression 1672 rename ApplyModifiersState_Define to Expr_Define 1673 condense the code for parsing :S and :C modifiers 1674 16752021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 1676 1677 * VERSION (_MAKE_VERSION): 20210206 1678 Merge with NetBSD make, pick up 1679 o unit-tests: use private TMPDIR to avoid errors from other users 1680 16812021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1682 1683 * VERSION (_MAKE_VERSION): 20210205 1684 Merge with NetBSD make, pick up 1685 o avoid strdup in mkTempFile 1686 o always use vfork 1687 o rename context and ctxt to scope 1688 o rename some VAR constants to SCOPE 1689 o Var_ functions, move the scope to the front 1690 o use shortcut functions Global_Set and Global_Append 1691 o add shortcut Global_Delete for deleting a global variable 1692 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 1693 o compat.c: when exiting due to an error, print graph information 1694 o enum.c: remove overengineered Enum_ValueToString 1695 o make.c: remove unused INTERNAL flag 1696 remove unused return type of MakeBuildParent 1697 o parse.c: replace parse error "Need an operator" with better message 1698 o var.c: improve documentation about variable scopes 1699 rename Var_ValueDirect to GNode_ValueDirect 1700 rename old Var_SetWithFlags to Var_SetExpandWithFlags 1701 merge SetVar into Var_SetWithFlags 1702 split Var_Exists into plain Var_Exists and Var_ExistsExpand 1703 split Var_Append into Var_Append and Var_AppendExpand 1704 replace enum bit-set with bit-field 1705 o unit-tests/var-op-shell: use kill rather than kill -14 1706 which broke on darwin with recent update. 1707 17082021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 1709 1710 * configure.in: check for sig_atomic_t and define it as 'int' 1711 if missing. 1712 1713 * VERSION (_MAKE_VERSION): 20210201 1714 Merge with NetBSD make, pick up 1715 o use sig_atomic_t for caught_sigchld 1716 17172021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 1718 1719 * VERSION (_MAKE_VERSION): 20210130 1720 Merge with NetBSD make, pick up 1721 o more unit tests 1722 o convert SearchPath to struct 1723 o split Buf_Destroy into Buf_Done and Buf_DoneData 1724 o for.c: split For_Eval into separate functions 1725 rename struct For to struct ForLoop 1726 o job.c: do not create empty shell files in jobs mode 1727 rename JobOpenTmpFile to JobWriteShellCommands 1728 reduce unnecessary calls to waitpid 1729 o parse.c: in -dp mode, print stack trace with each diagnostic 1730 17312021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 1732 1733 * VERSION (_MAKE_VERSION): 20210123 1734 Merge with NetBSD make, pick up 1735 o rename Dir_Expand to SearchPath_Expand 1736 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 1737 o cond.c: fix debug output for comparison operators in conditionals 1738 o dir.c: split Dir_FindFile into separate functions 1739 17402021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 1741 1742 * VERSION (_MAKE_VERSION): 20210120 1743 Merge with NetBSD make, pick up 1744 o fix some more lint nits 1745 o refine some unit tests for portability 1746 o cond.c: rework parsing 1747 17482021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 1749 1750 * VERSION (_MAKE_VERSION): 20210110 1751 Merge with NetBSD make, pick up 1752 o fix lint warnings 1753 o consistently use boolean expressions in conditions 1754 17552021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 1756 1757 * VERSION (_MAKE_VERSION): 20210108 1758 Merge with NetBSD make, pick up 1759 o job.c: back to polling token pipe if we want a token 1760 o main.c: always print 'stopped in' on first call 1761 The execption is if we bail because of an abort token 1762 in which case just exit 6. 1763 17642021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 1765 1766 * VERSION (_MAKE_VERSION): 20210101 1767 Merge with NetBSD make, pick up 1768 o Happy New Year! 1769 o rename CmdOpts.lint to strict 1770 o exit 2 on technical errors 1771 o replace pointers in controlling conditions with booleans 1772 o replace global preserveUndefined with VARE_KEEP_UNDEF 1773 o compat.c: re-export variables from the actual make process 1774 if using vfork this is the effect anyway 1775 o cond.c: clean up VarParseResult constants 1776 o for.c: fix undefined behavior in SubstVarLong 1777 make control flow in SubstVarLong of .for loops more obvious 1778 clean up SubstVarShort in .for loops 1779 extract ForSubstBody from ForReadMore 1780 clean up ForReadMore 1781 simplify termination condition for .for loop 1782 add error handling for .for loop items 1783 job.c: re-export variables from the actual make process 1784 parse.c: remove mmap for loading files, only allow files < 1 GiB 1785 fix edge case in := with undefined in variable name 1786 skip variable expansion in ParseDependencyTargetWord 1787 var.c: split ExportVar into separate functions 1788 clean up code in extracted ExportVar functions 1789 remove dead code from ApplyModifiersIndirect 1790 split Var_Subst into easily understandable functions 1791 clean up VarParseResult constants 1792 17932020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 1794 1795 * main.c: use .MAKE.DEPENDFILE as set by makefiles 1796 17972020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1798 1799 * VERSION (_MAKE_VERSION): 20201222 1800 Merge with NetBSD make, pick up 1801 o make DEBUG macro return boolean 1802 o parse.c: fix assertion failure for files without trailing newline 1803 o var.c: allow .undef to undefine multiple variables at once 1804 remove excess newline from parse errors 1805 18062020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1807 1808 * VERSION (_MAKE_VERSION): 20201221 1809 Merge with NetBSD make, pick up 1810 o some unit-test updates 1811 18122020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1813 1814 * VERSION (_MAKE_VERSION): 20201220 1815 Merge with NetBSD make, pick up 1816 o more unit tests 1817 o return FStr from Var_Parse and Var_Value 1818 o spell nonexistent consistently 1819 o add str_basename to reduce duplicate code 1820 o compat.c: fix .ERROR_TARGET in compat -k mode 1821 extract InitSignals from Compat_Run 1822 extract UseShell from Compat_RunCommand 1823 o cond.c: error out if an '.endif' or '.else' contain extraneous text 1824 o for.c: rename ForIterate to ForReadMore 1825 o hash.c: clean up hash function for HashTable 1826 o lst.c: rename Vector.priv_cap to cap 1827 o main.c: remove constant parameter from MakeMode 1828 o make.c: use symbolic time for 0 in Make_Recheck 1829 extract MakeChildren from MakeStartJobs 1830 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 1831 fix error message for .info/.warning/.error without argument 1832 extract Var_Undef from ParseDirective 1833 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 1834 rename mode constants for ParseGetLine to be more expressive 1835 reduce debugging details in Parse_SetInput 1836 fix line numbers in .for loops 1837 split ParseGetLine into separate functions 1838 fix garbled output for failed shell command 1839 var.c: remove redundant assignment in ApplyModifier_SysV 1840 error out on unknown variable modifiers at parse time 1841 remove wrong error message for indirect modifier in lint mode 1842 extract ApplySingleModifier from ApplyModifiers 1843 use FStr for memory management in Var_SetWithFlags 1844 extract SetVar from Var_SetWithFlags 1845 use FStr in VarNew 1846 extract string functions from ApplyModifier_To 1847 error out if .undef has not exactly 1 argument 1848 extract Var_DeleteVar from Var_Delete 1849 extract Var_Undef from ParseDirective 1850 clean up memory management for expanding variable expressions 1851 18522020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1853 1854 * avoid %zu 1855 1856 * lst.c: avoid anonymous union 1857 1858 * VERSION (_MAKE_VERSION): 20201212 1859 Merge with NetBSD make, pick up 1860 o more unit tests 1861 o inline Targ_Ignore and Targ_Silent 1862 o split JobFlags into separate fields 1863 o remove const from function parameters (left overs from refactoring) 1864 o eliminate boolean argument of Var_Export 1865 o make API of Buf_Init simpler 1866 o rename ParseRunOptions to ParseCommandFlags 1867 o replace *line with line[0] 1868 o compat.c: fix wrong exit status for multiple failed main targets 1869 refactor Compat_Run to show the error condition more clearly 1870 don't make .END if the main targets already failed (-k mode) 1871 fix exit status in -k mode if a dependency fails 1872 o for.c: clean up Buf_AddEscaped in .for loops 1873 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1874 make Job_Touch simpler 1875 refactor JobFinish 1876 rename Shell.exitFlag to errFlag 1877 move Job.xtraced to ShellWriter 1878 make printing of shell commands independent from the job 1879 rename shell flags in struct Shell 1880 extract JobOpenTmpFile from JobStart 1881 rename RunFlags to CommandFlags 1882 split various Job.* into separate fields 1883 rename commandShell to shell 1884 extract InitShellNameAndPath from Shell_Init 1885 replace signal handling macros with local functions 1886 replace macro MESSAGE with local function 1887 parse.c: error out on null bytes in makefiles 1888 error out on misspelled directives 1889 rename IFile.nextbuf to readMore 1890 fix undefined behavior in ParseEOF 1891 str.c: remove redundant call to strlen in Str_Words 1892 var.c: error out on misspelled .unexport-env 1893 error out on misspelled .export directives 1894 extract ExportVars from Var_Export 1895 extract ExportVarsExpand from Var_Export 1896 eliminate boolean argument of Var_Export 1897 fix undefined behavior when exporting ${:U } 1898 rename Var_ExportVars to Var_ReexportVars 1899 rename Var_Export1 to ExportVar 1900 19012020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1902 1903 * VERSION (_MAKE_VERSION): 20201206 1904 Merge with NetBSD make, pick up 1905 o more unit tests 1906 o inline macros for debug logging 1907 o use consistent variable names for list nodes 1908 o define constants for enum zero-values 1909 o dir.c: use fixed format for debug output of the directory cache 1910 remove Dir_InitDir 1911 o lst.c: inline Lst_Enqueue, Vector_Done 1912 o meta.c: remove unused parameter from meta_needed 1913 o parse.c: rename parse functions 1914 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1915 o targ.c: don't concatenate identifiers in Targ_PrintType 1916 o var.c: remove comment decoration 1917 extract UnexportVars from Var_UnExport 1918 extract GetVarnamesToUnexport from Var_UnExport 1919 extract UnexportEnv from Var_UnExport 1920 extract UnexportVar from Var_UnExport 1921 move CleanEnv to UnexportVars 1922 replace pointer comparisons with enum 1923 add FStr to var.c to make memory handling simpler 1924 use FStr in Var_UnExport 1925 move type definitions in var.c to the top 1926 extract FreeEnvVar from Var_Parse 1927 extract ShuffleStrings from ApplyModifier_Order 1928 19292020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1930 1931 * VERSION (_MAKE_VERSION): 20201130 1932 Merge with NetBSD make, pick up 1933 o add unit tests for META MODE 1934 o reduce memory allocation for dirSearchPath, GNode.parents, 1935 GNode.children, OpenDirs 1936 o reduce pointer indirection for GNode.cohorts and 1937 GNode.implicitParents 1938 o remove pointer indirection from GNode.commands 1939 o inline Lst_ForEachUntil in meta mode 1940 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1941 clean up memory management for CachedDirs 1942 fix the reference count of dotLast going negative 1943 add debug logging for OpenDirs_Done 1944 extract CacheNewDir from Dir_AddDir 1945 add debug logging for reference counting of CachedDir 1946 rename some Dir functions to SearchPath 1947 o job.c: rename some global variables 1948 o main.c: reduce memory allocation in ReadBuiltinRules 1949 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1950 CmdOpts.makefiles 1951 Add .MAKE.UID and .MAKE.GID 1952 o make.c: reduce memory allocation for/in toBeMade, 1953 Make_ProcessWait, Make_ExpandUse 1954 o meta.c: reduce memory allocation in meta_oodate 1955 o parse.c: reduce memory allocations for parsing dependencies and 1956 targets 1957 o suff.c: reduce memory allocation in suffix handling 1958 19592020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1960 1961 * VERSION (_MAKE_VERSION): 20201124 1962 Merge with NetBSD make, pick up 1963 o .MAKE.{UID,GID} represent uid and gid running make. 1964 o fix error handling for .BEGIN and .END dependency in -k mode 1965 o fix missing "Stop." after failed .END node in -k mode 1966 o use properly typed comparisons in boolean contexts 1967 o replace a few HashTable_CreateEntry with HashTable_Set 1968 o add HashSet type 1969 o compat.c: split Compat_Make into smaller functions 1970 extract DebugFailedTarget from Compat_RunCommand 1971 o dir.c: refactor Dir_UpdateMTime 1972 migrate CachedDir.files from HashTable to HashSet 1973 o make.c: add high-level API for GNode.made 1974 19752020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1976 1977 * VERSION (_MAKE_VERSION): 20201122 1978 Merge with NetBSD make, pick up 1979 o rename GNode.context to vars 1980 o suff.c: cleanup and refactor 1981 rename some functions and vars to better reflect usage 1982 add high-level API for CandidateSearcher 1983 o targ.c: add more debug logging for suffix handling 1984 o more unit tests 1985 o add debug logging for setting and resetting the main target 1986 19872020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1988 1989 * VERSION (_MAKE_VERSION): 20201117 1990 Merge with NetBSD make, pick up 1991 o fix some unit-tests when .SHELL is dash 1992 o rename Targ_NewGN to GNode_New 1993 o make some GNode functions const 1994 o main.c: call Targ_Init before Var_Init 1995 cleanup PrintOnError, getTmpdir and ParseBoolean 1996 o var.c: fix error message of failed :!cmd! modifier 1997 19982020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1999 2000 * VERSION (_MAKE_VERSION): 20201114 2001 Merge with NetBSD make, pick up 2002 o replace a few HashTable_CreateEntry with HashTable_Set 2003 o clean up cached_stats 2004 o rename DEFAULT to defaultNode 2005 o remove redundant struct make_stat 2006 o cond.c: in lint mode, check for ".else <cond>" 2007 use bitset for IfState 2008 replace large switch with if-else in Cond_EvalLine 2009 o job.c: clean up JobExec, JobStart, JobDoOutput 2010 use stderr for error message about failed touch 2011 clean up Job_Touch 2012 replace macro DBPRINTF with JobPrintln 2013 rename JobState to JobStatus 2014 main.c: switch cache for realpath from GNode to HashTable 2015 clean up Fatal 2016 clean up InitDefSysIncPath 2017 use progname instead of hard-coded 'make' in warning 2018 rename Main_SetVarObjdir to SetVarObjdir 2019 make.1: document the -S option 2020 make.c: fix debug output for GNode details 2021 use symbolic names in debug output of GNodes 2022 20232020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 2024 2025 * configure.in: fix --with-force-machine-arch 2026 2027 * VERSION (_MAKE_VERSION): 20201112 2028 Merge with NetBSD make, pick up 2029 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 2030 checks in InitObjdir. Explicit .OBJDIR target always allows 2031 read-only directory. 2032 o cond.c: clean up Cond_EvalLine 2033 20342020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 2035 2036 * VERSION (_MAKE_VERSION): 20201111 2037 Merge with NetBSD make, pick up 2038 o more unit-tests 2039 o style cleanup 2040 remove redundant parentheses from sizeof operator 2041 replace character literal 0 with '\0'. 2042 replace pointer literal 0 with NULL. 2043 remove redundant parentheses. 2044 replace (expr & mask) == 0 with !(expr & mask). 2045 use strict typing in conditions of the form !var 2046 o rename Make_OODate to GNode_IsOODate 2047 o rename Make_TimeStamp to GNode_UpdateYoungestChild 2048 o rename Var_Set_with_flags to Var_SetWithFlags 2049 o rename dieQuietly to shouldDieQuietly 2050 o buf.c: make API of Buf_Init simpler 2051 o compat.c: clean up Compat_Make, Compat_RunCommand, 2052 CompatDeleteTarget and CompatInterrupt 2053 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 2054 clean up CondParser_Comparison 2055 o main.c: rename getBoolean and s2Boolean 2056 rename MAKEFILE_PREFERENCE for consistency 2057 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 2058 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 2059 replace emptyString with allocated empty string 2060 error out on unclosed expressions after the colon 2061 20622020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 2063 2064 * VERSION (_MAKE_VERSION): 20201101 2065 Merge with NetBSD make, pick up 2066 o negate NoExecute to GNode_ShouldExecute 2067 o job.c: rename JobMatchShell to FindShellByName 2068 extract EscapeShellDblQuot from JobPrintCommand 2069 extract ParseRunOptions from JobPrintCommand 2070 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 2071 treat malformed :range, :ts and :[...] as errors 2072 add tests for the variable modifiers :[words] and :range 2073 20742020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 2075 2076 * VERSION (_MAKE_VERSION): 20201031 2077 Merge with NetBSD make, pick up 2078 o format #include directives consistently 2079 o do not look up local variables like .TARGET anywhere else 2080 o main.c: Main_SetObjdir is first called for curdir which may be 2081 readonly 2082 reduce the scope where recursive expressions are detected 2083 remove redundant :tl from getBoolean 2084 clean up mkTempFile 2085 o meta.c: simplify memory allocation in meta_create and meta_oodate 2086 o parse.c: extract loadedfile_mmap from loadfile 2087 o trace.c: document possible undefined behavior with .CURDIR 2088 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 2089 rename ismeta to is_shell_metachar 2090 remove debug logging for the :Q variable modifier 2091 rename VarIsDynamic to VarnameIsDynamic 2092 use consistent parameter order in varname parsing functions 2093 extract ParseVarnameLong from Var_Parse 2094 extract ParseVarnameShort from Var_Parse 2095 fix type of ParseModifierPart parameter delim 2096 extract IsEscapedModifierPart from ParseModifierPart 2097 clean up ModifyWords 2098 add test for combining the :@ and :? variable modifiers 2099 21002020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 2101 2102 * VERSION (_MAKE_VERSION): 20201030 2103 Merge with NetBSD make, pick up 2104 o change char * to void * in Var_Value 2105 o make iterating over HashTable simpler 2106 o rename VAR_CMD to VAR_CMDLINE 2107 o cond.c: clean up is_separator 2108 fix parse error in string literal in conditional 2109 o main.c: do not use objdir that is not writable 2110 in lint mode, exit with error status on errors 2111 o parse.c: clean up StrContainsWord 2112 fix out-of-bounds pointer in ParseTrackInput 2113 o var.c: rename Str_SYSVMatch and its parameters 2114 remove unsatisfiable conditions in Var_Set_with_flags 2115 document where the variable name is expanded 2116 fix documentation for VARP_SUB_ONE 2117 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 2118 document VAR_READONLY 2119 prevent appending to read-only variables 2120 extract MayExport from Var_Export1 2121 remove redundant evaluations in VarFind 2122 replace VarFindFlags with a simple Boolean 2123 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 2124 21252020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 2126 2127 * VERSION (_MAKE_VERSION): 20201028 2128 Merge with NetBSD make, pick up 2129 o rename defIncPath to defSysIncPath 2130 o initialize all CmdOpts fields 2131 o lst.c: inline Vector_Get 2132 o main.c: refactor main extract 2133 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 2134 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 2135 InitDefIncPath,CmdOpts_Init,UnlimitFiles 2136 o parse.c: merge curFile into includes 2137 rename predecessor to order_pred 2138 sort ParseSpecial alphabetically 2139 remove unused, undocumented .NOEXPORT 2140 rename ParseSpecial enum values consistently 2141 rename some fields of struct IFile 2142 21432020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 2144 2145 * VERSION (_MAKE_VERSION): 20201026 2146 Merge with NetBSD make, pick up 2147 o group the command line options and arguments into a struct 2148 o rename GNode.cmgn to youngestChild 2149 o rename hash functions to identify the type name 2150 o negate OP_NOP and rename it to GNode_IsTarget 2151 o add GNode_Path to access the path of a GNode 2152 o remove macros MIN and MAX 2153 o remove unused Lst_Find and Lst_FindFrom 2154 o arch.c: and make Arch_FindLib simpler 2155 clean up code layout 2156 make Arch_ParseArchive simpler 2157 o cond.c: inline CondFindStrMatch into FuncMake 2158 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 2159 omit trailing space in debug output for expanding file patterns 2160 refactor DirMatchFiles 2161 document that the SearchPath of Dir_FindFile may be NULL 2162 remove UNCONST from Dir_Expand 2163 inline DirFindName 2164 o for.c: clean up code for handling .for loops 2165 o hash.c: print hash in debug log with fixed width 2166 clean up hash table functions 2167 reduce amount of string hashing 2168 o job.c: refactor JobDeleteTarget 2169 use proper enum constants for aborting 2170 convert result of JobStart from macros to enum 2171 convert abort reason macros to enum 2172 rework Job_CheckCommands to reduce indentation 2173 rename Shell fields 2174 add field names in declaration of DEFSHELL_CUSTOM 2175 convert JobState and JobFlags to enum types 2176 move handling of the "..." command to JobPrintCommands 2177 o lst.c: clean up 2178 refactor LstNodeNew 2179 remove Lst_Open, Lst_Next, Lst_Close 2180 remove code for circular lists from Lst_Next 2181 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 2182 /dev/null or anything starting with "no" 2183 convert macros for debug flags into enum 2184 o make.c: inline Lst_Copy in Make_ExpandUse 2185 o meta.c: inline Lst_Find in meta_oodate 2186 make Lst_RemoveIf simpler in meta_oodate 2187 o parse.c: convert error level for Parse_Error to an enum 2188 o suff.c: properly terminate debug output with newline 2189 add more details to DEBUG_SRC log 2190 replace Dir_CopyDir with Dir_CopyDirSearchPath 2191 don't modify GNode name while rebuilding the suffix graph 2192 o var.c: reduce duplicate code in VarFind 2193 21942020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 2195 2196 * VERSION (_MAKE_VERSION): 20201022 2197 Merge with NetBSD make, pick up 2198 o more refactoring and simplification to reduce code size 2199 o var.c: extract CanonicalVarname from VarFind 2200 o make.c: extract UpdateImplicitParentsVars from Make_Update 2201 o main.c: extract PrintVar from doPrintVars 2202 extract HandlePWD from main 2203 o lst.c: inline simple Lst getters 2204 remove unused Lst_ForEach 2205 o job.c: move struct Shell from job.h to job.c 2206 o more unit tests 2207 22082020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 2209 2210 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 2211 22122020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 2213 2214 * VERSION (_MAKE_VERSION): 20201018 2215 Merge with NetBSD make, pick up 2216 o remove USE_IOVEC 2217 o rename some Hash_* apis to Hash* 2218 o replace execError with execDie 2219 o rename Lst_Init to Lst_New 2220 o add tags to enum types 2221 o rename Stack to Vector 2222 o parse.c: more refactoring 2223 o unit-tests: make some tests use line buffered stdout 2224 o unit-tests/Makefile: in meta mode do not make all tests depend on 2225 Makefile, it isn't necessary. 2226 22272020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 2228 2229 * main.c: check for CTL_HW being defined. 2230 * unit-tests/Makefile: ensure export tests output are POSIX compliant 2231 disable opt-debug-jobs test until it works on ubuntu 2232 2233 * VERSION (_MAKE_VERSION): 20201010 2234 Merge with NetBSD make, pick up 2235 o dir.c: remove pathname limit for Dir_FindHereOrAbove 2236 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 2237 o main.c: extract init_machine and init_machine_arch from main 2238 allow to disable debug logging options 2239 o parse.c: enable format string truncation warnings 2240 extract parsing of sources from ParseDoDependency 2241 split ParseDoSrc into smaller functions 2242 hide implementation details from Parse_DoVar 2243 clean up parsing of variable assignments 2244 split Parse_DoVar into manageable pieces 2245 don't modify the given line during Parse_DoVar 2246 fix out-of-bounds memory access in Parse_DoVar 2247 fix parsing of the :sh assignment modifier 2248 o var.c: rework memory allocation for the name of variables 2249 extract ApplyModifier_Literal into separate function 2250 in lint mode, reject modifiers without delimiter 2251 do not export variable names starting with '-' 2252 o fix double-free bug in -DCLEANUP mode 2253 o more cleanup to enable higher warnings level 2254 o more unit tests 2255 22562020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 2257 2258 * VERSION (_MAKE_VERSION): 20201002 2259 Merge with NetBSD make, pick up 2260 o dir.c: use hash table for looking up open directories by name 2261 o main.c: clean up option handling 2262 o parse.c: add missing const for Parse_AddIncludeDir 2263 o var.c: ApplyModifier_To, update pp in each branch 2264 o remove redundant function prototypes 2265 o more unit tests 2266 22672020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 2268 2269 * VERSION (_MAKE_VERSION): 20201001 2270 Merge with NetBSD make, pick up 2271 o compat.c: comment about "..." 2272 22732020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 2274 2275 * VERSION (_MAKE_VERSION): 20200930 2276 Merge with NetBSD make, pick up 2277 o job.c: split Job.jobPipe into 2 separate fields 2278 replace Lst_Open with direct iteration 2279 o lst.c: remove redundant assertions 2280 o targ.c: replace Lst_Open with direct iteration 2281 o var.c: fix bug in evaluation of indirect variable modifiers 2282 extract ApplyModifier_Quote into separate function 2283 o make debug logging simpler 2284 22852020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 2286 2287 * VERSION (_MAKE_VERSION): 20200927 2288 Merge with NetBSD make, pick up 2289 o parse.c: ensure parse errors result in 'stopped in' message. 2290 o compat.c: make parameter of Compat_RunCommand const 2291 o main.c: extract InitVarTarget from main 2292 o parse.c: rename ParseFinishLine to FinishDependencyGroup 2293 refactor ParseDoDependency 2294 o var.c: Var_Subst no longer returns string result 2295 rename Var_ParsePP back to Var_Parse 2296 in lint mode, improve error handling for undefined variables 2297 extract ParseVarname from Var_Parse 2298 o rename Lst_ForEach to Lst_ForEachUntil 2299 o inline Lst_ForEachUntil in several cases 2300 o clean up API for finding and creating GNodes 2301 o fix assertion failure in -j mode with .END node 2302 o inline and remove LstNode_Prev and LstNode_Next 2303 o use fine-grained type names for lists and their nodes 2304 o more unit tests 2305 23062020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 2307 2308 * VERSION (_MAKE_VERSION): 20200911 2309 Merge with NetBSD make, pick up 2310 o cond.c: split EvalComparison into smaller functions 2311 reorder parameters of condition parsing functions 2312 reduce code size in CondParser_Eval 2313 rename CondGetString to CondParser_String 2314 add CondLexer_SkipWhitespace 2315 group the condition parsing state into a struct 2316 in CondGetString, replace repeated Buf_Add with Buf_AddStr 2317 o migrate Var_Parse to Var_ParsePP 2318 o add wrappers around ctype.h functions 2319 o lst.c: use a stack instead of a list for the nested include path 2320 o more unit tests 2321 23222020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 2323 2324 * make-bootstrap.sh.in: adjust object list 2325 23262020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 2327 2328 * VERSION (_MAKE_VERSION): 20200902 2329 Merge with NetBSD make, pick up 2330 o use make_stat to ensure no confusion over valid fields 2331 returned by cached_stat 2332 o var.c: make VarQuote const-correct 2333 o add unit tests for .for 2334 23352020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 2336 2337 * VERSION (_MAKE_VERSION): 20200901 2338 Merge with NetBSD make, pick up 2339 o rename Hash_Table fields 2340 o make data types in Dir_HasWildcards more precise 2341 23422020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 2343 2344 * VERSION (_MAKE_VERSION): 20200831 2345 Merge with NetBSD make, pick up 2346 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 2347 o lst.c: Lst_Open renable assert that list isn't open 2348 o unit test for .TARGET dependent flags 2349 o var.c: fix aliasing bug in VarUniq 2350 o more unit tests for :u 2351 23522020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 2353 2354 * VERSION (_MAKE_VERSION): 20200830 2355 Merge with NetBSD make, pick up 2356 o allow for strict type checking for Boolean 2357 o Var_Parse never returns NULL 2358 o Var_Subst never returns NULL 2359 o Lst_Find now takes boolean match function 2360 o rename Lst_Memeber to Lst_FindDatum 2361 o rename LstNode functions to match their type 2362 o rename GNode.iParents to implicitParents 2363 o fix assertion failure for .SUFFIXES in archives 2364 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 2365 remove unreachable code from CompatRunCommand 2366 o main.c: simplify getBoolean 2367 o stc.c: replace brk_string with simpler Str_Words 2368 o suff.c: add debug macros 2369 23702020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 2371 2372 * VERSION (_MAKE_VERSION): 20200828 2373 Merge with NetBSD make, pick up 2374 o lst.c: inline LstIsValid and LstNodeIsValid 2375 o remove trailing S from Lst function names after migration complete 2376 o more comment cleanup/clarification 2377 o suff.c: clean up suffix handling 2378 o more unit tests 2379 23802020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 2381 2382 * VERSION (_MAKE_VERSION): 20200826 2383 Merge with NetBSD make, pick up 2384 o enum.c: distinguish between bitsets containing flags and 2385 ordinary enums 2386 o var.c: fix error message for ::!= modifier with shell error 2387 o fix bugs in -DCLEANUP mode 2388 23892020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 2390 2391 * VERSION (_MAKE_VERSION): 20200824 2392 Merge with NetBSD make, pick up 2393 o in debug mode, print GNode details in symbols 2394 23952020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 2396 2397 * VERSION (_MAKE_VERSION): 20200823 2398 Merge with NetBSD make, pick up 2399 o lst.c: more asserts, 2400 make args to Lst_Find match others. 2401 o var.c: pass flags to VarAdd 2402 o arch.c: use Buffer 2403 o str.c: brk_string return size_t for nwords 2404 o more unit tests 2405 24062020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 2407 2408 * VERSION (_MAKE_VERSION): 2409 Merge with NetBSD make, pick up 2410 o var.c: support for read-only variables eg .SHELL 2411 being the shell used to run scripts. 2412 o lst.c: more simplification 2413 o more documentation and style cleanup 2414 o more unit tests 2415 o ensure unit-test/Makefile is run by TEST_MAKE 2416 o reduce duplication of header inclusion 2417 24182020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 2419 2420 * VERSION (_MAKE_VERSION): 20200821 2421 Merge with NetBSD make, pick up 2422 o lst.c: revert invalid assertion - but document it 2423 o dir.c: split Dir_Init into two functions 2424 24252020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 2426 2427 * lst.c: needs inttypes.h on Linux 2428 2429 * VERSION (_MAKE_VERSION): 20200820 2430 Merge with NetBSD make, pick up 2431 o make.1: clarify some passages 2432 o var.c: more cleanup, clarify comments 2433 o make_malloc.c: remove unreachable code 2434 o cond.c: make CondGetString easier to debug 2435 o simplify list usage 2436 o unit-tests: more 2437 24382020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 2439 2440 * VERSION (_MAKE_VERSION): 20200816 2441 Merge with NetBSD make, pick up 2442 o refactor unit-tests to be more fine grained 2443 not all tests moved yet 2444 24452020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 2446 2447 * VERSION (_MAKE_VERSION): 20200814 2448 Merge with NetBSD make, pick up 2449 o more str_concat variants 2450 o more enums for flags 2451 o var.c: cleanup for higher warnings level 2452 24532020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 2454 2455 * VERSION (_MAKE_VERSION): 20200810 2456 Merge with NetBSD make, pick up 2457 o more unit tests 2458 o general comment and style cleanup 2459 24602020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 2461 2462 * VERSION (_MAKE_VERSION): 20200808 2463 Merge with NetBSD make, pick up 2464 o enum.[ch]: streamline, enums for use in flags and debug output 2465 o cond.c: cleanup 2466 o var.c: reduce duplicate code for modifiers 2467 debug logging for Var_Parse 2468 more detailed debug output 2469 o more unit tests 2470 24712020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 2472 2473 * unit-tests/Makefile: -r for recursive and include Makefile.inc 2474 so I can run tests in meta mode 2475 supress extra noise if in meta mode 2476 2477 * VERSION (_MAKE_VERSION): 20200806 2478 Merge with NetBSD make, pick up 2479 o parse.c: remove VARE_WANTRES for LINT 2480 we just want to check parsing (for now). 2481 24822020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 2483 2484 * VERSION (_MAKE_VERSION): 20200805 2485 Merge with NetBSD make, pick up 2486 o make.1: Rework the description of dependence operators 2487 24882020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 2489 2490 * VERSION (_MAKE_VERSION): 20200803 2491 Merge with NetBSD make, pick up 2492 o revert some C99 usage, for max portability 2493 o unit-tests/lint 2494 24952020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 2496 2497 * VERSION (_MAKE_VERSION): 20200802 2498 Merge with NetBSD make, pick up 2499 o more unit tests 2500 25012020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 2502 2503 * Remove NetBSD specific plumbing from unit-tests/Makefile 2504 2505 * VERSION (_MAKE_VERSION): 20200801 2506 Merge with NetBSD make, pick up 2507 o make Var_Value return const 2508 o size_t for buf sizes 2509 o optimize some buffer operations - avoid strlen 2510 25112020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 2512 2513 * VERSION (_MAKE_VERSION): 20200731 2514 Merge with NetBSD make, pick up 2515 o var.c: fix undefinded behavior for incomplete :t modifier 2516 fixes unit-test/moderrs on Ubuntu 2517 o parse.c: When parsing variable assignments other than := 2518 if DEBUG(LINT) test substition of value, so we get a file and 2519 line number in the resulting error. 2520 o dir.c: fix parsing of nested braces in dependency lines 2521 add unit-tests 2522 25232020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 2524 2525 * VERSION (_MAKE_VERSION): 20200730 2526 Merge with NetBSD make, pick up 2527 o var.c: minor cleanup 2528 o unit-tests: more tests to improve code coverage 2529 25302020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 2531 2532 * VERSION (_MAKE_VERSION): 20200728 2533 Merge with NetBSD make, pick up 2534 o var.c: more optimizations 2535 25362020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 2537 2538 * VERSION (_MAKE_VERSION): 20200726 2539 Merge with NetBSD make, pick up 2540 o collapse lsd.lib into lst.c - reduce code size and allow inlining 2541 o lots of function comment updates 2542 o var.c: more optimizations 2543 o make return of Var_Parse const 2544 25452020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 2546 2547 * VERSION (_MAKE_VERSION): 20200720 2548 Merge with NetBSD make, pick up 2549 o DEBUG_HASH report stats at end and tone down the noise 2550 o var.c: each flag type gets its own prefix. 2551 move SysV string matching to var.c 2552 make ampersand in ${VAR:from=to&} an ordinary character 2553 cleanup and simplify implementation of modifiers 2554 o make.1: move documentation for assignment modifiers 2555 25562020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 2557 2558 * VERSION (_MAKE_VERSION): 20200718 2559 Merge with NetBSD make, pick up 2560 o DEBUG_HASH to see how well the hash tables are working 2561 25622020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 2563 2564 * bsd.after-import.mk: make sure we update unit-tests/Makefile 2565 25662020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 2567 2568 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 2569 2570 * VERSION (_MAKE_VERSION): 20200710 2571 Merge with NetBSD make, pick up 2572 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 2573 o meta.c: target flagged .META is out-of-date if meta file missing 2574 25752020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 2576 2577 * VERSION (_MAKE_VERSION): 20200709 2578 Merge with NetBSD make, pick up 2579 o cond.c: fix for compare_expression when doEval=0 2580 o unit-tests/Makefile: rework 2581 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 2582 25832020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 2584 2585 * VERSION (_MAKE_VERSION): 20200704 2586 Merge with NetBSD make, pick up 2587 (most of this by rillig@) 2588 o lots of style and white-space cleanup 2589 o lots more unit tests for variable modifiers 2590 o simplified description of some functions 2591 o str.c: refactor Str_Match 2592 o var.c: debugging output for :@ 2593 constify VarModify parameter 2594 fix :hash modifier on 16-bit platforms 2595 remove unnecessary forward declarations 2596 refactor ApplyModifier_SysV to have less indentation 2597 simplify code for :E and :R 2598 clean up code for :H and :T 2599 refactor ApplyModifiers 2600 2601 * var.c: we need stdint.h on some platforms to get uint32_t 2602 * unit-test/Makefile: we need to supress the specific error 2603 for RE substitution error in modmisc, since it varies accross 2604 different OS. 2605 26062020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 2607 2608 * VERSION (_MAKE_VERSION): 20200702 2609 Merge with NetBSD make, pick up 2610 o var.c: more improvements to avoiding unnecessary evaluation 2611 use enums for flags 2612 o remove flags arg to Var_Set which outside of var.c is always 0 2613 26142020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 2615 2616 * VERSION (_MAKE_VERSION): 20200701 2617 Merge with NetBSD make, pick up 2618 o var.c: with change to cond.c; ensure that nested variables 2619 within a variable name are expanded. 2620 o unit-tests/varmisc.mk: test for nested varname 2621 26222020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 2623 2624 * VERSION (_MAKE_VERSION): 20200629 2625 Merge with NetBSD make, pick up 2626 o cond.c: do not eval unnecessary terms of conditionals. 2627 26282020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 2629 2630 * VERSION (_MAKE_VERSION): 20200625 2631 Merge with NetBSD make, pick up 2632 o meta.c: report error if lseek in filemon_read fails 2633 26342020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 2635 2636 * VERSION (_MAKE_VERSION): 20200622 2637 Merge with NetBSD make, pick up 2638 o dieQuietly: ignore OP_SUBMAKE as too aggressive 2639 26402020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 2641 2642 * VERSION (_MAKE_VERSION): 20200619 2643 Merge with NetBSD make, pick up 2644 o str.c: performance improvement for Str_Match for multiple '*' 2645 o dieQuietly: supress the failure output from make 2646 when failing node is a sub-make or a sibling failed. 2647 This cuts down greatly on unhelpful noise at the end of 2648 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 2649 26502020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 2651 2652 * FILES: add LICENSE to appease some packagers. 2653 This is an attempt to fairly represent the license on almost 2654 200 files, which are almost all BSD-3-Clause 2655 The few exceptions being more liberal. 2656 2657 * VERSION (_MAKE_VERSION): 20200610 2658 Merge with NetBSD make, pick up 2659 o unit test for :Or 2660 26612020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 2662 2663 * VERSION (_MAKE_VERSION): 20200606 2664 Merge with NetBSD make, pick up 2665 o make.1: cleanup 2666 2667 * Makefile: fix depends for main.o which broke MAKE_VERSION 2668 26692020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 2670 2671 * VERSION (_MAKE_VERSION): 20200605 2672 Merge with NetBSD make, pick up 2673 o dir.c: cached_stats - don't confuse stat and lstat results. 2674 o var.c: add :Or for reverse sort. 2675 26762020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 2677 2678 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 2679 also if --with-filemon= specifies path to filemon.h 2680 set use_filemon=dev 2681 * dirname.c: remove include of namespace.h 2682 26832020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 2684 2685 * VERSION (_MAKE_VERSION): 20200517 2686 Merge with NetBSD make, pick up 2687 o modified dollar tests to avoid shell dependencies 2688 o new tests for .INCLUDEFROM 2689 26902020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 2691 2692 * unit-tests/dollar.mk: tweak '1 dollar literal' test 2693 to not depend so much on shell behavior 2694 26952020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2696 2697 * VERSION (_MAKE_VERSION): 20200510 2698 Merge with NetBSD make, pick up 2699 o unit test for dollar handling 2700 27012020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 2702 2703 * VERSION (_MAKE_VERSION): 20200506 2704 Merge with NetBSD make, pick up 2705 o str.c: empty string does not match % pattern 2706 plus unit-test changes 2707 27082020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 2709 2710 * VERSION (_MAKE_VERSION): 20200504 2711 May the 4th be with you 2712 Merge with NetBSD make, pick up 2713 o var.c: import handling of old sysV style modifier using '%' 2714 o str.c: refactor brk_string 2715 o unit-tests: add test case for lazy conditions 2716 27172020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2718 2719 * VERSION (_MAKE_VERSION): 20200418 2720 2721 * configure.in: use_makefile=no for Cygwin et al. 2722 case insensitive filesystems just don't work if both 2723 makefile and Makefile exist. 2724 NOTE: bmake does not support Cygwin and likely never will, 2725 but if brave souls want to try it - help them out. 2726 27272020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 2728 2729 * VERSION (_MAKE_VERSION): 20200402 2730 Merge with NetBSD make, pick up 2731 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 2732 a blank command is perfectly valid. 2733 27342020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 2735 2736 * VERSION (_MAKE_VERSION): 20200330 2737 Merge with NetBSD make, pick up 2738 o make.h: extern debug_file 2739 27402020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 2741 2742 * VERSION (_MAKE_VERSION): 20200318 2743 Merge with NetBSD make, pick up 2744 o meta.c: meta_oodate, check for corrupted meta file 2745 earlier and more often. 2746 27472020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 2748 2749 * VERSION (_MAKE_VERSION): 20200220 2750 27512020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 2752 2753 * boot-strap: unset MAKEFLAGS 2754 27552020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 2756 2757 * VERSION (_MAKE_VERSION): 20200212 2758 * meta.c: meta_compat_parent check for USE_FILEMON 2759 patch from Soeren Tempel 2760 27612020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 2762 2763 * VERSION: 20200205 2764 Merge with NetBSD make, pick up 2765 o meta.c: fix compat mode, need to call meta_job_output() 2766 o job.c: extra fds for meta mode not needed if using filemon_dev 2767 27682020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 2769 2770 * VERSION: 20200122 2771 Merge with NetBSD make, pick up 2772 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 2773 returns FALSE. 2774 27752020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 2776 2777 * VERSION: 20200121 2778 Merge with NetBSD make, pick up 2779 o filemon/filemon_{dev,ktrace}.c: allow selection of 2780 filemon implementation. filemon_dev.c uses the kernel module 2781 while filemon_ktrace.c leverages the fktrace api available in 2782 NetBSD. filemon_ktrace.c can hopefully form the basis for 2783 adding support for other tracing mechanisms such as strace on 2784 Linux. 2785 o meta.c: when target is out-of-date per normal make rules 2786 record value of .OODATE in meta file. 2787 27882019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 2789 2790 * VERSION: 20190926 2791 Merge with NetBSD make, pick up 2792 o parse.c: don't pass NULL to realpath(3) 2793 some versions cannot handle it. 2794 27952019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 2796 2797 * VERSION: 20190409 2798 Merge with NetBSD make, pick up 2799 o parse.c: ParseDoDependency: free paths rather than assert 2800 28012018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 2802 2803 * VERSION: 20181222 2804 2805 * configure.in: add --without-makefile to avoid generating 2806 makefile and make-bootstrap.sh 2807 2808 * include Makefile.inc if it exists 2809 2810 * Use Makefile and Makefile.config.in in unit-tests 2811 so we can use just: make obj && make && make test 2812 when bmake is already available. 2813 We add --without-makefile to CONFIGURE_ARGS in this case. 2814 2815 * tweak bsd.after-import.mk (captures Makefile.config etc 2816 after import to FreeBSD for example) to cope with all the above. 2817 28182018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 2819 2820 * VERSION: 20181221 2821 Merge with NetBSD make, pick up 2822 o parse.c: ParseVErrorInternal use .PARSEDIR 2823 and apply if relative, and then use .PARSEFILE 2824 for consistent result. 2825 28262018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 2827 2828 * VERSION: 20181220 2829 Merge with NetBSD make, pick up 2830 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 2831 is relative 2832 o var.c: avoid SEGFAULT in .unexport-env 2833 when MAKELEVEL is not set 2834 28352018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 2836 2837 * VERSION: 20181216 2838 Merge with NetBSD make, pick up 2839 o fix for unit-tests/varquote.mk on Debian 2840 28412018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 2842 2843 * VERSION: 20180919 2844 Merge with NetBSD make, pick up 2845 o var.c: add :q 2846 o dir.c: cleanup caching of stats 2847 28482018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 2849 2850 * Makefile.config.in: use += where it makes sense. 2851 28522018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2853 2854 * VERSION: 20180512 2855 Merge with NetBSD make, pick up 2856 o job.c: skip polling job token pipe 2857 28582018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2859 2860 * VERSION: 20180405 2861 Merge with NetBSD make, pick up 2862 o parse.c: be more cautious about detecting depenency line 2863 rather than sysV style include. 2864 28652018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2866 2867 * VERSION: 20180222 2868 Merge with NetBSD make, pick up 2869 o parse.c: avoid calling sysconf for every call to loadfile 2870 28712018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2872 2873 * VERSION: 20180218 2874 Merge with NetBSD make, pick up 2875 o var.c: Var_Set handle NULL value anytime. 2876 28772018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2878 2879 * VERSION: 20180212 2880 Merge with NetBSD make, pick up 2881 o parse.c: do not treat .info as warning with -W 2882 28832017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2884 2885 * VERSION: 20171207 2886 Merge with NetBSD make, pick up 2887 o var.c: Var_Append use Var_Set if var not previously set 2888 so that VAR_CMD is handled correctly. 2889 Add a suitable unit-test. 2890 28912017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2892 2893 * VERSION (_MAKE_VERSION): 20171126 2894 2895 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2896 since AC_TRY_COMPILE puts input inside main() 2897 which upsets modern compilers. 2898 28992017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2900 2901 * VERSION: 20171118 2902 Merge with NetBSD make, pick up 2903 o var.c: do not append to variable set on command line 2904 add unit-test to catch this. 2905 29062017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2907 2908 * VERSION: 20171028 2909 Merge with NetBSD make, pick up 2910 o main.c: ignore empty MAKEOBJDIR 2911 2912 * Makefile.config.in: 2913 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2914 29152017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2916 2917 * VERSION: 20171005 2918 2919 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2920 consistent result on some platforms. 2921 29222017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2923 2924 * machine.sh: entry for AIX 2925 29262017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2927 2928 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2929 to a file that can be included by configure as well as make. 2930 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2931 29322017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2933 2934 * Makefile (_MAKE_VERSION): 20170810 2935 Merge with NetBSD make, pick up 2936 o meta.c: if target is in subdir we only need subdir name in 2937 meta_name. 2938 29392017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2940 2941 * Makefile (_MAKE_VERSION): 20170720 2942 Merge with NetBSD make, pick up 2943 o compat.c: pass SIGINT etc onto child and wait for it to exit 2944 before we self-terminate. 2945 29462017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2947 2948 * Makefile (_MAKE_VERSION): 20170711 2949 forgot to update after merge on 20170708 ;-) 2950 o main.c: refactor to reduce size of main function. 2951 add -v option to always fully expand values. 2952 o meta.c: ensure command output in meta file has ending newline 2953 even when filemon not being used. 2954 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2955 pathname via ':L' since any ':' in pathname breaks that. 2956 Instead set a '${.p.}' to pathname in the target context and 2957 use that. 2958 29592017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2960 2961 * Makefile (_MAKE_VERSION): 20170510 2962 Merge with NetBSD make, pick up 2963 o main.c: Main_SetObjdir: ensure buf2 is in scope 2964 29652017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2966 2967 * Makefile (_MAKE_VERSION): 20170505 2968 see mk/ChangeLog 2969 29702017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2971 2972 * parse.c: not everyone has stdint.h 2973 29742017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2975 2976 * Makefile (_MAKE_VERSION): 20170501 2977 see mk/ChangeLog 2978 29792017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2980 2981 * Makefile (_MAKE_VERSION): 20170421 2982 Merge with NetBSD make, pick up 2983 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2984 29852017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2986 2987 * Makefile (_MAKE_VERSION): 20170420 2988 Merge with NetBSD make, pick up 2989 o main.c: only use -C arg "as is" if it contains no 2990 relative component. 2991 29922017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2993 2994 * Makefile (_MAKE_VERSION): 20170418 2995 Merge with NetBSD make, pick up 2996 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2997 29982017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2999 3000 * Makefile (_MAKE_VERSION): 20170417 3001 Merge with NetBSD make, pick up 3002 o fixes a number of coverity complaints 3003 - check return value of fseek, fcntl 3004 - plug memory leak in Dir_FindFile, Var_LoopExpand, 3005 JobPrintCommand, ParseTraditionalInclude 3006 - use bmake_malloc() where NULL is not tollerated 3007 - use MAKE_ATTR_UNUSED rather that kludges like 3008 return(unused ? 0 : 0) 3009 - use purge_cached_realpaths() rather than abuse cached_realpath() 3010 30112017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 3012 3013 * Makefile (_MAKE_VERSION): 20170413 3014 Merge with NetBSD make, pick up 3015 o main.c: when setting .OBJDIR ignore '$' in paths. 3016 3017 * job.c: use MALLOC_OPTIONS to set malloc_options. 3018 30192017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3020 3021 * Makefile (_MAKE_VERSION): 20170411 3022 Merge with NetBSD make, pick up 3023 o str.c: Str_Match: allow [^a-z] to behave as expected. 3024 30252017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3026 3027 * Makefile (_MAKE_VERSION): 20170326 3028 Merge with NetBSD make, pick up 3029 o main.c: purge relative paths from realpath cache when .OBJDIR 3030 is changed. 3031 30322017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 3033 3034 * Makefile (_MAKE_VERSION): 20170311 3035 Merge with NetBSD make, pick up 3036 o main.c: only use -C arg "as is" if it starts with '/'. 3037 30382017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 3039 3040 * Makefile (_MAKE_VERSION): 20170301 3041 Merge with NetBSD make, pick up 3042 o main.c: use -C arg "as is" rather than getcwd() 3043 if they identify the same directory. 3044 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 3045 30462017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 3047 3048 * Makefile (_MAKE_VERSION): 20170201 3049 Merge with NetBSD make, pick up 3050 o var.c: allow :_=var and avoid use of special context. 3051 30522017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 3053 3054 * Makefile (_MAKE_VERSION): 20170130 3055 Merge with NetBSD make, pick up 3056 o var.c: add :range and :_ 3057 o main.c: partially initialize Dir_* before MainParseArgs() 3058 can be called. 3059 If -V, skip Main_ExportMAKEFLAGS() 3060 30612017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 3062 3063 * Makefile (_MAKE_VERSION): 20170114 3064 Merge with NetBSD make, pick up 3065 o var.c: allow specifying the utc value used by :{gm,local}time 3066 30672016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3068 3069 * Makefile (_MAKE_VERSION): 20161212 3070 Merge with NetBSD make, pick up 3071 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 3072 30732016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 3074 3075 * Makefile (_MAKE_VERSION): 20161209 3076 Merge with NetBSD make, pick up 3077 o main.c: cleanup setting of .OBJDIR 3078 o parse.c: avoid coredump from (var)=val 3079 30802016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3081 3082 * Makefile (_MAKE_VERSION): 20161126 3083 Merge with NetBSD make, pick up 3084 o make.c: Make_OODate: report src node name if path not set 3085 30862016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3087 3088 * Makefile (_MAKE_VERSION): 20160926 3089 Merge with NetBSD make, pick up 3090 o support for .DELETE_ON_ERROR: (remove targets that fail) 3091 30922016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 3093 3094 * Makefile MAN: tweak .Dt to match ${PROG} 3095 30962016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3097 3098 * Makefile (_MAKE_VERSION): 20160818 3099 its a neater number; pick up whitespace fixes to man page. 3100 31012016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 3102 3103 * Makefile (_MAKE_VERSION): 20160817 3104 Merge with NetBSD make, pick up 3105 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 3106 so we can call it before adding entries to missingFiles. 3107 Thus we do not track files we have been told to ignore. 3108 31092016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 3110 3111 * Makefile (_MAKE_VERSION): 20160815 3112 Merge with NetBSD make, pick up 3113 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 3114 pathnames, and skip if the expansion is empty. 3115 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 3116 31172016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 3118 3119 * Makefile (_MAKE_VERSION): 20160812 3120 Merge with NetBSD make, pick up 3121 o meta.c: remove all missingFiles entries that match a deleted 3122 dir. 3123 o main.c: set .ERROR_CMD if possible. 3124 31252016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3126 3127 * Makefile (_MAKE_VERSION): 20160606 3128 Merge with NetBSD make, pick up 3129 o dir.c: extend mtimes cache to others via cached_stat() 3130 31312016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3132 3133 * Makefile (_MAKE_VERSION): 20160604 3134 Merge with NetBSD make, pick up 3135 o meta.c: missing filemon data is only relevant if we read a 3136 meta file. 3137 Also do not return oodate for a missing metafile if gn->path 3138 points to .CURDIR 3139 31402016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3141 3142 * Makefile (_MAKE_VERSION): 20160602 3143 Merge with NetBSD make, pick up 3144 o cached_realpath(): avoid hitting filesystem more than necessary. 3145 o meta.c: refactor need_meta decision, add knobs for 3146 missing meta file and filemon data wrt out-of-datedness. 3147 31482016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3149 3150 * Makefile (_MAKE_VERSION): 20160528 3151 3152 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 3153 31542016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 3155 3156 * Makefile (_MAKE_VERSION): 20160512 3157 Merge with NetBSD make, pick up 3158 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 3159 this is useful for gcov builds. 3160 o propagate errors from filemon(4). 3161 31622016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 3163 3164 * Makefile (_MAKE_VERSION): 20160509 3165 Merge with NetBSD make, pick up 3166 o remove use of non-standard types u_int etc. 3167 o meta.c: apply realpath() before matching against metaIgnorePaths 3168 31692016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 3170 3171 * Makefile (_MAKE_VERSION): 20160404 3172 Merge with NetBSD make, pick up 3173 o allow makefile to set .MAKE.JOBS 3174 3175 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 3176 31772016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 3178 3179 * Makefile (_MAKE_VERSION): 20160315 3180 Merge with NetBSD make, pick up 3181 o fix handling of archive members 3182 31832016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3184 3185 * Makefile (_MAKE_VERSION): rename variable to avoid interference 3186 with checks for ${MAKE_VERSION} 3187 31882016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 3189 3190 * Makefile (MAKE_VERSION): 20160310 3191 Merge with NetBSD make, pick up 3192 o meta.c: treat missing Read file same as Write, incase we Delete it. 3193 31942016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 3195 3196 * Makefile (MAKE_VERSION): 20160307 3197 Merge with NetBSD make, pick up 3198 o var.c: fix :ts\nnn to be octal by default. 3199 o meta.c: meta_finish() to cleanup memory. 3200 32012016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 3202 3203 * Makefile (MAKE_VERSION): 20160226 3204 Merge with NetBSD make, pick up 3205 o meta.c: allow meta file for makeDepend if makefiles want it. 3206 32072016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 3208 3209 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 3210 for backwards compatability. 3211 3212 * Makefile (MAKE_VERSION): 20160220 3213 Merge with NetBSD make, pick up 3214 o var.c: add knob to control handling of '$$' in := 3215 32162016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 3217 3218 * Makefile (MAKE_VERSION): 20160218 3219 Merge with NetBSD make, pick up 3220 o var.c: add .export-literal allows us to fix sys.clean-env.mk 3221 post the changes to Var_Subst. 3222 Var_Subst now takes flags, and does not consume '$$' in := 3223 32242016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 3225 3226 * Makefile (MAKE_VERSION): 20160217 3227 Merge with NetBSD make, pick up 3228 o var.c: preserve '$$' in := 3229 o parse.c: add .dinclude for handling included 3230 makefile like .depend 3231 32322015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 3233 3234 * Makefile (MAKE_VERSION): 20151220 3235 Merge with NetBSD make, pick up 3236 o suff.c: re-initialize suffNull when clearing suffixes. 3237 32382015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 3239 3240 * Makefile (MAKE_VERSION): 20151201 3241 Merge with NetBSD make, pick up 3242 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 3243 o meta.c: meta_oodate: use lstat(2) for checking link target 3244 in case it is a symlink. 3245 o var.c: avoid calling brk_string and Var_Export1 with empty 3246 strings. 3247 32482015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3249 3250 * Makefile (MAKE_VERSION): 20151126 3251 Merge with NetBSD make, pick up 3252 o parse.c: ParseTrackInput don't access beyond 3253 end of old value. 3254 32552015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 3256 3257 * Makefile (MAKE_VERSION): 20151022 3258 3259 * Add support for BSD/OS which lacks inttypes.h 3260 and really needs sys/param.h for sys/sysctl.h 3261 also 'type' is not a shell builtin. 3262 3263 * var.c: eliminate uint32_t and need for inttypes.h 3264 3265 * main.c: PrintOnError flush stdout before run .ERROR 3266 3267 * parse.c: cope with _SC_PAGESIZE not being defined. 3268 3269 32702015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 3271 3272 * Makefile (MAKE_VERSION): 20151020 3273 Merge with NetBSD make, pick up 3274 o var.c: fix uninitialized var 3275 32762015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 3277 3278 * var.c: the conditional expressions used with ':?' can be 3279 expensive, if already discarding do not evaluate or expand 3280 anything. 3281 32822015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3283 3284 * Makefile (MAKE_VERSION): 20151010 3285 Merge with NetBSD make, pick up 3286 o Add Boolean wantit flag to Var_Subst and Var_Parse 3287 when FALSE we know we are discarding the result and can 3288 skip operations like Cmd_Exec. 3289 32902015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3291 3292 * Makefile (MAKE_VERSION): 20151009 3293 Merge with NetBSD make, pick up 3294 o var.c: don't check for NULL before free() 3295 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 3296 32972015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3298 3299 * Makefile (MAKE_VERSION): 20150910 3300 Merge with NetBSD make, pick up 3301 o main.c: with -w print Enter/Leaving messages for objdir too 3302 if necessary. 3303 o centralize shell metachar handling 3304 3305 * FILES: add metachar.[ch] 3306 33072015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3308 3309 * Makefile (MAKE_VERSION): 20150606 3310 Merge with NetBSD make, pick up 3311 o make.1: document .OBJDIR target 3312 33132015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3314 3315 * Makefile (MAKE_VERSION): 20150505 3316 Merge with NetBSD make, pick up 3317 o cond.c: be strict about lhs of comparison when evaluating .if 3318 but less so when called from variable expansion. 3319 o unit-tests/cond2.mk: test various error conditions 3320 33212015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 3322 3323 * machine.sh (MACHINE): Add Bitrig 3324 patch from joerg@netbsd.org 3325 33262015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 3327 3328 * Makefile (MAKE_VERSION): 20150418 3329 Merge with NetBSD make, pick up 3330 o job.c: use memmove() rather than memcpy() 3331 3332 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 3333 case, so skip it. 3334 33352015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3336 3337 * Makefile (MAKE_VERSION): 20150411 3338 bump version - only mk/ changes. 3339 33402015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3341 3342 * Makefile (MAKE_VERSION): 20150410 3343 Merge with NetBSD make, pick up 3344 o document different handling of '-' in jobs mode vs compat 3345 o fix jobs mode so that '-' only applies to whole job 3346 when shell lacks hasErrCtl 3347 o meta.c: use separate vars to track lcwd and latestdir (read) 3348 per process 3349 33502015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 3351 3352 * Makefile (MAKE_VERSION): 20150401 3353 Merge with NetBSD make, pick up 3354 o meta.c: close meta file in child 3355 3356 * Makefile: use BINDIR.bmake if set. 3357 Same for MANDIR and SHAREDIR 3358 Handy for testing release candidates 3359 in various environments. 3360 33612015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 3362 3363 * move initialization of savederr to block where it is used 3364 to avoid spurious warning from gcc5 3365 33662014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3367 3368 * Makefile (MAKE_VERSION): 20141111 3369 just a cooler number 3370 33712014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 3372 3373 * Makefile (MAKE_VERSION): 20141105 3374 Merge with NetBSD make, pick up 3375 o revert major overhaul of suffix handling 3376 and POSIX compliance - too much breakage 3377 and impossible to make backwards compatible. 3378 o we still have the new unit test structure which is ok. 3379 o meta.c ensure "-- filemon" is at start of line. 3380 33812014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 3382 3383 * configure.in: test that result of getconf PATH_MAX is numeric 3384 and discard if not. Apparently needed for Hurd. 3385 33862014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3387 3388 * Makefile (MAKE_VERSION): 20140830 3389 Merge with NetBSD make, pick up 3390 o major overhaul of suffix handling 3391 o improved POSIX compliance 3392 o overhauled unit-tests 3393 33942014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3395 3396 * Makefile (MAKE_VERSION): 20140620 3397 Merge with NetBSD make, pick up 3398 o var.c return varNoError rather than var_Error for ::= modifiers. 3399 34002014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 3401 3402 * Makefile (MAKE_VERSION): 20140522 3403 Merge with NetBSD make, pick up 3404 o var.c detect some parse errors. 3405 34062014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 3407 3408 * Fix spelling errors - patch from Pedro Giffuni 3409 34102014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 3411 3412 * Makefile (MAKE_VERSION): 20140214 3413 Merge with NetBSD make, pick up 3414 o .INCLUDEFROM* 3415 o use Var_Value to get MAKEOBJDIR[PREFIX] 3416 o reduced realloc'ign in brk_string. 3417 * configure.in: add a check for compiler supporting __func__ 3418 34192014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3420 3421 * boot-strap: ignore mksrc=none 3422 34232014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 3424 3425 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 3426 34272014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3428 3429 * Makefile (MAKE_VERSION): 20140101 3430 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 3431 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 3432 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 3433 Hurd) 3434 * configure.in: Add AC_PREREQ and check for 3435 sysctl; patch from Andrew Shadura andrewsh at debian.org 3436 34372013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3438 3439 * Makefile (MAKE_VERSION): 20131010 3440 * lose the const from arg to systcl to avoid problems on older BSDs. 3441 34422013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3443 3444 * Makefile (MAKE_VERSION): 20131001 3445 Merge with NetBSD make, pick up 3446 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 3447 hw.machine_arch if necessary. 3448 o meta.c: meta_oodate - need to look at src of Link and target 3449 of Move as well. 3450 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 3451 provide __arraycount() if needed. 3452 34532013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 3454 3455 * Makefile (MAKE_VERSION): 20130904 3456 Merge with NetBSD make, pick up 3457 o Add VAR_INTERNAL context, so that internal setting of 3458 MAKEFILE does not override value set by makefiles. 3459 34602013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 3461 3462 * Makefile (MAKE_VERSION): 20130902 3463 Merge with NetBSD make, pick up 3464 o CompatRunCommand: only apply shellErrFlag when errCheck is true 3465 34662013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3467 3468 * Makefile (MAKE_VERSION): 20130828 3469 Merge with NetBSD make, pick up 3470 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 3471 o Call Job_SetPrefix() from Job_Init() so makefiles have 3472 opportunity to set .MAKE.JOB.PREFIX 3473 34742013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 3475 3476 * Makefile (MAKE_VERSION): 20130730 3477 Merge with NetBSD make, pick up 3478 o Allow suppression of --- job -- tokens by setting 3479 .MAKE.JOB.PREFIX empty. 3480 34812013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 3482 3483 * Makefile (MAKE_VERSION): 20130716 3484 Merge with NetBSD make, pick up 3485 o number of gmake compatibility tweaks 3486 -w for gmake style entering/leaving messages 3487 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 3488 handle MAKEFLAGS containing only letters. 3489 o when overriding a GLOBAL variable on the command line, 3490 delete it from GLOBAL context so -V doesn't show the wrong 3491 value. 3492 34932013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 3494 3495 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 3496 3497 * Makefile (MAKE_VERSION): 20130706 3498 Merge with NetBSD make, pick up 3499 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 3500 true so that CompatRunCommand() can use it, to ensure 3501 consistent behavior with jobs mode. 3502 o use MAKE_LEVEL_ENV to define the variable to propagate 3503 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 3504 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 3505 paths to ignore. 3506 35072013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3508 3509 * Makefile (MAKE_VERSION): 20130604 3510 Merge with NetBSD make, pick up 3511 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 3512 to avoid leaking descriptors. 3513 35142013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 3515 3516 * Makefile (MAKE_VERSION): 20130528 3517 Merge with NetBSD make, pick up 3518 o var.c: cleanup some left-overs in VarHash() 3519 35202013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3521 3522 * Makefile (MAKE_VERSION): 20130520 3523 generate manifest from component FILES rather than have to 3524 update FILES when mk/FILES changes. 3525 35262013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3527 3528 * Makefile (MAKE_VERSION): 20130518 3529 Merge with NetBSD make, pick up 3530 o suff.c: don't skip all processsing for .PHONY targets 3531 else wildcard srcs do not get expanded. 3532 o var.c: expand name of variable to delete if necessary. 3533 35342013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3535 3536 * Makefile (MAKE_VERSION): 20130330 3537 Merge with NetBSD make, pick up 3538 o meta.c: refine the handling of .OODATE in commands. 3539 Rather than suppress command comparison for the entire script 3540 as though .NOMETA_CMP had been used, only suppress it for the 3541 one command line. 3542 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 3543 suppress comparison of a command without otherwise affecting it. 3544 o make.1: document that 3545 35462013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 3547 3548 * Makefile (MAKE_VERSION): 20130321 3549 yes, not quite right but its a cooler number. 3550 Merge with NetBSD make, pick up 3551 o parse.c: fix ParseGmakeExport to be portable 3552 and add a unit-test. 3553 * meta.c: call meta_init() before makefiles are read and if built 3554 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 3555 this let's makefiles test for support. 3556 Call meta_mode_init() to process .MAKE.MODE. 3557 35582013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 3559 3560 * Makefile (MAKE_VERSION): 20130305 3561 Merge with NetBSD make, pick up 3562 o run .STALE: target when a dependency from .depend is missing. 3563 o job.c: add Job_RunTarget() for the above and .BEGIN 3564 35652013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 3566 3567 * Makefile (MAKE_VERSION): 20130303 3568 Merge with NetBSD make, pick up 3569 o main.c: set .MAKE.OS to utsname.sysname 3570 o job.c: more checks for read and poll errors 3571 o var.c: lose VarChangeCase() saves 4% time 3572 35732013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 3574 3575 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 3576 want to use MAKEOBJDIR 3577 35782013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 3579 3580 * Merge with NetBSD make, pick up 3581 o make.1: more info on how shell commands are handled. 3582 o job.c,main.c: detect write errors to job pipes. 3583 35842013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 3585 3586 * Makefile (MAKE_VERSION): 20130123 3587 Merge with NetBSD make, pick up 3588 o meta.c: if script uses .OODATE and meta_oodate() decides 3589 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 3590 o var.c: in debug output indicate which variabale modifiers 3591 apply to. 3592 o remove Check_Cwd logic the makefiles have been fixed. 3593 35942012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 3595 3596 * makefile.in: add a simple makefile for folk who insist on 3597 ./configure; make; make install 3598 it just runs boot-strap 3599 * include mk/* to accommodate the above 3600 * boot-strap: re-work to accommodate the above 3601 mksrc defaults to $Mydir/mk 3602 allow op={configure,build,install,clean,all} 3603 add options to facilitate install 3604 * Makefile.config.in: just the bits set by configure 3605 * Makefile: bump version to 20121212 3606 abandon Makefile.in (NetBSD Makefile) 3607 leverage mk/* instead 3608 * configure.in: ensure srcdir is absolute 3609 36102012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 3611 3612 * Makefile.in (MAKE_VERSION): 20121111 3613 fix generation of bmake.cat1 3614 36152012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 3616 3617 * Makefile.in (MAKE_VERSION): 20121109 3618 Merge with NetBSD make, pick up 3619 o make.c: MakeBuildChild: return 0 so search continues if a 3620 .ORDER dependency is detected. 3621 o unit-tests/order: test the above 3622 36232012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3624 3625 * Makefile.in (MAKE_VERSION): 20121102 3626 Merge with NetBSD make, pick up 3627 o cond.c: allow cond_state[] to grow. 3628 In meta mode with a very large tree, we can hit the limit 3629 while processing dirdeps. 3630 36312012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 3632 3633 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 3634 36352012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3636 3637 * Makefile.in (MAKE_VERSION): 20121010 3638 o protect syntax that only bmake parses correctly. 3639 o remove auto setting of FORCE_MACHINE, use configure's 3640 --with-force-machine=whatever if that is desired. 3641 36422012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 3643 3644 * Makefile.in: do not lose history from make.1 when generating bmake.1 3645 36462012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 3647 3648 * Makefile.in (MAKE_VERSION): 20121007 3649 Merge with NetBSD make, pick up 3650 o compat.c: ignore empty commands - same as jobs mode. 3651 o make.1: document meta chars that cause use of shell 3652 36532012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 3654 3655 * Makefile.in (MAKE_VERSION): bump version to 20120911 3656 * bsd.after-import.mk: include Makefile.inc early and allow it to 3657 override PROG 3658 36592012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 3660 3661 * Makefile.in (MAKE_VERSION): bump version to 20120831 3662 Merge with NetBSD make, pick up 3663 o cast sizeof() to int for comparison 3664 o minor make.1 tweak 3665 36662012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 3667 3668 * Makefile.in (MAKE_VERSION): bump version to 20120830 3669 Merge with NetBSD make, pick up 3670 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 3671 o debug flag -dV causes -V to show raw value regardless. 3672 36732012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 3674 3675 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 3676 gets SRCTOP set. 3677 36782012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 3679 3680 * Makefile.in (MAKE_VERSION): bump version to 20120704 3681 Merge with NetBSD make, pick up 3682 o Job_ParseShell should call Shell_Init if it has been 3683 previously called. 3684 * Makefile.in: set USE_META based on configure result. 3685 also .PARSEDIR is safer indicator of bmake. 3686 36872012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 3688 3689 * Makefile.in: bump version to 20120626 3690 ensure CPPFLAGS is in CFLAGS 3691 * meta.c: avoid nested externs 3692 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 3693 36942012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 3695 3696 * Makefile.in (MAKE_VERSION): bump version to 20120620 3697 Merge with NetBSD make, pick up 3698 o make_malloc.c: avoid including make_malloc.h again 3699 3700 * Makefile.in: avoid bmake only syntax or protect with 3701 .if defined(.MAKE.LEVEL) 3702 * bsd.after-import.mk: replace .-include with .sinclude 3703 ensure? SRCTOP gets a value 3704 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 3705 37062012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 3707 3708 * Makefile.in (MAKE_VERSION): bump version to 20120612 3709 Merge with NetBSD make, pick up 3710 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 3711 for greater portability. 3712 o unit-tests/forloop: check that .for works as expected wrt 3713 number of times and with "quoted strings". 3714 37152012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3716 3717 * Makefile.in (MAKE_VERSION): bump version to 20120606 3718 Merge with NetBSD make, pick up 3719 o compat.c: use kill(2) rather than raise(3). 3720 * configure.in: look for sys/dev/filemon 3721 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 3722 and pass BOOTSTRAP_XTRAS to boot-strap. 3723 37242012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3725 3726 * Makefile.in (MAKE_VERSION): bump version to 20120604 3727 Merge with NetBSD make, pick up 3728 o util.c and var.c share same var for tracking if environ 3729 has been reallocated. 3730 o util.c provide getenv with setenv. 3731 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 3732 when the shell actively strips .MAKE.* from the environment. 3733 We still refer to the variable always as .MAKE.LEVEL 3734 * util.c fix bug in findenv() was finding prefix of name. 3735 * compat.c: re-raising SIGINT etc after running .INTERRUPT 3736 results in more reliable termination of all activity on many 3737 platforms. 3738 37392012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 3740 3741 * Makefile.in (MAKE_VERSION): bump version to 20120602 3742 Merge with NetBSD make, pick up 3743 o for.c: handle quoted items in .for list 3744 37452012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 3746 3747 * Makefile.in (MAKE_VERSION): bump version to 20120530 3748 Merge with NetBSD make, pick up 3749 o compat.c: ignore empty command. 3750 37512012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3752 3753 * Makefile.in (MAKE_VERSION): bump version to 20120524 3754 * FILES: add bsd.after-import.mk: 3755 A simple means of integrating bmake into a BSD build system. 3756 37572012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 3758 3759 * Makefile.in (MAKE_VERSION): bump version to 20120520 3760 Merge with NetBSD make, pick up 3761 o increased limit for nested conditionals. 3762 37632012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 3764 3765 * Makefile.in (MAKE_VERSION): bump version to 20120518 3766 Merge with NetBSD make, pick up 3767 o use _exit(2) in signal hanlder 3768 o Don't use the [dir] cache when building nodes that might have 3769 changed since the last exec. 3770 o Avoid nested extern declaration warnings. 3771 37722012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 3773 3774 * meta.c (fgetLine): avoid %z - not portable. 3775 * parse.c: Since we moved include of sys/mman.h 3776 and def's of MAP_COPY etc. we got dups from a merge. 3777 37782012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 3779 3780 * Makefile.in (MAKE_VERSION): bump version to 20120420 3781 Merge with NetBSD make, pick up 3782 o restore duplicate supression in .MAKE.MAKEFILES 3783 runtime saving can be significant. 3784 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 3785 consumption up to 20%. 3786 37872012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3788 3789 * Makefile.in (MAKE_VERSION): bump version to 20120420 3790 Merge with NetBSD make, pick up 3791 o remove duplicate supression in .MAKE.MAKEFILES 3792 o improved dir cache behavior 3793 o gmake'ish export command 3794 37952012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 3796 3797 * Makefile.in (MAKE_VERSION): bump version to 20120325 3798 Merge with NetBSD make, pick up 3799 o fix parsing of :[#] in conditionals. 3800 38012012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 3802 3803 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 3804 since some systems cannot cope with .Nx <version> 3805 38062011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 3807 3808 * Makefile.in (MAKE_VERSION): bump version to 20111111 3809 Merge with NetBSD make, pick up 3810 o debug output for .PARSEDIR and .PARSEFILE 3811 38122011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 3813 3814 * Makefile.in (MAKE_VERSION): bump version to 20111010 3815 38162011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 3817 3818 * boot-strap: check for an expected file in the dirs we look for. 3819 * make-bootstrap.sh: pass on LDSTATIC 3820 38212011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 3822 3823 * Makefile.in (MAKE_VERSION): bump version to 20111001 3824 Merge with NetBSD make, pick up 3825 o ensure .PREFIX is set for .PHONY 3826 and .TARGET set for .PHONY run via .END 3827 o __dead used consistently 3828 38292011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 3830 3831 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 3832 38332011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 3834 3835 * Makefile.in (MAKE_VERSION): bump version to 20110905 3836 Merge with NetBSD make, pick up 3837 o meta_oodate: ignore makeDependfile 3838 38392011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 3840 3841 * Makefile.in (MAKE_VERSION): bump version to 20110828 3842 Merge with NetBSD make, pick up 3843 o silent=yes in .MAKE.MODE causes meta mode to mark targets 3844 as SILENT if a .meta file is created 3845 38462011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 3847 3848 * Makefile.in (MAKE_VERSION): bump version to 20110818 3849 Merge with NetBSD make, pick up 3850 o in meta mode, if target flagged .META a missing .meta file 3851 means target is out-of-date 3852 o fixes for gcc 4.5 warnings 3853 o simplify job printing code 3854 38552011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3856 3857 * Makefile.in (MAKE_VERSION): bump version to 20110808 3858 Merge with NetBSD make, pick up 3859 o do not touch OP_SPECIAL targets when doing make -t 3860 38612011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3862 3863 * Makefile.in (MAKE_VERSION): bump version to 20110622 3864 Merge with NetBSD make, pick up 3865 o meta_oodate detect corrupted .meta file and declare oodate. 3866 * configure.in: add check for setsid 3867 38682011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3869 3870 * Merge with NetBSD make, pick up 3871 o unit-tests/modts now works on MirBSD 3872 38732011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3874 3875 * Makefile.in (MAKE_VERSION): bump version to 20110606 3876 Merge with NetBSD make, pick up 3877 o ApplyModifiers: when we parse a variable which is not 3878 the entire modifier string, or not followed by ':', do not 3879 consider it as containing modifiers. 3880 o loadfile: ensure newline at end of mapped file. 3881 38822011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3883 3884 * Makefile.in (MAKE_VERSION): bump version to 20110505 3885 Merge with NetBSD make, pick up 3886 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3887 of make's control. In meta mode, any generated file within 3888 said bailiwick, which is found to be missing, causes current 3889 target to be out-of-date. 3890 38912011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3892 3893 * Makefile.in (MAKE_VERSION): bump version to 20110411 3894 Merge with NetBSD make, pick up 3895 o when long modifiers fail to match, check sysV style. 3896 - add a test case 3897 38982011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3899 3900 * Makefile.in (MAKE_VERSION): bump version to 20110410 3901 Merge with NetBSD make, pick up 3902 o :hash - cheap 32bit hash of value 3903 o :localtime, :gmtime - use value as format string for strftime. 3904 39052011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3906 3907 * Makefile.in (MAKE_VERSION): bump version to 20110330 3908 mostly because its a cooler version. 3909 Merge with NetBSD make, pick up 3910 o NetBSD tags for meta.[ch] 3911 o job.c call meta_job_finish() after meta_job_error(). 3912 o meta_job_error() should call meta_job_finish() to ensure 3913 .meta file is closed, and safe to copy - if .ERROR target wants. 3914 meta_job_finish() is safe to call repeatedly. 3915 39162011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3917 3918 * unit-tests/modts: use printf if it is a builtin, 3919 to save us from MirBSD 3920 3921 * Makefile.in (MAKE_VERSION): bump version to 20110329 3922 Merge with NetBSD make, pick up 3923 o fix for use after free() in CondDoExists(). 3924 o meta_oodate() report extra commands and return earlier. 3925 39262011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3927 3928 * Makefile.in (MAKE_VERSION): bump version to 20110327 3929 Merge with NetBSD make, pick up 3930 o meta.c, if .MAKE.MODE contains curdirOk=yes 3931 allow creating .meta files in .CURDIR 3932 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3933 formats the output of 'type' differently - so eat any "()" 3934 39352011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3936 3937 * Makefile.in (MAKE_VERSION): bump version to 20110306 3938 Merge with NetBSD make, pick up 3939 o meta.c, only do getcwd() once 3940 39412011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3942 3943 * Makefile.in (MAKE_VERSION): bump version to 20110305 3944 Merge with NetBSD make, pick up 3945 o correct sysV substitution handling of empty lhs and variable 3946 o correct exists() check for dir with trailing / 3947 o correct handling of modifiers for non-existant variables 3948 during evaluation of conditionals. 3949 o ensure MAP_FILE is defined. 3950 o meta.c use curdir[] now exported by main.c 3951 39522011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3953 3954 * Makefile.in (MAKE_VERSION): bump version to 20110225 3955 Merge with NetBSD make, pick up 3956 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3957 makefiles have been read. 3958 o fix example of :? modifier in man page. 3959 39602011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3961 3962 * Makefile.in (MAKE_VERSION): bump version to 20110214 3963 Merge with NetBSD make, pick up 3964 o meta.c handle realpath() failing when generating meta file 3965 name. 3966 3967 * sigcompat.c: convert to ansi so we can use higher warning levels. 3968 3969 39702011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3971 3972 * Makefile.in (MAKE_VERSION): bump version to 20110207 3973 Merge with NetBSD make, pick up 3974 o fix for bug in meta mode. 3975 39762011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3977 3978 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3979 39802011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3981 3982 * Makefile.in (MAKE_VERSION): bump version to 20110101 3983 Merge with NetBSD make, pick up 3984 o use mmap(2) if available, for reading makefiles 3985 39862010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3987 3988 * Makefile.in (MAKE_VERSION): bump version to 20101215 3989 Merge with NetBSD make, pick up 3990 o ensure meta_job_error() does not report a previous .meta file 3991 as being culprit. 3992 39932010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3994 3995 * Makefile.in (MAKE_VERSION): bump version to 20101210 3996 Merge with NetBSD make, pick up 3997 o meta_oodate: track cwd per process, and only consider target 3998 out-of-date if missing file is outside make's CWD. 3999 Ignore files in /tmp/ etc. 4000 o to ensure unit-tests results match, need to control LC_ALL 4001 as well as LANG. 4002 o fix for parsing bug in var.c 4003 40042010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 4005 4006 * Makefile.in (MAKE_VERSION): bump version to 20101126 4007 Merge with NetBSD make, pick up 4008 o if stale dependency is an IMPSRC, search via .PATH 4009 o meta_oodate: if a referenced file is missing, target is 4010 out-of-date. 4011 o meta_oodate: if a target uses .OODATE in its commands, 4012 it (.OODATE) needs to be recomputed. 4013 o keep a pointer to youngest child node, rather than just its 4014 mtime. 4015 40162010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 4017 4018 * Makefile.in (MAKE_VERSION): bump version to 20101101 4019 40202010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 4021 4022 * machine.sh: like os.sh, 4023 allow for uname -p producing useless drivel 4024 40252010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 4026 4027 * boot-strap: document configure knobs for meta and filemon. 4028 4029 * Makefile.in (MAKE_VERSION): bump version to 20100911 4030 Merge with NetBSD make, pick up 4031 o meta.c - meta mode 4032 4033 * make-bootstrap.sh.in: handle meta.c 4034 * configure.in: add knobs for use_meta and filemon_h 4035 also, look for dirname, str[e]sep and strlcpy 4036 * util.c: add simple err[x] and warn[x] 4037 40382010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 4039 4040 * boot-strap (TOOL_DIFF): set this to ensure tests use 4041 the same version of diff that configure tested 4042 4043 * Makefile.in (MAKE_VERSION): bump version to 20100808 4044 Merge with NetBSD make, pick up 4045 o in jobs mode, when we discover we cannot make something, 4046 call PrintOnError before exit. 4047 40482010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 4049 4050 * Makefile.in (MAKE_VERSION): bump version to 20100806 4051 Merge with NetBSD make, pick up 4052 o formatting fixes for ignored errors 4053 o ensure jobs are cleaned up regardless of where wait() was called. 4054 40552010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 4056 4057 * Makefile.in (MAKE_VERSION): bump version to 20100618 4058 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 4059 40602010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 4061 4062 * Makefile.in (MAKE_VERSION): bump version to 20100616 4063 Merge with NetBSD make, pick up 4064 o man page update 4065 o call PrintOnError from JobFinish when we detect an error we 4066 are not ignoring. 4067 40682010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 4069 4070 * Makefile.in (MAKE_VERSION): bump version to 20100606 4071 Merge with NetBSD make, pick up 4072 o man page update 4073 40742010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 4075 4076 * Makefile.in (MAKE_VERSION): bump version to 20100605 4077 Merge with NetBSD make, pick up 4078 o use bmake_signal() which is a wrapper around sigaction() 4079 in place of signal() 4080 o add .export-env to allow exporting variables to environment 4081 without tracking (so no re-export when the internal value is 4082 changed). 4083 40842010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 4085 4086 * Makefile.in (MAKE_VERSION): bump version to 20100524 4087 Merge with NetBSD make, pick up 4088 o fix for .info et al being greedy. 4089 40902010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 4091 4092 * Makefile.in (MAKE_VERSION): bump version to 20100520 4093 Merge with NetBSD make, pick up 4094 o back to using realpath on argv[0] 4095 but only if contains '/' and does not start with '/'. 4096 40972010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 4098 4099 * boot-strap: use absolute path for bmake when running tests. 4100 4101 * Makefile.in (MAKE_VERSION): bump version to 20100510 4102 Merge with NetBSD make, pick up 4103 o revert use of realpath on argv[0] 4104 too many corner cases. 4105 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 4106 41072010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 4108 4109 * Makefile.in (MAKE_VERSION): bump version to 20100505 4110 Merge with NetBSD make, pick up 4111 o fix for missed SIGCHLD when compiled with SunPRO 4112 actually for bmake, defining FORCE_POSIX_SIGNALS would have 4113 done the job. 4114 41152010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 4116 4117 * Makefile.in (MAKE_VERSION): bump version to 20100430 4118 Merge with NetBSD make, pick up 4119 o fflush stdout before writing to stdout 4120 41212010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 4122 4123 * Makefile.in (MAKE_VERSION): bump version to 20100423 4124 Merge with NetBSD make, pick up 4125 o updated unit tests for Haiku (this time for sure). 4126 * boot-strap: based on patch from joerg 4127 honor --with-default-sys-path better. 4128 * boot-strap: remove mention of --with-prefix-sys-path 4129 41302010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 4131 4132 * Makefile.in (MAKE_VERSION): bump version to 20100422 4133 * Merge with NetBSD make, pick up 4134 o fix for vfork() on Darwin. 4135 o fix for bogus $TMPDIR. 4136 o set .MAKE.MODE=compat for -B 4137 o set .MAKE.JOBS=max_jobs for -j max_jobs 4138 o allow unit-tests to run without any *.mk 4139 o unit-tests/modmisc be more conservative in dirs presumed to exist. 4140 * boot-strap: ignore /usr/share/mk except on NetBSD. 4141 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 4142 ensure sort(1) behaves as expected. 4143 41442010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 4145 4146 * boot-strap: add FindHereOrAbove so we can use -m .../mk 4147 41482010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 4149 4150 * Makefile.in (MAKE_VERSION): bump version to 20100420 4151 * Merge with NetBSD make, pick up 4152 o fix for variable realpath() behavior. 4153 we have to stat(2) the result to be sure. 4154 o fix for .export (all) when nested vars use :sh 4155 41562010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 4157 4158 * Makefile.in (MAKE_VERSION): bump version to 20100414 4159 * Merge with NetBSD make, pick up 4160 o use realpath to resolve argv[0] (for .MAKE) if needed. 4161 o add realpath from libc. 4162 o add :tA to resolve variable via realpath(3) if possible. 4163 41642010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 4165 4166 * Makefile.in (MAKE_VERSION): bump version to 20100408 4167 * Merge with NetBSD make, pick up 4168 o unit tests for .ERROR, .error 4169 o fix for .ERROR to ensure it cannot be default target. 4170 41712010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 4172 4173 * Makefile.in (MAKE_VERSION): bump version to 20100406 4174 * Merge with NetBSD make, pick up 4175 o fix for compat mode "Error code" going to debug_file. 4176 o fix for .ALLSRC being populated twice. 4177 o support for .info, .warning and .error directives 4178 o .MAKE.MODE to control make's operational mode 4179 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 4180 name(s). 4181 o .MAKE.DEPENDFILE to control the name of the depend file 4182 o .ERROR target - run on failure. 4183 41842010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 4185 4186 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 4187 4188 * os.sh,arch.c: patch for Haiku from joerg at netbsd 4189 41902010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 4191 4192 * Makefile.in (MAKE_VERSION): bump version to 20100222 4193 * Merge with NetBSD make, pick up 4194 o better error msg for .for with mutiple inter vars 4195 4196 * boot-strap: 4197 o use make-bootstrap.sh from joerg at netbsd 4198 to avoid the need for a native make when bootstrapping. 4199 o add "" everywhere ;-) 4200 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 4201 otherwise the pre-formated version. 4202 42032010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 4204 4205 * Makefile.in (MAKE_VERSION): bump version to 20100102 4206 * Merge with NetBSD make, pick up: 4207 o fix for -m .../ 4208 42092009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 4210 4211 * Makefile.in (MAKE_VERSION): bump version to 20091118 4212 * Merge with NetBSD make, pick up: 4213 o .unexport 4214 o report lines that start with '.' and should have ':' 4215 (catch typo's of .el*if). 4216 42172009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4218 4219 * configure.in: Ensure that srcdir and mksrc are absolute paths. 4220 42212009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4222 4223 * Makefile.in (MAKE_VERSION): fix version to 20091007 4224 42252009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 4226 4227 * Makefile.in (MAKE_VERSION): bump version to 200910007 4228 * Merge with NetBSD make, pick up: 4229 o fix for parsing of :S;...;...; applied to .for loop iterator 4230 appearing in a dependency line. 4231 42322009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4233 4234 * Makefile.in (MAKE_VERSION): bump version to 20090909 4235 * Merge with NetBSD make, pick up: 4236 o fix for -C, .CURDIR and .OBJDIR 4237 * boot-strap: 4238 o allow share_dir to be set independent of prefix. 4239 o select default share_dir better when prefix ends in $HOST_TARGET 4240 o if FORCE_BSD_MK etc were set, include them in the suggested 4241 install-mk command. 4242 42432009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 4244 4245 * Makefile.in (MAKE_VERSION): bump version to 20090908 4246 * Merge with NetBSD make, pick up: 4247 o .MAKE.LEVEL for recursion tracking 4248 o fix for :M scanning \: 4249 42502009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4251 4252 * configure.in: Don't -D__EXTENSIONS__ if 4253 AC_USE_SYSTEM_EXTENSIONS says "no". 4254 42552009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 4256 4257 * Makefile.in (MAKE_VERSION): bump version to 20090826 4258 Simplify MAKE_VERSION to just the bare date. 4259 * Merge with NetBSD make, pick up: 4260 o -C directory support. 4261 o support for SIGINFO 4262 o use $TMPDIR for temp files. 4263 o child of vfork should be careful about modifying parent's state. 4264 4265 42662009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 4267 4268 * Appy some patches for MiNT from David Brownlee 4269 42702009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 4271 4272 * Makefile.in (BMAKE_VERSION): bump version to 20090222 4273 * Merge with NetBSD make, pick up: 4274 o Possible null pointer de-ref in Var_Set. 4275 42762009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 4277 4278 * Makefile.in (BMAKE_VERSION): bump version to 20090204 4279 * Merge with NetBSD make, pick up: 4280 o bmake_malloc et al moved to their own .c 4281 o Count both () and {} when looking for the end of a :M pattern 4282 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 4283 o strlist.c - functions for processing extendable arrays of pointers to strings. 4284 o ClientData replaced with void *, so const void * can be used. 4285 o New debug flag C for DEBUG_CWD 4286 42872008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 4288 4289 * Makefile.in (BMAKE_VERSION): bump version to 20081111 4290 Apply patch from Joerg Sonnenberge to 4291 configure.in: 4292 o remove some redundant checks 4293 o check for emlloc etc only in libutil and require the whole family. 4294 util.c: 4295 o remove [v]asprintf which is no longer used. 4296 42972008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4298 4299 * Makefile.in (BMAKE_VERSION): bump version to 20081101 4300 * Merge with NetBSD make, pick up: 4301 o util.c: avoid use of putenv() - christos 4302 43032008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 4304 4305 * Makefile.in (BMAKE_VERSION): bump version to 20081030 4306 pick up man page tweaks. 4307 43082008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 4309 4310 * Makefile.in: move processing of LIBOBJS to after is definition! 4311 thus we'll have getenv.c in SRCS only if needed. 4312 4313 * make.1: add examples of how to use :? 4314 4315 * Makefile.in (BMAKE_VERSION): bump version to 20081029 4316 * Merge with NetBSD make, pick up: 4317 o fix for .END processing with -j 4318 o segfault from Parse_Error when no makefile is open 4319 o handle numeric expressions in any variable expansion 4320 o debug output now defaults to stderr, -dF to change it - apb 4321 o make now uses bmake_malloc etc so that it can build natively 4322 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 4323 43242008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 4325 4326 * Makefile.in (BMAKE_VERSION): bump version to 20080808 4327 * Merge with NetBSD make, pick up: 4328 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 4329 long lines in Makefiles 4330 o optimizations for VarQuote by joerg 4331 o fix for PR/38756: dominik: make dumps core on invalid makefile 4332 43332008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 4334 4335 * Makefile.in (BMAKE_VERSION): bump version to 20080515 4336 * Merge with NetBSD make, pick up: 4337 o fix skip setting vars in VAR_GLOBAL context, to handle 4338 cases where VAR_CMD is used for other than command line vars. 4339 43402008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 4341 4342 * boot-strap (make_version): we may need to look in 4343 $prefix/share/mk for sys.mk 4344 4345 * Makefile.in (BMAKE_VERSION): bump version to 20080514 4346 * Merge with NetBSD make, pick up: 4347 o skip setting vars in VAR_GLOBAL context, when already set in 4348 VAR_CMD which takes precedence. 4349 43502008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 4351 4352 * Makefile.in (BMAKE_VERSION): bump version to 20080330 4353 * Merge with NetBSD make, pick up: 4354 o fix for ?= when LHS contains variable reference. 4355 43562008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4357 4358 * merge some patches from NetBSD pkgsrc. 4359 4360 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 4361 the MAKSYSPATH used during bootstrap. 4362 4363 * Makefile.in (BMAKE_VERSION): bump version to 20080215 4364 * Merge with NetBSD make, pick up: 4365 o warn if non-space chars follow 'empty' in a conditional. 4366 43672008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4368 4369 * Makefile.in (BMAKE_VERSION): bump version to 20080118 4370 * Merge with NetBSD make, pick up: 4371 o consider dependencies read from .depend as optional - dsl 4372 o remember when buffer for reading makefile grows - dsl 4373 o add -dl (aka LOUD) - David O'Brien 4374 43752007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 4376 4377 * Makefile.in (BMAKE_VERSION): bump version to 20071022 4378 * Merge with NetBSD make, pick up: 4379 o Allow .PATH<suffix> to be used for .include "" 4380 4381 * boot-strap: source default settings from .bmake-boot-strap.rc 4382 43832007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 4384 4385 * Makefile.in: fix maninstall on various systems 4386 provided that our man.mk is used. 4387 For non-BSD systems we install the preformatted page 4388 into $MANDIR/cat1 4389 43902007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 4391 4392 * boot-strap: make bmake.1 too, so maninstall works. 4393 43942007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 4395 4396 * Makefile.in (BMAKE_VERSION): bump version to 20071014 4397 * Merge with NetBSD make, pick up: 4398 o revamped handling of defshell - configure no longer needs to 4399 know the content of the shells array - apb 4400 o stop Var_Subst modifying its input - apb 4401 o avoid calling ParseTrackInput too often - dsl 4402 44032007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 4404 4405 * Makefile.in (BMAKE_VERSION): bump version to 20071011 4406 * Merge with NetBSD make, pick up: 4407 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 4408 4409 * sigcompat.c: some tweaks for HP-UX 11.x based on 4410 patch from Tobias Nygren 4411 4412 * configure.in: update handling of --with-defshell to match 4413 new make behavior. --with-defshell=/usr/xpg4/bin/sh 4414 will now do what one might hope - provided the chosen shell 4415 behaves enough like sh. 4416 44172007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 4418 4419 * Makefile.in (BMAKE_VERSION): bump to 20071008 4420 * Merge with NetBSD make, pick up: 4421 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 4422 o .export/.MAKE.EXPORTED - export of variables - sjg 4423 o .MAKE.MAKEFILES - track all makefiles read - sjg 4424 o performance improvements - dsl 4425 o revamp parallel job scheduling - dsl 4426 44272006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4428 4429 * Makefile.in (BMAKE_VERSION): bump to 20060728 4430 * Merge with NetBSD make, pick up: 4431 o extra debug info during variable and cond processing - sjg 4432 o shell definition now covers newline - rillig 4433 o minor mem leak in PrintOnError - sjg 4434 44352006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4436 4437 * Makefile.in (BMAKE_VERSION): bump to 20060511 4438 * Merge with NetBSD make, pick up: 4439 o more memory leaks - coverity 4440 o possible overflow in ArchFindMember - coverity 4441 o extract variable modifier code out of Var_Parse() 4442 so it can be called recursively - sjg 4443 o unit-tests/moderrs - sjg 4444 44452006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 4446 4447 * Makefile.in (BMAKE_VERSION): bump to 20060412 4448 * Merge with NetBSD make, pick up: 4449 o fixes for some memory leaks - coverity 4450 o only read first sys.mk etc when searching sysIncPath - sjg 4451 4452 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 4453 setting ${MAKEFILE} - OBATA Akio 4454 44552006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 4456 4457 * Makefile.in (BMAKE_VERSION): bump to 20060318 4458 * Merge with NetBSD make, pick up: 4459 o cleanup of job.c to remove remote handling, distcc is more 4460 useful and this code was likely bit-rotting - dsl 4461 o fix for :P modifier - sjg 4462 * boot-strap: set default prefix to something reasonable 4463 (for me anyway). 4464 44652006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 4466 4467 * Makefile.in (BMAKE_VERSION): bump to 20060301 4468 * Merge with NetBSD make, pick up: 4469 o make .WAIT apply recursively, document and test case - apb 4470 o allow variable modifiers in a variable appear anywhere in 4471 modifier list, document and test case - sjg 4472 44732006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 4474 4475 * Makefile.in (BMAKE_VERSION): bump to 20060222 4476 * Merge with NetBSD make, pick up: 4477 o improved job token handling - dsl 4478 o SIG_DFL the correct signal before exec - dsl 4479 o more debug info during parsing - dsl 4480 o allow variable modifiers to be specified via variable - sjg 4481 * boot-strap: explain why we died if no mksrc 4482 44832005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 4484 4485 * Makefile.in (BMAKE_VERSION): bump to 20051105 4486 * configure.in: always set default_sys_path 4487 default is ${prefix}/share/mk 4488 - remove prefix_sys_path, anyone wanting more than above 4489 needs to set it manually. 4490 44912005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 4492 4493 * boot-strap: make this a bit easier for pkgsrc folk. 4494 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 4495 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 4496 44972005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 4498 4499 * Makefile.in (BMAKE_VERSION): bump to 20051102 4500 * job.c (JobFinish): fix likely ancient merge lossage 4501 fix from Todd Vierling. 4502 * boot-strap (srcdir): allow setting mksrc=none 4503 45042005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 4505 4506 * Makefile.in (BMAKE_VERSION): bump to 20051031 4507 * ranlib.h: skip on OSF too. 4508 (NetBSD PR 31864) 4509 45102005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 4511 4512 * Makefile.in (BMAKE_VERSION): bump to 20051002 4513 fix a silly typo 4514 45152005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 4516 4517 * Makefile.in (BMAKE_VERSION): bump to 20051001 4518 support for UnixWare and some other systems, 4519 based on patches from pkgsrc/bootstrap 4520 45212005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 4522 4523 * Makefile.in (BMAKE_VERSION): bump to 20050901 4524 * Merge with NetBSD make, pick up: 4525 o possible parse error causing us to wander off. 4526 45272005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 4528 4529 * Makefile.in (BMAKE_VERSION): bump to 20050606 4530 * Merge with NetBSD make, pick up: 4531 o :0x modifier for randomizing a list 4532 o fixes for a number of -Wuninitialized issues. 4533 45342005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 4535 4536 * Makefile.in (BMAKE_VERSION): bump to 20050530 4537 * Merge with NetBSD make, pick up: 4538 o Handle dependencies for .BEGIN, .END and .INTERRUPT 4539 4540 * README: was seriously out of date. 4541 45422005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 4543 4544 * Important to use .MAKE rather than MAKE. 4545 45462005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 4547 4548 * Makefile.in (BMAKE_VERSION): bump to 20050315 4549 * Merge with NetBSD make, pick up: 4550 o don't mistake .elsefoo for .else 4551 o use suffix-specific search path correctly 4552 o bunch of style nits 4553 45542004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 4555 4556 * boot-strap: 4557 o ensure that args to --src and --with-mksrc 4558 are resolved before giving them to configure. 4559 o add -o "objdir" so that builder can control it, 4560 default is $OS as determined by os.sh 4561 o add -q to suppress all the install instructions. 4562 45632004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 4564 4565 * Remove __IDSTRING() 4566 4567 * Makefile.in (BMAKE_VERSION): bump to 20040508 4568 * Merge with NetBSD make, pick up: 4569 o posix fixes 4570 - remove '-e' from compat mode 4571 - add support for '+' command-line prefix. 4572 o fix for handling '--' on command-line. 4573 o fix include in lst.lib/lstInt.h to simplify '-I's 4574 o we also picked up replacement of MAKE_BOOTSTRAP 4575 with !MAKE_NATIVE which is a noop, but possibly confusing. 4576 45772004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 4578 4579 * Makefile.in (BMAKE_VERSION): bump to 20040414 4580 * Merge with NetBSD make, pick up: 4581 o allow quoted strings on lhs of conditionals 4582 o issue warning when extra .else is seen 4583 o print line numer when errors encountered during parsing from 4584 string. 4585 45862004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 4587 4588 * Makefile.in (BMAKE_VERSION): bump to 20040220 4589 * Merge with NetBSD make, pick up: 4590 o fix for old :M parsing bug. 4591 o re-jigged unit-tests 4592 45932004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 4594 4595 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 4596 so that './bmake -f Makefile test' works. 4597 45982004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 4599 4600 * Makefile.in: (BMAKE_VERSION): bump to 20040214 4601 * Merge with NetBSD make, pick up: 4602 o search upwards for *.mk 4603 o fix for double free of var substitution buffers 4604 o use of getopt replaced with custom code, since the usage 4605 (re-scanning) isn't posix compatible. 4606 46072004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 4608 4609 * arch.c: don't include ranlib.h on ELF systems 4610 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 4611 46122004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 4613 4614 * Makefile.in (BMAKE_VERSION): bump to 20040118 4615 4616 * boot-strap (while): export vars we assign to on cmdline 4617 * unit-test/Makefile.in: ternary is .PHONY 4618 46192004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 4620 4621 * Makefile.in (BMAKE_VERSION): bump version to 20040108 4622 * Merge with NetBSD make, pick up: 4623 o fix for ternary modifier 4624 46252004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 4626 4627 * Makefile.in (BMAKE_VERSION): bump version to 20040105 4628 * Merge with NetBSD make, pick up: 4629 o fix for cond.c to handle compound expressions better 4630 o variable expansion within sysV style replacements 4631 46322003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 4633 4634 * Make portable snprintf safer - output to /dev/null first to 4635 check space needed. 4636 4637 * Makefile.in (BMAKE_VERSION): bump version to 20031222 4638 * Merge with NetBSD make, pick up: 4639 o -dg3 to show input graph when things go wrong. 4640 o explicitly look for makefiles in objdir if not found in curdir so 4641 that errors in .depend etc will be reported accurarely. 4642 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 4643 instead as it more accurately reflects the expected behavior and 4644 is more consistently implemented. 4645 o avoid use of asprintf. 4646 46472003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 4648 4649 * util.c: Add asprintf and vasprintf. 4650 4651 * Makefile.in (BMAKE_VERSION): bump version to 20030928 4652 * Merge with NetBSD make, pick up: 4653 :[] modifier - allows picking words from a variable. 4654 :tW modifier - allows treating value as one big word. 4655 W flag for :C and :S - allows treating value as one big word. 4656 46572003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 4658 4659 * Merge with NetBSD make 4660 pick up -de flag to enable printing failed command. 4661 don't skip 1st two dir entries (normally . and ..) since 4662 coda does not have them. 4663 46642003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 4665 4666 * Makefile.in (BMAKE_VERSION): bump version to 20030909 4667 * Merge with NetBSD make, pick up: 4668 - changes for -V '${VAR}' to print fully expanded value 4669 cf. -V VAR 4670 - CompatRunCommand now prints the command that failed. 4671 - several files got updated 3 clause Berkeley license. 4672 46732003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 4674 4675 * boot-strap: Allow setting configure args on command line. 4676 46772003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 4678 4679 * configure.in: add --with-defshell to allow sh or ksh 4680 to be selected as default shell. 4681 4682 * Makefile.in: bump version to 20030731 4683 4684 * Merge with NetBSD make 4685 Pick up .SHELL spec for ksh and associate man page changes. 4686 Also compat mode now uses the same shell specs. 4687 46882003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 4689 4690 * var.c (Var_Parse): ensure delim is initialized. 4691 4692 * unit-tests/Makefile.in: use single quotes to avoid problems from 4693 some shells. 4694 4695 * makefile.boot.in: 4696 Run the unit-tests as part of the bootstrap procedure. 4697 46982003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 4699 4700 * unit-tests/Makefile.in: always force complaints from 4701 ${TEST_MAKE} to be from 'make'. 4702 4703 * configure.in: add check for 'diff -u' 4704 also fix some old autoconf'isms 4705 4706 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 4707 if using GCC add -Wno-cast-qual to CFLAGS for var.o 4708 4709 * Merge with NetBSD make 4710 Pick up fix for :ts parsing error in some cases. 4711 Pick unit-tests. 4712 47132003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 4714 4715 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 4716 4717 * var.c (Var_Parse): fix bug in :ts modifier, after const 4718 correctness fixes, must pass nstr to VarModify. 4719 47202003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 4721 4722 * Makefile.in: BMAKE_VERSION switch to a date based version. 4723 We'll generally use the date of last import from NetBSD. 4724 4725 * Merge with NetBSD make 4726 Pick up fixes for const-correctness, now passes WARNS=3 on 4727 NetBSD. 4728 Pick up :ts modifier, allows controlling the separator used 4729 between words in variable expansion. 4730 47312003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 4732 4733 * FILES: include boot-strap and os.sh 4734 4735 * Makefile.in: only set WARNS if we are NetBSD, the effect on 4736 FreeBSD is known to be bad. 4737 4738 * makefile.boot.in (bootstrap): make this the default target. 4739 4740 * Makefile.in: bump version to 3.1.19 4741 4742 * machine.sh: avoid A-Z with tr as it is bound to lose. 4743 47442003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 4745 4746 * Merge with NetBSD make 4747 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 4748 Plus some doc fixes. 4749 47502003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 4751 4752 * Merge with NetBSD make 4753 Pick up fix for PR/1523 - don't count a library as built, if there 4754 is no way to build it 4755 4756 * Bump version to 3.1.18 4757 47582003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 4759 4760 * Merge with NetBSD make 4761 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 4762 appears in src list. 4763 47642003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 4765 4766 * Merge with NetBSD make (mmm 10th anniversary!) 4767 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 4768 pick up -X which tells us to not export VAR=val via setenv if 4769 we are already doing so via MAKEFLAGS. This saves valuable env 4770 space on systems like Darwin. 4771 set MAKE_VERSION to 3.1.17 4772 4773 * parse.c: pix up fix for suffix rules 4774 47752003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 4776 4777 * Merge with NetBSD make. 4778 pick up fix for propagating -B via MAKEFLAGS. 4779 set MAKE_VERSION to 3.1.16 4780 4781 * Apply some patches from pkgsrc-bootstrap/bmake 4782 Originally by Grant Beattie <grant@netbsd.org> 4783 I may have missed some - since they are based on bmake-3.1.12 4784 47852002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 4786 4787 * makefile.boot.in (bmake): update install targets for those that 4788 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 4789 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 4790 4791 * bmake.cat1: update the pre-formatted man page! 4792 47932002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 4794 4795 * Merge with NetBSD make. 4796 pick up fix for premature free of pointer used in call 4797 to Dir_InitCur(). 4798 set MAKE_VERSION to 3.1.15 4799 48002002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 4801 4802 * configure.in: determine suitable value for MKSRC. 4803 override using --with-mksrc=PATH. 4804 4805 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 4806 configs(8) will use 'sun4' as an alias for 'sparc'. 4807 48082002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 4809 4810 * Merge with NetBSD make. 4811 pick up ${.PATH} 4812 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 4813 set MAKE_VERSION to 3.1.14 4814 add configure checks for killpg and sys/socket.h 4815 48162002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 4817 4818 * tag bmake-3-1-13 4819 4820 * makefile.boot.in (bmake): use install-mk 4821 Also setup ./mk before trying to invoke bmake.boot incase we 4822 needed install-mk to create a sys.mk for us. 4823 4824 * configure.in: If we need to add -I${srcdir}/missing, make it an 4825 absolute path so that it works for lst.lib too. 4826 4827 * make.h: always include sys/cdefs.h since we provide one if the 4828 host does not. 4829 4830 * Makefile.in (install-mk): 4831 use MKSRC/install-mk which will do the right thing. 4832 use uname -p for ARCH if possible. 4833 since install-mk will setup links bsd.prog.mk -> prog.mk if 4834 needed, just .include bsd.prog.mk 4835 4836 * Merge with NetBSD make (NetBSD-1.6) 4837 Code is ansi-C only now. 4838 Bug in handling of dotLast is fixed. 4839 Can now assign .OBJDIR and make will reset its notions of life. 4840 New modifiers :tu :tl for toUpper and toLower. 4841 4842Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4843 4844 * Merge with NetBSD make 4845 pick up fix for .END failure in compat mode. 4846 pick up fix for extra va_end() in ParseVErrorInternal. 4847 4848Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 4849 4850 * configure.in: for systems that have sys/cdefs.h check if it is 4851 compatible. If not, include the one under missing, but tell it to 4852 include the native one too - necessary on Linux. 4853 4854 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4855 include_next (for gcc) to get the native sys/cdefs.h 4856 4857Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4858 4859 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4860 leaking descriptors when using -jN. 4861 4862 * job.c (JobPrintCommand): See if "curdir" exists before 4863 attempting to chdir(). Doing the chdir directly in make (when in 4864 compat mode) fails silently, so let the -jN version do the same. 4865 This can happen when building kernels in an object tree and 4866 playing clever games to reset .CURDIR. 4867 4868 * Merged with NetBSD make 4869 pick up .USEBEFORE 4870 4871Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4872 4873 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4874 4875Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4876 4877 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4878 us not to export the iterator variable when using VAR_CMD context. 4879 4880Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4881 4882 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4883 its the wrong "fix". 4884 4885Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4886 4887 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4888 We now simply append the variable names to .MAKEOVERRIDES, and 4889 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4890 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4891 Apart from fixing quoting bugs in previous version, this allows us 4892 to export vars to the environment by simply doing: 4893 .MAKEOVERRIDES+= PATH 4894 Merged again with NetBSD make, but the above is the only change. 4895 4896 * configure.in: added 4897 --disable-pwd-override disable $PWD overriding getcwd() 4898 --disable-check-make-chdir disable make trying to guess 4899 when it should automatically cd ${.CURDIR} 4900 4901 * Merge with NetBSD make, changes include: 4902 parse.c (ParseDoDependency): Spot that the syntax error is 4903 caused by an unresolved cvs/rcs conflict and say so. 4904 var.c: most of Var* functions now take a ctxt as 1st arg. 4905 now does variable substituion on rhs of sysv style modifiers. 4906 4907 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4908 is now done here. We append the name='value' to .MAKEOVERRIDES 4909 rather than directly into MAKEFLAGS as this allows a Makefile to 4910 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4911 very similar mechanism. Note that in adding name='value' to 4912 .MAKEOVERRIDES we do the moral equivalent of: 4913 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4914 4915Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4916 4917 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4918 4919 * Merged with NetBSD make 4920 make -dx can now be used to run commands via sh -x 4921 better error messages on exec failures. 4922 4923Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4924 4925 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4926 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4927 MACHINE etc otherwise they propagate from the previous bmake. 4928 4929 * configure.in (machine): allow --with-machine=generic to make 4930 configure use machine.sh to set MACHINE. 4931 4932 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4933 4934 * Makefile.in: mention in bmake.1 that we use autoconf. 4935 4936 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4937 4938Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4939 4940 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4941 as that rather defeats the usefulness of ${MAKEFILE}. 4942 4943 * main.c (MainParseArgs): append command line variable assignments 4944 to MAKEFLAGS so that they get propagated to child make's. 4945 Apparently this is required POSIX behaviour? Its useful anyway. 4946 4947Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4948 4949 * compat.c (CompatRunCommand): don't use perror() since stdio may 4950 cause problems in child of vfork(). 4951 4952 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4953 This routine prints out the .curdir where we stopped and will also 4954 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4955 4956 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4957 :@ expansion. 4958 4959 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4960 4961 * Added RCSid's for the files we've touched. 4962 4963Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4964 4965 * configure.in: Thanks to some clues from mdb@juniper.net, 4966 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4967 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4968 4969 --with-machine=MACHINE explicitly set MACHINE 4970 --with-force-machine=MACHINE set FORCE_MACHINE 4971 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4972 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4973 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4974 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4975 4976 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4977 4978 * makefile: added a pathetically simple makefile to drive 4979 bootstrapping. Running configure by hand is more useful. 4980 4981 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4982 dependent on NetBSD bsd.*.mk 4983 4984 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4985 _PATH_OBJDIRPREFIX for those that don't want a default. 4986 construct _PATH_DEFSYSPATH from the info we get from configure. 4987 4988 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4989 if MAKE_VERSION is defined. 4990 4991 * compat.c: when we bail, print out the .CURDIR we were in. 4992 4993Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4994 4995 * Merged with NetBSD make 4996 4997 * var.c: fixed a bug in the handling of the modifier :P 4998 if the node as found but the path was null, we segfault trying to 4999 duplicate it. 5000 5001Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 5002 5003 * Merged with NetBSD make 5004 5005 * make.c: Make_OODate's test for a library out of date was using 5006 cmtime where it should have used mtime (my bug). 5007 5008 * compat.c: Use perror() to tell us what really went wrong when we 5009 cannot exec a command. 5010 5011Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5012 5013 * Merged with NetBSD make 5014 5015Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5016 5017 * Merged with NetBSD make 5018 5019Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5020 5021 * Merged with NetBSD make 5022 5023Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5024 5025 * Merged with NetBSD make 5026 5027Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5028 5029 * util.c: don't provide signal() since we use sigcompat.c 5030 5031 * Makefile.in: added a build target. 5032 5033 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 5034 These allow some quite clever magic. 5035 5036 * main.c (main): added support for getenv(MAKESYSPATH). 5037 5038Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5039 5040 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 5041 This avoids objdir having a different value depending on how a 5042 directory was reached (via command line, or subdir.mk). 5043 5044 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 5045 5046Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5047 5048 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 5049 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 5050 I've been testing this in NetBSD's make for some weeks. 5051 5052 * Turn Makefile into Makefile.in and make it useful. 5053 5054Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 5055 5056 * Imported NetBSD's -current make(1) and resolve conflicts. 5057 5058 * Applied autoconf patches from bmake v2 5059 5060 * Imported clean code base from NetBSD-1.0 5061