12023-05-10 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20230510 4 Merge with NetBSD make, pick up 5 o parse.c: don't print null filename in stack traces 6 o var.c: :mtime operate on each word in variable value 7 82023-05-09 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20230509 11 Merge with NetBSD make, pick up 12 o for.c: skip syntactically wrong .for loops 13 o var.c: allow for :gmtime=${mtime} 14 add :mtime[=timestamp] where timestamp is used if stat(2) 15 fails, if :mtime=error stat(2) failure causes error. 16 172023-05-05 Simon J Gerraty <sjg@beast.crufty.net> 18 19 * VERSION (_MAKE_VERSION): 20230504 20 Merge with NetBSD make, pick up 21 o compat.c: fix compile on NetBSD 7.2 22 o make.1: fix documentation of .PREFIX to match reality and POSIX 23 o unit-tests: improved var-scope-local 24 252023-04-14 Simon J Gerraty <sjg@beast.crufty.net> 26 27 * VERSION (_MAKE_VERSION): 20230414 28 Merge with NetBSD make, pick up 29 o minor cleanup 30 312023-03-25 Simon J Gerraty <sjg@beast.crufty.net> 32 33 * main.c: on some systems (eg OS/X) setting RLIMIT_NOFILE to 34 unlimited results in an insane number (0x7fffffffffffffff). 35 If BMAKE_NOFILE_MAX is defined, use that instead. 36 372023-03-22 Simon J Gerraty <sjg@beast.crufty.net> 38 39 * VERSION (_MAKE_VERSION): 20230321 40 Merge with NetBSD make, pick up 41 * make.1: document seemingly unexplained Error code 6. 42 432023-03-18 Simon J Gerraty <sjg@beast.crufty.net> 44 45 * VERSION (_MAKE_VERSION): 20230317 46 Merge with NetBSD make, pick up 47 o compat.c: CompatDeleteTarget skip .PHONY targets to be 48 consistent with JobDeleteTarget. 49 o job.c: fix memory leak in handling sysv :from=to modifiers 50 512023-03-04 Simon J Gerraty <sjg@beast.crufty.net> 52 53 * VERSION (_MAKE_VERSION): 20230303 54 Merge with NetBSD make, pick up 55 o several updated unit-tests 56 572023-02-22 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * VERSION (_MAKE_VERSION): 20230222 60 Merge with NetBSD make, pick up 61 o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS} 62 632023-02-20 Simon J Gerraty <sjg@beast.crufty.net> 64 65 * VERSION (_MAKE_VERSION): 20230218 66 Merge with NetBSD make, pick up 67 o var.c: fix parsing of unevaluated subexpressions with 68 unbalanced '{}' 69 702023-02-17 Simon J Gerraty <sjg@beast.crufty.net> 71 72 * VERSION (_MAKE_VERSION): 20230215 73 Merge with NetBSD make, pick up 74 o inline macros for some variable names 75 o cond.c: reduce complexity of evaluating expressions 76 772023-02-08 Simon J Gerraty <sjg@beast.crufty.net> 78 79 * VERSION (_MAKE_VERSION): 20230208 80 Merge with NetBSD make, pick up 81 o var.c: always use SCOPE_GLOBAL for :_ to avoid problems 82 when it has been used within conditional expressions 83 842023-01-27 Simon J Gerraty <sjg@beast.crufty.net> 85 86 * VERSION (_MAKE_VERSION): 20230127 87 88 * install-sh: if making directories ensure umask is set 89 to match mode. 90 91 * Makefile: use DIRMODE for directories and 92 NONBINMODE for man pages and mk files 93 942023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 95 96 * VERSION (_MAKE_VERSION): 20230126 97 Merge with NetBSD make, pick up 98 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 99 should be read-only. 100 1012023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 102 103 * VERSION (_MAKE_VERSION): 20230123 104 Merge with NetBSD make, pick up 105 o .[NO]READONLY: for control of read-only variables 106 o .SYSPATH: for controlling the path searched for makefiles 107 1082023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 109 110 * VERSION (_MAKE_VERSION): 20230120 111 Merge with NetBSD make, pick up 112 o allow for white-space between command specifiers @+- 113 o add more details to warning 'Extra targets ignored' 114 1152023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 116 117 * machine.sh: leverage os.sh rather than duplicate 118 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 119 for that purpose for the past decade or so. 120 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 121 1222023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 123 124 * VERSION (_MAKE_VERSION): 20230101 125 Merge with NetBSD make, pick up 126 o cleanup comments, inline some LazyBuf_ methods 127 o unit-tests/ add/improve comments in tests 128 o make.1: sync list of built-in variables with reality 129 sort list of built-in variables 130 reduce indentation of the long list of variable names 131 use consistent markup for boolean flags 132 move description of .MAKE.MODE below the .MAKE.META block 133 clarify in which case an expression may omit braces 134 1352022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 136 137 * VERSION (_MAKE_VERSION): 20221024 138 Merge with NetBSD make, pick up 139 o change return type of unlink_file back to int 140 1412022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 142 143 * Makefile: Darwin and Linux can handle MANTARGET=man 144 1452022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 146 147 * VERSION (_MAKE_VERSION): 20220928 148 Merge with NetBSD make, pick up 149 o fix more ignored returns from snprintf 150 o compile with higher warnings 151 1522022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 153 154 * main.c meta.c: do not ignore return from snprintf 155 156 * meta.c strlcpy.c: we need prototype for strlcpy 157 158 * sigcompat.c: fix unused function warnings 159 1602022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 161 162 * VERSION (_MAKE_VERSION): 20220924 163 Merge with NetBSD make, pick up 164 o fix bug in .break reset of conditional depth 165 o overhaul and simplify tracking of conditional depth 166 1672022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 168 169 * VERSION (_MAKE_VERSION): 20220912 170 Merge with NetBSD make, pick up 171 o man page updates 172 1732022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 174 175 * VERSION (_MAKE_VERSION): 20220909 176 Merge with NetBSD make, pick up 177 o update unit-tests to handle deprecation of egrep 178 o cond.c: add more details to error message for numeric comparison 179 180 * configure.in: allow for deprecation of egrep 181 182 * Makefile: Linux can handle MANTARGET=man 183 1842022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 185 186 * VERSION (_MAKE_VERSION): 20220903 187 Merge with NetBSD make, pick up 188 o job.c: fix handling of null bytes in output 189 1902022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 191 192 * VERSION (_MAKE_VERSION): 20220902 193 Merge with NetBSD make, pick up 194 o Allow .break to terminate a .for loop early 195 1962022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 197 198 * VERSION (_MAKE_VERSION): 20220901 199 Merge with NetBSD make, pick up 200 o var.c: fix out-of-bounds errors when parsing 201 2022022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 203 204 * VERSION (_MAKE_VERSION): 20220824 205 Merge with NetBSD make, pick up 206 o var.c: revert change to modifier parsing that breaks 207 shell variable references within ':@var@body@' 208 o adjust unit-tests 209 2102022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 211 212 * VERSION (_MAKE_VERSION): 20220818 213 Merge with NetBSD make, pick up 214 o fix exit status for '-q' (since 1994) 215 2162022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 217 218 * VERSION (_MAKE_VERSION): 20220808 219 Merge with NetBSD make, pick up 220 o var.c: fix parsing of modifiers containing unbalanced subexpressions 221 extract parsing of ':D' and ':U' modifiers into separate function 222 2232022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 224 225 * VERSION (_MAKE_VERSION): 20220726 226 227 * Auto-create objdir for bmake/unit-tests if appropriate 228 2292022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 230 231 * VERSION (_MAKE_VERSION): 20220724 232 Merge with NetBSD make, pick up 233 o make.1: describe variable assignment and evaluation more precisely 234 o parse.c: fix out-of-bounds read when parsing an invalid line 235 o var.c: simplify return type of IsShortVarnameValid 236 2372022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 238 239 * VERSION (_MAKE_VERSION): 20220612 240 Merge with NetBSD make, pick up 241 o allow to randomize build order of targets 242 .MAKE.MODE += randomize-targets can help uncover dependency bugs 243 within a makefile. 244 o compat.c: rename Compat_Run to Compat_MakeAll 245 o make.c: inline MakeBuildParent 246 inline make_abort, improve error details 247 o parse.c: reorganize Parse_Error 248 fix memory leak in wildcard targets and sources 249 separate cases in HandleDependencyTargetMundane 250 extract HandleSingleDependencyTargetMundane 251 rename loadfile to LoadFile 252 split IncludeFile into separate functions 253 condense code for searching a file in the paths 254 fix off-by-one error in buffer for .WAIT nodes 255 o str.c: condense Str_Match 256 make code for string matching syntactically more consistent 257 2582022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 259 260 * VERSION (_MAKE_VERSION): 20220418 261 Merge with NetBSD make, pick up 262 o ignore '.POSIX:' if not in first non-comment line 263 of Makefile as specified by POSIX. 264 add unit-tests for above. 265 o meta.c: make it easier to find usage of identifiers 266 o targ.c: add .USEBEFORE to Targ_PrintType 267 2682022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 269 270 * VERSION (_MAKE_VERSION): 20220414 271 272 * unit-tests/Makefile: simplify checks for shells with 273 BROKEN_TESTS, this helps with other Linux distros that 274 use dash. 275 2762022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 277 278 * VERSION (_MAKE_VERSION): 20220330 279 Merge with NetBSD make, pick up 280 o var.c: fix spacing, and a typo in a test 281 2822022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 283 284 * VERSION (_MAKE_VERSION): 20220326 285 Merge with NetBSD make, pick up 286 o parse.c: try to include 'posix.mk' the first time 287 .POSIX: is encountered, to allow for beter POSIX compliance. 288 o var.c: make debug logs more readable 289 prefer 'long long' over 'long' on 32-bit C99 platforms 290 fix crash on .undef of an environment variable 291 2922022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 293 294 * VERSION (_MAKE_VERSION): 20220303 295 Merge with NetBSD make, pick up 296 o tell meta mode unit tests not to expect filemon 297 o cond.c: make debug logging for comparisons less technical 298 o lst.c: fix mem leak in Lst_Remove 299 o str.c: make code for string matching syntactically more consistent 300 o var.c: simplify ParseModifier_Match 301 3022022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 303 304 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 305 306 * VERSION (_MAKE_VERSION): 20220214 307 Merge with NetBSD make, pick up 308 o cond.c: simplify control flow in CondParser_Comparison 309 o job.c: fix echoing of command with '-' in silent target in jobs mode 310 o main.c: prefix the warning about read-only .OBJDIR with a colon 311 o parse.c: remove redundant conditions 312 o var.c: simplify control flow in ModifyWord_SysVSubst 313 3142022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 315 316 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 317 is any chance we have dash as .SHELL 318 319 * VERSION (_MAKE_VERSION): 20220208 320 Merge with NetBSD make, pick up 321 o more unit tests 322 o meta.c: use a variable to hold command line to be filtered 323 to avoid any side effects from content of command line. 324 3252022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 326 327 * VERSION (_MAKE_VERSION): 20220204 328 Merge with NetBSD make, pick up 329 o use unsigned consistently for line numbers, avoid the need for %z 330 o parse.c: do not step off end of input in Parse_IsVar 331 when checking for target local variable assignments 332 3332022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 334 335 * VERSION (_MAKE_VERSION): 20220202 336 Merge with NetBSD make, pick up 337 o remove redundant declaration of HashIter_Init 338 o make DEBUG0 simpler 339 3402022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 341 342 * cast gn->lineno to avoid %z 343 344 * VERSION (_MAKE_VERSION): 20220130 345 Merge with NetBSD make, pick up 346 o more unit tests 347 o make GNode lineno unsigned to please lint 348 o print location of recursive variable references in commands 349 o print "stack trace" (makefile includes) on fatal errors 350 o make.1: refine documentation for target local assignments 351 3522022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 353 354 * VERSION (_MAKE_VERSION): 20220128 355 Merge with NetBSD make, pick up 356 o inline functions called only once 357 o for.c: clean up AddEscape for building the body of a .for loop 358 o hash.c: merge duplicate code for finding an entry in a hash table 359 replace HashEntry_KeyEquals with strncmp 360 o make.1: document quirks of target local variable assignments. 361 o parse.c: cleanup white-space 362 3632022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 364 365 * VERSION (_MAKE_VERSION): 20220126 366 Merge with NetBSD make, pick up 367 o allow setting target local variables 368 o more unit tests 369 o add missing newline after "cannot continue" message 370 o meta.c: clean up eat_dots 371 o parse.c: fix filename in warning about duplicate script 372 o var.c: when expanding nested variables, check simple things first 373 3742022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 375 376 * VERSION (_MAKE_VERSION): 20220116 377 Merge with NetBSD make, pick up 378 o fix for unit-tests/varname-makeflags on non-BSD systems 379 o use Var_Exists rather than Var_Value where appropriate 380 o remove unnecessary functions for expanding variable names 381 o cond.c: inline EvalBare 382 o main.c: lint cleanup 383 o parse.c: condense code in Parse_IsVar 384 use islower for parsing directives (none have upper case) 385 3862022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 387 388 * VERSION (_MAKE_VERSION): 20220112 389 Merge with NetBSD make, pick up 390 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 391 comparion, rarely needed but useful when it is. 392 3932022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 394 395 * VERSION (_MAKE_VERSION): 20220110 396 Merge with NetBSD make, pick up 397 o inline Buf_Clear 398 o remove redundant braces 399 o rename and inline Targ_Precious 400 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 401 o for.c: clean up handling of .for loops 402 fix reported line numbers of continuation lines 403 add details about .for loop variables to stack traces 404 o job.c: reduce code for initializing error handling in shell 405 o main.c: in Cmd_Exec, return error message instead of format string 406 have as few statements as possible between va_start and va_end 407 add debug logging for capturing the output of external commands 408 o make.c: use consistent variable names for varargs 409 o make_malloc.c: remove duplicate code from bmake_strdup 410 o parse.c: add missing printflike annotations 411 remove redundant lines from stack traces 412 fix stack traces in -dp mode 413 reduce confusing code in ParseForLoop 414 fix line number in debug log after returning from a file 415 rename IFile and its fields to match their actual content 416 clean up ParseDependencySources 417 o var.c: shorten ApplyModifier_Assign 418 rename is_shell_metachar, fix character conversion warning 419 merge calls to ApplyModifier_Time 420 merge duplicate code for modifiers 'gmtime' and 'localtime' 421 4222022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 423 424 * parse.c: loadfile restore extra byte in buffer. 425 4262022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 427 428 * VERSION (_MAKE_VERSION): 20220101 429 Merge with NetBSD make, pick up 430 o more unit-tests 431 o remove unnecessary words from command line options in CmdOpts 432 o rename eunlink to unlink_file 433 o cond.c: make ParseWord in condition parser simpler 434 internally return false for irrelevant leaves in conditions 435 replace table for function lookup in conditions with simple code 436 merge duplicate types CondEvalResult and CondResult 437 o for.c: clean up handling of .for loops and .include directives 438 o main.c: constify cached_realpath 439 clean up Cmd_Exec 440 o parse.c: sync API documentation 441 fix error message when reading more than 1 GB from stdin 442 clean up parsing of makefiles 443 fix line number in error message about open conditionals 444 unexport types VarAssignOp and VarAssign 445 clean up function names 446 remove redundant parameters in dependency parsing functions 447 reduce scope of the list of wildcard target names 448 extract OP_NOTARGET into separate function 449 clean up variable names for parsing dependency lines 450 make debug logging a bit more human-friendly 451 o var.c: condense code in ApplyModifier_Assign 452 4532021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 454 455 * VERSION (_MAKE_VERSION): 20211221 456 Merge with NetBSD make, pick up 457 o more unit-tests 458 o style cleanup 459 o in CLEANUP mode, free interned strings at the very end 460 o fix memory leak for filenames in .for loops 461 o buf.c: avoid memory leak 462 o cond.c: condense CondParser_ComparisonOp 463 o hash.c: change return type of HashTable_Set to void 464 o job.c: change return type of Compat_RunCommand from int to bool 465 o main.c: remove bmake_free 466 o parse.c: condense repetetive code in ParseDirective 467 remove dead code for handling traditional include directives 468 clean up parsing of variable assignments 469 remove unreachable code for parsing the dependency operator 470 clean up loading of files 471 fix memory leak in IncludeFile 472 o var.c: fix memory leak when parsing a variable name 473 fix memory leak from ${.SUFFIXES} 474 reduce memory allocation in modifier ':?' and ':C' 475 condense RegexReplace for the modifier ':C' and avoid strlen 476 merge duplicate code for memory handling in Var_Parse 477 distinguish between short-lived and environment variables 478 rename VarFreeEnv to VarFreeShortLived 479 4802021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 481 482 * cond.c: fix mem leak in CondParser_Leaf 483 4842021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 485 486 * VERSION (_MAKE_VERSION): 20211212 487 Merge with NetBSD make, pick up 488 o rename Parse_SetInput to Parse_PushInput 489 o remove remove period from end of error messages and warnings 490 to be more consistent 491 o arch.c: use simpler memory management for parsing archive members 492 o cond.c: rework and reduce recursion 493 o for.c: rename some functions to better reflect purpose 494 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 495 o var.c: in parse errors, mark whitespace more clearly 496 inline ParseEmptyArg into CondParser_FuncCallEmpty 497 minimize calls to LazyBuf_Get in ParseVarnameLong 498 treat .SUFFIXES as a read-only variable 499 5002021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 501 502 * VERSION (_MAKE_VERSION): 20211207 503 Merge with NetBSD make, pick up 504 o inline HashIter_Init 505 o parse.c: inline common subexpression in ParseRawLine 506 o var.c: merge branches for modifiers ':D' and ':U' 507 extract common code into Expr_Words 508 extract common code into Expr_Str 509 move low-level implementation details out of Var_Parse 510 5112021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 512 513 * VERSION (_MAKE_VERSION): 20211206 514 Merge with NetBSD make, pick up 515 o add unit-tests/varmod-loop-delete 516 o for.c: inline Str_Words - reduce memory allocation 517 o parse.c: do not try to expand fixed variable names 518 only allocate the name of an included file if necessary 519 clean up ParseInclude 520 o var.c: fix use-after-free in modifier ':@' 521 save a memory allocation in each modifier ':O' and ':u' 522 save a memory allocation in the modifier ':[...]' 523 in UnexportVars, replace Str_Words with Substring_Words to 524 reduce allocations and copying. 525 5262021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 527 528 * VERSION (_MAKE_VERSION): 20211204 529 Merge with NetBSD make, pick up 530 o flesh out a number of tests 531 o replace enums with bitfields, this simplifies a lot of code. 532 o var.c: refactor ParseModifierPartSubst 533 5342021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 535 536 * VERSION (_MAKE_VERSION): 20211024 537 Merge with NetBSD make, pick up 538 o Punt on write errors - ENOSPC etc. 539 5402021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 541 542 * configure.in: use_defshell, set both DEFSHELL_INDEX 543 and defshell_path if appropriate. 544 This makes it easier to use say the KSH specification with 545 and alternate path for the shell. 546 547 * configure.in compat.c: for SCO we need to force UseShell 548 549 * configure.in: SCO /bin/sh is not usable, provide a list of 550 alternatives for use as .SHELL. 551 We still have to mark some tests as broken, plus more if we end up 552 with ksh as .SHELL. 553 Issue a warning about skipped tests. 554 555 * boot-strap: leave TOOL_DIFF to configure 556 557 * configure.in: on SCO native cc is not usable, 558 gcc is to be found in /usr/gnu/bin 559 and while ancient is at least able to compile bmake. 560 Thus we add /usr/gnu/bin to PATH if it exists, and later 561 check if $CC would have been found via $PATH. 562 If not we set CC to the full path of $CC. 563 Also gnu diff is known to support -u, so if it exists use it. 564 565 * configure.in: move getopt to AC_REPLACE_FUNCS 566 also add AC_C_INLINE - in an attempt to compile using 567 native cc on SCO. 568 569 * configure.in: check for stresep as well as strsep, since we 570 define the later to the former if necessary, and if we have to 571 provide stresep we also need to provide a prototype. 572 573 * configure.in: we no longer need to worry about 574 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 575 576 * make.h: make sure we have __RCSID 577 578 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 579 can control it. 580 5812021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 582 583 * VERSION: 20211020 584 Merge with NetBSD make, pick up 585 o confirm sync of unit-tests 586 5872021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 588 589 * configure.in: check if timezone Europe/Berlin is supported 590 if not try UTC-1 591 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 592 symlink unit-tests -> ../unit-tests/obj so that 593 unit-tests/Makefile.config is put in the right place. 594 * refine filtering of .OBJDIR in unit-tests 595 5962021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 597 598 * Fix unit-tests on Minix 3.2.0 599 o job.c: do not punt if read of token pipe fails for EAGAIN. 600 On Minix at least, we are not ready to read the childExitJob pipe 601 when poll says we are. 602 There should actually be no reason for this pipe to be 603 non-blocking, but while that works fine on {Net,Free}BSD it 604 breaks another test case on Minix. 605 o unit-tests/Makefile: deal with variants of error messages 606 and use of obj as .OBJDIR 607 6082021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 609 610 * configure.in: add sigaction to AC_REPLACE_FUNCS 611 we also need to check for sigaddset etc just for the benefit of 612 sigact.c 613 614 * Add sigact.c as sigaction.c so this "just works". 615 This should have been done back when bmake_signal started using 616 sigaction (I only just noticed that sigact.c wasn't here ;-) 617 Note: I no longer have access to any system where this would matter. 618 6192021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 620 621 * VERSION (_MAKE_VERSION): 20211011 622 623 * Makefile: cleanup a little 624 625 * configure.in: check for sigsetmask 626 6272021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 628 629 * VERSION (_MAKE_VERSION): 20211001 630 Merge with NetBSD make, pick up 631 o reduce locations reducing text size 632 o remove unnecessary const 633 o cond.c: fix lint warning on i386 634 do not allow unquoted 'left == right' after modifier ':?' 635 o hash.c: fix build for DEBUG_HASH_LOOKUP 636 o var.c: fix memory leak in error case of the ':?' modifier 637 6382021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 639 640 * VERSION (_MAKE_VERSION): 20210911 641 Merge with NetBSD make, pick up 642 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 643 6442021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 645 646 * VERSION (_MAKE_VERSION): 20210906 647 Merge with NetBSD make, pick up 648 o more unit tests 649 o lint cleanup 650 o rename some functions to better fit purpose 651 o for.c: cleanup - remove unnecessary optimization 652 fix embedded newlines 653 o parse.c: correct case for CVS/RCS 654 6552021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 656 657 * VERSION (_MAKE_VERSION): 20210808 658 Merge with NetBSD make, pick up 659 o var.c: remove redundant initialization in ApplyModifier_Order 660 661 * mk/options.mk: issue warning for incorrect usage 662 6632021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 664 665 * var.c: use long for :On if we don't have a 64bit int type 666 667 * VERSION (_MAKE_VERSION): 20210803 668 Merge with NetBSD make, pick up 669 o rework varmod-order tests to avoid qsort instability 670 o make.1: clarify :On entry 671 6722021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 673 674 * VERSION (_MAKE_VERSION): 20210731 675 Merge with NetBSD make, pick up 676 o fix some lint issues 677 o more unit tests 678 o var.c: rework of ApplyModifier_Order 679 6802021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 681 682 * util.c: add strto*l if HAVE_STRTO*L not defined 683 684 * VERSION (_MAKE_VERSION): 20210730 685 Merge with NetBSD make, pick up 686 o var.c: add :On and :Orn for numeric sort 687 disabled if no 64bit type available. 688 o _strtol.h: to implement strto*l functions 689 6902021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 691 692 * VERSION (_MAKE_VERSION): 20210704 693 Merge with NetBSD make, pick up 694 o unit-tests: fix some tests to be more portable 695 - job-output-null not all shells do the same number of write calls 696 - objdir-writable if TMPDIR is set; /tmp may not be usable 697 6982021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * VERSION (_MAKE_VERSION): 20210701 701 Merge with NetBSD make, pick up 702 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 703 some tests just cannot work in some environments. 704 o buf.c: simpler upper bound for length in Buf_AddInt 705 o cond.c: fix grammar in error message for malformed conditional 706 o for.c: prevent newline injection (from ${.newline}) in .for loops 707 o var.c: use more practical data type in RegexReplace 708 (avoid need for %zu) 709 extract RegexReplace from ModifyWord_SubstRegex 710 7112021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 712 713 * VERSION (_MAKE_VERSION): 20210621 714 Merge with NetBSD make, pick up 715 o var.c: only report error for unmatched regex subexpression 716 when linting (-dL) since we cannot tell when an unmatched 717 subexpression is an expected result. 718 o move unmatched regex subexpression tests to 719 varmod-subst-regex.mk and enable strict (lint) mode 720 7212021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 722 723 * VERSION (_MAKE_VERSION): 20210616 724 Merge with NetBSD make, pick up 725 o more unit tests 726 o cond.c: rename If_Eval to EvalBare 727 improve function names for parsing conditions 728 o job.c: fix error handling of targets that cannot be made 729 o var.c: uncompress code in ApplyModifier_Unique 730 7312021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 732 733 * VERSION (_MAKE_VERSION): 20210518 734 Merge with NetBSD make, pick up 735 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 736 o job.c: Print -de error information when running multiple jobs 737 7382021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 739 740 * VERSION (_MAKE_VERSION): 20210420 741 Merge with NetBSD make, pick up 742 o use C99 bool type 743 o convert VarEvalFlags back into an enum 744 o cond.c: do not complain when skipping the condition 'no >= 10' 745 o hash.c: avoid allocating memory for simple variable names 746 o job.c: use distinct wording for writing to the shell commands file 747 remove type name for the abort status in job handling 748 rename PrintOutput to PrintFilteredOutput to avoid confusion 749 o main.c: avoid double slash in name of temporary directory 750 o var.c: use straight quotes for error 'Bad conditional expression' 751 reduce memory allocations in the modifiers ':D' and ':U' 752 rename members of ModifyWord_LoopArgs 753 clean up pattern flags for the modifiers ':S' and ':C' 754 reduce memory allocation and strlen calls in modifier ':from=to' 755 in the ':Q' modifier, only allocate memory if necessary 756 improve performance for LazyBuf 757 remove redundant parameter from ParseVarnameLong 758 migrate ParseModifierPart to use Substring 759 avoid unnecessary calls to strlen when evaluating modifiers 760 migrate ModifyWord functions to use Substring 761 migrate handling of the modifier ':S,from,to,' to Substring 762 reduce debug logging and memory allocation for ${:U...} 763 reduce verbosity of the -dv debug logging for standard cases 764 clean up debug logging for ':M' and ':N' 765 disallow '$' in the variable name of the modifier ':@' 766 simplify access to the name of an expression during evaluation 767 7682021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 769 770 * VERSION (_MAKE_VERSION): 20210330 771 Merge with NetBSD make, pick up 772 o replace enum bit-field with struct bit-field for VarEvalFlags 773 o rename VARE_NONE to VARE_PARSE_ONLY 774 o var.c: rename ApplyModifiersState to ModChain 775 fix double varname expansion in the variable modifier '::=' 776 change debug log for variable evaluation flags to lowercase 777 7782021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 779 780 * VERSION (_MAKE_VERSION): 20210314 781 Merge with NetBSD make, pick up 782 o var.c: avoid evaluating many modifiers in parse only mode 783 in strict mode (-dL) many variable references are parsed twice, 784 the first time just to report parse errors early, so we want to 785 avoid side effects and wasted effort to the extent possible. 786 7872021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 788 789 * VERSION (_MAKE_VERSION): 20210226 790 Merge with NetBSD make, pick up 791 o remove freestanding freeIt variables 792 link via FStr 793 o var.c: restructure code in ParseVarname to target human readers 794 improve error message for; 795 bad modifier in variable expression 796 unclosed modifier 797 unknown modifier 798 remove redundant parameter of ApplySingleModifier 799 explain non-obvious code around indirect variable modifiers 800 quote ':S' in error message about missing delimiter 801 extract ParseModifier_Match into separate function 802 add context information to error message about ':range' modifier 803 add quotes around variable name in an error message 804 reorder code in ModifyWords 805 use more common parameter order for VarSelectWords 806 make ModifyWord_Subst a little easier to understand 807 do not expand variable name from the command line twice 808 extract ExistsInCmdline from Var_SetWithFlags 809 save a hash map lookup when defining a cmdline variable 810 clean up VarAdd, Var_Delete, Var_ReexportVars 811 use bit-shift expressions for VarFlags constants 812 rename constants for VarFlags 813 rename ExprDefined constants for debug logging 814 rename ExprStatus to ExprDefined 815 split parameters for evaluating variable expressions 816 reduce redundant code around ModifyWords 817 print error about failed shell command before overwriting variable 818 clean up ValidShortVarname, ParseVarnameShort 819 rename VarExprStatus to ExprStatus 820 add functions for assigning the value of an expression 821 rename ApplyModifiersState_Define to Expr_Define 822 condense the code for parsing :S and :C modifiers 823 8242021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 825 826 * VERSION (_MAKE_VERSION): 20210206 827 Merge with NetBSD make, pick up 828 o unit-tests: use private TMPDIR to avoid errors from other users 829 8302021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 831 832 * VERSION (_MAKE_VERSION): 20210205 833 Merge with NetBSD make, pick up 834 o avoid strdup in mkTempFile 835 o always use vfork 836 o rename context and ctxt to scope 837 o rename some VAR constants to SCOPE 838 o Var_ functions, move the scope to the front 839 o use shortcut functions Global_Set and Global_Append 840 o add shortcut Global_Delete for deleting a global variable 841 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 842 o compat.c: when exiting due to an error, print graph information 843 o enum.c: remove overengineered Enum_ValueToString 844 o make.c: remove unused INTERNAL flag 845 remove unused return type of MakeBuildParent 846 o parse.c: replace parse error "Need an operator" with better message 847 o var.c: improve documentation about variable scopes 848 rename Var_ValueDirect to GNode_ValueDirect 849 rename old Var_SetWithFlags to Var_SetExpandWithFlags 850 merge SetVar into Var_SetWithFlags 851 split Var_Exists into plain Var_Exists and Var_ExistsExpand 852 split Var_Append into Var_Append and Var_AppendExpand 853 replace enum bit-set with bit-field 854 o unit-tests/var-op-shell: use kill rather than kill -14 855 which broke on darwin with recent update. 856 8572021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 858 859 * configure.in: check for sig_atomic_t and define it as 'int' 860 if missing. 861 862 * VERSION (_MAKE_VERSION): 20210201 863 Merge with NetBSD make, pick up 864 o use sig_atomic_t for caught_sigchld 865 8662021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 867 868 * VERSION (_MAKE_VERSION): 20210130 869 Merge with NetBSD make, pick up 870 o more unit tests 871 o convert SearchPath to struct 872 o split Buf_Destroy into Buf_Done and Buf_DoneData 873 o for.c: split For_Eval into separate functions 874 rename struct For to struct ForLoop 875 o job.c: do not create empty shell files in jobs mode 876 rename JobOpenTmpFile to JobWriteShellCommands 877 reduce unnecessary calls to waitpid 878 o parse.c: in -dp mode, print stack trace with each diagnostic 879 8802021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 881 882 * VERSION (_MAKE_VERSION): 20210123 883 Merge with NetBSD make, pick up 884 o rename Dir_Expand to SearchPath_Expand 885 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 886 o cond.c: fix debug output for comparison operators in conditionals 887 o dir.c: split Dir_FindFile into separate functions 888 8892021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 890 891 * VERSION (_MAKE_VERSION): 20210120 892 Merge with NetBSD make, pick up 893 o fix some more lint nits 894 o refine some unit tests for portability 895 o cond.c: rework parsing 896 8972021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 898 899 * VERSION (_MAKE_VERSION): 20210110 900 Merge with NetBSD make, pick up 901 o fix lint warnings 902 o consistently use boolean expressions in conditions 903 9042021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 905 906 * VERSION (_MAKE_VERSION): 20210108 907 Merge with NetBSD make, pick up 908 o job.c: back to polling token pipe if we want a token 909 o main.c: always print 'stopped in' on first call 910 The execption is if we bail because of an abort token 911 in which case just exit 6. 912 9132021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 914 915 * VERSION (_MAKE_VERSION): 20210101 916 Merge with NetBSD make, pick up 917 o Happy New Year! 918 o rename CmdOpts.lint to strict 919 o exit 2 on technical errors 920 o replace pointers in controlling conditions with booleans 921 o replace global preserveUndefined with VARE_KEEP_UNDEF 922 o compat.c: re-export variables from the actual make process 923 if using vfork this is the effect anyway 924 o cond.c: clean up VarParseResult constants 925 o for.c: fix undefined behavior in SubstVarLong 926 make control flow in SubstVarLong of .for loops more obvious 927 clean up SubstVarShort in .for loops 928 extract ForSubstBody from ForReadMore 929 clean up ForReadMore 930 simplify termination condition for .for loop 931 add error handling for .for loop items 932 job.c: re-export variables from the actual make process 933 parse.c: remove mmap for loading files, only allow files < 1 GiB 934 fix edge case in := with undefined in variable name 935 skip variable expansion in ParseDependencyTargetWord 936 var.c: split ExportVar into separate functions 937 clean up code in extracted ExportVar functions 938 remove dead code from ApplyModifiersIndirect 939 split Var_Subst into easily understandable functions 940 clean up VarParseResult constants 941 9422020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 943 944 * main.c: use .MAKE.DEPENDFILE as set by makefiles 945 9462020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 947 948 * VERSION (_MAKE_VERSION): 20201222 949 Merge with NetBSD make, pick up 950 o make DEBUG macro return boolean 951 o parse.c: fix assertion failure for files without trailing newline 952 o var.c: allow .undef to undefine multiple variables at once 953 remove excess newline from parse errors 954 9552020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 956 957 * VERSION (_MAKE_VERSION): 20201221 958 Merge with NetBSD make, pick up 959 o some unit-test updates 960 9612020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 962 963 * VERSION (_MAKE_VERSION): 20201220 964 Merge with NetBSD make, pick up 965 o more unit tests 966 o return FStr from Var_Parse and Var_Value 967 o spell nonexistent consistently 968 o add str_basename to reduce duplicate code 969 o compat.c: fix .ERROR_TARGET in compat -k mode 970 extract InitSignals from Compat_Run 971 extract UseShell from Compat_RunCommand 972 o cond.c: error out if an '.endif' or '.else' contain extraneous text 973 o for.c: rename ForIterate to ForReadMore 974 o hash.c: clean up hash function for HashTable 975 o lst.c: rename Vector.priv_cap to cap 976 o main.c: remove constant parameter from MakeMode 977 o make.c: use symbolic time for 0 in Make_Recheck 978 extract MakeChildren from MakeStartJobs 979 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 980 fix error message for .info/.warning/.error without argument 981 extract Var_Undef from ParseDirective 982 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 983 rename mode constants for ParseGetLine to be more expressive 984 reduce debugging details in Parse_SetInput 985 fix line numbers in .for loops 986 split ParseGetLine into separate functions 987 fix garbled output for failed shell command 988 var.c: remove redundant assignment in ApplyModifier_SysV 989 error out on unknown variable modifiers at parse time 990 remove wrong error message for indirect modifier in lint mode 991 extract ApplySingleModifier from ApplyModifiers 992 use FStr for memory management in Var_SetWithFlags 993 extract SetVar from Var_SetWithFlags 994 use FStr in VarNew 995 extract string functions from ApplyModifier_To 996 error out if .undef has not exactly 1 argument 997 extract Var_DeleteVar from Var_Delete 998 extract Var_Undef from ParseDirective 999 clean up memory management for expanding variable expressions 1000 10012020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 1002 1003 * avoid %zu 1004 1005 * lst.c: avoid anonymous union 1006 1007 * VERSION (_MAKE_VERSION): 20201212 1008 Merge with NetBSD make, pick up 1009 o more unit tests 1010 o inline Targ_Ignore and Targ_Silent 1011 o split JobFlags into separate fields 1012 o remove const from function parameters (left overs from refactoring) 1013 o eliminate boolean argument of Var_Export 1014 o make API of Buf_Init simpler 1015 o rename ParseRunOptions to ParseCommandFlags 1016 o replace *line with line[0] 1017 o compat.c: fix wrong exit status for multiple failed main targets 1018 refactor Compat_Run to show the error condition more clearly 1019 don't make .END if the main targets already failed (-k mode) 1020 fix exit status in -k mode if a dependency fails 1021 o for.c: clean up Buf_AddEscaped in .for loops 1022 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 1023 make Job_Touch simpler 1024 refactor JobFinish 1025 rename Shell.exitFlag to errFlag 1026 move Job.xtraced to ShellWriter 1027 make printing of shell commands independent from the job 1028 rename shell flags in struct Shell 1029 extract JobOpenTmpFile from JobStart 1030 rename RunFlags to CommandFlags 1031 split various Job.* into separate fields 1032 rename commandShell to shell 1033 extract InitShellNameAndPath from Shell_Init 1034 replace signal handling macros with local functions 1035 replace macro MESSAGE with local function 1036 parse.c: error out on null bytes in makefiles 1037 error out on misspelled directives 1038 rename IFile.nextbuf to readMore 1039 fix undefined behavior in ParseEOF 1040 str.c: remove redundant call to strlen in Str_Words 1041 var.c: error out on misspelled .unexport-env 1042 error out on misspelled .export directives 1043 extract ExportVars from Var_Export 1044 extract ExportVarsExpand from Var_Export 1045 eliminate boolean argument of Var_Export 1046 fix undefined behavior when exporting ${:U } 1047 rename Var_ExportVars to Var_ReexportVars 1048 rename Var_Export1 to ExportVar 1049 10502020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 1051 1052 * VERSION (_MAKE_VERSION): 20201206 1053 Merge with NetBSD make, pick up 1054 o more unit tests 1055 o inline macros for debug logging 1056 o use consistent variable names for list nodes 1057 o define constants for enum zero-values 1058 o dir.c: use fixed format for debug output of the directory cache 1059 remove Dir_InitDir 1060 o lst.c: inline Lst_Enqueue, Vector_Done 1061 o meta.c: remove unused parameter from meta_needed 1062 o parse.c: rename parse functions 1063 o suff.c: extract ExpandChildrenRegular from ExpandChildren 1064 o targ.c: don't concatenate identifiers in Targ_PrintType 1065 o var.c: remove comment decoration 1066 extract UnexportVars from Var_UnExport 1067 extract GetVarnamesToUnexport from Var_UnExport 1068 extract UnexportEnv from Var_UnExport 1069 extract UnexportVar from Var_UnExport 1070 move CleanEnv to UnexportVars 1071 replace pointer comparisons with enum 1072 add FStr to var.c to make memory handling simpler 1073 use FStr in Var_UnExport 1074 move type definitions in var.c to the top 1075 extract FreeEnvVar from Var_Parse 1076 extract ShuffleStrings from ApplyModifier_Order 1077 10782020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 1079 1080 * VERSION (_MAKE_VERSION): 20201130 1081 Merge with NetBSD make, pick up 1082 o add unit tests for META MODE 1083 o reduce memory allocation for dirSearchPath, GNode.parents, 1084 GNode.children, OpenDirs 1085 o reduce pointer indirection for GNode.cohorts and 1086 GNode.implicitParents 1087 o remove pointer indirection from GNode.commands 1088 o inline Lst_ForEachUntil in meta mode 1089 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 1090 clean up memory management for CachedDirs 1091 fix the reference count of dotLast going negative 1092 add debug logging for OpenDirs_Done 1093 extract CacheNewDir from Dir_AddDir 1094 add debug logging for reference counting of CachedDir 1095 rename some Dir functions to SearchPath 1096 o job.c: rename some global variables 1097 o main.c: reduce memory allocation in ReadBuiltinRules 1098 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1099 CmdOpts.makefiles 1100 Add .MAKE.UID and .MAKE.GID 1101 o make.c: reduce memory allocation for/in toBeMade, 1102 Make_ProcessWait, Make_ExpandUse 1103 o meta.c: reduce memory allocation in meta_oodate 1104 o parse.c: reduce memory allocations for parsing dependencies and 1105 targets 1106 o suff.c: reduce memory allocation in suffix handling 1107 11082020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1109 1110 * VERSION (_MAKE_VERSION): 20201124 1111 Merge with NetBSD make, pick up 1112 o .MAKE.{UID,GID} represent uid and gid running make. 1113 o fix error handling for .BEGIN and .END dependency in -k mode 1114 o fix missing "Stop." after failed .END node in -k mode 1115 o use properly typed comparisons in boolean contexts 1116 o replace a few HashTable_CreateEntry with HashTable_Set 1117 o add HashSet type 1118 o compat.c: split Compat_Make into smaller functions 1119 extract DebugFailedTarget from Compat_RunCommand 1120 o dir.c: refactor Dir_UpdateMTime 1121 migrate CachedDir.files from HashTable to HashSet 1122 o make.c: add high-level API for GNode.made 1123 11242020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1125 1126 * VERSION (_MAKE_VERSION): 20201122 1127 Merge with NetBSD make, pick up 1128 o rename GNode.context to vars 1129 o suff.c: cleanup and refactor 1130 rename some functions and vars to better reflect usage 1131 add high-level API for CandidateSearcher 1132 o targ.c: add more debug logging for suffix handling 1133 o more unit tests 1134 o add debug logging for setting and resetting the main target 1135 11362020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1137 1138 * VERSION (_MAKE_VERSION): 20201117 1139 Merge with NetBSD make, pick up 1140 o fix some unit-tests when .SHELL is dash 1141 o rename Targ_NewGN to GNode_New 1142 o make some GNode functions const 1143 o main.c: call Targ_Init before Var_Init 1144 cleanup PrintOnError, getTmpdir and ParseBoolean 1145 o var.c: fix error message of failed :!cmd! modifier 1146 11472020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1148 1149 * VERSION (_MAKE_VERSION): 20201114 1150 Merge with NetBSD make, pick up 1151 o replace a few HashTable_CreateEntry with HashTable_Set 1152 o clean up cached_stats 1153 o rename DEFAULT to defaultNode 1154 o remove redundant struct make_stat 1155 o cond.c: in lint mode, check for ".else <cond>" 1156 use bitset for IfState 1157 replace large switch with if-else in Cond_EvalLine 1158 o job.c: clean up JobExec, JobStart, JobDoOutput 1159 use stderr for error message about failed touch 1160 clean up Job_Touch 1161 replace macro DBPRINTF with JobPrintln 1162 rename JobState to JobStatus 1163 main.c: switch cache for realpath from GNode to HashTable 1164 clean up Fatal 1165 clean up InitDefSysIncPath 1166 use progname instead of hard-coded 'make' in warning 1167 rename Main_SetVarObjdir to SetVarObjdir 1168 make.1: document the -S option 1169 make.c: fix debug output for GNode details 1170 use symbolic names in debug output of GNodes 1171 11722020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1173 1174 * configure.in: fix --with-force-machine-arch 1175 1176 * VERSION (_MAKE_VERSION): 20201112 1177 Merge with NetBSD make, pick up 1178 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1179 checks in InitObjdir. Explicit .OBJDIR target always allows 1180 read-only directory. 1181 o cond.c: clean up Cond_EvalLine 1182 11832020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1184 1185 * VERSION (_MAKE_VERSION): 20201111 1186 Merge with NetBSD make, pick up 1187 o more unit-tests 1188 o style cleanup 1189 remove redundant parentheses from sizeof operator 1190 replace character literal 0 with '\0'. 1191 replace pointer literal 0 with NULL. 1192 remove redundant parentheses. 1193 replace (expr & mask) == 0 with !(expr & mask). 1194 use strict typing in conditions of the form !var 1195 o rename Make_OODate to GNode_IsOODate 1196 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1197 o rename Var_Set_with_flags to Var_SetWithFlags 1198 o rename dieQuietly to shouldDieQuietly 1199 o buf.c: make API of Buf_Init simpler 1200 o compat.c: clean up Compat_Make, Compat_RunCommand, 1201 CompatDeleteTarget and CompatInterrupt 1202 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1203 clean up CondParser_Comparison 1204 o main.c: rename getBoolean and s2Boolean 1205 rename MAKEFILE_PREFERENCE for consistency 1206 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1207 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1208 replace emptyString with allocated empty string 1209 error out on unclosed expressions after the colon 1210 12112020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1212 1213 * VERSION (_MAKE_VERSION): 20201101 1214 Merge with NetBSD make, pick up 1215 o negate NoExecute to GNode_ShouldExecute 1216 o job.c: rename JobMatchShell to FindShellByName 1217 extract EscapeShellDblQuot from JobPrintCommand 1218 extract ParseRunOptions from JobPrintCommand 1219 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1220 treat malformed :range, :ts and :[...] as errors 1221 add tests for the variable modifiers :[words] and :range 1222 12232020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1224 1225 * VERSION (_MAKE_VERSION): 20201031 1226 Merge with NetBSD make, pick up 1227 o format #include directives consistently 1228 o do not look up local variables like .TARGET anywhere else 1229 o main.c: Main_SetObjdir is first called for curdir which may be 1230 readonly 1231 reduce the scope where recursive expressions are detected 1232 remove redundant :tl from getBoolean 1233 clean up mkTempFile 1234 o meta.c: simplify memory allocation in meta_create and meta_oodate 1235 o parse.c: extract loadedfile_mmap from loadfile 1236 o trace.c: document possible undefined behavior with .CURDIR 1237 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1238 rename ismeta to is_shell_metachar 1239 remove debug logging for the :Q variable modifier 1240 rename VarIsDynamic to VarnameIsDynamic 1241 use consistent parameter order in varname parsing functions 1242 extract ParseVarnameLong from Var_Parse 1243 extract ParseVarnameShort from Var_Parse 1244 fix type of ParseModifierPart parameter delim 1245 extract IsEscapedModifierPart from ParseModifierPart 1246 clean up ModifyWords 1247 add test for combining the :@ and :? variable modifiers 1248 12492020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1250 1251 * VERSION (_MAKE_VERSION): 20201030 1252 Merge with NetBSD make, pick up 1253 o change char * to void * in Var_Value 1254 o make iterating over HashTable simpler 1255 o rename VAR_CMD to VAR_CMDLINE 1256 o cond.c: clean up is_separator 1257 fix parse error in string literal in conditional 1258 o main.c: do not use objdir that is not writable 1259 in lint mode, exit with error status on errors 1260 o parse.c: clean up StrContainsWord 1261 fix out-of-bounds pointer in ParseTrackInput 1262 o var.c: rename Str_SYSVMatch and its parameters 1263 remove unsatisfiable conditions in Var_Set_with_flags 1264 document where the variable name is expanded 1265 fix documentation for VARP_SUB_ONE 1266 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1267 document VAR_READONLY 1268 prevent appending to read-only variables 1269 extract MayExport from Var_Export1 1270 remove redundant evaluations in VarFind 1271 replace VarFindFlags with a simple Boolean 1272 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1273 12742020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1275 1276 * VERSION (_MAKE_VERSION): 20201028 1277 Merge with NetBSD make, pick up 1278 o rename defIncPath to defSysIncPath 1279 o initialize all CmdOpts fields 1280 o lst.c: inline Vector_Get 1281 o main.c: refactor main extract 1282 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1283 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1284 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1285 o parse.c: merge curFile into includes 1286 rename predecessor to order_pred 1287 sort ParseSpecial alphabetically 1288 remove unused, undocumented .NOEXPORT 1289 rename ParseSpecial enum values consistently 1290 rename some fields of struct IFile 1291 12922020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1293 1294 * VERSION (_MAKE_VERSION): 20201026 1295 Merge with NetBSD make, pick up 1296 o group the command line options and arguments into a struct 1297 o rename GNode.cmgn to youngestChild 1298 o rename hash functions to identify the type name 1299 o negate OP_NOP and rename it to GNode_IsTarget 1300 o add GNode_Path to access the path of a GNode 1301 o remove macros MIN and MAX 1302 o remove unused Lst_Find and Lst_FindFrom 1303 o arch.c: and make Arch_FindLib simpler 1304 clean up code layout 1305 make Arch_ParseArchive simpler 1306 o cond.c: inline CondFindStrMatch into FuncMake 1307 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1308 omit trailing space in debug output for expanding file patterns 1309 refactor DirMatchFiles 1310 document that the SearchPath of Dir_FindFile may be NULL 1311 remove UNCONST from Dir_Expand 1312 inline DirFindName 1313 o for.c: clean up code for handling .for loops 1314 o hash.c: print hash in debug log with fixed width 1315 clean up hash table functions 1316 reduce amount of string hashing 1317 o job.c: refactor JobDeleteTarget 1318 use proper enum constants for aborting 1319 convert result of JobStart from macros to enum 1320 convert abort reason macros to enum 1321 rework Job_CheckCommands to reduce indentation 1322 rename Shell fields 1323 add field names in declaration of DEFSHELL_CUSTOM 1324 convert JobState and JobFlags to enum types 1325 move handling of the "..." command to JobPrintCommands 1326 o lst.c: clean up 1327 refactor LstNodeNew 1328 remove Lst_Open, Lst_Next, Lst_Close 1329 remove code for circular lists from Lst_Next 1330 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1331 /dev/null or anything starting with "no" 1332 convert macros for debug flags into enum 1333 o make.c: inline Lst_Copy in Make_ExpandUse 1334 o meta.c: inline Lst_Find in meta_oodate 1335 make Lst_RemoveIf simpler in meta_oodate 1336 o parse.c: convert error level for Parse_Error to an enum 1337 o suff.c: properly terminate debug output with newline 1338 add more details to DEBUG_SRC log 1339 replace Dir_CopyDir with Dir_CopyDirSearchPath 1340 don't modify GNode name while rebuilding the suffix graph 1341 o var.c: reduce duplicate code in VarFind 1342 13432020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1344 1345 * VERSION (_MAKE_VERSION): 20201022 1346 Merge with NetBSD make, pick up 1347 o more refactoring and simplification to reduce code size 1348 o var.c: extract CanonicalVarname from VarFind 1349 o make.c: extract UpdateImplicitParentsVars from Make_Update 1350 o main.c: extract PrintVar from doPrintVars 1351 extract HandlePWD from main 1352 o lst.c: inline simple Lst getters 1353 remove unused Lst_ForEach 1354 o job.c: move struct Shell from job.h to job.c 1355 o more unit tests 1356 13572020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1358 1359 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1360 13612020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1362 1363 * VERSION (_MAKE_VERSION): 20201018 1364 Merge with NetBSD make, pick up 1365 o remove USE_IOVEC 1366 o rename some Hash_* apis to Hash* 1367 o replace execError with execDie 1368 o rename Lst_Init to Lst_New 1369 o add tags to enum types 1370 o rename Stack to Vector 1371 o parse.c: more refactoring 1372 o unit-tests: make some tests use line buffered stdout 1373 o unit-tests/Makefile: in meta mode do not make all tests depend on 1374 Makefile, it isn't necessary. 1375 13762020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1377 1378 * main.c: check for CTL_HW being defined. 1379 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1380 disable opt-debug-jobs test until it works on ubuntu 1381 1382 * VERSION (_MAKE_VERSION): 20201010 1383 Merge with NetBSD make, pick up 1384 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1385 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1386 o main.c: extract init_machine and init_machine_arch from main 1387 allow to disable debug logging options 1388 o parse.c: enable format string truncation warnings 1389 extract parsing of sources from ParseDoDependency 1390 split ParseDoSrc into smaller functions 1391 hide implementation details from Parse_DoVar 1392 clean up parsing of variable assignments 1393 split Parse_DoVar into manageable pieces 1394 don't modify the given line during Parse_DoVar 1395 fix out-of-bounds memory access in Parse_DoVar 1396 fix parsing of the :sh assignment modifier 1397 o var.c: rework memory allocation for the name of variables 1398 extract ApplyModifier_Literal into separate function 1399 in lint mode, reject modifiers without delimiter 1400 do not export variable names starting with '-' 1401 o fix double-free bug in -DCLEANUP mode 1402 o more cleanup to enable higher warnings level 1403 o more unit tests 1404 14052020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1406 1407 * VERSION (_MAKE_VERSION): 20201002 1408 Merge with NetBSD make, pick up 1409 o dir.c: use hash table for looking up open directories by name 1410 o main.c: clean up option handling 1411 o parse.c: add missing const for Parse_AddIncludeDir 1412 o var.c: ApplyModifier_To, update pp in each branch 1413 o remove redundant function prototypes 1414 o more unit tests 1415 14162020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1417 1418 * VERSION (_MAKE_VERSION): 20201001 1419 Merge with NetBSD make, pick up 1420 o compat.c: comment about "..." 1421 14222020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1423 1424 * VERSION (_MAKE_VERSION): 20200930 1425 Merge with NetBSD make, pick up 1426 o job.c: split Job.jobPipe into 2 separate fields 1427 replace Lst_Open with direct iteration 1428 o lst.c: remove redundant assertions 1429 o targ.c: replace Lst_Open with direct iteration 1430 o var.c: fix bug in evaluation of indirect variable modifiers 1431 extract ApplyModifier_Quote into separate function 1432 o make debug logging simpler 1433 14342020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1435 1436 * VERSION (_MAKE_VERSION): 20200927 1437 Merge with NetBSD make, pick up 1438 o parse.c: ensure parse errors result in 'stopped in' message. 1439 o compat.c: make parameter of Compat_RunCommand const 1440 o main.c: extract InitVarTarget from main 1441 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1442 refactor ParseDoDependency 1443 o var.c: Var_Subst no longer returns string result 1444 rename Var_ParsePP back to Var_Parse 1445 in lint mode, improve error handling for undefined variables 1446 extract ParseVarname from Var_Parse 1447 o rename Lst_ForEach to Lst_ForEachUntil 1448 o inline Lst_ForEachUntil in several cases 1449 o clean up API for finding and creating GNodes 1450 o fix assertion failure in -j mode with .END node 1451 o inline and remove LstNode_Prev and LstNode_Next 1452 o use fine-grained type names for lists and their nodes 1453 o more unit tests 1454 14552020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1456 1457 * VERSION (_MAKE_VERSION): 20200911 1458 Merge with NetBSD make, pick up 1459 o cond.c: split EvalComparison into smaller functions 1460 reorder parameters of condition parsing functions 1461 reduce code size in CondParser_Eval 1462 rename CondGetString to CondParser_String 1463 add CondLexer_SkipWhitespace 1464 group the condition parsing state into a struct 1465 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1466 o migrate Var_Parse to Var_ParsePP 1467 o add wrappers around ctype.h functions 1468 o lst.c: use a stack instead of a list for the nested include path 1469 o more unit tests 1470 14712020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1472 1473 * make-bootstrap.sh.in: adjust object list 1474 14752020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1476 1477 * VERSION (_MAKE_VERSION): 20200902 1478 Merge with NetBSD make, pick up 1479 o use make_stat to ensure no confusion over valid fields 1480 returned by cached_stat 1481 o var.c: make VarQuote const-correct 1482 o add unit tests for .for 1483 14842020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1485 1486 * VERSION (_MAKE_VERSION): 20200901 1487 Merge with NetBSD make, pick up 1488 o rename Hash_Table fields 1489 o make data types in Dir_HasWildcards more precise 1490 14912020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1492 1493 * VERSION (_MAKE_VERSION): 20200831 1494 Merge with NetBSD make, pick up 1495 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1496 o lst.c: Lst_Open renable assert that list isn't open 1497 o unit test for .TARGET dependent flags 1498 o var.c: fix aliasing bug in VarUniq 1499 o more unit tests for :u 1500 15012020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1502 1503 * VERSION (_MAKE_VERSION): 20200830 1504 Merge with NetBSD make, pick up 1505 o allow for strict type checking for Boolean 1506 o Var_Parse never returns NULL 1507 o Var_Subst never returns NULL 1508 o Lst_Find now takes boolean match function 1509 o rename Lst_Memeber to Lst_FindDatum 1510 o rename LstNode functions to match their type 1511 o rename GNode.iParents to implicitParents 1512 o fix assertion failure for .SUFFIXES in archives 1513 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1514 remove unreachable code from CompatRunCommand 1515 o main.c: simplify getBoolean 1516 o stc.c: replace brk_string with simpler Str_Words 1517 o suff.c: add debug macros 1518 15192020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1520 1521 * VERSION (_MAKE_VERSION): 20200828 1522 Merge with NetBSD make, pick up 1523 o lst.c: inline LstIsValid and LstNodeIsValid 1524 o remove trailing S from Lst function names after migration complete 1525 o more comment cleanup/clarification 1526 o suff.c: clean up suffix handling 1527 o more unit tests 1528 15292020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1530 1531 * VERSION (_MAKE_VERSION): 20200826 1532 Merge with NetBSD make, pick up 1533 o enum.c: distinguish between bitsets containing flags and 1534 ordinary enums 1535 o var.c: fix error message for ::!= modifier with shell error 1536 o fix bugs in -DCLEANUP mode 1537 15382020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1539 1540 * VERSION (_MAKE_VERSION): 20200824 1541 Merge with NetBSD make, pick up 1542 o in debug mode, print GNode details in symbols 1543 15442020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1545 1546 * VERSION (_MAKE_VERSION): 20200823 1547 Merge with NetBSD make, pick up 1548 o lst.c: more asserts, 1549 make args to Lst_Find match others. 1550 o var.c: pass flags to VarAdd 1551 o arch.c: use Buffer 1552 o str.c: brk_string return size_t for nwords 1553 o more unit tests 1554 15552020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1556 1557 * VERSION (_MAKE_VERSION): 1558 Merge with NetBSD make, pick up 1559 o var.c: support for read-only variables eg .SHELL 1560 being the shell used to run scripts. 1561 o lst.c: more simplification 1562 o more documentation and style cleanup 1563 o more unit tests 1564 o ensure unit-test/Makefile is run by TEST_MAKE 1565 o reduce duplication of header inclusion 1566 15672020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1568 1569 * VERSION (_MAKE_VERSION): 20200821 1570 Merge with NetBSD make, pick up 1571 o lst.c: revert invalid assertion - but document it 1572 o dir.c: split Dir_Init into two functions 1573 15742020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1575 1576 * lst.c: needs inttypes.h on Linux 1577 1578 * VERSION (_MAKE_VERSION): 20200820 1579 Merge with NetBSD make, pick up 1580 o make.1: clarify some passages 1581 o var.c: more cleanup, clarify comments 1582 o make_malloc.c: remove unreachable code 1583 o cond.c: make CondGetString easier to debug 1584 o simplify list usage 1585 o unit-tests: more 1586 15872020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1588 1589 * VERSION (_MAKE_VERSION): 20200816 1590 Merge with NetBSD make, pick up 1591 o refactor unit-tests to be more fine grained 1592 not all tests moved yet 1593 15942020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1595 1596 * VERSION (_MAKE_VERSION): 20200814 1597 Merge with NetBSD make, pick up 1598 o more str_concat variants 1599 o more enums for flags 1600 o var.c: cleanup for higher warnings level 1601 16022020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1603 1604 * VERSION (_MAKE_VERSION): 20200810 1605 Merge with NetBSD make, pick up 1606 o more unit tests 1607 o general comment and style cleanup 1608 16092020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1610 1611 * VERSION (_MAKE_VERSION): 20200808 1612 Merge with NetBSD make, pick up 1613 o enum.[ch]: streamline, enums for use in flags and debug output 1614 o cond.c: cleanup 1615 o var.c: reduce duplicate code for modifiers 1616 debug logging for Var_Parse 1617 more detailed debug output 1618 o more unit tests 1619 16202020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1621 1622 * unit-tests/Makefile: -r for recursive and include Makefile.inc 1623 so I can run tests in meta mode 1624 supress extra noise if in meta mode 1625 1626 * VERSION (_MAKE_VERSION): 20200806 1627 Merge with NetBSD make, pick up 1628 o parse.c: remove VARE_WANTRES for LINT 1629 we just want to check parsing (for now). 1630 16312020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1632 1633 * VERSION (_MAKE_VERSION): 20200805 1634 Merge with NetBSD make, pick up 1635 o make.1: Rework the description of dependence operators 1636 16372020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1638 1639 * VERSION (_MAKE_VERSION): 20200803 1640 Merge with NetBSD make, pick up 1641 o revert some C99 usage, for max portability 1642 o unit-tests/lint 1643 16442020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 1645 1646 * VERSION (_MAKE_VERSION): 20200802 1647 Merge with NetBSD make, pick up 1648 o more unit tests 1649 16502020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 1651 1652 * Remove NetBSD specific plumbing from unit-tests/Makefile 1653 1654 * VERSION (_MAKE_VERSION): 20200801 1655 Merge with NetBSD make, pick up 1656 o make Var_Value return const 1657 o size_t for buf sizes 1658 o optimize some buffer operations - avoid strlen 1659 16602020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1661 1662 * VERSION (_MAKE_VERSION): 20200731 1663 Merge with NetBSD make, pick up 1664 o var.c: fix undefinded behavior for incomplete :t modifier 1665 fixes unit-test/moderrs on Ubuntu 1666 o parse.c: When parsing variable assignments other than := 1667 if DEBUG(LINT) test substition of value, so we get a file and 1668 line number in the resulting error. 1669 o dir.c: fix parsing of nested braces in dependency lines 1670 add unit-tests 1671 16722020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1673 1674 * VERSION (_MAKE_VERSION): 20200730 1675 Merge with NetBSD make, pick up 1676 o var.c: minor cleanup 1677 o unit-tests: more tests to improve code coverage 1678 16792020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 1680 1681 * VERSION (_MAKE_VERSION): 20200728 1682 Merge with NetBSD make, pick up 1683 o var.c: more optimizations 1684 16852020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1686 1687 * VERSION (_MAKE_VERSION): 20200726 1688 Merge with NetBSD make, pick up 1689 o collapse lsd.lib into lst.c - reduce code size and allow inlining 1690 o lots of function comment updates 1691 o var.c: more optimizations 1692 o make return of Var_Parse const 1693 16942020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1695 1696 * VERSION (_MAKE_VERSION): 20200720 1697 Merge with NetBSD make, pick up 1698 o DEBUG_HASH report stats at end and tone down the noise 1699 o var.c: each flag type gets its own prefix. 1700 move SysV string matching to var.c 1701 make ampersand in ${VAR:from=to&} an ordinary character 1702 cleanup and simplify implementation of modifiers 1703 o make.1: move documentation for assignment modifiers 1704 17052020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1706 1707 * VERSION (_MAKE_VERSION): 20200718 1708 Merge with NetBSD make, pick up 1709 o DEBUG_HASH to see how well the hash tables are working 1710 17112020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1712 1713 * bsd.after-import.mk: make sure we update unit-tests/Makefile 1714 17152020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1716 1717 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 1718 1719 * VERSION (_MAKE_VERSION): 20200710 1720 Merge with NetBSD make, pick up 1721 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 1722 o meta.c: target flagged .META is out-of-date if meta file missing 1723 17242020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 1725 1726 * VERSION (_MAKE_VERSION): 20200709 1727 Merge with NetBSD make, pick up 1728 o cond.c: fix for compare_expression when doEval=0 1729 o unit-tests/Makefile: rework 1730 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 1731 17322020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1733 1734 * VERSION (_MAKE_VERSION): 20200704 1735 Merge with NetBSD make, pick up 1736 (most of this by rillig@) 1737 o lots of style and white-space cleanup 1738 o lots more unit tests for variable modifiers 1739 o simplified description of some functions 1740 o str.c: refactor Str_Match 1741 o var.c: debugging output for :@ 1742 constify VarModify parameter 1743 fix :hash modifier on 16-bit platforms 1744 remove unnecessary forward declarations 1745 refactor ApplyModifier_SysV to have less indentation 1746 simplify code for :E and :R 1747 clean up code for :H and :T 1748 refactor ApplyModifiers 1749 1750 * var.c: we need stdint.h on some platforms to get uint32_t 1751 * unit-test/Makefile: we need to supress the specific error 1752 for RE substitution error in modmisc, since it varies accross 1753 different OS. 1754 17552020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 1756 1757 * VERSION (_MAKE_VERSION): 20200702 1758 Merge with NetBSD make, pick up 1759 o var.c: more improvements to avoiding unnecessary evaluation 1760 use enums for flags 1761 o remove flags arg to Var_Set which outside of var.c is always 0 1762 17632020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1764 1765 * VERSION (_MAKE_VERSION): 20200701 1766 Merge with NetBSD make, pick up 1767 o var.c: with change to cond.c; ensure that nested variables 1768 within a variable name are expanded. 1769 o unit-tests/varmisc.mk: test for nested varname 1770 17712020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 1772 1773 * VERSION (_MAKE_VERSION): 20200629 1774 Merge with NetBSD make, pick up 1775 o cond.c: do not eval unnecessary terms of conditionals. 1776 17772020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 1778 1779 * VERSION (_MAKE_VERSION): 20200625 1780 Merge with NetBSD make, pick up 1781 o meta.c: report error if lseek in filemon_read fails 1782 17832020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1784 1785 * VERSION (_MAKE_VERSION): 20200622 1786 Merge with NetBSD make, pick up 1787 o dieQuietly: ignore OP_SUBMAKE as too aggressive 1788 17892020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 1790 1791 * VERSION (_MAKE_VERSION): 20200619 1792 Merge with NetBSD make, pick up 1793 o str.c: performance improvement for Str_Match for multiple '*' 1794 o dieQuietly: supress the failure output from make 1795 when failing node is a sub-make or a sibling failed. 1796 This cuts down greatly on unhelpful noise at the end of 1797 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 1798 17992020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1800 1801 * FILES: add LICENSE to appease some packagers. 1802 This is an attempt to fairly represent the license on almost 1803 200 files, which are almost all BSD-3-Clause 1804 The few exceptions being more liberal. 1805 1806 * VERSION (_MAKE_VERSION): 20200610 1807 Merge with NetBSD make, pick up 1808 o unit test for :Or 1809 18102020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1811 1812 * VERSION (_MAKE_VERSION): 20200606 1813 Merge with NetBSD make, pick up 1814 o make.1: cleanup 1815 1816 * Makefile: fix depends for main.o which broke MAKE_VERSION 1817 18182020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 1819 1820 * VERSION (_MAKE_VERSION): 20200605 1821 Merge with NetBSD make, pick up 1822 o dir.c: cached_stats - don't confuse stat and lstat results. 1823 o var.c: add :Or for reverse sort. 1824 18252020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1826 1827 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1828 also if --with-filemon= specifies path to filemon.h 1829 set use_filemon=dev 1830 * dirname.c: remove include of namespace.h 1831 18322020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1833 1834 * VERSION (_MAKE_VERSION): 20200517 1835 Merge with NetBSD make, pick up 1836 o modified dollar tests to avoid shell dependencies 1837 o new tests for .INCLUDEFROM 1838 18392020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1840 1841 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1842 to not depend so much on shell behavior 1843 18442020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1845 1846 * VERSION (_MAKE_VERSION): 20200510 1847 Merge with NetBSD make, pick up 1848 o unit test for dollar handling 1849 18502020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 1851 1852 * VERSION (_MAKE_VERSION): 20200506 1853 Merge with NetBSD make, pick up 1854 o str.c: empty string does not match % pattern 1855 plus unit-test changes 1856 18572020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 1858 1859 * VERSION (_MAKE_VERSION): 20200504 1860 May the 4th be with you 1861 Merge with NetBSD make, pick up 1862 o var.c: import handling of old sysV style modifier using '%' 1863 o str.c: refactor brk_string 1864 o unit-tests: add test case for lazy conditions 1865 18662020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1867 1868 * VERSION (_MAKE_VERSION): 20200418 1869 1870 * configure.in: use_makefile=no for cygwin et al. 1871 case insensitive filesystems just don't work if both 1872 makefile and Makefile exist. 1873 NOTE: bmake does not support cygwin and likely never will, 1874 but if brave souls want to try it - help them out. 1875 18762020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 1877 1878 * VERSION (_MAKE_VERSION): 20200402 1879 Merge with NetBSD make, pick up 1880 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 1881 a blank command is perfectly valid. 1882 18832020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1884 1885 * VERSION (_MAKE_VERSION): 20200330 1886 Merge with NetBSD make, pick up 1887 o make.h: extern debug_file 1888 18892020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1890 1891 * VERSION (_MAKE_VERSION): 20200318 1892 Merge with NetBSD make, pick up 1893 o meta.c: meta_oodate, check for corrupted meta file 1894 earlier and more often. 1895 18962020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1897 1898 * VERSION (_MAKE_VERSION): 20200220 1899 19002020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1901 1902 * boot-strap: unset MAKEFLAGS 1903 19042020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1905 1906 * VERSION (_MAKE_VERSION): 20200212 1907 * meta.c: meta_compat_parent check for USE_FILEMON 1908 patch from Soeren Tempel 1909 19102020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1911 1912 * VERSION: 20200205 1913 Merge with NetBSD make, pick up 1914 o meta.c: fix compat mode, need to call meta_job_output() 1915 o job.c: extra fds for meta mode not needed if using filemon_dev 1916 19172020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1918 1919 * VERSION: 20200122 1920 Merge with NetBSD make, pick up 1921 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1922 returns FALSE. 1923 19242020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1925 1926 * VERSION: 20200121 1927 Merge with NetBSD make, pick up 1928 o filemon/filemon_{dev,ktrace}.c: allow selection of 1929 filemon implementation. filemon_dev.c uses the kernel module 1930 while filemon_ktrace.c leverages the fktrace api available in 1931 NetBSD. filemon_ktrace.c can hopefully form the basis for 1932 adding support for other tracing mechanisms such as strace on 1933 Linux. 1934 o meta.c: when target is out-of-date per normal make rules 1935 record value of .OODATE in meta file. 1936 19372019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1938 1939 * VERSION: 20190926 1940 Merge with NetBSD make, pick up 1941 o parse.c: don't pass NULL to realpath(3) 1942 some versions cannot handle it. 1943 19442019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1945 1946 * VERSION: 20190409 1947 Merge with NetBSD make, pick up 1948 o parse.c: ParseDoDependency: free paths rather than assert 1949 19502018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1951 1952 * VERSION: 20181222 1953 1954 * configure.in: add --without-makefile to avoid generating 1955 makefile and make-bootstrap.sh 1956 1957 * include Makefile.inc if it exists 1958 1959 * Use Makefile and Makefile.config.in in unit-tests 1960 so we can use just: make obj && make && make test 1961 when bmake is already available. 1962 We add --without-makefile to CONFIGURE_ARGS in this case. 1963 1964 * tweak bsd.after-import.mk (captures Makefile.config etc 1965 after import to FreeBSD for example) to cope with all the above. 1966 19672018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1968 1969 * VERSION: 20181221 1970 Merge with NetBSD make, pick up 1971 o parse.c: ParseVErrorInternal use .PARSEDIR 1972 and apply if relative, and then use .PARSEFILE 1973 for consistent result. 1974 19752018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1976 1977 * VERSION: 20181220 1978 Merge with NetBSD make, pick up 1979 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1980 is relative 1981 o var.c: avoid SEGFAULT in .unexport-env 1982 when MAKELEVEL is not set 1983 19842018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1985 1986 * VERSION: 20181216 1987 Merge with NetBSD make, pick up 1988 o fix for unit-tests/varquote.mk on Debian 1989 19902018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1991 1992 * VERSION: 20180919 1993 Merge with NetBSD make, pick up 1994 o var.c: add :q 1995 o dir.c: cleanup caching of stats 1996 19972018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1998 1999 * Makefile.config.in: use += where it makes sense. 2000 20012018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2002 2003 * VERSION: 20180512 2004 Merge with NetBSD make, pick up 2005 o job.c: skip polling job token pipe 2006 20072018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2008 2009 * VERSION: 20180405 2010 Merge with NetBSD make, pick up 2011 o parse.c: be more cautious about detecting depenency line 2012 rather than sysV style include. 2013 20142018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 2015 2016 * VERSION: 20180222 2017 Merge with NetBSD make, pick up 2018 o parse.c: avoid calling sysconf for every call to loadfile 2019 20202018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2021 2022 * VERSION: 20180218 2023 Merge with NetBSD make, pick up 2024 o var.c: Var_Set handle NULL value anytime. 2025 20262018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 2027 2028 * VERSION: 20180212 2029 Merge with NetBSD make, pick up 2030 o parse.c: do not treat .info as warning with -W 2031 20322017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 2033 2034 * VERSION: 20171207 2035 Merge with NetBSD make, pick up 2036 o var.c: Var_Append use Var_Set if var not previously set 2037 so that VAR_CMD is handled correctly. 2038 Add a suitable unit-test. 2039 20402017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2041 2042 * VERSION (_MAKE_VERSION): 20171126 2043 2044 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 2045 since AC_TRY_COMPILE puts input inside main() 2046 which upsets modern compilers. 2047 20482017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 2049 2050 * VERSION: 20171118 2051 Merge with NetBSD make, pick up 2052 o var.c: do not append to variable set on command line 2053 add unit-test to catch this. 2054 20552017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 2056 2057 * VERSION: 20171028 2058 Merge with NetBSD make, pick up 2059 o main.c: ignore empty MAKEOBJDIR 2060 2061 * Makefile.config.in: 2062 make @prefix@ @machine*@ and @default_sys_path@ defaults. 2063 20642017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 2065 2066 * VERSION: 20171005 2067 2068 * unit-tests/dotwait.mk: redirect stderr through pipe for more 2069 consistent result on some platforms. 2070 20712017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 2072 2073 * machine.sh: entry for AIX 2074 20752017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2076 2077 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 2078 to a file that can be included by configure as well as make. 2079 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2080 20812017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 2082 2083 * Makefile (_MAKE_VERSION): 20170810 2084 Merge with NetBSD make, pick up 2085 o meta.c: if target is in subdir we only need subdir name in 2086 meta_name. 2087 20882017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 2089 2090 * Makefile (_MAKE_VERSION): 20170720 2091 Merge with NetBSD make, pick up 2092 o compat.c: pass SIGINT etc onto child and wait for it to exit 2093 before we self-terminate. 2094 20952017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2096 2097 * Makefile (_MAKE_VERSION): 20170711 2098 forgot to update after merge on 20170708 ;-) 2099 o main.c: refactor to reduce size of main function. 2100 add -v option to always fully expand values. 2101 o meta.c: ensure command output in meta file has ending newline 2102 even when filemon not being used. 2103 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2104 pathname via ':L' since any ':' in pathname breaks that. 2105 Instead set a '${.p.}' to pathname in the target context and 2106 use that. 2107 21082017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2109 2110 * Makefile (_MAKE_VERSION): 20170510 2111 Merge with NetBSD make, pick up 2112 o main.c: Main_SetObjdir: ensure buf2 is in scope 2113 21142017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2115 2116 * Makefile (_MAKE_VERSION): 20170505 2117 see mk/ChangeLog 2118 21192017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2120 2121 * parse.c: not everyone has stdint.h 2122 21232017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2124 2125 * Makefile (_MAKE_VERSION): 20170501 2126 see mk/ChangeLog 2127 21282017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2129 2130 * Makefile (_MAKE_VERSION): 20170421 2131 Merge with NetBSD make, pick up 2132 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2133 21342017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2135 2136 * Makefile (_MAKE_VERSION): 20170420 2137 Merge with NetBSD make, pick up 2138 o main.c: only use -C arg "as is" if it contains no 2139 relative component. 2140 21412017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2142 2143 * Makefile (_MAKE_VERSION): 20170418 2144 Merge with NetBSD make, pick up 2145 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2146 21472017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2148 2149 * Makefile (_MAKE_VERSION): 20170417 2150 Merge with NetBSD make, pick up 2151 o fixes a number of coverity complaints 2152 - check return value of fseek, fcntl 2153 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2154 JobPrintCommand, ParseTraditionalInclude 2155 - use bmake_malloc() where NULL is not tollerated 2156 - use MAKE_ATTR_UNUSED rather that kludges like 2157 return(unused ? 0 : 0) 2158 - use purge_cached_realpaths() rather than abuse cached_realpath() 2159 21602017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2161 2162 * Makefile (_MAKE_VERSION): 20170413 2163 Merge with NetBSD make, pick up 2164 o main.c: when setting .OBJDIR ignore '$' in paths. 2165 2166 * job.c: use MALLOC_OPTIONS to set malloc_options. 2167 21682017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2169 2170 * Makefile (_MAKE_VERSION): 20170411 2171 Merge with NetBSD make, pick up 2172 o str.c: Str_Match: allow [^a-z] to behave as expected. 2173 21742017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2175 2176 * Makefile (_MAKE_VERSION): 20170326 2177 Merge with NetBSD make, pick up 2178 o main.c: purge relative paths from realpath cache when .OBJDIR 2179 is changed. 2180 21812017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2182 2183 * Makefile (_MAKE_VERSION): 20170311 2184 Merge with NetBSD make, pick up 2185 o main.c: only use -C arg "as is" if it starts with '/'. 2186 21872017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2188 2189 * Makefile (_MAKE_VERSION): 20170301 2190 Merge with NetBSD make, pick up 2191 o main.c: use -C arg "as is" rather than getcwd() 2192 if they identify the same directory. 2193 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2194 21952017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2196 2197 * Makefile (_MAKE_VERSION): 20170201 2198 Merge with NetBSD make, pick up 2199 o var.c: allow :_=var and avoid use of special context. 2200 22012017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2202 2203 * Makefile (_MAKE_VERSION): 20170130 2204 Merge with NetBSD make, pick up 2205 o var.c: add :range and :_ 2206 o main.c: partially initialize Dir_* before MainParseArgs() 2207 can be called. 2208 If -V, skip Main_ExportMAKEFLAGS() 2209 22102017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2211 2212 * Makefile (_MAKE_VERSION): 20170114 2213 Merge with NetBSD make, pick up 2214 o var.c: allow specifying the utc value used by :{gm,local}time 2215 22162016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2217 2218 * Makefile (_MAKE_VERSION): 20161212 2219 Merge with NetBSD make, pick up 2220 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2221 22222016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2223 2224 * Makefile (_MAKE_VERSION): 20161209 2225 Merge with NetBSD make, pick up 2226 o main.c: cleanup setting of .OBJDIR 2227 o parse.c: avoid coredump from (var)=val 2228 22292016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2230 2231 * Makefile (_MAKE_VERSION): 20161126 2232 Merge with NetBSD make, pick up 2233 o make.c: Make_OODate: report src node name if path not set 2234 22352016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2236 2237 * Makefile (_MAKE_VERSION): 20160926 2238 Merge with NetBSD make, pick up 2239 o support for .DELETE_ON_ERROR: (remove targets that fail) 2240 22412016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2242 2243 * Makefile MAN: tweak .Dt to match ${PROG} 2244 22452016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2246 2247 * Makefile (_MAKE_VERSION): 20160818 2248 its a neater number; pick up whitespace fixes to man page. 2249 22502016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2251 2252 * Makefile (_MAKE_VERSION): 20160817 2253 Merge with NetBSD make, pick up 2254 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2255 so we can call it before adding entries to missingFiles. 2256 Thus we do not track files we have been told to ignore. 2257 22582016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2259 2260 * Makefile (_MAKE_VERSION): 20160815 2261 Merge with NetBSD make, pick up 2262 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2263 pathnames, and skip if the expansion is empty. 2264 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2265 22662016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2267 2268 * Makefile (_MAKE_VERSION): 20160812 2269 Merge with NetBSD make, pick up 2270 o meta.c: remove all missingFiles entries that match a deleted 2271 dir. 2272 o main.c: set .ERROR_CMD if possible. 2273 22742016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2275 2276 * Makefile (_MAKE_VERSION): 20160606 2277 Merge with NetBSD make, pick up 2278 o dir.c: extend mtimes cache to others via cached_stat() 2279 22802016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2281 2282 * Makefile (_MAKE_VERSION): 20160604 2283 Merge with NetBSD make, pick up 2284 o meta.c: missing filemon data is only relevant if we read a 2285 meta file. 2286 Also do not return oodate for a missing metafile if gn->path 2287 points to .CURDIR 2288 22892016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2290 2291 * Makefile (_MAKE_VERSION): 20160602 2292 Merge with NetBSD make, pick up 2293 o cached_realpath(): avoid hitting filesystem more than necessary. 2294 o meta.c: refactor need_meta decision, add knobs for 2295 missing meta file and filemon data wrt out-of-datedness. 2296 22972016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2298 2299 * Makefile (_MAKE_VERSION): 20160528 2300 2301 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2302 23032016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2304 2305 * Makefile (_MAKE_VERSION): 20160512 2306 Merge with NetBSD make, pick up 2307 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2308 this is useful for gcov builds. 2309 o propagate errors from filemon(4). 2310 23112016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2312 2313 * Makefile (_MAKE_VERSION): 20160509 2314 Merge with NetBSD make, pick up 2315 o remove use of non-standard types u_int etc. 2316 o meta.c: apply realpath() before matching against metaIgnorePaths 2317 23182016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2319 2320 * Makefile (_MAKE_VERSION): 20160404 2321 Merge with NetBSD make, pick up 2322 o allow makefile to set .MAKE.JOBS 2323 2324 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2325 23262016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2327 2328 * Makefile (_MAKE_VERSION): 20160315 2329 Merge with NetBSD make, pick up 2330 o fix handling of archive members 2331 23322016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2333 2334 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2335 with checks for ${MAKE_VERSION} 2336 23372016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2338 2339 * Makefile (MAKE_VERSION): 20160310 2340 Merge with NetBSD make, pick up 2341 o meta.c: treat missing Read file same as Write, incase we Delete it. 2342 23432016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2344 2345 * Makefile (MAKE_VERSION): 20160307 2346 Merge with NetBSD make, pick up 2347 o var.c: fix :ts\nnn to be octal by default. 2348 o meta.c: meta_finish() to cleanup memory. 2349 23502016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2351 2352 * Makefile (MAKE_VERSION): 20160226 2353 Merge with NetBSD make, pick up 2354 o meta.c: allow meta file for makeDepend if makefiles want it. 2355 23562016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2357 2358 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2359 for backwards compatability. 2360 2361 * Makefile (MAKE_VERSION): 20160220 2362 Merge with NetBSD make, pick up 2363 o var.c: add knob to control handling of '$$' in := 2364 23652016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2366 2367 * Makefile (MAKE_VERSION): 20160218 2368 Merge with NetBSD make, pick up 2369 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2370 post the changes to Var_Subst. 2371 Var_Subst now takes flags, and does not consume '$$' in := 2372 23732016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2374 2375 * Makefile (MAKE_VERSION): 20160217 2376 Merge with NetBSD make, pick up 2377 o var.c: preserve '$$' in := 2378 o parse.c: add .dinclude for handling included 2379 makefile like .depend 2380 23812015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2382 2383 * Makefile (MAKE_VERSION): 20151220 2384 Merge with NetBSD make, pick up 2385 o suff.c: re-initialize suffNull when clearing suffixes. 2386 23872015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2388 2389 * Makefile (MAKE_VERSION): 20151201 2390 Merge with NetBSD make, pick up 2391 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2392 o meta.c: meta_oodate: use lstat(2) for checking link target 2393 in case it is a symlink. 2394 o var.c: avoid calling brk_string and Var_Export1 with empty 2395 strings. 2396 23972015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2398 2399 * Makefile (MAKE_VERSION): 20151126 2400 Merge with NetBSD make, pick up 2401 o parse.c: ParseTrackInput don't access beyond 2402 end of old value. 2403 24042015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2405 2406 * Makefile (MAKE_VERSION): 20151022 2407 2408 * Add support for BSD/OS which lacks inttypes.h 2409 and really needs sys/param.h for sys/sysctl.h 2410 also 'type' is not a shell builtin. 2411 2412 * var.c: eliminate uint32_t and need for inttypes.h 2413 2414 * main.c: PrintOnError flush stdout before run .ERROR 2415 2416 * parse.c: cope with _SC_PAGESIZE not being defined. 2417 2418 24192015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2420 2421 * Makefile (MAKE_VERSION): 20151020 2422 Merge with NetBSD make, pick up 2423 o var.c: fix uninitialized var 2424 24252015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2426 2427 * var.c: the conditional expressions used with ':?' can be 2428 expensive, if already discarding do not evaluate or expand 2429 anything. 2430 24312015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2432 2433 * Makefile (MAKE_VERSION): 20151010 2434 Merge with NetBSD make, pick up 2435 o Add Boolean wantit flag to Var_Subst and Var_Parse 2436 when FALSE we know we are discarding the result and can 2437 skip operations like Cmd_Exec. 2438 24392015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2440 2441 * Makefile (MAKE_VERSION): 20151009 2442 Merge with NetBSD make, pick up 2443 o var.c: don't check for NULL before free() 2444 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2445 24462015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2447 2448 * Makefile (MAKE_VERSION): 20150910 2449 Merge with NetBSD make, pick up 2450 o main.c: with -w print Enter/Leaving messages for objdir too 2451 if necessary. 2452 o centralize shell metachar handling 2453 2454 * FILES: add metachar.[ch] 2455 24562015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2457 2458 * Makefile (MAKE_VERSION): 20150606 2459 Merge with NetBSD make, pick up 2460 o make.1: document .OBJDIR target 2461 24622015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2463 2464 * Makefile (MAKE_VERSION): 20150505 2465 Merge with NetBSD make, pick up 2466 o cond.c: be strict about lhs of comparison when evaluating .if 2467 but less so when called from variable expansion. 2468 o unit-tests/cond2.mk: test various error conditions 2469 24702015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2471 2472 * machine.sh (MACHINE): Add Bitrig 2473 patch from joerg@netbsd.org 2474 24752015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2476 2477 * Makefile (MAKE_VERSION): 20150418 2478 Merge with NetBSD make, pick up 2479 o job.c: use memmove() rather than memcpy() 2480 2481 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2482 case, so skip it. 2483 24842015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2485 2486 * Makefile (MAKE_VERSION): 20150411 2487 bump version - only mk/ changes. 2488 24892015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2490 2491 * Makefile (MAKE_VERSION): 20150410 2492 Merge with NetBSD make, pick up 2493 o document different handling of '-' in jobs mode vs compat 2494 o fix jobs mode so that '-' only applies to whole job 2495 when shell lacks hasErrCtl 2496 o meta.c: use separate vars to track lcwd and latestdir (read) 2497 per process 2498 24992015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2500 2501 * Makefile (MAKE_VERSION): 20150401 2502 Merge with NetBSD make, pick up 2503 o meta.c: close meta file in child 2504 2505 * Makefile: use BINDIR.bmake if set. 2506 Same for MANDIR and SHAREDIR 2507 Handy for testing release candidates 2508 in various environments. 2509 25102015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2511 2512 * move initialization of savederr to block where it is used 2513 to avoid spurious warning from gcc5 2514 25152014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2516 2517 * Makefile (MAKE_VERSION): 20141111 2518 just a cooler number 2519 25202014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2521 2522 * Makefile (MAKE_VERSION): 20141105 2523 Merge with NetBSD make, pick up 2524 o revert major overhaul of suffix handling 2525 and POSIX compliance - too much breakage 2526 and impossible to make backwards compatible. 2527 o we still have the new unit test structure which is ok. 2528 o meta.c ensure "-- filemon" is at start of line. 2529 25302014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2531 2532 * configure.in: test that result of getconf PATH_MAX is numeric 2533 and discard if not. Apparently needed for Hurd. 2534 25352014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2536 2537 * Makefile (MAKE_VERSION): 20140830 2538 Merge with NetBSD make, pick up 2539 o major overhaul of suffix handling 2540 o improved POSIX compliance 2541 o overhauled unit-tests 2542 25432014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2544 2545 * Makefile (MAKE_VERSION): 20140620 2546 Merge with NetBSD make, pick up 2547 o var.c return varNoError rather than var_Error for ::= modifiers. 2548 25492014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2550 2551 * Makefile (MAKE_VERSION): 20140522 2552 Merge with NetBSD make, pick up 2553 o var.c detect some parse errors. 2554 25552014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2556 2557 * Fix spelling errors - patch from Pedro Giffuni 2558 25592014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2560 2561 * Makefile (MAKE_VERSION): 20140214 2562 Merge with NetBSD make, pick up 2563 o .INCLUDEFROM* 2564 o use Var_Value to get MAKEOBJDIR[PREFIX] 2565 o reduced realloc'ign in brk_string. 2566 * configure.in: add a check for compiler supporting __func__ 2567 25682014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2569 2570 * boot-strap: ignore mksrc=none 2571 25722014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2573 2574 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2575 25762014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2577 2578 * Makefile (MAKE_VERSION): 20140101 2579 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2580 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2581 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2582 Hurd) 2583 * configure.in: Add AC_PREREQ and check for 2584 sysctl; patch from Andrew Shadura andrewsh at debian.org 2585 25862013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2587 2588 * Makefile (MAKE_VERSION): 20131010 2589 * lose the const from arg to systcl to avoid problems on older BSDs. 2590 25912013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2592 2593 * Makefile (MAKE_VERSION): 20131001 2594 Merge with NetBSD make, pick up 2595 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2596 hw.machine_arch if necessary. 2597 o meta.c: meta_oodate - need to look at src of Link and target 2598 of Move as well. 2599 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 2600 provide __arraycount() if needed. 2601 26022013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 2603 2604 * Makefile (MAKE_VERSION): 20130904 2605 Merge with NetBSD make, pick up 2606 o Add VAR_INTERNAL context, so that internal setting of 2607 MAKEFILE does not override value set by makefiles. 2608 26092013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 2610 2611 * Makefile (MAKE_VERSION): 20130902 2612 Merge with NetBSD make, pick up 2613 o CompatRunCommand: only apply shellErrFlag when errCheck is true 2614 26152013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2616 2617 * Makefile (MAKE_VERSION): 20130828 2618 Merge with NetBSD make, pick up 2619 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 2620 o Call Job_SetPrefix() from Job_Init() so makefiles have 2621 opportunity to set .MAKE.JOB.PREFIX 2622 26232013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 2624 2625 * Makefile (MAKE_VERSION): 20130730 2626 Merge with NetBSD make, pick up 2627 o Allow suppression of --- job -- tokens by setting 2628 .MAKE.JOB.PREFIX empty. 2629 26302013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2631 2632 * Makefile (MAKE_VERSION): 20130716 2633 Merge with NetBSD make, pick up 2634 o number of gmake compatibility tweaks 2635 -w for gmake style entering/leaving messages 2636 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 2637 handle MAKEFLAGS containing only letters. 2638 o when overriding a GLOBAL variable on the command line, 2639 delete it from GLOBAL context so -V doesn't show the wrong 2640 value. 2641 26422013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 2643 2644 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 2645 2646 * Makefile (MAKE_VERSION): 20130706 2647 Merge with NetBSD make, pick up 2648 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 2649 true so that CompatRunCommand() can use it, to ensure 2650 consistent behavior with jobs mode. 2651 o use MAKE_LEVEL_ENV to define the variable to propagate 2652 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 2653 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 2654 paths to ignore. 2655 26562013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2657 2658 * Makefile (MAKE_VERSION): 20130604 2659 Merge with NetBSD make, pick up 2660 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 2661 to avoid leaking descriptors. 2662 26632013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2664 2665 * Makefile (MAKE_VERSION): 20130528 2666 Merge with NetBSD make, pick up 2667 o var.c: cleanup some left-overs in VarHash() 2668 26692013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2670 2671 * Makefile (MAKE_VERSION): 20130520 2672 generate manifest from component FILES rather than have to 2673 update FILES when mk/FILES changes. 2674 26752013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2676 2677 * Makefile (MAKE_VERSION): 20130518 2678 Merge with NetBSD make, pick up 2679 o suff.c: don't skip all processsing for .PHONY targets 2680 else wildcard srcs do not get expanded. 2681 o var.c: expand name of variable to delete if necessary. 2682 26832013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2684 2685 * Makefile (MAKE_VERSION): 20130330 2686 Merge with NetBSD make, pick up 2687 o meta.c: refine the handling of .OODATE in commands. 2688 Rather than suppress command comparison for the entire script 2689 as though .NOMETA_CMP had been used, only suppress it for the 2690 one command line. 2691 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 2692 suppress comparison of a command without otherwise affecting it. 2693 o make.1: document that 2694 26952013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 2696 2697 * Makefile (MAKE_VERSION): 20130321 2698 yes, not quite right but its a cooler number. 2699 Merge with NetBSD make, pick up 2700 o parse.c: fix ParseGmakeExport to be portable 2701 and add a unit-test. 2702 * meta.c: call meta_init() before makefiles are read and if built 2703 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 2704 this let's makefiles test for support. 2705 Call meta_mode_init() to process .MAKE.MODE. 2706 27072013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2708 2709 * Makefile (MAKE_VERSION): 20130305 2710 Merge with NetBSD make, pick up 2711 o run .STALE: target when a dependency from .depend is missing. 2712 o job.c: add Job_RunTarget() for the above and .BEGIN 2713 27142013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2715 2716 * Makefile (MAKE_VERSION): 20130303 2717 Merge with NetBSD make, pick up 2718 o main.c: set .MAKE.OS to utsname.sysname 2719 o job.c: more checks for read and poll errors 2720 o var.c: lose VarChangeCase() saves 4% time 2721 27222013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 2723 2724 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 2725 want to use MAKEOBJDIR 2726 27272013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 2728 2729 * Merge with NetBSD make, pick up 2730 o make.1: more info on how shell commands are handled. 2731 o job.c,main.c: detect write errors to job pipes. 2732 27332013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 2734 2735 * Makefile (MAKE_VERSION): 20130123 2736 Merge with NetBSD make, pick up 2737 o meta.c: if script uses .OODATE and meta_oodate() decides 2738 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 2739 o var.c: in debug output indicate which variabale modifiers 2740 apply to. 2741 o remove Check_Cwd logic the makefiles have been fixed. 2742 27432012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2744 2745 * makefile.in: add a simple makefile for folk who insist on 2746 ./configure; make; make install 2747 it just runs boot-strap 2748 * include mk/* to accommodate the above 2749 * boot-strap: re-work to accommodate the above 2750 mksrc defaults to $Mydir/mk 2751 allow op={configure,build,install,clean,all} 2752 add options to facilitate install 2753 * Makefile.config.in: just the bits set by configure 2754 * Makefile: bump version to 20121212 2755 abandon Makefile.in (NetBSD Makefile) 2756 leverage mk/* instead 2757 * configure.in: ensure srcdir is absolute 2758 27592012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2760 2761 * Makefile.in (MAKE_VERSION): 20121111 2762 fix generation of bmake.cat1 2763 27642012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 2765 2766 * Makefile.in (MAKE_VERSION): 20121109 2767 Merge with NetBSD make, pick up 2768 o make.c: MakeBuildChild: return 0 so search continues if a 2769 .ORDER dependency is detected. 2770 o unit-tests/order: test the above 2771 27722012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2773 2774 * Makefile.in (MAKE_VERSION): 20121102 2775 Merge with NetBSD make, pick up 2776 o cond.c: allow cond_state[] to grow. 2777 In meta mode with a very large tree, we can hit the limit 2778 while processing dirdeps. 2779 27802012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 2781 2782 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 2783 27842012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2785 2786 * Makefile.in (MAKE_VERSION): 20121010 2787 o protect syntax that only bmake parses correctly. 2788 o remove auto setting of FORCE_MACHINE, use configure's 2789 --with-force-machine=whatever if that is desired. 2790 27912012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 2792 2793 * Makefile.in: do not lose history from make.1 when generating bmake.1 2794 27952012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 2796 2797 * Makefile.in (MAKE_VERSION): 20121007 2798 Merge with NetBSD make, pick up 2799 o compat.c: ignore empty commands - same as jobs mode. 2800 o make.1: document meta chars that cause use of shell 2801 28022012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 2803 2804 * Makefile.in (MAKE_VERSION): bump version to 20120911 2805 * bsd.after-import.mk: include Makefile.inc early and allow it to 2806 override PROG 2807 28082012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 2809 2810 * Makefile.in (MAKE_VERSION): bump version to 20120831 2811 Merge with NetBSD make, pick up 2812 o cast sizeof() to int for comparison 2813 o minor make.1 tweak 2814 28152012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2816 2817 * Makefile.in (MAKE_VERSION): bump version to 20120830 2818 Merge with NetBSD make, pick up 2819 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 2820 o debug flag -dV causes -V to show raw value regardless. 2821 28222012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2823 2824 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2825 gets SRCTOP set. 2826 28272012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2828 2829 * Makefile.in (MAKE_VERSION): bump version to 20120704 2830 Merge with NetBSD make, pick up 2831 o Job_ParseShell should call Shell_Init if it has been 2832 previously called. 2833 * Makefile.in: set USE_META based on configure result. 2834 also .PARSEDIR is safer indicator of bmake. 2835 28362012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2837 2838 * Makefile.in: bump version to 20120626 2839 ensure CPPFLAGS is in CFLAGS 2840 * meta.c: avoid nested externs 2841 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2842 28432012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2844 2845 * Makefile.in (MAKE_VERSION): bump version to 20120620 2846 Merge with NetBSD make, pick up 2847 o make_malloc.c: avoid including make_malloc.h again 2848 2849 * Makefile.in: avoid bmake only syntax or protect with 2850 .if defined(.MAKE.LEVEL) 2851 * bsd.after-import.mk: replace .-include with .sinclude 2852 ensure? SRCTOP gets a value 2853 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 2854 28552012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 2856 2857 * Makefile.in (MAKE_VERSION): bump version to 20120612 2858 Merge with NetBSD make, pick up 2859 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 2860 for greater portability. 2861 o unit-tests/forloop: check that .for works as expected wrt 2862 number of times and with "quoted strings". 2863 28642012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2865 2866 * Makefile.in (MAKE_VERSION): bump version to 20120606 2867 Merge with NetBSD make, pick up 2868 o compat.c: use kill(2) rather than raise(3). 2869 * configure.in: look for sys/dev/filemon 2870 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 2871 and pass BOOTSTRAP_XTRAS to boot-strap. 2872 28732012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2874 2875 * Makefile.in (MAKE_VERSION): bump version to 20120604 2876 Merge with NetBSD make, pick up 2877 o util.c and var.c share same var for tracking if environ 2878 has been reallocated. 2879 o util.c provide getenv with setenv. 2880 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 2881 when the shell actively strips .MAKE.* from the environment. 2882 We still refer to the variable always as .MAKE.LEVEL 2883 * util.c fix bug in findenv() was finding prefix of name. 2884 * compat.c: re-raising SIGINT etc after running .INTERRUPT 2885 results in more reliable termination of all activity on many 2886 platforms. 2887 28882012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2889 2890 * Makefile.in (MAKE_VERSION): bump version to 20120602 2891 Merge with NetBSD make, pick up 2892 o for.c: handle quoted items in .for list 2893 28942012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 2895 2896 * Makefile.in (MAKE_VERSION): bump version to 20120530 2897 Merge with NetBSD make, pick up 2898 o compat.c: ignore empty command. 2899 29002012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2901 2902 * Makefile.in (MAKE_VERSION): bump version to 20120524 2903 * FILES: add bsd.after-import.mk: 2904 A simple means of integrating bmake into a BSD build system. 2905 29062012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2907 2908 * Makefile.in (MAKE_VERSION): bump version to 20120520 2909 Merge with NetBSD make, pick up 2910 o increased limit for nested conditionals. 2911 29122012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2913 2914 * Makefile.in (MAKE_VERSION): bump version to 20120518 2915 Merge with NetBSD make, pick up 2916 o use _exit(2) in signal hanlder 2917 o Don't use the [dir] cache when building nodes that might have 2918 changed since the last exec. 2919 o Avoid nested extern declaration warnings. 2920 29212012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2922 2923 * meta.c (fgetLine): avoid %z - not portable. 2924 * parse.c: Since we moved include of sys/mman.h 2925 and def's of MAP_COPY etc. we got dups from a merge. 2926 29272012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2928 2929 * Makefile.in (MAKE_VERSION): bump version to 20120420 2930 Merge with NetBSD make, pick up 2931 o restore duplicate supression in .MAKE.MAKEFILES 2932 runtime saving can be significant. 2933 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2934 consumption up to 20%. 2935 29362012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2937 2938 * Makefile.in (MAKE_VERSION): bump version to 20120420 2939 Merge with NetBSD make, pick up 2940 o remove duplicate supression in .MAKE.MAKEFILES 2941 o improved dir cache behavior 2942 o gmake'ish export command 2943 29442012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2945 2946 * Makefile.in (MAKE_VERSION): bump version to 20120325 2947 Merge with NetBSD make, pick up 2948 o fix parsing of :[#] in conditionals. 2949 29502012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2951 2952 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2953 since some systems cannot cope with .Nx <version> 2954 29552011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2956 2957 * Makefile.in (MAKE_VERSION): bump version to 20111111 2958 Merge with NetBSD make, pick up 2959 o debug output for .PARSEDIR and .PARSEFILE 2960 29612011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2962 2963 * Makefile.in (MAKE_VERSION): bump version to 20111010 2964 29652011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2966 2967 * boot-strap: check for an expected file in the dirs we look for. 2968 * make-bootstrap.sh: pass on LDSTATIC 2969 29702011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2971 2972 * Makefile.in (MAKE_VERSION): bump version to 20111001 2973 Merge with NetBSD make, pick up 2974 o ensure .PREFIX is set for .PHONY 2975 and .TARGET set for .PHONY run via .END 2976 o __dead used consistently 2977 29782011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2979 2980 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2981 29822011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2983 2984 * Makefile.in (MAKE_VERSION): bump version to 20110905 2985 Merge with NetBSD make, pick up 2986 o meta_oodate: ignore makeDependfile 2987 29882011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2989 2990 * Makefile.in (MAKE_VERSION): bump version to 20110828 2991 Merge with NetBSD make, pick up 2992 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2993 as SILENT if a .meta file is created 2994 29952011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2996 2997 * Makefile.in (MAKE_VERSION): bump version to 20110818 2998 Merge with NetBSD make, pick up 2999 o in meta mode, if target flagged .META a missing .meta file 3000 means target is out-of-date 3001 o fixes for gcc 4.5 warnings 3002 o simplify job printing code 3003 30042011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 3005 3006 * Makefile.in (MAKE_VERSION): bump version to 20110808 3007 Merge with NetBSD make, pick up 3008 o do not touch OP_SPECIAL targets when doing make -t 3009 30102011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 3011 3012 * Makefile.in (MAKE_VERSION): bump version to 20110622 3013 Merge with NetBSD make, pick up 3014 o meta_oodate detect corrupted .meta file and declare oodate. 3015 * configure.in: add check for setsid 3016 30172011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 3018 3019 * Merge with NetBSD make, pick up 3020 o unit-tests/modts now works on MirBSD 3021 30222011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 3023 3024 * Makefile.in (MAKE_VERSION): bump version to 20110606 3025 Merge with NetBSD make, pick up 3026 o ApplyModifiers: when we parse a variable which is not 3027 the entire modifier string, or not followed by ':', do not 3028 consider it as containing modifiers. 3029 o loadfile: ensure newline at end of mapped file. 3030 30312011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3032 3033 * Makefile.in (MAKE_VERSION): bump version to 20110505 3034 Merge with NetBSD make, pick up 3035 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 3036 of make's control. In meta mode, any generated file within 3037 said bailiwick, which is found to be missing, causes current 3038 target to be out-of-date. 3039 30402011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 3041 3042 * Makefile.in (MAKE_VERSION): bump version to 20110411 3043 Merge with NetBSD make, pick up 3044 o when long modifiers fail to match, check sysV style. 3045 - add a test case 3046 30472011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 3048 3049 * Makefile.in (MAKE_VERSION): bump version to 20110410 3050 Merge with NetBSD make, pick up 3051 o :hash - cheap 32bit hash of value 3052 o :localtime, :gmtime - use value as format string for strftime. 3053 30542011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 3055 3056 * Makefile.in (MAKE_VERSION): bump version to 20110330 3057 mostly because its a cooler version. 3058 Merge with NetBSD make, pick up 3059 o NetBSD tags for meta.[ch] 3060 o job.c call meta_job_finish() after meta_job_error(). 3061 o meta_job_error() should call meta_job_finish() to ensure 3062 .meta file is closed, and safe to copy - if .ERROR target wants. 3063 meta_job_finish() is safe to call repeatedly. 3064 30652011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 3066 3067 * unit-tests/modts: use printf if it is a builtin, 3068 to save us from MirBSD 3069 3070 * Makefile.in (MAKE_VERSION): bump version to 20110329 3071 Merge with NetBSD make, pick up 3072 o fix for use after free() in CondDoExists(). 3073 o meta_oodate() report extra commands and return earlier. 3074 30752011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 3076 3077 * Makefile.in (MAKE_VERSION): bump version to 20110327 3078 Merge with NetBSD make, pick up 3079 o meta.c, if .MAKE.MODE contains curdirOk=yes 3080 allow creating .meta files in .CURDIR 3081 * boot-strap (TOOL_DIFF): aparently at least on linux distro 3082 formats the output of 'type' differently - so eat any "()" 3083 30842011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 3085 3086 * Makefile.in (MAKE_VERSION): bump version to 20110306 3087 Merge with NetBSD make, pick up 3088 o meta.c, only do getcwd() once 3089 30902011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 3091 3092 * Makefile.in (MAKE_VERSION): bump version to 20110305 3093 Merge with NetBSD make, pick up 3094 o correct sysV substitution handling of empty lhs and variable 3095 o correct exists() check for dir with trailing / 3096 o correct handling of modifiers for non-existant variables 3097 during evaluation of conditionals. 3098 o ensure MAP_FILE is defined. 3099 o meta.c use curdir[] now exported by main.c 3100 31012011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3102 3103 * Makefile.in (MAKE_VERSION): bump version to 20110225 3104 Merge with NetBSD make, pick up 3105 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3106 makefiles have been read. 3107 o fix example of :? modifier in man page. 3108 31092011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3110 3111 * Makefile.in (MAKE_VERSION): bump version to 20110214 3112 Merge with NetBSD make, pick up 3113 o meta.c handle realpath() failing when generating meta file 3114 name. 3115 3116 * sigcompat.c: convert to ansi so we can use higher warning levels. 3117 3118 31192011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3120 3121 * Makefile.in (MAKE_VERSION): bump version to 20110207 3122 Merge with NetBSD make, pick up 3123 o fix for bug in meta mode. 3124 31252011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3126 3127 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3128 31292011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3130 3131 * Makefile.in (MAKE_VERSION): bump version to 20110101 3132 Merge with NetBSD make, pick up 3133 o use mmap(2) if available, for reading makefiles 3134 31352010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3136 3137 * Makefile.in (MAKE_VERSION): bump version to 20101215 3138 Merge with NetBSD make, pick up 3139 o ensure meta_job_error() does not report a previous .meta file 3140 as being culprit. 3141 31422010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3143 3144 * Makefile.in (MAKE_VERSION): bump version to 20101210 3145 Merge with NetBSD make, pick up 3146 o meta_oodate: track cwd per process, and only consider target 3147 out-of-date if missing file is outside make's CWD. 3148 Ignore files in /tmp/ etc. 3149 o to ensure unit-tests results match, need to control LC_ALL 3150 as well as LANG. 3151 o fix for parsing bug in var.c 3152 31532010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3154 3155 * Makefile.in (MAKE_VERSION): bump version to 20101126 3156 Merge with NetBSD make, pick up 3157 o if stale dependency is an IMPSRC, search via .PATH 3158 o meta_oodate: if a referenced file is missing, target is 3159 out-of-date. 3160 o meta_oodate: if a target uses .OODATE in its commands, 3161 it (.OODATE) needs to be recomputed. 3162 o keep a pointer to youngest child node, rather than just its 3163 mtime. 3164 31652010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3166 3167 * Makefile.in (MAKE_VERSION): bump version to 20101101 3168 31692010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3170 3171 * machine.sh: like os.sh, 3172 allow for uname -p producing useless drivel 3173 31742010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3175 3176 * boot-strap: document configure knobs for meta and filemon. 3177 3178 * Makefile.in (MAKE_VERSION): bump version to 20100911 3179 Merge with NetBSD make, pick up 3180 o meta.c - meta mode 3181 3182 * make-bootstrap.sh.in: handle meta.c 3183 * configure.in: add knobs for use_meta and filemon_h 3184 also, look for dirname, str[e]sep and strlcpy 3185 * util.c: add simple err[x] and warn[x] 3186 31872010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3188 3189 * boot-strap (TOOL_DIFF): set this to ensure tests use 3190 the same version of diff that configure tested 3191 3192 * Makefile.in (MAKE_VERSION): bump version to 20100808 3193 Merge with NetBSD make, pick up 3194 o in jobs mode, when we discover we cannot make something, 3195 call PrintOnError before exit. 3196 31972010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3198 3199 * Makefile.in (MAKE_VERSION): bump version to 20100806 3200 Merge with NetBSD make, pick up 3201 o formatting fixes for ignored errors 3202 o ensure jobs are cleaned up regardless of where wait() was called. 3203 32042010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3205 3206 * Makefile.in (MAKE_VERSION): bump version to 20100618 3207 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3208 32092010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3210 3211 * Makefile.in (MAKE_VERSION): bump version to 20100616 3212 Merge with NetBSD make, pick up 3213 o man page update 3214 o call PrintOnError from JobFinish when we detect an error we 3215 are not ignoring. 3216 32172010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3218 3219 * Makefile.in (MAKE_VERSION): bump version to 20100606 3220 Merge with NetBSD make, pick up 3221 o man page update 3222 32232010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3224 3225 * Makefile.in (MAKE_VERSION): bump version to 20100605 3226 Merge with NetBSD make, pick up 3227 o use bmake_signal() which is a wrapper around sigaction() 3228 in place of signal() 3229 o add .export-env to allow exporting variables to environment 3230 without tracking (so no re-export when the internal value is 3231 changed). 3232 32332010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3234 3235 * Makefile.in (MAKE_VERSION): bump version to 20100524 3236 Merge with NetBSD make, pick up 3237 o fix for .info et al being greedy. 3238 32392010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3240 3241 * Makefile.in (MAKE_VERSION): bump version to 20100520 3242 Merge with NetBSD make, pick up 3243 o back to using realpath on argv[0] 3244 but only if contains '/' and does not start with '/'. 3245 32462010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3247 3248 * boot-strap: use absolute path for bmake when running tests. 3249 3250 * Makefile.in (MAKE_VERSION): bump version to 20100510 3251 Merge with NetBSD make, pick up 3252 o revert use of realpath on argv[0] 3253 too many corner cases. 3254 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3255 32562010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3257 3258 * Makefile.in (MAKE_VERSION): bump version to 20100505 3259 Merge with NetBSD make, pick up 3260 o fix for missed SIGCHLD when compiled with SunPRO 3261 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3262 done the job. 3263 32642010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3265 3266 * Makefile.in (MAKE_VERSION): bump version to 20100430 3267 Merge with NetBSD make, pick up 3268 o fflush stdout before writing to stdout 3269 32702010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3271 3272 * Makefile.in (MAKE_VERSION): bump version to 20100423 3273 Merge with NetBSD make, pick up 3274 o updated unit tests for Haiku (this time for sure). 3275 * boot-strap: based on patch from joerg 3276 honor --with-default-sys-path better. 3277 * boot-strap: remove mention of --with-prefix-sys-path 3278 32792010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3280 3281 * Makefile.in (MAKE_VERSION): bump version to 20100422 3282 * Merge with NetBSD make, pick up 3283 o fix for vfork() on Darwin. 3284 o fix for bogus $TMPDIR. 3285 o set .MAKE.MODE=compat for -B 3286 o set .MAKE.JOBS=max_jobs for -j max_jobs 3287 o allow unit-tests to run without any *.mk 3288 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3289 * boot-strap: ignore /usr/share/mk except on NetBSD. 3290 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3291 ensure sort(1) behaves as expected. 3292 32932010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3294 3295 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3296 32972010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3298 3299 * Makefile.in (MAKE_VERSION): bump version to 20100420 3300 * Merge with NetBSD make, pick up 3301 o fix for variable realpath() behavior. 3302 we have to stat(2) the result to be sure. 3303 o fix for .export (all) when nested vars use :sh 3304 33052010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3306 3307 * Makefile.in (MAKE_VERSION): bump version to 20100414 3308 * Merge with NetBSD make, pick up 3309 o use realpath to resolve argv[0] (for .MAKE) if needed. 3310 o add realpath from libc. 3311 o add :tA to resolve variable via realpath(3) if possible. 3312 33132010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3314 3315 * Makefile.in (MAKE_VERSION): bump version to 20100408 3316 * Merge with NetBSD make, pick up 3317 o unit tests for .ERROR, .error 3318 o fix for .ERROR to ensure it cannot be default target. 3319 33202010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3321 3322 * Makefile.in (MAKE_VERSION): bump version to 20100406 3323 * Merge with NetBSD make, pick up 3324 o fix for compat mode "Error code" going to debug_file. 3325 o fix for .ALLSRC being populated twice. 3326 o support for .info, .warning and .error directives 3327 o .MAKE.MODE to control make's operational mode 3328 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3329 name(s). 3330 o .MAKE.DEPENDFILE to control the name of the depend file 3331 o .ERROR target - run on failure. 3332 33332010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3334 3335 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3336 3337 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3338 33392010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3340 3341 * Makefile.in (MAKE_VERSION): bump version to 20100222 3342 * Merge with NetBSD make, pick up 3343 o better error msg for .for with mutiple inter vars 3344 3345 * boot-strap: 3346 o use make-bootstrap.sh from joerg at netbsd 3347 to avoid the need for a native make when bootstrapping. 3348 o add "" everywhere ;-) 3349 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3350 otherwise the pre-formated version. 3351 33522010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3353 3354 * Makefile.in (MAKE_VERSION): bump version to 20100102 3355 * Merge with NetBSD make, pick up: 3356 o fix for -m .../ 3357 33582009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3359 3360 * Makefile.in (MAKE_VERSION): bump version to 20091118 3361 * Merge with NetBSD make, pick up: 3362 o .unexport 3363 o report lines that start with '.' and should have ':' 3364 (catch typo's of .el*if). 3365 33662009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3367 3368 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3369 33702009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3371 3372 * Makefile.in (MAKE_VERSION): fix version to 20091007 3373 33742009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3375 3376 * Makefile.in (MAKE_VERSION): bump version to 200910007 3377 * Merge with NetBSD make, pick up: 3378 o fix for parsing of :S;...;...; applied to .for loop iterator 3379 appearing in a dependency line. 3380 33812009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3382 3383 * Makefile.in (MAKE_VERSION): bump version to 20090909 3384 * Merge with NetBSD make, pick up: 3385 o fix for -C, .CURDIR and .OBJDIR 3386 * boot-strap: 3387 o allow share_dir to be set independent of prefix. 3388 o select default share_dir better when prefix ends in $HOST_TARGET 3389 o if FORCE_BSD_MK etc were set, include them in the suggested 3390 install-mk command. 3391 33922009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3393 3394 * Makefile.in (MAKE_VERSION): bump version to 20090908 3395 * Merge with NetBSD make, pick up: 3396 o .MAKE.LEVEL for recursion tracking 3397 o fix for :M scanning \: 3398 33992009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3400 3401 * configure.in: Don't -D__EXTENSIONS__ if 3402 AC_USE_SYSTEM_EXTENSIONS says "no". 3403 34042009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3405 3406 * Makefile.in (MAKE_VERSION): bump version to 20090826 3407 Simplify MAKE_VERSION to just the bare date. 3408 * Merge with NetBSD make, pick up: 3409 o -C directory support. 3410 o support for SIGINFO 3411 o use $TMPDIR for temp files. 3412 o child of vfork should be careful about modifying parent's state. 3413 3414 34152009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3416 3417 * Appy some patches for MiNT from David Brownlee 3418 34192009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3420 3421 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3422 * Merge with NetBSD make, pick up: 3423 o Possible null pointer de-ref in Var_Set. 3424 34252009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3426 3427 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3428 * Merge with NetBSD make, pick up: 3429 o bmake_malloc et al moved to their own .c 3430 o Count both () and {} when looking for the end of a :M pattern 3431 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3432 o strlist.c - functions for processing extendable arrays of pointers to strings. 3433 o ClientData replaced with void *, so const void * can be used. 3434 o New debug flag C for DEBUG_CWD 3435 34362008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3437 3438 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3439 Apply patch from Joerg Sonnenberge to 3440 configure.in: 3441 o remove some redundant checks 3442 o check for emlloc etc only in libutil and require the whole family. 3443 util.c: 3444 o remove [v]asprintf which is no longer used. 3445 34462008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3447 3448 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3449 * Merge with NetBSD make, pick up: 3450 o util.c: avoid use of putenv() - christos 3451 34522008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3453 3454 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3455 pick up man page tweaks. 3456 34572008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3458 3459 * Makefile.in: move processing of LIBOBJS to after is definition! 3460 thus we'll have getenv.c in SRCS only if needed. 3461 3462 * make.1: add examples of how to use :? 3463 3464 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3465 * Merge with NetBSD make, pick up: 3466 o fix for .END processing with -j 3467 o segfault from Parse_Error when no makefile is open 3468 o handle numeric expressions in any variable expansion 3469 o debug output now defaults to stderr, -dF to change it - apb 3470 o make now uses bmake_malloc etc so that it can build natively 3471 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3472 34732008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3474 3475 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3476 * Merge with NetBSD make, pick up: 3477 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3478 long lines in Makefiles 3479 o optimizations for VarQuote by joerg 3480 o fix for PR/38756: dominik: make dumps core on invalid makefile 3481 34822008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3483 3484 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3485 * Merge with NetBSD make, pick up: 3486 o fix skip setting vars in VAR_GLOBAL context, to handle 3487 cases where VAR_CMD is used for other than command line vars. 3488 34892008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3490 3491 * boot-strap (make_version): we may need to look in 3492 $prefix/share/mk for sys.mk 3493 3494 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3495 * Merge with NetBSD make, pick up: 3496 o skip setting vars in VAR_GLOBAL context, when already set in 3497 VAR_CMD which takes precedence. 3498 34992008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3500 3501 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3502 * Merge with NetBSD make, pick up: 3503 o fix for ?= when LHS contains variable reference. 3504 35052008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3506 3507 * merge some patches from NetBSD pkgsrc. 3508 3509 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3510 the MAKSYSPATH used during bootstrap. 3511 3512 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3513 * Merge with NetBSD make, pick up: 3514 o warn if non-space chars follow 'empty' in a conditional. 3515 35162008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3517 3518 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3519 * Merge with NetBSD make, pick up: 3520 o consider dependencies read from .depend as optional - dsl 3521 o remember when buffer for reading makefile grows - dsl 3522 o add -dl (aka LOUD) - David O'Brien 3523 35242007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3525 3526 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3527 * Merge with NetBSD make, pick up: 3528 o Allow .PATH<suffix> to be used for .include "" 3529 3530 * boot-strap: source default settings from .bmake-boot-strap.rc 3531 35322007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3533 3534 * Makefile.in: fix maninstall on various systems 3535 provided that our man.mk is used. 3536 For non-BSD systems we install the preformatted page 3537 into $MANDIR/cat1 3538 35392007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3540 3541 * boot-strap: make bmake.1 too, so maninstall works. 3542 35432007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3544 3545 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3546 * Merge with NetBSD make, pick up: 3547 o revamped handling of defshell - configure no longer needs to 3548 know the content of the shells array - apb 3549 o stop Var_Subst modifying its input - apb 3550 o avoid calling ParseTrackInput too often - dsl 3551 35522007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3553 3554 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3555 * Merge with NetBSD make, pick up: 3556 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3557 3558 * sigcompat.c: some tweaks for HP-UX 11.x based on 3559 patch from Tobias Nygren 3560 3561 * configure.in: update handling of --with-defshell to match 3562 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3563 will now do what one might hope - provided the chosen shell 3564 behaves enough like sh. 3565 35662007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3567 3568 * Makefile.in (BMAKE_VERSION): bump to 20071008 3569 * Merge with NetBSD make, pick up: 3570 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3571 o .export/.MAKE.EXPORTED - export of variables - sjg 3572 o .MAKE.MAKEFILES - track all makefiles read - sjg 3573 o performance improvements - dsl 3574 o revamp parallel job scheduling - dsl 3575 35762006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3577 3578 * Makefile.in (BMAKE_VERSION): bump to 20060728 3579 * Merge with NetBSD make, pick up: 3580 o extra debug info during variable and cond processing - sjg 3581 o shell definition now covers newline - rillig 3582 o minor mem leak in PrintOnError - sjg 3583 35842006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3585 3586 * Makefile.in (BMAKE_VERSION): bump to 20060511 3587 * Merge with NetBSD make, pick up: 3588 o more memory leaks - coverity 3589 o possible overflow in ArchFindMember - coverity 3590 o extract variable modifier code out of Var_Parse() 3591 so it can be called recursively - sjg 3592 o unit-tests/moderrs - sjg 3593 35942006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3595 3596 * Makefile.in (BMAKE_VERSION): bump to 20060412 3597 * Merge with NetBSD make, pick up: 3598 o fixes for some memory leaks - coverity 3599 o only read first sys.mk etc when searching sysIncPath - sjg 3600 3601 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 3602 setting ${MAKEFILE} - OBATA Akio 3603 36042006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 3605 3606 * Makefile.in (BMAKE_VERSION): bump to 20060318 3607 * Merge with NetBSD make, pick up: 3608 o cleanup of job.c to remove remote handling, distcc is more 3609 useful and this code was likely bit-rotting - dsl 3610 o fix for :P modifier - sjg 3611 * boot-strap: set default prefix to something reasonable 3612 (for me anyway). 3613 36142006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 3615 3616 * Makefile.in (BMAKE_VERSION): bump to 20060301 3617 * Merge with NetBSD make, pick up: 3618 o make .WAIT apply recursively, document and test case - apb 3619 o allow variable modifiers in a variable appear anywhere in 3620 modifier list, document and test case - sjg 3621 36222006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 3623 3624 * Makefile.in (BMAKE_VERSION): bump to 20060222 3625 * Merge with NetBSD make, pick up: 3626 o improved job token handling - dsl 3627 o SIG_DFL the correct signal before exec - dsl 3628 o more debug info during parsing - dsl 3629 o allow variable modifiers to be specified via variable - sjg 3630 * boot-strap: explain why we died if no mksrc 3631 36322005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 3633 3634 * Makefile.in (BMAKE_VERSION): bump to 20051105 3635 * configure.in: always set default_sys_path 3636 default is ${prefix}/share/mk 3637 - remove prefix_sys_path, anyone wanting more than above 3638 needs to set it manually. 3639 36402005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3641 3642 * boot-strap: make this a bit easier for pkgsrc folk. 3643 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 3644 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 3645 36462005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 3647 3648 * Makefile.in (BMAKE_VERSION): bump to 20051102 3649 * job.c (JobFinish): fix likely ancient merge lossage 3650 fix from Todd Vierling. 3651 * boot-strap (srcdir): allow setting mksrc=none 3652 36532005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 3654 3655 * Makefile.in (BMAKE_VERSION): bump to 20051031 3656 * ranlib.h: skip on OSF too. 3657 (NetBSD PR 31864) 3658 36592005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 3660 3661 * Makefile.in (BMAKE_VERSION): bump to 20051002 3662 fix a silly typo 3663 36642005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3665 3666 * Makefile.in (BMAKE_VERSION): bump to 20051001 3667 support for UnixWare and some other systems, 3668 based on patches from pkgsrc/bootstrap 3669 36702005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3671 3672 * Makefile.in (BMAKE_VERSION): bump to 20050901 3673 * Merge with NetBSD make, pick up: 3674 o possible parse error causing us to wander off. 3675 36762005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 3677 3678 * Makefile.in (BMAKE_VERSION): bump to 20050606 3679 * Merge with NetBSD make, pick up: 3680 o :0x modifier for randomizing a list 3681 o fixes for a number of -Wuninitialized issues. 3682 36832005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 3684 3685 * Makefile.in (BMAKE_VERSION): bump to 20050530 3686 * Merge with NetBSD make, pick up: 3687 o Handle dependencies for .BEGIN, .END and .INTERRUPT 3688 3689 * README: was seriously out of date. 3690 36912005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 3692 3693 * Important to use .MAKE rather than MAKE. 3694 36952005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 3696 3697 * Makefile.in (BMAKE_VERSION): bump to 20050315 3698 * Merge with NetBSD make, pick up: 3699 o don't mistake .elsefoo for .else 3700 o use suffix-specific search path correctly 3701 o bunch of style nits 3702 37032004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3704 3705 * boot-strap: 3706 o ensure that args to --src and --with-mksrc 3707 are resolved before giving them to configure. 3708 o add -o "objdir" so that builder can control it, 3709 default is $OS as determined by os.sh 3710 o add -q to suppress all the install instructions. 3711 37122004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 3713 3714 * Remove __IDSTRING() 3715 3716 * Makefile.in (BMAKE_VERSION): bump to 20040508 3717 * Merge with NetBSD make, pick up: 3718 o posix fixes 3719 - remove '-e' from compat mode 3720 - add support for '+' command-line prefix. 3721 o fix for handling '--' on command-line. 3722 o fix include in lst.lib/lstInt.h to simplify '-I's 3723 o we also picked up replacement of MAKE_BOOTSTRAP 3724 with !MAKE_NATIVE which is a noop, but possibly confusing. 3725 37262004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 3727 3728 * Makefile.in (BMAKE_VERSION): bump to 20040414 3729 * Merge with NetBSD make, pick up: 3730 o allow quoted strings on lhs of conditionals 3731 o issue warning when extra .else is seen 3732 o print line numer when errors encountered during parsing from 3733 string. 3734 37352004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 3736 3737 * Makefile.in (BMAKE_VERSION): bump to 20040220 3738 * Merge with NetBSD make, pick up: 3739 o fix for old :M parsing bug. 3740 o re-jigged unit-tests 3741 37422004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3743 3744 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 3745 so that './bmake -f Makefile test' works. 3746 37472004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 3748 3749 * Makefile.in: (BMAKE_VERSION): bump to 20040214 3750 * Merge with NetBSD make, pick up: 3751 o search upwards for *.mk 3752 o fix for double free of var substitution buffers 3753 o use of getopt replaced with custom code, since the usage 3754 (re-scanning) isn't posix compatible. 3755 37562004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 3757 3758 * arch.c: don't include ranlib.h on ELF systems 3759 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 3760 37612004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3762 3763 * Makefile.in (BMAKE_VERSION): bump to 20040118 3764 3765 * boot-strap (while): export vars we assign to on cmdline 3766 * unit-test/Makefile.in: ternary is .PHONY 3767 37682004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 3769 3770 * Makefile.in (BMAKE_VERSION): bump version to 20040108 3771 * Merge with NetBSD make, pick up: 3772 o fix for ternary modifier 3773 37742004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 3775 3776 * Makefile.in (BMAKE_VERSION): bump version to 20040105 3777 * Merge with NetBSD make, pick up: 3778 o fix for cond.c to handle compound expressions better 3779 o variable expansion within sysV style replacements 3780 37812003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 3782 3783 * Make portable snprintf safer - output to /dev/null first to 3784 check space needed. 3785 3786 * Makefile.in (BMAKE_VERSION): bump version to 20031222 3787 * Merge with NetBSD make, pick up: 3788 o -dg3 to show input graph when things go wrong. 3789 o explicitly look for makefiles in objdir if not found in curdir so 3790 that errors in .depend etc will be reported accurarely. 3791 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 3792 instead as it more accurately reflects the expected behavior and 3793 is more consistently implemented. 3794 o avoid use of asprintf. 3795 37962003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 3797 3798 * util.c: Add asprintf and vasprintf. 3799 3800 * Makefile.in (BMAKE_VERSION): bump version to 20030928 3801 * Merge with NetBSD make, pick up: 3802 :[] modifier - allows picking words from a variable. 3803 :tW modifier - allows treating value as one big word. 3804 W flag for :C and :S - allows treating value as one big word. 3805 38062003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 3807 3808 * Merge with NetBSD make 3809 pick up -de flag to enable printing failed command. 3810 don't skip 1st two dir entries (normally . and ..) since 3811 coda does not have them. 3812 38132003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3814 3815 * Makefile.in (BMAKE_VERSION): bump version to 20030909 3816 * Merge with NetBSD make, pick up: 3817 - changes for -V '${VAR}' to print fully expanded value 3818 cf. -V VAR 3819 - CompatRunCommand now prints the command that failed. 3820 - several files got updated 3 clause Berkeley license. 3821 38222003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3823 3824 * boot-strap: Allow setting configure args on command line. 3825 38262003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3827 3828 * configure.in: add --with-defshell to allow sh or ksh 3829 to be selected as default shell. 3830 3831 * Makefile.in: bump version to 20030731 3832 3833 * Merge with NetBSD make 3834 Pick up .SHELL spec for ksh and associate man page changes. 3835 Also compat mode now uses the same shell specs. 3836 38372003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3838 3839 * var.c (Var_Parse): ensure delim is initialized. 3840 3841 * unit-tests/Makefile.in: use single quotes to avoid problems from 3842 some shells. 3843 3844 * makefile.boot.in: 3845 Run the unit-tests as part of the bootstrap procedure. 3846 38472003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3848 3849 * unit-tests/Makefile.in: always force complaints from 3850 ${TEST_MAKE} to be from 'make'. 3851 3852 * configure.in: add check for 'diff -u' 3853 also fix some old autoconf'isms 3854 3855 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 3856 if using GCC add -Wno-cast-qual to CFLAGS for var.o 3857 3858 * Merge with NetBSD make 3859 Pick up fix for :ts parsing error in some cases. 3860 Pick unit-tests. 3861 38622003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 3863 3864 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 3865 3866 * var.c (Var_Parse): fix bug in :ts modifier, after const 3867 correctness fixes, must pass nstr to VarModify. 3868 38692003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 3870 3871 * Makefile.in: BMAKE_VERSION switch to a date based version. 3872 We'll generally use the date of last import from NetBSD. 3873 3874 * Merge with NetBSD make 3875 Pick up fixes for const-correctness, now passes WARNS=3 on 3876 NetBSD. 3877 Pick up :ts modifier, allows controlling the separator used 3878 between words in variable expansion. 3879 38802003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 3881 3882 * FILES: include boot-strap and os.sh 3883 3884 * Makefile.in: only set WARNS if we are NetBSD, the effect on 3885 FreeBSD is known to be bad. 3886 3887 * makefile.boot.in (bootstrap): make this the default target. 3888 3889 * Makefile.in: bump version to 3.1.19 3890 3891 * machine.sh: avoid A-Z with tr as it is bound to lose. 3892 38932003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 3894 3895 * Merge with NetBSD make 3896 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3897 Plus some doc fixes. 3898 38992003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3900 3901 * Merge with NetBSD make 3902 Pick up fix for PR/1523 - don't count a library as built, if there 3903 is no way to build it 3904 3905 * Bump version to 3.1.18 3906 39072003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3908 3909 * Merge with NetBSD make 3910 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3911 appears in src list. 3912 39132003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3914 3915 * Merge with NetBSD make (mmm 10th anniversary!) 3916 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3917 pick up -X which tells us to not export VAR=val via setenv if 3918 we are already doing so via MAKEFLAGS. This saves valuable env 3919 space on systems like Darwin. 3920 set MAKE_VERSION to 3.1.17 3921 3922 * parse.c: pix up fix for suffix rules 3923 39242003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3925 3926 * Merge with NetBSD make. 3927 pick up fix for propagating -B via MAKEFLAGS. 3928 set MAKE_VERSION to 3.1.16 3929 3930 * Apply some patches from pkgsrc-bootstrap/bmake 3931 Originally by Grant Beattie <grant@netbsd.org> 3932 I may have missed some - since they are based on bmake-3.1.12 3933 39342002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3935 3936 * makefile.boot.in (bmake): update install targets for those that 3937 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3938 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3939 3940 * bmake.cat1: update the pre-formatted man page! 3941 39422002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3943 3944 * Merge with NetBSD make. 3945 pick up fix for premature free of pointer used in call 3946 to Dir_InitCur(). 3947 set MAKE_VERSION to 3.1.15 3948 39492002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3950 3951 * configure.in: determine suitable value for MKSRC. 3952 override using --with-mksrc=PATH. 3953 3954 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3955 configs(8) will use 'sun4' as an alias for 'sparc'. 3956 39572002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3958 3959 * Merge with NetBSD make. 3960 pick up ${.PATH} 3961 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3962 set MAKE_VERSION to 3.1.14 3963 add configure checks for killpg and sys/socket.h 3964 39652002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3966 3967 * tag bmake-3-1-13 3968 3969 * makefile.boot.in (bmake): use install-mk 3970 Also setup ./mk before trying to invoke bmake.boot incase we 3971 needed install-mk to create a sys.mk for us. 3972 3973 * configure.in: If we need to add -I${srcdir}/missing, make it an 3974 absolute path so that it works for lst.lib too. 3975 3976 * make.h: always include sys/cdefs.h since we provide one if the 3977 host does not. 3978 3979 * Makefile.in (install-mk): 3980 use MKSRC/install-mk which will do the right thing. 3981 use uname -p for ARCH if possible. 3982 since install-mk will setup links bsd.prog.mk -> prog.mk if 3983 needed, just .include bsd.prog.mk 3984 3985 * Merge with NetBSD make (NetBSD-1.6) 3986 Code is ansi-C only now. 3987 Bug in handling of dotLast is fixed. 3988 Can now assign .OBJDIR and make will reset its notions of life. 3989 New modifiers :tu :tl for toUpper and toLower. 3990 3991Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3992 3993 * Merge with NetBSD make 3994 pick up fix for .END failure in compat mode. 3995 pick up fix for extra va_end() in ParseVErrorInternal. 3996 3997Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3998 3999 * configure.in: for systems that have sys/cdefs.h check if it is 4000 compatible. If not, include the one under missing, but tell it to 4001 include the native one too - necessary on Linux. 4002 4003 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 4004 include_next (for gcc) to get the native sys/cdefs.h 4005 4006Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4007 4008 * job.c (JobFinish): Fix an earlier merge bug that resulted in 4009 leaking descriptors when using -jN. 4010 4011 * job.c (JobPrintCommand): See if "curdir" exists before 4012 attempting to chdir(). Doing the chdir directly in make (when in 4013 compat mode) fails silently, so let the -jN version do the same. 4014 This can happen when building kernels in an object tree and 4015 playing clever games to reset .CURDIR. 4016 4017 * Merged with NetBSD make 4018 pick up .USEBEFORE 4019 4020Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4021 4022 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 4023 4024Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4025 4026 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 4027 us not to export the iterator variable when using VAR_CMD context. 4028 4029Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4030 4031 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 4032 its the wrong "fix". 4033 4034Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4035 4036 * Redesigned export of VAR_CMD's via MAKEFLAGS. 4037 We now simply append the variable names to .MAKEOVERRIDES, and 4038 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 4039 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 4040 Apart from fixing quoting bugs in previous version, this allows us 4041 to export vars to the environment by simply doing: 4042 .MAKEOVERRIDES+= PATH 4043 Merged again with NetBSD make, but the above is the only change. 4044 4045 * configure.in: added 4046 --disable-pwd-override disable $PWD overriding getcwd() 4047 --disable-check-make-chdir disable make trying to guess 4048 when it should automatically cd ${.CURDIR} 4049 4050 * Merge with NetBSD make, changes include: 4051 parse.c (ParseDoDependency): Spot that the syntax error is 4052 caused by an unresolved cvs/rcs conflict and say so. 4053 var.c: most of Var* functions now take a ctxt as 1st arg. 4054 now does variable substituion on rhs of sysv style modifiers. 4055 4056 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 4057 is now done here. We append the name='value' to .MAKEOVERRIDES 4058 rather than directly into MAKEFLAGS as this allows a Makefile to 4059 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 4060 very similar mechanism. Note that in adding name='value' to 4061 .MAKEOVERRIDES we do the moral equivalent of: 4062 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 4063 4064Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4065 4066 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 4067 4068 * Merged with NetBSD make 4069 make -dx can now be used to run commands via sh -x 4070 better error messages on exec failures. 4071 4072Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4073 4074 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 4075 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 4076 MACHINE etc otherwise they propagate from the previous bmake. 4077 4078 * configure.in (machine): allow --with-machine=generic to make 4079 configure use machine.sh to set MACHINE. 4080 4081 * job.c (JobInterrupt): convert to using WAIT_T and friends. 4082 4083 * Makefile.in: mention in bmake.1 that we use autoconf. 4084 4085 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 4086 4087Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4088 4089 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 4090 as that rather defeats the usefulness of ${MAKEFILE}. 4091 4092 * main.c (MainParseArgs): append command line variable assignments 4093 to MAKEFLAGS so that they get propagated to child make's. 4094 Apparently this is required POSIX behaviour? Its useful anyway. 4095 4096Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4097 4098 * compat.c (CompatRunCommand): don't use perror() since stdio may 4099 cause problems in child of vfork(). 4100 4101 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4102 This routine prints out the .curdir where we stopped and will also 4103 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4104 4105 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4106 :@ expansion. 4107 4108 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4109 4110 * Added RCSid's for the files we've touched. 4111 4112Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4113 4114 * configure.in: Thanks to some clues from mdb@juniper.net, 4115 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4116 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4117 4118 --with-machine=MACHINE explicitly set MACHINE 4119 --with-force-machine=MACHINE set FORCE_MACHINE 4120 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4121 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4122 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4123 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4124 4125 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4126 4127 * makefile: added a pathetically simple makefile to drive 4128 bootstrapping. Running configure by hand is more useful. 4129 4130 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4131 dependent on NetBSD bsd.*.mk 4132 4133 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4134 _PATH_OBJDIRPREFIX for those that don't want a default. 4135 construct _PATH_DEFSYSPATH from the info we get from configure. 4136 4137 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4138 if MAKE_VERSION is defined. 4139 4140 * compat.c: when we bail, print out the .CURDIR we were in. 4141 4142Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4143 4144 * Merged with NetBSD make 4145 4146 * var.c: fixed a bug in the handling of the modifier :P 4147 if the node as found but the path was null, we segfault trying to 4148 duplicate it. 4149 4150Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4151 4152 * Merged with NetBSD make 4153 4154 * make.c: Make_OODate's test for a library out of date was using 4155 cmtime where it should have used mtime (my bug). 4156 4157 * compat.c: Use perror() to tell us what really went wrong when we 4158 cannot exec a command. 4159 4160Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4161 4162 * Merged with NetBSD make 4163 4164Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4165 4166 * Merged with NetBSD make 4167 4168Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4169 4170 * Merged with NetBSD make 4171 4172Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4173 4174 * Merged with NetBSD make 4175 4176Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4177 4178 * util.c: don't provide signal() since we use sigcompat.c 4179 4180 * Makefile.in: added a build target. 4181 4182 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4183 These allow some quite clever magic. 4184 4185 * main.c (main): added support for getenv(MAKESYSPATH). 4186 4187Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4188 4189 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4190 This avoids objdir having a different value depending on how a 4191 directory was reached (via command line, or subdir.mk). 4192 4193 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4194 4195Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4196 4197 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4198 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4199 I've been testing this in NetBSD's make for some weeks. 4200 4201 * Turn Makefile into Makefile.in and make it useful. 4202 4203Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4204 4205 * Imported NetBSD's -current make(1) and resolve conflicts. 4206 4207 * Applied autoconf patches from bmake v2 4208 4209 * Imported clean code base from NetBSD-1.0 4210