12023-01-26 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20230126 4 Merge with NetBSD make, pick up 5 o variables like .newline and .MAKE.{GID,PID,PPID,UID} 6 should be read-only. 7 82023-01-23 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20230123 11 Merge with NetBSD make, pick up 12 o .[NO]READONLY: for control of read-only variables 13 o .SYSPATH: for controlling the path searched for makefiles 14 152023-01-20 Simon J Gerraty <sjg@beast.crufty.net> 16 17 * VERSION (_MAKE_VERSION): 20230120 18 Merge with NetBSD make, pick up 19 o allow for white-space between command specifiers @+- 20 o add more details to warning 'Extra targets ignored' 21 222023-01-12 Simon J Gerraty <sjg@beast.crufty.net> 23 24 * machine.sh: leverage os.sh rather than duplicate 25 also dispence with the $OS.$MACHINE values - we have $HOST_TARGET 26 for that purpose for the past decade or so. 27 We invariably get MACHINE and MACHINE_ARCH at runtime anyway. 28 292023-01-02 Simon J Gerraty <sjg@beast.crufty.net> 30 31 * VERSION (_MAKE_VERSION): 20230101 32 Merge with NetBSD make, pick up 33 o cleanup comments, inline some LazyBuf_ methods 34 o unit-tests/ add/improve comments in tests 35 o make.1: sync list of built-in variables with reality 36 sort list of built-in variables 37 reduce indentation of the long list of variable names 38 use consistent markup for boolean flags 39 move description of .MAKE.MODE below the .MAKE.META block 40 clarify in which case an expression may omit braces 41 422022-11-08 Simon J Gerraty <sjg@beast.crufty.net> 43 44 * VERSION (_MAKE_VERSION): 20221024 45 Merge with NetBSD make, pick up 46 o change return type of unlink_file back to int 47 482022-10-07 Simon J Gerraty <sjg@beast.crufty.net> 49 50 * Makefile: Darwin and Linux can handle MANTARGET=man 51 522022-09-28 Simon J Gerraty <sjg@beast.crufty.net> 53 54 * VERSION (_MAKE_VERSION): 20220928 55 Merge with NetBSD make, pick up 56 o fix more ignored returns from snprintf 57 o compile with higher warnings 58 592022-09-26 Simon J Gerraty <sjg@beast.crufty.net> 60 61 * main.c meta.c: do not ignore return from snprintf 62 63 * meta.c strlcpy.c: we need prototype for strlcpy 64 65 * sigcompat.c: fix unused function warnings 66 672022-09-24 Simon J Gerraty <sjg@beast.crufty.net> 68 69 * VERSION (_MAKE_VERSION): 20220924 70 Merge with NetBSD make, pick up 71 o fix bug in .break reset of conditional depth 72 o overhaul and simplify tracking of conditional depth 73 742022-09-17 Simon J Gerraty <sjg@beast.crufty.net> 75 76 * VERSION (_MAKE_VERSION): 20220912 77 Merge with NetBSD make, pick up 78 o man page updates 79 802022-09-09 Simon J Gerraty <sjg@beast.crufty.net> 81 82 * VERSION (_MAKE_VERSION): 20220909 83 Merge with NetBSD make, pick up 84 o update unit-tests to handle deprecation of egrep 85 o cond.c: add more details to error message for numeric comparison 86 87 * configure.in: allow for deprecation of egrep 88 89 * Makefile: Linux can handle MANTARGET=man 90 912022-09-03 Simon J Gerraty <sjg@beast.crufty.net> 92 93 * VERSION (_MAKE_VERSION): 20220903 94 Merge with NetBSD make, pick up 95 o job.c: fix handling of null bytes in output 96 972022-09-02 Simon J Gerraty <sjg@beast.crufty.net> 98 99 * VERSION (_MAKE_VERSION): 20220902 100 Merge with NetBSD make, pick up 101 o Allow .break to terminate a .for loop early 102 1032022-09-01 Simon J Gerraty <sjg@beast.crufty.net> 104 105 * VERSION (_MAKE_VERSION): 20220901 106 Merge with NetBSD make, pick up 107 o var.c: fix out-of-bounds errors when parsing 108 1092022-08-24 Simon J Gerraty <sjg@beast.crufty.net> 110 111 * VERSION (_MAKE_VERSION): 20220824 112 Merge with NetBSD make, pick up 113 o var.c: revert change to modifier parsing that breaks 114 shell variable references within ':@var@body@' 115 o adjust unit-tests 116 1172022-08-18 Simon J Gerraty <sjg@beast.crufty.net> 118 119 * VERSION (_MAKE_VERSION): 20220818 120 Merge with NetBSD make, pick up 121 o fix exit status for '-q' (since 1994) 122 1232022-08-08 Simon J Gerraty <sjg@beast.crufty.net> 124 125 * VERSION (_MAKE_VERSION): 20220808 126 Merge with NetBSD make, pick up 127 o var.c: fix parsing of modifiers containing unbalanced subexpressions 128 extract parsing of ':D' and ':U' modifiers into separate function 129 1302022-07-26 Simon J Gerraty <sjg@beast.crufty.net> 131 132 * VERSION (_MAKE_VERSION): 20220726 133 134 * Auto-create objdir for bmake/unit-tests if appropriate 135 1362022-07-24 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * VERSION (_MAKE_VERSION): 20220724 139 Merge with NetBSD make, pick up 140 o make.1: describe variable assignment and evaluation more precisely 141 o parse.c: fix out-of-bounds read when parsing an invalid line 142 o var.c: simplify return type of IsShortVarnameValid 143 1442022-06-12 Simon J Gerraty <sjg@beast.crufty.net> 145 146 * VERSION (_MAKE_VERSION): 20220612 147 Merge with NetBSD make, pick up 148 o allow to randomize build order of targets 149 .MAKE.MODE += randomize-targets can help uncover dependency bugs 150 within a makefile. 151 o compat.c: rename Compat_Run to Compat_MakeAll 152 o make.c: inline MakeBuildParent 153 inline make_abort, improve error details 154 o parse.c: reorganize Parse_Error 155 fix memory leak in wildcard targets and sources 156 separate cases in HandleDependencyTargetMundane 157 extract HandleSingleDependencyTargetMundane 158 rename loadfile to LoadFile 159 split IncludeFile into separate functions 160 condense code for searching a file in the paths 161 fix off-by-one error in buffer for .WAIT nodes 162 o str.c: condense Str_Match 163 make code for string matching syntactically more consistent 164 1652022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 166 167 * VERSION (_MAKE_VERSION): 20220418 168 Merge with NetBSD make, pick up 169 o ignore '.POSIX:' if not in first non-comment line 170 of Makefile as specified by POSIX. 171 add unit-tests for above. 172 o meta.c: make it easier to find usage of identifiers 173 o targ.c: add .USEBEFORE to Targ_PrintType 174 1752022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 176 177 * VERSION (_MAKE_VERSION): 20220414 178 179 * unit-tests/Makefile: simplify checks for shells with 180 BROKEN_TESTS, this helps with other Linux distros that 181 use dash. 182 1832022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 184 185 * VERSION (_MAKE_VERSION): 20220330 186 Merge with NetBSD make, pick up 187 o var.c: fix spacing, and a typo in a test 188 1892022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 190 191 * VERSION (_MAKE_VERSION): 20220326 192 Merge with NetBSD make, pick up 193 o parse.c: try to include 'posix.mk' the first time 194 .POSIX: is encountered, to allow for beter POSIX compliance. 195 o var.c: make debug logs more readable 196 prefer 'long long' over 'long' on 32-bit C99 platforms 197 fix crash on .undef of an environment variable 198 1992022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 200 201 * VERSION (_MAKE_VERSION): 20220303 202 Merge with NetBSD make, pick up 203 o tell meta mode unit tests not to expect filemon 204 o cond.c: make debug logging for comparisons less technical 205 o lst.c: fix mem leak in Lst_Remove 206 o str.c: make code for string matching syntactically more consistent 207 o var.c: simplify ParseModifier_Match 208 2092022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 210 211 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 212 213 * VERSION (_MAKE_VERSION): 20220214 214 Merge with NetBSD make, pick up 215 o cond.c: simplify control flow in CondParser_Comparison 216 o job.c: fix echoing of command with '-' in silent target in jobs mode 217 o main.c: prefix the warning about read-only .OBJDIR with a colon 218 o parse.c: remove redundant conditions 219 o var.c: simplify control flow in ModifyWord_SysVSubst 220 2212022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 222 223 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 224 is any chance we have dash as .SHELL 225 226 * VERSION (_MAKE_VERSION): 20220208 227 Merge with NetBSD make, pick up 228 o more unit tests 229 o meta.c: use a variable to hold command line to be filtered 230 to avoid any side effects from content of command line. 231 2322022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 233 234 * VERSION (_MAKE_VERSION): 20220204 235 Merge with NetBSD make, pick up 236 o use unsigned consistently for line numbers, avoid the need for %z 237 o parse.c: do not step off end of input in Parse_IsVar 238 when checking for target local variable assignments 239 2402022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 241 242 * VERSION (_MAKE_VERSION): 20220202 243 Merge with NetBSD make, pick up 244 o remove redundant declaration of HashIter_Init 245 o make DEBUG0 simpler 246 2472022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 248 249 * cast gn->lineno to avoid %z 250 251 * VERSION (_MAKE_VERSION): 20220130 252 Merge with NetBSD make, pick up 253 o more unit tests 254 o make GNode lineno unsigned to please lint 255 o print location of recursive variable references in commands 256 o print "stack trace" (makefile includes) on fatal errors 257 o make.1: refine documentation for target local assignments 258 2592022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 260 261 * VERSION (_MAKE_VERSION): 20220128 262 Merge with NetBSD make, pick up 263 o inline functions called only once 264 o for.c: clean up AddEscape for building the body of a .for loop 265 o hash.c: merge duplicate code for finding an entry in a hash table 266 replace HashEntry_KeyEquals with strncmp 267 o make.1: document quirks of target local variable assignments. 268 o parse.c: cleanup white-space 269 2702022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 271 272 * VERSION (_MAKE_VERSION): 20220126 273 Merge with NetBSD make, pick up 274 o allow setting target local variables 275 o more unit tests 276 o add missing newline after "cannot continue" message 277 o meta.c: clean up eat_dots 278 o parse.c: fix filename in warning about duplicate script 279 o var.c: when expanding nested variables, check simple things first 280 2812022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 282 283 * VERSION (_MAKE_VERSION): 20220116 284 Merge with NetBSD make, pick up 285 o fix for unit-tests/varname-makeflags on non-BSD systems 286 o use Var_Exists rather than Var_Value where appropriate 287 o remove unnecessary functions for expanding variable names 288 o cond.c: inline EvalBare 289 o main.c: lint cleanup 290 o parse.c: condense code in Parse_IsVar 291 use islower for parsing directives (none have upper case) 292 2932022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 294 295 * VERSION (_MAKE_VERSION): 20220112 296 Merge with NetBSD make, pick up 297 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 298 comparion, rarely needed but useful when it is. 299 3002022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 301 302 * VERSION (_MAKE_VERSION): 20220110 303 Merge with NetBSD make, pick up 304 o inline Buf_Clear 305 o remove redundant braces 306 o rename and inline Targ_Precious 307 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 308 o for.c: clean up handling of .for loops 309 fix reported line numbers of continuation lines 310 add details about .for loop variables to stack traces 311 o job.c: reduce code for initializing error handling in shell 312 o main.c: in Cmd_Exec, return error message instead of format string 313 have as few statements as possible between va_start and va_end 314 add debug logging for capturing the output of external commands 315 o make.c: use consistent variable names for varargs 316 o make_malloc.c: remove duplicate code from bmake_strdup 317 o parse.c: add missing printflike annotations 318 remove redundant lines from stack traces 319 fix stack traces in -dp mode 320 reduce confusing code in ParseForLoop 321 fix line number in debug log after returning from a file 322 rename IFile and its fields to match their actual content 323 clean up ParseDependencySources 324 o var.c: shorten ApplyModifier_Assign 325 rename is_shell_metachar, fix character conversion warning 326 merge calls to ApplyModifier_Time 327 merge duplicate code for modifiers 'gmtime' and 'localtime' 328 3292022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 330 331 * parse.c: loadfile restore extra byte in buffer. 332 3332022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 334 335 * VERSION (_MAKE_VERSION): 20220101 336 Merge with NetBSD make, pick up 337 o more unit-tests 338 o remove unnecessary words from command line options in CmdOpts 339 o rename eunlink to unlink_file 340 o cond.c: make ParseWord in condition parser simpler 341 internally return false for irrelevant leaves in conditions 342 replace table for function lookup in conditions with simple code 343 merge duplicate types CondEvalResult and CondResult 344 o for.c: clean up handling of .for loops and .include directives 345 o main.c: constify cached_realpath 346 clean up Cmd_Exec 347 o parse.c: sync API documentation 348 fix error message when reading more than 1 GB from stdin 349 clean up parsing of makefiles 350 fix line number in error message about open conditionals 351 unexport types VarAssignOp and VarAssign 352 clean up function names 353 remove redundant parameters in dependency parsing functions 354 reduce scope of the list of wildcard target names 355 extract OP_NOTARGET into separate function 356 clean up variable names for parsing dependency lines 357 make debug logging a bit more human-friendly 358 o var.c: condense code in ApplyModifier_Assign 359 3602021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 361 362 * VERSION (_MAKE_VERSION): 20211221 363 Merge with NetBSD make, pick up 364 o more unit-tests 365 o style cleanup 366 o in CLEANUP mode, free interned strings at the very end 367 o fix memory leak for filenames in .for loops 368 o buf.c: avoid memory leak 369 o cond.c: condense CondParser_ComparisonOp 370 o hash.c: change return type of HashTable_Set to void 371 o job.c: change return type of Compat_RunCommand from int to bool 372 o main.c: remove bmake_free 373 o parse.c: condense repetetive code in ParseDirective 374 remove dead code for handling traditional include directives 375 clean up parsing of variable assignments 376 remove unreachable code for parsing the dependency operator 377 clean up loading of files 378 fix memory leak in IncludeFile 379 o var.c: fix memory leak when parsing a variable name 380 fix memory leak from ${.SUFFIXES} 381 reduce memory allocation in modifier ':?' and ':C' 382 condense RegexReplace for the modifier ':C' and avoid strlen 383 merge duplicate code for memory handling in Var_Parse 384 distinguish between short-lived and environment variables 385 rename VarFreeEnv to VarFreeShortLived 386 3872021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 388 389 * cond.c: fix mem leak in CondParser_Leaf 390 3912021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 392 393 * VERSION (_MAKE_VERSION): 20211212 394 Merge with NetBSD make, pick up 395 o rename Parse_SetInput to Parse_PushInput 396 o remove remove period from end of error messages and warnings 397 to be more consistent 398 o arch.c: use simpler memory management for parsing archive members 399 o cond.c: rework and reduce recursion 400 o for.c: rename some functions to better reflect purpose 401 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 402 o var.c: in parse errors, mark whitespace more clearly 403 inline ParseEmptyArg into CondParser_FuncCallEmpty 404 minimize calls to LazyBuf_Get in ParseVarnameLong 405 treat .SUFFIXES as a read-only variable 406 4072021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 408 409 * VERSION (_MAKE_VERSION): 20211207 410 Merge with NetBSD make, pick up 411 o inline HashIter_Init 412 o parse.c: inline common subexpression in ParseRawLine 413 o var.c: merge branches for modifiers ':D' and ':U' 414 extract common code into Expr_Words 415 extract common code into Expr_Str 416 move low-level implementation details out of Var_Parse 417 4182021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 419 420 * VERSION (_MAKE_VERSION): 20211206 421 Merge with NetBSD make, pick up 422 o add unit-tests/varmod-loop-delete 423 o for.c: inline Str_Words - reduce memory allocation 424 o parse.c: do not try to expand fixed variable names 425 only allocate the name of an included file if necessary 426 clean up ParseInclude 427 o var.c: fix use-after-free in modifier ':@' 428 save a memory allocation in each modifier ':O' and ':u' 429 save a memory allocation in the modifier ':[...]' 430 in UnexportVars, replace Str_Words with Substring_Words to 431 reduce allocations and copying. 432 4332021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 434 435 * VERSION (_MAKE_VERSION): 20211204 436 Merge with NetBSD make, pick up 437 o flesh out a number of tests 438 o replace enums with bitfields, this simplifies a lot of code. 439 o var.c: refactor ParseModifierPartSubst 440 4412021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 442 443 * VERSION (_MAKE_VERSION): 20211024 444 Merge with NetBSD make, pick up 445 o Punt on write errors - ENOSPC etc. 446 4472021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 448 449 * configure.in: use_defshell, set both DEFSHELL_INDEX 450 and defshell_path if appropriate. 451 This makes it easier to use say the KSH specification with 452 and alternate path for the shell. 453 454 * configure.in compat.c: for SCO we need to force UseShell 455 456 * configure.in: SCO /bin/sh is not usable, provide a list of 457 alternatives for use as .SHELL. 458 We still have to mark some tests as broken, plus more if we end up 459 with ksh as .SHELL. 460 Issue a warning about skipped tests. 461 462 * boot-strap: leave TOOL_DIFF to configure 463 464 * configure.in: on SCO native cc is not usable, 465 gcc is to be found in /usr/gnu/bin 466 and while ancient is at least able to compile bmake. 467 Thus we add /usr/gnu/bin to PATH if it exists, and later 468 check if $CC would have been found via $PATH. 469 If not we set CC to the full path of $CC. 470 Also gnu diff is known to support -u, so if it exists use it. 471 472 * configure.in: move getopt to AC_REPLACE_FUNCS 473 also add AC_C_INLINE - in an attempt to compile using 474 native cc on SCO. 475 476 * configure.in: check for stresep as well as strsep, since we 477 define the later to the former if necessary, and if we have to 478 provide stresep we also need to provide a prototype. 479 480 * configure.in: we no longer need to worry about 481 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 482 483 * make.h: make sure we have __RCSID 484 485 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 486 can control it. 487 4882021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 489 490 * VERSION: 20211020 491 Merge with NetBSD make, pick up 492 o confirm sync of unit-tests 493 4942021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 495 496 * configure.in: check if timezone Europe/Berlin is supported 497 if not try UTC-1 498 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 499 symlink unit-tests -> ../unit-tests/obj so that 500 unit-tests/Makefile.config is put in the right place. 501 * refine filtering of .OBJDIR in unit-tests 502 5032021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 504 505 * Fix unit-tests on Minix 3.2.0 506 o job.c: do not punt if read of token pipe fails for EAGAIN. 507 On Minix at least, we are not ready to read the childExitJob pipe 508 when poll says we are. 509 There should actually be no reason for this pipe to be 510 non-blocking, but while that works fine on {Net,Free}BSD it 511 breaks another test case on Minix. 512 o unit-tests/Makefile: deal with variants of error messages 513 and use of obj as .OBJDIR 514 5152021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 516 517 * configure.in: add sigaction to AC_REPLACE_FUNCS 518 we also need to check for sigaddset etc just for the benefit of 519 sigact.c 520 521 * Add sigact.c as sigaction.c so this "just works". 522 This should have been done back when bmake_signal started using 523 sigaction (I only just noticed that sigact.c wasn't here ;-) 524 Note: I no longer have access to any system where this would matter. 525 5262021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 527 528 * VERSION (_MAKE_VERSION): 20211011 529 530 * Makefile: cleanup a little 531 532 * configure.in: check for sigsetmask 533 5342021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 535 536 * VERSION (_MAKE_VERSION): 20211001 537 Merge with NetBSD make, pick up 538 o reduce locations reducing text size 539 o remove unnecessary const 540 o cond.c: fix lint warning on i386 541 do not allow unquoted 'left == right' after modifier ':?' 542 o hash.c: fix build for DEBUG_HASH_LOOKUP 543 o var.c: fix memory leak in error case of the ':?' modifier 544 5452021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 546 547 * VERSION (_MAKE_VERSION): 20210911 548 Merge with NetBSD make, pick up 549 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 550 5512021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 552 553 * VERSION (_MAKE_VERSION): 20210906 554 Merge with NetBSD make, pick up 555 o more unit tests 556 o lint cleanup 557 o rename some functions to better fit purpose 558 o for.c: cleanup - remove unnecessary optimization 559 fix embedded newlines 560 o parse.c: correct case for CVS/RCS 561 5622021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 563 564 * VERSION (_MAKE_VERSION): 20210808 565 Merge with NetBSD make, pick up 566 o var.c: remove redundant initialization in ApplyModifier_Order 567 568 * mk/options.mk: issue warning for incorrect usage 569 5702021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 571 572 * var.c: use long for :On if we don't have a 64bit int type 573 574 * VERSION (_MAKE_VERSION): 20210803 575 Merge with NetBSD make, pick up 576 o rework varmod-order tests to avoid qsort instability 577 o make.1: clarify :On entry 578 5792021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 580 581 * VERSION (_MAKE_VERSION): 20210731 582 Merge with NetBSD make, pick up 583 o fix some lint issues 584 o more unit tests 585 o var.c: rework of ApplyModifier_Order 586 5872021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 588 589 * util.c: add strto*l if HAVE_STRTO*L not defined 590 591 * VERSION (_MAKE_VERSION): 20210730 592 Merge with NetBSD make, pick up 593 o var.c: add :On and :Orn for numeric sort 594 disabled if no 64bit type available. 595 o _strtol.h: to implement strto*l functions 596 5972021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 598 599 * VERSION (_MAKE_VERSION): 20210704 600 Merge with NetBSD make, pick up 601 o unit-tests: fix some tests to be more portable 602 - job-output-null not all shells do the same number of write calls 603 - objdir-writable if TMPDIR is set; /tmp may not be usable 604 6052021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 606 607 * VERSION (_MAKE_VERSION): 20210701 608 Merge with NetBSD make, pick up 609 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 610 some tests just cannot work in some environments. 611 o buf.c: simpler upper bound for length in Buf_AddInt 612 o cond.c: fix grammar in error message for malformed conditional 613 o for.c: prevent newline injection (from ${.newline}) in .for loops 614 o var.c: use more practical data type in RegexReplace 615 (avoid need for %zu) 616 extract RegexReplace from ModifyWord_SubstRegex 617 6182021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 619 620 * VERSION (_MAKE_VERSION): 20210621 621 Merge with NetBSD make, pick up 622 o var.c: only report error for unmatched regex subexpression 623 when linting (-dL) since we cannot tell when an unmatched 624 subexpression is an expected result. 625 o move unmatched regex subexpression tests to 626 varmod-subst-regex.mk and enable strict (lint) mode 627 6282021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 629 630 * VERSION (_MAKE_VERSION): 20210616 631 Merge with NetBSD make, pick up 632 o more unit tests 633 o cond.c: rename If_Eval to EvalBare 634 improve function names for parsing conditions 635 o job.c: fix error handling of targets that cannot be made 636 o var.c: uncompress code in ApplyModifier_Unique 637 6382021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 639 640 * VERSION (_MAKE_VERSION): 20210518 641 Merge with NetBSD make, pick up 642 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 643 o job.c: Print -de error information when running multiple jobs 644 6452021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 646 647 * VERSION (_MAKE_VERSION): 20210420 648 Merge with NetBSD make, pick up 649 o use C99 bool type 650 o convert VarEvalFlags back into an enum 651 o cond.c: do not complain when skipping the condition 'no >= 10' 652 o hash.c: avoid allocating memory for simple variable names 653 o job.c: use distinct wording for writing to the shell commands file 654 remove type name for the abort status in job handling 655 rename PrintOutput to PrintFilteredOutput to avoid confusion 656 o main.c: avoid double slash in name of temporary directory 657 o var.c: use straight quotes for error 'Bad conditional expression' 658 reduce memory allocations in the modifiers ':D' and ':U' 659 rename members of ModifyWord_LoopArgs 660 clean up pattern flags for the modifiers ':S' and ':C' 661 reduce memory allocation and strlen calls in modifier ':from=to' 662 in the ':Q' modifier, only allocate memory if necessary 663 improve performance for LazyBuf 664 remove redundant parameter from ParseVarnameLong 665 migrate ParseModifierPart to use Substring 666 avoid unnecessary calls to strlen when evaluating modifiers 667 migrate ModifyWord functions to use Substring 668 migrate handling of the modifier ':S,from,to,' to Substring 669 reduce debug logging and memory allocation for ${:U...} 670 reduce verbosity of the -dv debug logging for standard cases 671 clean up debug logging for ':M' and ':N' 672 disallow '$' in the variable name of the modifier ':@' 673 simplify access to the name of an expression during evaluation 674 6752021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 676 677 * VERSION (_MAKE_VERSION): 20210330 678 Merge with NetBSD make, pick up 679 o replace enum bit-field with struct bit-field for VarEvalFlags 680 o rename VARE_NONE to VARE_PARSE_ONLY 681 o var.c: rename ApplyModifiersState to ModChain 682 fix double varname expansion in the variable modifier '::=' 683 change debug log for variable evaluation flags to lowercase 684 6852021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 686 687 * VERSION (_MAKE_VERSION): 20210314 688 Merge with NetBSD make, pick up 689 o var.c: avoid evaluating many modifiers in parse only mode 690 in strict mode (-dL) many variable references are parsed twice, 691 the first time just to report parse errors early, so we want to 692 avoid side effects and wasted effort to the extent possible. 693 6942021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 695 696 * VERSION (_MAKE_VERSION): 20210226 697 Merge with NetBSD make, pick up 698 o remove freestanding freeIt variables 699 link via FStr 700 o var.c: restructure code in ParseVarname to target human readers 701 improve error message for; 702 bad modifier in variable expression 703 unclosed modifier 704 unknown modifier 705 remove redundant parameter of ApplySingleModifier 706 explain non-obvious code around indirect variable modifiers 707 quote ':S' in error message about missing delimiter 708 extract ParseModifier_Match into separate function 709 add context information to error message about ':range' modifier 710 add quotes around variable name in an error message 711 reorder code in ModifyWords 712 use more common parameter order for VarSelectWords 713 make ModifyWord_Subst a little easier to understand 714 do not expand variable name from the command line twice 715 extract ExistsInCmdline from Var_SetWithFlags 716 save a hash map lookup when defining a cmdline variable 717 clean up VarAdd, Var_Delete, Var_ReexportVars 718 use bit-shift expressions for VarFlags constants 719 rename constants for VarFlags 720 rename ExprDefined constants for debug logging 721 rename ExprStatus to ExprDefined 722 split parameters for evaluating variable expressions 723 reduce redundant code around ModifyWords 724 print error about failed shell command before overwriting variable 725 clean up ValidShortVarname, ParseVarnameShort 726 rename VarExprStatus to ExprStatus 727 add functions for assigning the value of an expression 728 rename ApplyModifiersState_Define to Expr_Define 729 condense the code for parsing :S and :C modifiers 730 7312021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 732 733 * VERSION (_MAKE_VERSION): 20210206 734 Merge with NetBSD make, pick up 735 o unit-tests: use private TMPDIR to avoid errors from other users 736 7372021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 738 739 * VERSION (_MAKE_VERSION): 20210205 740 Merge with NetBSD make, pick up 741 o avoid strdup in mkTempFile 742 o always use vfork 743 o rename context and ctxt to scope 744 o rename some VAR constants to SCOPE 745 o Var_ functions, move the scope to the front 746 o use shortcut functions Global_Set and Global_Append 747 o add shortcut Global_Delete for deleting a global variable 748 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 749 o compat.c: when exiting due to an error, print graph information 750 o enum.c: remove overengineered Enum_ValueToString 751 o make.c: remove unused INTERNAL flag 752 remove unused return type of MakeBuildParent 753 o parse.c: replace parse error "Need an operator" with better message 754 o var.c: improve documentation about variable scopes 755 rename Var_ValueDirect to GNode_ValueDirect 756 rename old Var_SetWithFlags to Var_SetExpandWithFlags 757 merge SetVar into Var_SetWithFlags 758 split Var_Exists into plain Var_Exists and Var_ExistsExpand 759 split Var_Append into Var_Append and Var_AppendExpand 760 replace enum bit-set with bit-field 761 o unit-tests/var-op-shell: use kill rather than kill -14 762 which broke on darwin with recent update. 763 7642021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 765 766 * configure.in: check for sig_atomic_t and define it as 'int' 767 if missing. 768 769 * VERSION (_MAKE_VERSION): 20210201 770 Merge with NetBSD make, pick up 771 o use sig_atomic_t for caught_sigchld 772 7732021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 774 775 * VERSION (_MAKE_VERSION): 20210130 776 Merge with NetBSD make, pick up 777 o more unit tests 778 o convert SearchPath to struct 779 o split Buf_Destroy into Buf_Done and Buf_DoneData 780 o for.c: split For_Eval into separate functions 781 rename struct For to struct ForLoop 782 o job.c: do not create empty shell files in jobs mode 783 rename JobOpenTmpFile to JobWriteShellCommands 784 reduce unnecessary calls to waitpid 785 o parse.c: in -dp mode, print stack trace with each diagnostic 786 7872021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 788 789 * VERSION (_MAKE_VERSION): 20210123 790 Merge with NetBSD make, pick up 791 o rename Dir_Expand to SearchPath_Expand 792 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 793 o cond.c: fix debug output for comparison operators in conditionals 794 o dir.c: split Dir_FindFile into separate functions 795 7962021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 797 798 * VERSION (_MAKE_VERSION): 20210120 799 Merge with NetBSD make, pick up 800 o fix some more lint nits 801 o refine some unit tests for portability 802 o cond.c: rework parsing 803 8042021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 805 806 * VERSION (_MAKE_VERSION): 20210110 807 Merge with NetBSD make, pick up 808 o fix lint warnings 809 o consistently use boolean expressions in conditions 810 8112021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 812 813 * VERSION (_MAKE_VERSION): 20210108 814 Merge with NetBSD make, pick up 815 o job.c: back to polling token pipe if we want a token 816 o main.c: always print 'stopped in' on first call 817 The execption is if we bail because of an abort token 818 in which case just exit 6. 819 8202021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 821 822 * VERSION (_MAKE_VERSION): 20210101 823 Merge with NetBSD make, pick up 824 o Happy New Year! 825 o rename CmdOpts.lint to strict 826 o exit 2 on technical errors 827 o replace pointers in controlling conditions with booleans 828 o replace global preserveUndefined with VARE_KEEP_UNDEF 829 o compat.c: re-export variables from the actual make process 830 if using vfork this is the effect anyway 831 o cond.c: clean up VarParseResult constants 832 o for.c: fix undefined behavior in SubstVarLong 833 make control flow in SubstVarLong of .for loops more obvious 834 clean up SubstVarShort in .for loops 835 extract ForSubstBody from ForReadMore 836 clean up ForReadMore 837 simplify termination condition for .for loop 838 add error handling for .for loop items 839 job.c: re-export variables from the actual make process 840 parse.c: remove mmap for loading files, only allow files < 1 GiB 841 fix edge case in := with undefined in variable name 842 skip variable expansion in ParseDependencyTargetWord 843 var.c: split ExportVar into separate functions 844 clean up code in extracted ExportVar functions 845 remove dead code from ApplyModifiersIndirect 846 split Var_Subst into easily understandable functions 847 clean up VarParseResult constants 848 8492020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 850 851 * main.c: use .MAKE.DEPENDFILE as set by makefiles 852 8532020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 854 855 * VERSION (_MAKE_VERSION): 20201222 856 Merge with NetBSD make, pick up 857 o make DEBUG macro return boolean 858 o parse.c: fix assertion failure for files without trailing newline 859 o var.c: allow .undef to undefine multiple variables at once 860 remove excess newline from parse errors 861 8622020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 863 864 * VERSION (_MAKE_VERSION): 20201221 865 Merge with NetBSD make, pick up 866 o some unit-test updates 867 8682020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 869 870 * VERSION (_MAKE_VERSION): 20201220 871 Merge with NetBSD make, pick up 872 o more unit tests 873 o return FStr from Var_Parse and Var_Value 874 o spell nonexistent consistently 875 o add str_basename to reduce duplicate code 876 o compat.c: fix .ERROR_TARGET in compat -k mode 877 extract InitSignals from Compat_Run 878 extract UseShell from Compat_RunCommand 879 o cond.c: error out if an '.endif' or '.else' contain extraneous text 880 o for.c: rename ForIterate to ForReadMore 881 o hash.c: clean up hash function for HashTable 882 o lst.c: rename Vector.priv_cap to cap 883 o main.c: remove constant parameter from MakeMode 884 o make.c: use symbolic time for 0 in Make_Recheck 885 extract MakeChildren from MakeStartJobs 886 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 887 fix error message for .info/.warning/.error without argument 888 extract Var_Undef from ParseDirective 889 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 890 rename mode constants for ParseGetLine to be more expressive 891 reduce debugging details in Parse_SetInput 892 fix line numbers in .for loops 893 split ParseGetLine into separate functions 894 fix garbled output for failed shell command 895 var.c: remove redundant assignment in ApplyModifier_SysV 896 error out on unknown variable modifiers at parse time 897 remove wrong error message for indirect modifier in lint mode 898 extract ApplySingleModifier from ApplyModifiers 899 use FStr for memory management in Var_SetWithFlags 900 extract SetVar from Var_SetWithFlags 901 use FStr in VarNew 902 extract string functions from ApplyModifier_To 903 error out if .undef has not exactly 1 argument 904 extract Var_DeleteVar from Var_Delete 905 extract Var_Undef from ParseDirective 906 clean up memory management for expanding variable expressions 907 9082020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 909 910 * avoid %zu 911 912 * lst.c: avoid anonymous union 913 914 * VERSION (_MAKE_VERSION): 20201212 915 Merge with NetBSD make, pick up 916 o more unit tests 917 o inline Targ_Ignore and Targ_Silent 918 o split JobFlags into separate fields 919 o remove const from function parameters (left overs from refactoring) 920 o eliminate boolean argument of Var_Export 921 o make API of Buf_Init simpler 922 o rename ParseRunOptions to ParseCommandFlags 923 o replace *line with line[0] 924 o compat.c: fix wrong exit status for multiple failed main targets 925 refactor Compat_Run to show the error condition more clearly 926 don't make .END if the main targets already failed (-k mode) 927 fix exit status in -k mode if a dependency fails 928 o for.c: clean up Buf_AddEscaped in .for loops 929 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 930 make Job_Touch simpler 931 refactor JobFinish 932 rename Shell.exitFlag to errFlag 933 move Job.xtraced to ShellWriter 934 make printing of shell commands independent from the job 935 rename shell flags in struct Shell 936 extract JobOpenTmpFile from JobStart 937 rename RunFlags to CommandFlags 938 split various Job.* into separate fields 939 rename commandShell to shell 940 extract InitShellNameAndPath from Shell_Init 941 replace signal handling macros with local functions 942 replace macro MESSAGE with local function 943 parse.c: error out on null bytes in makefiles 944 error out on misspelled directives 945 rename IFile.nextbuf to readMore 946 fix undefined behavior in ParseEOF 947 str.c: remove redundant call to strlen in Str_Words 948 var.c: error out on misspelled .unexport-env 949 error out on misspelled .export directives 950 extract ExportVars from Var_Export 951 extract ExportVarsExpand from Var_Export 952 eliminate boolean argument of Var_Export 953 fix undefined behavior when exporting ${:U } 954 rename Var_ExportVars to Var_ReexportVars 955 rename Var_Export1 to ExportVar 956 9572020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 958 959 * VERSION (_MAKE_VERSION): 20201206 960 Merge with NetBSD make, pick up 961 o more unit tests 962 o inline macros for debug logging 963 o use consistent variable names for list nodes 964 o define constants for enum zero-values 965 o dir.c: use fixed format for debug output of the directory cache 966 remove Dir_InitDir 967 o lst.c: inline Lst_Enqueue, Vector_Done 968 o meta.c: remove unused parameter from meta_needed 969 o parse.c: rename parse functions 970 o suff.c: extract ExpandChildrenRegular from ExpandChildren 971 o targ.c: don't concatenate identifiers in Targ_PrintType 972 o var.c: remove comment decoration 973 extract UnexportVars from Var_UnExport 974 extract GetVarnamesToUnexport from Var_UnExport 975 extract UnexportEnv from Var_UnExport 976 extract UnexportVar from Var_UnExport 977 move CleanEnv to UnexportVars 978 replace pointer comparisons with enum 979 add FStr to var.c to make memory handling simpler 980 use FStr in Var_UnExport 981 move type definitions in var.c to the top 982 extract FreeEnvVar from Var_Parse 983 extract ShuffleStrings from ApplyModifier_Order 984 9852020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 986 987 * VERSION (_MAKE_VERSION): 20201130 988 Merge with NetBSD make, pick up 989 o add unit tests for META MODE 990 o reduce memory allocation for dirSearchPath, GNode.parents, 991 GNode.children, OpenDirs 992 o reduce pointer indirection for GNode.cohorts and 993 GNode.implicitParents 994 o remove pointer indirection from GNode.commands 995 o inline Lst_ForEachUntil in meta mode 996 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 997 clean up memory management for CachedDirs 998 fix the reference count of dotLast going negative 999 add debug logging for OpenDirs_Done 1000 extract CacheNewDir from Dir_AddDir 1001 add debug logging for reference counting of CachedDir 1002 rename some Dir functions to SearchPath 1003 o job.c: rename some global variables 1004 o main.c: reduce memory allocation in ReadBuiltinRules 1005 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 1006 CmdOpts.makefiles 1007 Add .MAKE.UID and .MAKE.GID 1008 o make.c: reduce memory allocation for/in toBeMade, 1009 Make_ProcessWait, Make_ExpandUse 1010 o meta.c: reduce memory allocation in meta_oodate 1011 o parse.c: reduce memory allocations for parsing dependencies and 1012 targets 1013 o suff.c: reduce memory allocation in suffix handling 1014 10152020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 1016 1017 * VERSION (_MAKE_VERSION): 20201124 1018 Merge with NetBSD make, pick up 1019 o .MAKE.{UID,GID} represent uid and gid running make. 1020 o fix error handling for .BEGIN and .END dependency in -k mode 1021 o fix missing "Stop." after failed .END node in -k mode 1022 o use properly typed comparisons in boolean contexts 1023 o replace a few HashTable_CreateEntry with HashTable_Set 1024 o add HashSet type 1025 o compat.c: split Compat_Make into smaller functions 1026 extract DebugFailedTarget from Compat_RunCommand 1027 o dir.c: refactor Dir_UpdateMTime 1028 migrate CachedDir.files from HashTable to HashSet 1029 o make.c: add high-level API for GNode.made 1030 10312020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 1032 1033 * VERSION (_MAKE_VERSION): 20201122 1034 Merge with NetBSD make, pick up 1035 o rename GNode.context to vars 1036 o suff.c: cleanup and refactor 1037 rename some functions and vars to better reflect usage 1038 add high-level API for CandidateSearcher 1039 o targ.c: add more debug logging for suffix handling 1040 o more unit tests 1041 o add debug logging for setting and resetting the main target 1042 10432020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 1044 1045 * VERSION (_MAKE_VERSION): 20201117 1046 Merge with NetBSD make, pick up 1047 o fix some unit-tests when .SHELL is dash 1048 o rename Targ_NewGN to GNode_New 1049 o make some GNode functions const 1050 o main.c: call Targ_Init before Var_Init 1051 cleanup PrintOnError, getTmpdir and ParseBoolean 1052 o var.c: fix error message of failed :!cmd! modifier 1053 10542020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 1055 1056 * VERSION (_MAKE_VERSION): 20201114 1057 Merge with NetBSD make, pick up 1058 o replace a few HashTable_CreateEntry with HashTable_Set 1059 o clean up cached_stats 1060 o rename DEFAULT to defaultNode 1061 o remove redundant struct make_stat 1062 o cond.c: in lint mode, check for ".else <cond>" 1063 use bitset for IfState 1064 replace large switch with if-else in Cond_EvalLine 1065 o job.c: clean up JobExec, JobStart, JobDoOutput 1066 use stderr for error message about failed touch 1067 clean up Job_Touch 1068 replace macro DBPRINTF with JobPrintln 1069 rename JobState to JobStatus 1070 main.c: switch cache for realpath from GNode to HashTable 1071 clean up Fatal 1072 clean up InitDefSysIncPath 1073 use progname instead of hard-coded 'make' in warning 1074 rename Main_SetVarObjdir to SetVarObjdir 1075 make.1: document the -S option 1076 make.c: fix debug output for GNode details 1077 use symbolic names in debug output of GNodes 1078 10792020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 1080 1081 * configure.in: fix --with-force-machine-arch 1082 1083 * VERSION (_MAKE_VERSION): 20201112 1084 Merge with NetBSD make, pick up 1085 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 1086 checks in InitObjdir. Explicit .OBJDIR target always allows 1087 read-only directory. 1088 o cond.c: clean up Cond_EvalLine 1089 10902020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 1091 1092 * VERSION (_MAKE_VERSION): 20201111 1093 Merge with NetBSD make, pick up 1094 o more unit-tests 1095 o style cleanup 1096 remove redundant parentheses from sizeof operator 1097 replace character literal 0 with '\0'. 1098 replace pointer literal 0 with NULL. 1099 remove redundant parentheses. 1100 replace (expr & mask) == 0 with !(expr & mask). 1101 use strict typing in conditions of the form !var 1102 o rename Make_OODate to GNode_IsOODate 1103 o rename Make_TimeStamp to GNode_UpdateYoungestChild 1104 o rename Var_Set_with_flags to Var_SetWithFlags 1105 o rename dieQuietly to shouldDieQuietly 1106 o buf.c: make API of Buf_Init simpler 1107 o compat.c: clean up Compat_Make, Compat_RunCommand, 1108 CompatDeleteTarget and CompatInterrupt 1109 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 1110 clean up CondParser_Comparison 1111 o main.c: rename getBoolean and s2Boolean 1112 rename MAKEFILE_PREFERENCE for consistency 1113 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 1114 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 1115 replace emptyString with allocated empty string 1116 error out on unclosed expressions after the colon 1117 11182020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 1119 1120 * VERSION (_MAKE_VERSION): 20201101 1121 Merge with NetBSD make, pick up 1122 o negate NoExecute to GNode_ShouldExecute 1123 o job.c: rename JobMatchShell to FindShellByName 1124 extract EscapeShellDblQuot from JobPrintCommand 1125 extract ParseRunOptions from JobPrintCommand 1126 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 1127 treat malformed :range, :ts and :[...] as errors 1128 add tests for the variable modifiers :[words] and :range 1129 11302020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 1131 1132 * VERSION (_MAKE_VERSION): 20201031 1133 Merge with NetBSD make, pick up 1134 o format #include directives consistently 1135 o do not look up local variables like .TARGET anywhere else 1136 o main.c: Main_SetObjdir is first called for curdir which may be 1137 readonly 1138 reduce the scope where recursive expressions are detected 1139 remove redundant :tl from getBoolean 1140 clean up mkTempFile 1141 o meta.c: simplify memory allocation in meta_create and meta_oodate 1142 o parse.c: extract loadedfile_mmap from loadfile 1143 o trace.c: document possible undefined behavior with .CURDIR 1144 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 1145 rename ismeta to is_shell_metachar 1146 remove debug logging for the :Q variable modifier 1147 rename VarIsDynamic to VarnameIsDynamic 1148 use consistent parameter order in varname parsing functions 1149 extract ParseVarnameLong from Var_Parse 1150 extract ParseVarnameShort from Var_Parse 1151 fix type of ParseModifierPart parameter delim 1152 extract IsEscapedModifierPart from ParseModifierPart 1153 clean up ModifyWords 1154 add test for combining the :@ and :? variable modifiers 1155 11562020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 1157 1158 * VERSION (_MAKE_VERSION): 20201030 1159 Merge with NetBSD make, pick up 1160 o change char * to void * in Var_Value 1161 o make iterating over HashTable simpler 1162 o rename VAR_CMD to VAR_CMDLINE 1163 o cond.c: clean up is_separator 1164 fix parse error in string literal in conditional 1165 o main.c: do not use objdir that is not writable 1166 in lint mode, exit with error status on errors 1167 o parse.c: clean up StrContainsWord 1168 fix out-of-bounds pointer in ParseTrackInput 1169 o var.c: rename Str_SYSVMatch and its parameters 1170 remove unsatisfiable conditions in Var_Set_with_flags 1171 document where the variable name is expanded 1172 fix documentation for VARP_SUB_ONE 1173 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1174 document VAR_READONLY 1175 prevent appending to read-only variables 1176 extract MayExport from Var_Export1 1177 remove redundant evaluations in VarFind 1178 replace VarFindFlags with a simple Boolean 1179 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1180 11812020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1182 1183 * VERSION (_MAKE_VERSION): 20201028 1184 Merge with NetBSD make, pick up 1185 o rename defIncPath to defSysIncPath 1186 o initialize all CmdOpts fields 1187 o lst.c: inline Vector_Get 1188 o main.c: refactor main extract 1189 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1190 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1191 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1192 o parse.c: merge curFile into includes 1193 rename predecessor to order_pred 1194 sort ParseSpecial alphabetically 1195 remove unused, undocumented .NOEXPORT 1196 rename ParseSpecial enum values consistently 1197 rename some fields of struct IFile 1198 11992020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1200 1201 * VERSION (_MAKE_VERSION): 20201026 1202 Merge with NetBSD make, pick up 1203 o group the command line options and arguments into a struct 1204 o rename GNode.cmgn to youngestChild 1205 o rename hash functions to identify the type name 1206 o negate OP_NOP and rename it to GNode_IsTarget 1207 o add GNode_Path to access the path of a GNode 1208 o remove macros MIN and MAX 1209 o remove unused Lst_Find and Lst_FindFrom 1210 o arch.c: and make Arch_FindLib simpler 1211 clean up code layout 1212 make Arch_ParseArchive simpler 1213 o cond.c: inline CondFindStrMatch into FuncMake 1214 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1215 omit trailing space in debug output for expanding file patterns 1216 refactor DirMatchFiles 1217 document that the SearchPath of Dir_FindFile may be NULL 1218 remove UNCONST from Dir_Expand 1219 inline DirFindName 1220 o for.c: clean up code for handling .for loops 1221 o hash.c: print hash in debug log with fixed width 1222 clean up hash table functions 1223 reduce amount of string hashing 1224 o job.c: refactor JobDeleteTarget 1225 use proper enum constants for aborting 1226 convert result of JobStart from macros to enum 1227 convert abort reason macros to enum 1228 rework Job_CheckCommands to reduce indentation 1229 rename Shell fields 1230 add field names in declaration of DEFSHELL_CUSTOM 1231 convert JobState and JobFlags to enum types 1232 move handling of the "..." command to JobPrintCommands 1233 o lst.c: clean up 1234 refactor LstNodeNew 1235 remove Lst_Open, Lst_Next, Lst_Close 1236 remove code for circular lists from Lst_Next 1237 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1238 /dev/null or anything starting with "no" 1239 convert macros for debug flags into enum 1240 o make.c: inline Lst_Copy in Make_ExpandUse 1241 o meta.c: inline Lst_Find in meta_oodate 1242 make Lst_RemoveIf simpler in meta_oodate 1243 o parse.c: convert error level for Parse_Error to an enum 1244 o suff.c: properly terminate debug output with newline 1245 add more details to DEBUG_SRC log 1246 replace Dir_CopyDir with Dir_CopyDirSearchPath 1247 don't modify GNode name while rebuilding the suffix graph 1248 o var.c: reduce duplicate code in VarFind 1249 12502020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1251 1252 * VERSION (_MAKE_VERSION): 20201022 1253 Merge with NetBSD make, pick up 1254 o more refactoring and simplification to reduce code size 1255 o var.c: extract CanonicalVarname from VarFind 1256 o make.c: extract UpdateImplicitParentsVars from Make_Update 1257 o main.c: extract PrintVar from doPrintVars 1258 extract HandlePWD from main 1259 o lst.c: inline simple Lst getters 1260 remove unused Lst_ForEach 1261 o job.c: move struct Shell from job.h to job.c 1262 o more unit tests 1263 12642020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1265 1266 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1267 12682020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1269 1270 * VERSION (_MAKE_VERSION): 20201018 1271 Merge with NetBSD make, pick up 1272 o remove USE_IOVEC 1273 o rename some Hash_* apis to Hash* 1274 o replace execError with execDie 1275 o rename Lst_Init to Lst_New 1276 o add tags to enum types 1277 o rename Stack to Vector 1278 o parse.c: more refactoring 1279 o unit-tests: make some tests use line buffered stdout 1280 o unit-tests/Makefile: in meta mode do not make all tests depend on 1281 Makefile, it isn't necessary. 1282 12832020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1284 1285 * main.c: check for CTL_HW being defined. 1286 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1287 disable opt-debug-jobs test until it works on ubuntu 1288 1289 * VERSION (_MAKE_VERSION): 20201010 1290 Merge with NetBSD make, pick up 1291 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1292 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1293 o main.c: extract init_machine and init_machine_arch from main 1294 allow to disable debug logging options 1295 o parse.c: enable format string truncation warnings 1296 extract parsing of sources from ParseDoDependency 1297 split ParseDoSrc into smaller functions 1298 hide implementation details from Parse_DoVar 1299 clean up parsing of variable assignments 1300 split Parse_DoVar into manageable pieces 1301 don't modify the given line during Parse_DoVar 1302 fix out-of-bounds memory access in Parse_DoVar 1303 fix parsing of the :sh assignment modifier 1304 o var.c: rework memory allocation for the name of variables 1305 extract ApplyModifier_Literal into separate function 1306 in lint mode, reject modifiers without delimiter 1307 do not export variable names starting with '-' 1308 o fix double-free bug in -DCLEANUP mode 1309 o more cleanup to enable higher warnings level 1310 o more unit tests 1311 13122020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1313 1314 * VERSION (_MAKE_VERSION): 20201002 1315 Merge with NetBSD make, pick up 1316 o dir.c: use hash table for looking up open directories by name 1317 o main.c: clean up option handling 1318 o parse.c: add missing const for Parse_AddIncludeDir 1319 o var.c: ApplyModifier_To, update pp in each branch 1320 o remove redundant function prototypes 1321 o more unit tests 1322 13232020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1324 1325 * VERSION (_MAKE_VERSION): 20201001 1326 Merge with NetBSD make, pick up 1327 o compat.c: comment about "..." 1328 13292020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1330 1331 * VERSION (_MAKE_VERSION): 20200930 1332 Merge with NetBSD make, pick up 1333 o job.c: split Job.jobPipe into 2 separate fields 1334 replace Lst_Open with direct iteration 1335 o lst.c: remove redundant assertions 1336 o targ.c: replace Lst_Open with direct iteration 1337 o var.c: fix bug in evaluation of indirect variable modifiers 1338 extract ApplyModifier_Quote into separate function 1339 o make debug logging simpler 1340 13412020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1342 1343 * VERSION (_MAKE_VERSION): 20200927 1344 Merge with NetBSD make, pick up 1345 o parse.c: ensure parse errors result in 'stopped in' message. 1346 o compat.c: make parameter of Compat_RunCommand const 1347 o main.c: extract InitVarTarget from main 1348 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1349 refactor ParseDoDependency 1350 o var.c: Var_Subst no longer returns string result 1351 rename Var_ParsePP back to Var_Parse 1352 in lint mode, improve error handling for undefined variables 1353 extract ParseVarname from Var_Parse 1354 o rename Lst_ForEach to Lst_ForEachUntil 1355 o inline Lst_ForEachUntil in several cases 1356 o clean up API for finding and creating GNodes 1357 o fix assertion failure in -j mode with .END node 1358 o inline and remove LstNode_Prev and LstNode_Next 1359 o use fine-grained type names for lists and their nodes 1360 o more unit tests 1361 13622020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1363 1364 * VERSION (_MAKE_VERSION): 20200911 1365 Merge with NetBSD make, pick up 1366 o cond.c: split EvalComparison into smaller functions 1367 reorder parameters of condition parsing functions 1368 reduce code size in CondParser_Eval 1369 rename CondGetString to CondParser_String 1370 add CondLexer_SkipWhitespace 1371 group the condition parsing state into a struct 1372 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1373 o migrate Var_Parse to Var_ParsePP 1374 o add wrappers around ctype.h functions 1375 o lst.c: use a stack instead of a list for the nested include path 1376 o more unit tests 1377 13782020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1379 1380 * make-bootstrap.sh.in: adjust object list 1381 13822020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1383 1384 * VERSION (_MAKE_VERSION): 20200902 1385 Merge with NetBSD make, pick up 1386 o use make_stat to ensure no confusion over valid fields 1387 returned by cached_stat 1388 o var.c: make VarQuote const-correct 1389 o add unit tests for .for 1390 13912020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1392 1393 * VERSION (_MAKE_VERSION): 20200901 1394 Merge with NetBSD make, pick up 1395 o rename Hash_Table fields 1396 o make data types in Dir_HasWildcards more precise 1397 13982020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1399 1400 * VERSION (_MAKE_VERSION): 20200831 1401 Merge with NetBSD make, pick up 1402 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1403 o lst.c: Lst_Open renable assert that list isn't open 1404 o unit test for .TARGET dependent flags 1405 o var.c: fix aliasing bug in VarUniq 1406 o more unit tests for :u 1407 14082020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1409 1410 * VERSION (_MAKE_VERSION): 20200830 1411 Merge with NetBSD make, pick up 1412 o allow for strict type checking for Boolean 1413 o Var_Parse never returns NULL 1414 o Var_Subst never returns NULL 1415 o Lst_Find now takes boolean match function 1416 o rename Lst_Memeber to Lst_FindDatum 1417 o rename LstNode functions to match their type 1418 o rename GNode.iParents to implicitParents 1419 o fix assertion failure for .SUFFIXES in archives 1420 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1421 remove unreachable code from CompatRunCommand 1422 o main.c: simplify getBoolean 1423 o stc.c: replace brk_string with simpler Str_Words 1424 o suff.c: add debug macros 1425 14262020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1427 1428 * VERSION (_MAKE_VERSION): 20200828 1429 Merge with NetBSD make, pick up 1430 o lst.c: inline LstIsValid and LstNodeIsValid 1431 o remove trailing S from Lst function names after migration complete 1432 o more comment cleanup/clarification 1433 o suff.c: clean up suffix handling 1434 o more unit tests 1435 14362020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1437 1438 * VERSION (_MAKE_VERSION): 20200826 1439 Merge with NetBSD make, pick up 1440 o enum.c: distinguish between bitsets containing flags and 1441 ordinary enums 1442 o var.c: fix error message for ::!= modifier with shell error 1443 o fix bugs in -DCLEANUP mode 1444 14452020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1446 1447 * VERSION (_MAKE_VERSION): 20200824 1448 Merge with NetBSD make, pick up 1449 o in debug mode, print GNode details in symbols 1450 14512020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1452 1453 * VERSION (_MAKE_VERSION): 20200823 1454 Merge with NetBSD make, pick up 1455 o lst.c: more asserts, 1456 make args to Lst_Find match others. 1457 o var.c: pass flags to VarAdd 1458 o arch.c: use Buffer 1459 o str.c: brk_string return size_t for nwords 1460 o more unit tests 1461 14622020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1463 1464 * VERSION (_MAKE_VERSION): 1465 Merge with NetBSD make, pick up 1466 o var.c: support for read-only variables eg .SHELL 1467 being the shell used to run scripts. 1468 o lst.c: more simplification 1469 o more documentation and style cleanup 1470 o more unit tests 1471 o ensure unit-test/Makefile is run by TEST_MAKE 1472 o reduce duplication of header inclusion 1473 14742020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1475 1476 * VERSION (_MAKE_VERSION): 20200821 1477 Merge with NetBSD make, pick up 1478 o lst.c: revert invalid assertion - but document it 1479 o dir.c: split Dir_Init into two functions 1480 14812020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1482 1483 * lst.c: needs inttypes.h on Linux 1484 1485 * VERSION (_MAKE_VERSION): 20200820 1486 Merge with NetBSD make, pick up 1487 o make.1: clarify some passages 1488 o var.c: more cleanup, clarify comments 1489 o make_malloc.c: remove unreachable code 1490 o cond.c: make CondGetString easier to debug 1491 o simplify list usage 1492 o unit-tests: more 1493 14942020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1495 1496 * VERSION (_MAKE_VERSION): 20200816 1497 Merge with NetBSD make, pick up 1498 o refactor unit-tests to be more fine grained 1499 not all tests moved yet 1500 15012020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1502 1503 * VERSION (_MAKE_VERSION): 20200814 1504 Merge with NetBSD make, pick up 1505 o more str_concat variants 1506 o more enums for flags 1507 o var.c: cleanup for higher warnings level 1508 15092020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1510 1511 * VERSION (_MAKE_VERSION): 20200810 1512 Merge with NetBSD make, pick up 1513 o more unit tests 1514 o general comment and style cleanup 1515 15162020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1517 1518 * VERSION (_MAKE_VERSION): 20200808 1519 Merge with NetBSD make, pick up 1520 o enum.[ch]: streamline, enums for use in flags and debug output 1521 o cond.c: cleanup 1522 o var.c: reduce duplicate code for modifiers 1523 debug logging for Var_Parse 1524 more detailed debug output 1525 o more unit tests 1526 15272020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1528 1529 * unit-tests/Makefile: -r for recursive and include Makefile.inc 1530 so I can run tests in meta mode 1531 supress extra noise if in meta mode 1532 1533 * VERSION (_MAKE_VERSION): 20200806 1534 Merge with NetBSD make, pick up 1535 o parse.c: remove VARE_WANTRES for LINT 1536 we just want to check parsing (for now). 1537 15382020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1539 1540 * VERSION (_MAKE_VERSION): 20200805 1541 Merge with NetBSD make, pick up 1542 o make.1: Rework the description of dependence operators 1543 15442020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1545 1546 * VERSION (_MAKE_VERSION): 20200803 1547 Merge with NetBSD make, pick up 1548 o revert some C99 usage, for max portability 1549 o unit-tests/lint 1550 15512020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 1552 1553 * VERSION (_MAKE_VERSION): 20200802 1554 Merge with NetBSD make, pick up 1555 o more unit tests 1556 15572020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 1558 1559 * Remove NetBSD specific plumbing from unit-tests/Makefile 1560 1561 * VERSION (_MAKE_VERSION): 20200801 1562 Merge with NetBSD make, pick up 1563 o make Var_Value return const 1564 o size_t for buf sizes 1565 o optimize some buffer operations - avoid strlen 1566 15672020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1568 1569 * VERSION (_MAKE_VERSION): 20200731 1570 Merge with NetBSD make, pick up 1571 o var.c: fix undefinded behavior for incomplete :t modifier 1572 fixes unit-test/moderrs on Ubuntu 1573 o parse.c: When parsing variable assignments other than := 1574 if DEBUG(LINT) test substition of value, so we get a file and 1575 line number in the resulting error. 1576 o dir.c: fix parsing of nested braces in dependency lines 1577 add unit-tests 1578 15792020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1580 1581 * VERSION (_MAKE_VERSION): 20200730 1582 Merge with NetBSD make, pick up 1583 o var.c: minor cleanup 1584 o unit-tests: more tests to improve code coverage 1585 15862020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 1587 1588 * VERSION (_MAKE_VERSION): 20200728 1589 Merge with NetBSD make, pick up 1590 o var.c: more optimizations 1591 15922020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1593 1594 * VERSION (_MAKE_VERSION): 20200726 1595 Merge with NetBSD make, pick up 1596 o collapse lsd.lib into lst.c - reduce code size and allow inlining 1597 o lots of function comment updates 1598 o var.c: more optimizations 1599 o make return of Var_Parse const 1600 16012020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1602 1603 * VERSION (_MAKE_VERSION): 20200720 1604 Merge with NetBSD make, pick up 1605 o DEBUG_HASH report stats at end and tone down the noise 1606 o var.c: each flag type gets its own prefix. 1607 move SysV string matching to var.c 1608 make ampersand in ${VAR:from=to&} an ordinary character 1609 cleanup and simplify implementation of modifiers 1610 o make.1: move documentation for assignment modifiers 1611 16122020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1613 1614 * VERSION (_MAKE_VERSION): 20200718 1615 Merge with NetBSD make, pick up 1616 o DEBUG_HASH to see how well the hash tables are working 1617 16182020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1619 1620 * bsd.after-import.mk: make sure we update unit-tests/Makefile 1621 16222020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1623 1624 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 1625 1626 * VERSION (_MAKE_VERSION): 20200710 1627 Merge with NetBSD make, pick up 1628 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 1629 o meta.c: target flagged .META is out-of-date if meta file missing 1630 16312020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 1632 1633 * VERSION (_MAKE_VERSION): 20200709 1634 Merge with NetBSD make, pick up 1635 o cond.c: fix for compare_expression when doEval=0 1636 o unit-tests/Makefile: rework 1637 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 1638 16392020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1640 1641 * VERSION (_MAKE_VERSION): 20200704 1642 Merge with NetBSD make, pick up 1643 (most of this by rillig@) 1644 o lots of style and white-space cleanup 1645 o lots more unit tests for variable modifiers 1646 o simplified description of some functions 1647 o str.c: refactor Str_Match 1648 o var.c: debugging output for :@ 1649 constify VarModify parameter 1650 fix :hash modifier on 16-bit platforms 1651 remove unnecessary forward declarations 1652 refactor ApplyModifier_SysV to have less indentation 1653 simplify code for :E and :R 1654 clean up code for :H and :T 1655 refactor ApplyModifiers 1656 1657 * var.c: we need stdint.h on some platforms to get uint32_t 1658 * unit-test/Makefile: we need to supress the specific error 1659 for RE substitution error in modmisc, since it varies accross 1660 different OS. 1661 16622020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 1663 1664 * VERSION (_MAKE_VERSION): 20200702 1665 Merge with NetBSD make, pick up 1666 o var.c: more improvements to avoiding unnecessary evaluation 1667 use enums for flags 1668 o remove flags arg to Var_Set which outside of var.c is always 0 1669 16702020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1671 1672 * VERSION (_MAKE_VERSION): 20200701 1673 Merge with NetBSD make, pick up 1674 o var.c: with change to cond.c; ensure that nested variables 1675 within a variable name are expanded. 1676 o unit-tests/varmisc.mk: test for nested varname 1677 16782020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 1679 1680 * VERSION (_MAKE_VERSION): 20200629 1681 Merge with NetBSD make, pick up 1682 o cond.c: do not eval unnecessary terms of conditionals. 1683 16842020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 1685 1686 * VERSION (_MAKE_VERSION): 20200625 1687 Merge with NetBSD make, pick up 1688 o meta.c: report error if lseek in filemon_read fails 1689 16902020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1691 1692 * VERSION (_MAKE_VERSION): 20200622 1693 Merge with NetBSD make, pick up 1694 o dieQuietly: ignore OP_SUBMAKE as too aggressive 1695 16962020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 1697 1698 * VERSION (_MAKE_VERSION): 20200619 1699 Merge with NetBSD make, pick up 1700 o str.c: performance improvement for Str_Match for multiple '*' 1701 o dieQuietly: supress the failure output from make 1702 when failing node is a sub-make or a sibling failed. 1703 This cuts down greatly on unhelpful noise at the end of 1704 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 1705 17062020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1707 1708 * FILES: add LICENSE to appease some packagers. 1709 This is an attempt to fairly represent the license on almost 1710 200 files, which are almost all BSD-3-Clause 1711 The few exceptions being more liberal. 1712 1713 * VERSION (_MAKE_VERSION): 20200610 1714 Merge with NetBSD make, pick up 1715 o unit test for :Or 1716 17172020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1718 1719 * VERSION (_MAKE_VERSION): 20200606 1720 Merge with NetBSD make, pick up 1721 o make.1: cleanup 1722 1723 * Makefile: fix depends for main.o which broke MAKE_VERSION 1724 17252020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 1726 1727 * VERSION (_MAKE_VERSION): 20200605 1728 Merge with NetBSD make, pick up 1729 o dir.c: cached_stats - don't confuse stat and lstat results. 1730 o var.c: add :Or for reverse sort. 1731 17322020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1733 1734 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1735 also if --with-filemon= specifies path to filemon.h 1736 set use_filemon=dev 1737 * dirname.c: remove include of namespace.h 1738 17392020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1740 1741 * VERSION (_MAKE_VERSION): 20200517 1742 Merge with NetBSD make, pick up 1743 o modified dollar tests to avoid shell dependencies 1744 o new tests for .INCLUDEFROM 1745 17462020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1747 1748 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1749 to not depend so much on shell behavior 1750 17512020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1752 1753 * VERSION (_MAKE_VERSION): 20200510 1754 Merge with NetBSD make, pick up 1755 o unit test for dollar handling 1756 17572020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 1758 1759 * VERSION (_MAKE_VERSION): 20200506 1760 Merge with NetBSD make, pick up 1761 o str.c: empty string does not match % pattern 1762 plus unit-test changes 1763 17642020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 1765 1766 * VERSION (_MAKE_VERSION): 20200504 1767 May the 4th be with you 1768 Merge with NetBSD make, pick up 1769 o var.c: import handling of old sysV style modifier using '%' 1770 o str.c: refactor brk_string 1771 o unit-tests: add test case for lazy conditions 1772 17732020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1774 1775 * VERSION (_MAKE_VERSION): 20200418 1776 1777 * configure.in: use_makefile=no for cygwin et al. 1778 case insensitive filesystems just don't work if both 1779 makefile and Makefile exist. 1780 NOTE: bmake does not support cygwin and likely never will, 1781 but if brave souls want to try it - help them out. 1782 17832020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 1784 1785 * VERSION (_MAKE_VERSION): 20200402 1786 Merge with NetBSD make, pick up 1787 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 1788 a blank command is perfectly valid. 1789 17902020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1791 1792 * VERSION (_MAKE_VERSION): 20200330 1793 Merge with NetBSD make, pick up 1794 o make.h: extern debug_file 1795 17962020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1797 1798 * VERSION (_MAKE_VERSION): 20200318 1799 Merge with NetBSD make, pick up 1800 o meta.c: meta_oodate, check for corrupted meta file 1801 earlier and more often. 1802 18032020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1804 1805 * VERSION (_MAKE_VERSION): 20200220 1806 18072020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1808 1809 * boot-strap: unset MAKEFLAGS 1810 18112020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1812 1813 * VERSION (_MAKE_VERSION): 20200212 1814 * meta.c: meta_compat_parent check for USE_FILEMON 1815 patch from Soeren Tempel 1816 18172020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1818 1819 * VERSION: 20200205 1820 Merge with NetBSD make, pick up 1821 o meta.c: fix compat mode, need to call meta_job_output() 1822 o job.c: extra fds for meta mode not needed if using filemon_dev 1823 18242020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1825 1826 * VERSION: 20200122 1827 Merge with NetBSD make, pick up 1828 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1829 returns FALSE. 1830 18312020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1832 1833 * VERSION: 20200121 1834 Merge with NetBSD make, pick up 1835 o filemon/filemon_{dev,ktrace}.c: allow selection of 1836 filemon implementation. filemon_dev.c uses the kernel module 1837 while filemon_ktrace.c leverages the fktrace api available in 1838 NetBSD. filemon_ktrace.c can hopefully form the basis for 1839 adding support for other tracing mechanisms such as strace on 1840 Linux. 1841 o meta.c: when target is out-of-date per normal make rules 1842 record value of .OODATE in meta file. 1843 18442019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1845 1846 * VERSION: 20190926 1847 Merge with NetBSD make, pick up 1848 o parse.c: don't pass NULL to realpath(3) 1849 some versions cannot handle it. 1850 18512019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1852 1853 * VERSION: 20190409 1854 Merge with NetBSD make, pick up 1855 o parse.c: ParseDoDependency: free paths rather than assert 1856 18572018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1858 1859 * VERSION: 20181222 1860 1861 * configure.in: add --without-makefile to avoid generating 1862 makefile and make-bootstrap.sh 1863 1864 * include Makefile.inc if it exists 1865 1866 * Use Makefile and Makefile.config.in in unit-tests 1867 so we can use just: make obj && make && make test 1868 when bmake is already available. 1869 We add --without-makefile to CONFIGURE_ARGS in this case. 1870 1871 * tweak bsd.after-import.mk (captures Makefile.config etc 1872 after import to FreeBSD for example) to cope with all the above. 1873 18742018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1875 1876 * VERSION: 20181221 1877 Merge with NetBSD make, pick up 1878 o parse.c: ParseVErrorInternal use .PARSEDIR 1879 and apply if relative, and then use .PARSEFILE 1880 for consistent result. 1881 18822018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1883 1884 * VERSION: 20181220 1885 Merge with NetBSD make, pick up 1886 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1887 is relative 1888 o var.c: avoid SEGFAULT in .unexport-env 1889 when MAKELEVEL is not set 1890 18912018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1892 1893 * VERSION: 20181216 1894 Merge with NetBSD make, pick up 1895 o fix for unit-tests/varquote.mk on Debian 1896 18972018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1898 1899 * VERSION: 20180919 1900 Merge with NetBSD make, pick up 1901 o var.c: add :q 1902 o dir.c: cleanup caching of stats 1903 19042018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1905 1906 * Makefile.config.in: use += where it makes sense. 1907 19082018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1909 1910 * VERSION: 20180512 1911 Merge with NetBSD make, pick up 1912 o job.c: skip polling job token pipe 1913 19142018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1915 1916 * VERSION: 20180405 1917 Merge with NetBSD make, pick up 1918 o parse.c: be more cautious about detecting depenency line 1919 rather than sysV style include. 1920 19212018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 1922 1923 * VERSION: 20180222 1924 Merge with NetBSD make, pick up 1925 o parse.c: avoid calling sysconf for every call to loadfile 1926 19272018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1928 1929 * VERSION: 20180218 1930 Merge with NetBSD make, pick up 1931 o var.c: Var_Set handle NULL value anytime. 1932 19332018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1934 1935 * VERSION: 20180212 1936 Merge with NetBSD make, pick up 1937 o parse.c: do not treat .info as warning with -W 1938 19392017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1940 1941 * VERSION: 20171207 1942 Merge with NetBSD make, pick up 1943 o var.c: Var_Append use Var_Set if var not previously set 1944 so that VAR_CMD is handled correctly. 1945 Add a suitable unit-test. 1946 19472017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1948 1949 * VERSION (_MAKE_VERSION): 20171126 1950 1951 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 1952 since AC_TRY_COMPILE puts input inside main() 1953 which upsets modern compilers. 1954 19552017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1956 1957 * VERSION: 20171118 1958 Merge with NetBSD make, pick up 1959 o var.c: do not append to variable set on command line 1960 add unit-test to catch this. 1961 19622017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1963 1964 * VERSION: 20171028 1965 Merge with NetBSD make, pick up 1966 o main.c: ignore empty MAKEOBJDIR 1967 1968 * Makefile.config.in: 1969 make @prefix@ @machine*@ and @default_sys_path@ defaults. 1970 19712017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1972 1973 * VERSION: 20171005 1974 1975 * unit-tests/dotwait.mk: redirect stderr through pipe for more 1976 consistent result on some platforms. 1977 19782017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1979 1980 * machine.sh: entry for AIX 1981 19822017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1983 1984 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 1985 to a file that can be included by configure as well as make. 1986 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 1987 19882017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 1989 1990 * Makefile (_MAKE_VERSION): 20170810 1991 Merge with NetBSD make, pick up 1992 o meta.c: if target is in subdir we only need subdir name in 1993 meta_name. 1994 19952017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 1996 1997 * Makefile (_MAKE_VERSION): 20170720 1998 Merge with NetBSD make, pick up 1999 o compat.c: pass SIGINT etc onto child and wait for it to exit 2000 before we self-terminate. 2001 20022017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 2003 2004 * Makefile (_MAKE_VERSION): 20170711 2005 forgot to update after merge on 20170708 ;-) 2006 o main.c: refactor to reduce size of main function. 2007 add -v option to always fully expand values. 2008 o meta.c: ensure command output in meta file has ending newline 2009 even when filemon not being used. 2010 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 2011 pathname via ':L' since any ':' in pathname breaks that. 2012 Instead set a '${.p.}' to pathname in the target context and 2013 use that. 2014 20152017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2016 2017 * Makefile (_MAKE_VERSION): 20170510 2018 Merge with NetBSD make, pick up 2019 o main.c: Main_SetObjdir: ensure buf2 is in scope 2020 20212017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 2022 2023 * Makefile (_MAKE_VERSION): 20170505 2024 see mk/ChangeLog 2025 20262017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2027 2028 * parse.c: not everyone has stdint.h 2029 20302017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 2031 2032 * Makefile (_MAKE_VERSION): 20170501 2033 see mk/ChangeLog 2034 20352017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2036 2037 * Makefile (_MAKE_VERSION): 20170421 2038 Merge with NetBSD make, pick up 2039 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2040 20412017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2042 2043 * Makefile (_MAKE_VERSION): 20170420 2044 Merge with NetBSD make, pick up 2045 o main.c: only use -C arg "as is" if it contains no 2046 relative component. 2047 20482017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2049 2050 * Makefile (_MAKE_VERSION): 20170418 2051 Merge with NetBSD make, pick up 2052 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2053 20542017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 2055 2056 * Makefile (_MAKE_VERSION): 20170417 2057 Merge with NetBSD make, pick up 2058 o fixes a number of coverity complaints 2059 - check return value of fseek, fcntl 2060 - plug memory leak in Dir_FindFile, Var_LoopExpand, 2061 JobPrintCommand, ParseTraditionalInclude 2062 - use bmake_malloc() where NULL is not tollerated 2063 - use MAKE_ATTR_UNUSED rather that kludges like 2064 return(unused ? 0 : 0) 2065 - use purge_cached_realpaths() rather than abuse cached_realpath() 2066 20672017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 2068 2069 * Makefile (_MAKE_VERSION): 20170413 2070 Merge with NetBSD make, pick up 2071 o main.c: when setting .OBJDIR ignore '$' in paths. 2072 2073 * job.c: use MALLOC_OPTIONS to set malloc_options. 2074 20752017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2076 2077 * Makefile (_MAKE_VERSION): 20170411 2078 Merge with NetBSD make, pick up 2079 o str.c: Str_Match: allow [^a-z] to behave as expected. 2080 20812017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2082 2083 * Makefile (_MAKE_VERSION): 20170326 2084 Merge with NetBSD make, pick up 2085 o main.c: purge relative paths from realpath cache when .OBJDIR 2086 is changed. 2087 20882017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 2089 2090 * Makefile (_MAKE_VERSION): 20170311 2091 Merge with NetBSD make, pick up 2092 o main.c: only use -C arg "as is" if it starts with '/'. 2093 20942017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 2095 2096 * Makefile (_MAKE_VERSION): 20170301 2097 Merge with NetBSD make, pick up 2098 o main.c: use -C arg "as is" rather than getcwd() 2099 if they identify the same directory. 2100 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2101 21022017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 2103 2104 * Makefile (_MAKE_VERSION): 20170201 2105 Merge with NetBSD make, pick up 2106 o var.c: allow :_=var and avoid use of special context. 2107 21082017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 2109 2110 * Makefile (_MAKE_VERSION): 20170130 2111 Merge with NetBSD make, pick up 2112 o var.c: add :range and :_ 2113 o main.c: partially initialize Dir_* before MainParseArgs() 2114 can be called. 2115 If -V, skip Main_ExportMAKEFLAGS() 2116 21172017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 2118 2119 * Makefile (_MAKE_VERSION): 20170114 2120 Merge with NetBSD make, pick up 2121 o var.c: allow specifying the utc value used by :{gm,local}time 2122 21232016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2124 2125 * Makefile (_MAKE_VERSION): 20161212 2126 Merge with NetBSD make, pick up 2127 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2128 21292016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 2130 2131 * Makefile (_MAKE_VERSION): 20161209 2132 Merge with NetBSD make, pick up 2133 o main.c: cleanup setting of .OBJDIR 2134 o parse.c: avoid coredump from (var)=val 2135 21362016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2137 2138 * Makefile (_MAKE_VERSION): 20161126 2139 Merge with NetBSD make, pick up 2140 o make.c: Make_OODate: report src node name if path not set 2141 21422016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2143 2144 * Makefile (_MAKE_VERSION): 20160926 2145 Merge with NetBSD make, pick up 2146 o support for .DELETE_ON_ERROR: (remove targets that fail) 2147 21482016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 2149 2150 * Makefile MAN: tweak .Dt to match ${PROG} 2151 21522016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2153 2154 * Makefile (_MAKE_VERSION): 20160818 2155 its a neater number; pick up whitespace fixes to man page. 2156 21572016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 2158 2159 * Makefile (_MAKE_VERSION): 20160817 2160 Merge with NetBSD make, pick up 2161 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 2162 so we can call it before adding entries to missingFiles. 2163 Thus we do not track files we have been told to ignore. 2164 21652016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2166 2167 * Makefile (_MAKE_VERSION): 20160815 2168 Merge with NetBSD make, pick up 2169 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2170 pathnames, and skip if the expansion is empty. 2171 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2172 21732016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2174 2175 * Makefile (_MAKE_VERSION): 20160812 2176 Merge with NetBSD make, pick up 2177 o meta.c: remove all missingFiles entries that match a deleted 2178 dir. 2179 o main.c: set .ERROR_CMD if possible. 2180 21812016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2182 2183 * Makefile (_MAKE_VERSION): 20160606 2184 Merge with NetBSD make, pick up 2185 o dir.c: extend mtimes cache to others via cached_stat() 2186 21872016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2188 2189 * Makefile (_MAKE_VERSION): 20160604 2190 Merge with NetBSD make, pick up 2191 o meta.c: missing filemon data is only relevant if we read a 2192 meta file. 2193 Also do not return oodate for a missing metafile if gn->path 2194 points to .CURDIR 2195 21962016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2197 2198 * Makefile (_MAKE_VERSION): 20160602 2199 Merge with NetBSD make, pick up 2200 o cached_realpath(): avoid hitting filesystem more than necessary. 2201 o meta.c: refactor need_meta decision, add knobs for 2202 missing meta file and filemon data wrt out-of-datedness. 2203 22042016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2205 2206 * Makefile (_MAKE_VERSION): 20160528 2207 2208 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2209 22102016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2211 2212 * Makefile (_MAKE_VERSION): 20160512 2213 Merge with NetBSD make, pick up 2214 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2215 this is useful for gcov builds. 2216 o propagate errors from filemon(4). 2217 22182016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2219 2220 * Makefile (_MAKE_VERSION): 20160509 2221 Merge with NetBSD make, pick up 2222 o remove use of non-standard types u_int etc. 2223 o meta.c: apply realpath() before matching against metaIgnorePaths 2224 22252016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2226 2227 * Makefile (_MAKE_VERSION): 20160404 2228 Merge with NetBSD make, pick up 2229 o allow makefile to set .MAKE.JOBS 2230 2231 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2232 22332016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2234 2235 * Makefile (_MAKE_VERSION): 20160315 2236 Merge with NetBSD make, pick up 2237 o fix handling of archive members 2238 22392016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2240 2241 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2242 with checks for ${MAKE_VERSION} 2243 22442016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2245 2246 * Makefile (MAKE_VERSION): 20160310 2247 Merge with NetBSD make, pick up 2248 o meta.c: treat missing Read file same as Write, incase we Delete it. 2249 22502016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2251 2252 * Makefile (MAKE_VERSION): 20160307 2253 Merge with NetBSD make, pick up 2254 o var.c: fix :ts\nnn to be octal by default. 2255 o meta.c: meta_finish() to cleanup memory. 2256 22572016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2258 2259 * Makefile (MAKE_VERSION): 20160226 2260 Merge with NetBSD make, pick up 2261 o meta.c: allow meta file for makeDepend if makefiles want it. 2262 22632016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2264 2265 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2266 for backwards compatability. 2267 2268 * Makefile (MAKE_VERSION): 20160220 2269 Merge with NetBSD make, pick up 2270 o var.c: add knob to control handling of '$$' in := 2271 22722016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2273 2274 * Makefile (MAKE_VERSION): 20160218 2275 Merge with NetBSD make, pick up 2276 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2277 post the changes to Var_Subst. 2278 Var_Subst now takes flags, and does not consume '$$' in := 2279 22802016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2281 2282 * Makefile (MAKE_VERSION): 20160217 2283 Merge with NetBSD make, pick up 2284 o var.c: preserve '$$' in := 2285 o parse.c: add .dinclude for handling included 2286 makefile like .depend 2287 22882015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2289 2290 * Makefile (MAKE_VERSION): 20151220 2291 Merge with NetBSD make, pick up 2292 o suff.c: re-initialize suffNull when clearing suffixes. 2293 22942015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2295 2296 * Makefile (MAKE_VERSION): 20151201 2297 Merge with NetBSD make, pick up 2298 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2299 o meta.c: meta_oodate: use lstat(2) for checking link target 2300 in case it is a symlink. 2301 o var.c: avoid calling brk_string and Var_Export1 with empty 2302 strings. 2303 23042015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2305 2306 * Makefile (MAKE_VERSION): 20151126 2307 Merge with NetBSD make, pick up 2308 o parse.c: ParseTrackInput don't access beyond 2309 end of old value. 2310 23112015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2312 2313 * Makefile (MAKE_VERSION): 20151022 2314 2315 * Add support for BSD/OS which lacks inttypes.h 2316 and really needs sys/param.h for sys/sysctl.h 2317 also 'type' is not a shell builtin. 2318 2319 * var.c: eliminate uint32_t and need for inttypes.h 2320 2321 * main.c: PrintOnError flush stdout before run .ERROR 2322 2323 * parse.c: cope with _SC_PAGESIZE not being defined. 2324 2325 23262015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2327 2328 * Makefile (MAKE_VERSION): 20151020 2329 Merge with NetBSD make, pick up 2330 o var.c: fix uninitialized var 2331 23322015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2333 2334 * var.c: the conditional expressions used with ':?' can be 2335 expensive, if already discarding do not evaluate or expand 2336 anything. 2337 23382015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2339 2340 * Makefile (MAKE_VERSION): 20151010 2341 Merge with NetBSD make, pick up 2342 o Add Boolean wantit flag to Var_Subst and Var_Parse 2343 when FALSE we know we are discarding the result and can 2344 skip operations like Cmd_Exec. 2345 23462015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2347 2348 * Makefile (MAKE_VERSION): 20151009 2349 Merge with NetBSD make, pick up 2350 o var.c: don't check for NULL before free() 2351 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2352 23532015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2354 2355 * Makefile (MAKE_VERSION): 20150910 2356 Merge with NetBSD make, pick up 2357 o main.c: with -w print Enter/Leaving messages for objdir too 2358 if necessary. 2359 o centralize shell metachar handling 2360 2361 * FILES: add metachar.[ch] 2362 23632015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2364 2365 * Makefile (MAKE_VERSION): 20150606 2366 Merge with NetBSD make, pick up 2367 o make.1: document .OBJDIR target 2368 23692015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2370 2371 * Makefile (MAKE_VERSION): 20150505 2372 Merge with NetBSD make, pick up 2373 o cond.c: be strict about lhs of comparison when evaluating .if 2374 but less so when called from variable expansion. 2375 o unit-tests/cond2.mk: test various error conditions 2376 23772015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2378 2379 * machine.sh (MACHINE): Add Bitrig 2380 patch from joerg@netbsd.org 2381 23822015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2383 2384 * Makefile (MAKE_VERSION): 20150418 2385 Merge with NetBSD make, pick up 2386 o job.c: use memmove() rather than memcpy() 2387 2388 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2389 case, so skip it. 2390 23912015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2392 2393 * Makefile (MAKE_VERSION): 20150411 2394 bump version - only mk/ changes. 2395 23962015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2397 2398 * Makefile (MAKE_VERSION): 20150410 2399 Merge with NetBSD make, pick up 2400 o document different handling of '-' in jobs mode vs compat 2401 o fix jobs mode so that '-' only applies to whole job 2402 when shell lacks hasErrCtl 2403 o meta.c: use separate vars to track lcwd and latestdir (read) 2404 per process 2405 24062015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2407 2408 * Makefile (MAKE_VERSION): 20150401 2409 Merge with NetBSD make, pick up 2410 o meta.c: close meta file in child 2411 2412 * Makefile: use BINDIR.bmake if set. 2413 Same for MANDIR and SHAREDIR 2414 Handy for testing release candidates 2415 in various environments. 2416 24172015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2418 2419 * move initialization of savederr to block where it is used 2420 to avoid spurious warning from gcc5 2421 24222014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2423 2424 * Makefile (MAKE_VERSION): 20141111 2425 just a cooler number 2426 24272014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2428 2429 * Makefile (MAKE_VERSION): 20141105 2430 Merge with NetBSD make, pick up 2431 o revert major overhaul of suffix handling 2432 and POSIX compliance - too much breakage 2433 and impossible to make backwards compatible. 2434 o we still have the new unit test structure which is ok. 2435 o meta.c ensure "-- filemon" is at start of line. 2436 24372014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2438 2439 * configure.in: test that result of getconf PATH_MAX is numeric 2440 and discard if not. Apparently needed for Hurd. 2441 24422014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2443 2444 * Makefile (MAKE_VERSION): 20140830 2445 Merge with NetBSD make, pick up 2446 o major overhaul of suffix handling 2447 o improved POSIX compliance 2448 o overhauled unit-tests 2449 24502014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2451 2452 * Makefile (MAKE_VERSION): 20140620 2453 Merge with NetBSD make, pick up 2454 o var.c return varNoError rather than var_Error for ::= modifiers. 2455 24562014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2457 2458 * Makefile (MAKE_VERSION): 20140522 2459 Merge with NetBSD make, pick up 2460 o var.c detect some parse errors. 2461 24622014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2463 2464 * Fix spelling errors - patch from Pedro Giffuni 2465 24662014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2467 2468 * Makefile (MAKE_VERSION): 20140214 2469 Merge with NetBSD make, pick up 2470 o .INCLUDEFROM* 2471 o use Var_Value to get MAKEOBJDIR[PREFIX] 2472 o reduced realloc'ign in brk_string. 2473 * configure.in: add a check for compiler supporting __func__ 2474 24752014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2476 2477 * boot-strap: ignore mksrc=none 2478 24792014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2480 2481 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2482 24832014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2484 2485 * Makefile (MAKE_VERSION): 20140101 2486 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2487 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2488 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2489 Hurd) 2490 * configure.in: Add AC_PREREQ and check for 2491 sysctl; patch from Andrew Shadura andrewsh at debian.org 2492 24932013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2494 2495 * Makefile (MAKE_VERSION): 20131010 2496 * lose the const from arg to systcl to avoid problems on older BSDs. 2497 24982013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2499 2500 * Makefile (MAKE_VERSION): 20131001 2501 Merge with NetBSD make, pick up 2502 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2503 hw.machine_arch if necessary. 2504 o meta.c: meta_oodate - need to look at src of Link and target 2505 of Move as well. 2506 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 2507 provide __arraycount() if needed. 2508 25092013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 2510 2511 * Makefile (MAKE_VERSION): 20130904 2512 Merge with NetBSD make, pick up 2513 o Add VAR_INTERNAL context, so that internal setting of 2514 MAKEFILE does not override value set by makefiles. 2515 25162013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 2517 2518 * Makefile (MAKE_VERSION): 20130902 2519 Merge with NetBSD make, pick up 2520 o CompatRunCommand: only apply shellErrFlag when errCheck is true 2521 25222013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2523 2524 * Makefile (MAKE_VERSION): 20130828 2525 Merge with NetBSD make, pick up 2526 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 2527 o Call Job_SetPrefix() from Job_Init() so makefiles have 2528 opportunity to set .MAKE.JOB.PREFIX 2529 25302013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 2531 2532 * Makefile (MAKE_VERSION): 20130730 2533 Merge with NetBSD make, pick up 2534 o Allow suppression of --- job -- tokens by setting 2535 .MAKE.JOB.PREFIX empty. 2536 25372013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2538 2539 * Makefile (MAKE_VERSION): 20130716 2540 Merge with NetBSD make, pick up 2541 o number of gmake compatibility tweaks 2542 -w for gmake style entering/leaving messages 2543 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 2544 handle MAKEFLAGS containing only letters. 2545 o when overriding a GLOBAL variable on the command line, 2546 delete it from GLOBAL context so -V doesn't show the wrong 2547 value. 2548 25492013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 2550 2551 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 2552 2553 * Makefile (MAKE_VERSION): 20130706 2554 Merge with NetBSD make, pick up 2555 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 2556 true so that CompatRunCommand() can use it, to ensure 2557 consistent behavior with jobs mode. 2558 o use MAKE_LEVEL_ENV to define the variable to propagate 2559 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 2560 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 2561 paths to ignore. 2562 25632013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2564 2565 * Makefile (MAKE_VERSION): 20130604 2566 Merge with NetBSD make, pick up 2567 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 2568 to avoid leaking descriptors. 2569 25702013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2571 2572 * Makefile (MAKE_VERSION): 20130528 2573 Merge with NetBSD make, pick up 2574 o var.c: cleanup some left-overs in VarHash() 2575 25762013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2577 2578 * Makefile (MAKE_VERSION): 20130520 2579 generate manifest from component FILES rather than have to 2580 update FILES when mk/FILES changes. 2581 25822013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2583 2584 * Makefile (MAKE_VERSION): 20130518 2585 Merge with NetBSD make, pick up 2586 o suff.c: don't skip all processsing for .PHONY targets 2587 else wildcard srcs do not get expanded. 2588 o var.c: expand name of variable to delete if necessary. 2589 25902013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2591 2592 * Makefile (MAKE_VERSION): 20130330 2593 Merge with NetBSD make, pick up 2594 o meta.c: refine the handling of .OODATE in commands. 2595 Rather than suppress command comparison for the entire script 2596 as though .NOMETA_CMP had been used, only suppress it for the 2597 one command line. 2598 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 2599 suppress comparison of a command without otherwise affecting it. 2600 o make.1: document that 2601 26022013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 2603 2604 * Makefile (MAKE_VERSION): 20130321 2605 yes, not quite right but its a cooler number. 2606 Merge with NetBSD make, pick up 2607 o parse.c: fix ParseGmakeExport to be portable 2608 and add a unit-test. 2609 * meta.c: call meta_init() before makefiles are read and if built 2610 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 2611 this let's makefiles test for support. 2612 Call meta_mode_init() to process .MAKE.MODE. 2613 26142013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2615 2616 * Makefile (MAKE_VERSION): 20130305 2617 Merge with NetBSD make, pick up 2618 o run .STALE: target when a dependency from .depend is missing. 2619 o job.c: add Job_RunTarget() for the above and .BEGIN 2620 26212013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2622 2623 * Makefile (MAKE_VERSION): 20130303 2624 Merge with NetBSD make, pick up 2625 o main.c: set .MAKE.OS to utsname.sysname 2626 o job.c: more checks for read and poll errors 2627 o var.c: lose VarChangeCase() saves 4% time 2628 26292013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 2630 2631 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 2632 want to use MAKEOBJDIR 2633 26342013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 2635 2636 * Merge with NetBSD make, pick up 2637 o make.1: more info on how shell commands are handled. 2638 o job.c,main.c: detect write errors to job pipes. 2639 26402013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 2641 2642 * Makefile (MAKE_VERSION): 20130123 2643 Merge with NetBSD make, pick up 2644 o meta.c: if script uses .OODATE and meta_oodate() decides 2645 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 2646 o var.c: in debug output indicate which variabale modifiers 2647 apply to. 2648 o remove Check_Cwd logic the makefiles have been fixed. 2649 26502012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2651 2652 * makefile.in: add a simple makefile for folk who insist on 2653 ./configure; make; make install 2654 it just runs boot-strap 2655 * include mk/* to accommodate the above 2656 * boot-strap: re-work to accommodate the above 2657 mksrc defaults to $Mydir/mk 2658 allow op={configure,build,install,clean,all} 2659 add options to facilitate install 2660 * Makefile.config.in: just the bits set by configure 2661 * Makefile: bump version to 20121212 2662 abandon Makefile.in (NetBSD Makefile) 2663 leverage mk/* instead 2664 * configure.in: ensure srcdir is absolute 2665 26662012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2667 2668 * Makefile.in (MAKE_VERSION): 20121111 2669 fix generation of bmake.cat1 2670 26712012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 2672 2673 * Makefile.in (MAKE_VERSION): 20121109 2674 Merge with NetBSD make, pick up 2675 o make.c: MakeBuildChild: return 0 so search continues if a 2676 .ORDER dependency is detected. 2677 o unit-tests/order: test the above 2678 26792012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2680 2681 * Makefile.in (MAKE_VERSION): 20121102 2682 Merge with NetBSD make, pick up 2683 o cond.c: allow cond_state[] to grow. 2684 In meta mode with a very large tree, we can hit the limit 2685 while processing dirdeps. 2686 26872012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 2688 2689 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 2690 26912012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2692 2693 * Makefile.in (MAKE_VERSION): 20121010 2694 o protect syntax that only bmake parses correctly. 2695 o remove auto setting of FORCE_MACHINE, use configure's 2696 --with-force-machine=whatever if that is desired. 2697 26982012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 2699 2700 * Makefile.in: do not lose history from make.1 when generating bmake.1 2701 27022012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 2703 2704 * Makefile.in (MAKE_VERSION): 20121007 2705 Merge with NetBSD make, pick up 2706 o compat.c: ignore empty commands - same as jobs mode. 2707 o make.1: document meta chars that cause use of shell 2708 27092012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 2710 2711 * Makefile.in (MAKE_VERSION): bump version to 20120911 2712 * bsd.after-import.mk: include Makefile.inc early and allow it to 2713 override PROG 2714 27152012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 2716 2717 * Makefile.in (MAKE_VERSION): bump version to 20120831 2718 Merge with NetBSD make, pick up 2719 o cast sizeof() to int for comparison 2720 o minor make.1 tweak 2721 27222012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2723 2724 * Makefile.in (MAKE_VERSION): bump version to 20120830 2725 Merge with NetBSD make, pick up 2726 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 2727 o debug flag -dV causes -V to show raw value regardless. 2728 27292012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2730 2731 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2732 gets SRCTOP set. 2733 27342012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2735 2736 * Makefile.in (MAKE_VERSION): bump version to 20120704 2737 Merge with NetBSD make, pick up 2738 o Job_ParseShell should call Shell_Init if it has been 2739 previously called. 2740 * Makefile.in: set USE_META based on configure result. 2741 also .PARSEDIR is safer indicator of bmake. 2742 27432012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2744 2745 * Makefile.in: bump version to 20120626 2746 ensure CPPFLAGS is in CFLAGS 2747 * meta.c: avoid nested externs 2748 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2749 27502012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2751 2752 * Makefile.in (MAKE_VERSION): bump version to 20120620 2753 Merge with NetBSD make, pick up 2754 o make_malloc.c: avoid including make_malloc.h again 2755 2756 * Makefile.in: avoid bmake only syntax or protect with 2757 .if defined(.MAKE.LEVEL) 2758 * bsd.after-import.mk: replace .-include with .sinclude 2759 ensure? SRCTOP gets a value 2760 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 2761 27622012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 2763 2764 * Makefile.in (MAKE_VERSION): bump version to 20120612 2765 Merge with NetBSD make, pick up 2766 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 2767 for greater portability. 2768 o unit-tests/forloop: check that .for works as expected wrt 2769 number of times and with "quoted strings". 2770 27712012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2772 2773 * Makefile.in (MAKE_VERSION): bump version to 20120606 2774 Merge with NetBSD make, pick up 2775 o compat.c: use kill(2) rather than raise(3). 2776 * configure.in: look for sys/dev/filemon 2777 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 2778 and pass BOOTSTRAP_XTRAS to boot-strap. 2779 27802012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2781 2782 * Makefile.in (MAKE_VERSION): bump version to 20120604 2783 Merge with NetBSD make, pick up 2784 o util.c and var.c share same var for tracking if environ 2785 has been reallocated. 2786 o util.c provide getenv with setenv. 2787 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 2788 when the shell actively strips .MAKE.* from the environment. 2789 We still refer to the variable always as .MAKE.LEVEL 2790 * util.c fix bug in findenv() was finding prefix of name. 2791 * compat.c: re-raising SIGINT etc after running .INTERRUPT 2792 results in more reliable termination of all activity on many 2793 platforms. 2794 27952012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2796 2797 * Makefile.in (MAKE_VERSION): bump version to 20120602 2798 Merge with NetBSD make, pick up 2799 o for.c: handle quoted items in .for list 2800 28012012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 2802 2803 * Makefile.in (MAKE_VERSION): bump version to 20120530 2804 Merge with NetBSD make, pick up 2805 o compat.c: ignore empty command. 2806 28072012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2808 2809 * Makefile.in (MAKE_VERSION): bump version to 20120524 2810 * FILES: add bsd.after-import.mk: 2811 A simple means of integrating bmake into a BSD build system. 2812 28132012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2814 2815 * Makefile.in (MAKE_VERSION): bump version to 20120520 2816 Merge with NetBSD make, pick up 2817 o increased limit for nested conditionals. 2818 28192012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2820 2821 * Makefile.in (MAKE_VERSION): bump version to 20120518 2822 Merge with NetBSD make, pick up 2823 o use _exit(2) in signal hanlder 2824 o Don't use the [dir] cache when building nodes that might have 2825 changed since the last exec. 2826 o Avoid nested extern declaration warnings. 2827 28282012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2829 2830 * meta.c (fgetLine): avoid %z - not portable. 2831 * parse.c: Since we moved include of sys/mman.h 2832 and def's of MAP_COPY etc. we got dups from a merge. 2833 28342012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2835 2836 * Makefile.in (MAKE_VERSION): bump version to 20120420 2837 Merge with NetBSD make, pick up 2838 o restore duplicate supression in .MAKE.MAKEFILES 2839 runtime saving can be significant. 2840 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2841 consumption up to 20%. 2842 28432012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2844 2845 * Makefile.in (MAKE_VERSION): bump version to 20120420 2846 Merge with NetBSD make, pick up 2847 o remove duplicate supression in .MAKE.MAKEFILES 2848 o improved dir cache behavior 2849 o gmake'ish export command 2850 28512012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2852 2853 * Makefile.in (MAKE_VERSION): bump version to 20120325 2854 Merge with NetBSD make, pick up 2855 o fix parsing of :[#] in conditionals. 2856 28572012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2858 2859 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2860 since some systems cannot cope with .Nx <version> 2861 28622011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2863 2864 * Makefile.in (MAKE_VERSION): bump version to 20111111 2865 Merge with NetBSD make, pick up 2866 o debug output for .PARSEDIR and .PARSEFILE 2867 28682011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2869 2870 * Makefile.in (MAKE_VERSION): bump version to 20111010 2871 28722011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2873 2874 * boot-strap: check for an expected file in the dirs we look for. 2875 * make-bootstrap.sh: pass on LDSTATIC 2876 28772011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2878 2879 * Makefile.in (MAKE_VERSION): bump version to 20111001 2880 Merge with NetBSD make, pick up 2881 o ensure .PREFIX is set for .PHONY 2882 and .TARGET set for .PHONY run via .END 2883 o __dead used consistently 2884 28852011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2886 2887 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2888 28892011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2890 2891 * Makefile.in (MAKE_VERSION): bump version to 20110905 2892 Merge with NetBSD make, pick up 2893 o meta_oodate: ignore makeDependfile 2894 28952011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2896 2897 * Makefile.in (MAKE_VERSION): bump version to 20110828 2898 Merge with NetBSD make, pick up 2899 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2900 as SILENT if a .meta file is created 2901 29022011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2903 2904 * Makefile.in (MAKE_VERSION): bump version to 20110818 2905 Merge with NetBSD make, pick up 2906 o in meta mode, if target flagged .META a missing .meta file 2907 means target is out-of-date 2908 o fixes for gcc 4.5 warnings 2909 o simplify job printing code 2910 29112011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 2912 2913 * Makefile.in (MAKE_VERSION): bump version to 20110808 2914 Merge with NetBSD make, pick up 2915 o do not touch OP_SPECIAL targets when doing make -t 2916 29172011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 2918 2919 * Makefile.in (MAKE_VERSION): bump version to 20110622 2920 Merge with NetBSD make, pick up 2921 o meta_oodate detect corrupted .meta file and declare oodate. 2922 * configure.in: add check for setsid 2923 29242011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 2925 2926 * Merge with NetBSD make, pick up 2927 o unit-tests/modts now works on MirBSD 2928 29292011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2930 2931 * Makefile.in (MAKE_VERSION): bump version to 20110606 2932 Merge with NetBSD make, pick up 2933 o ApplyModifiers: when we parse a variable which is not 2934 the entire modifier string, or not followed by ':', do not 2935 consider it as containing modifiers. 2936 o loadfile: ensure newline at end of mapped file. 2937 29382011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2939 2940 * Makefile.in (MAKE_VERSION): bump version to 20110505 2941 Merge with NetBSD make, pick up 2942 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 2943 of make's control. In meta mode, any generated file within 2944 said bailiwick, which is found to be missing, causes current 2945 target to be out-of-date. 2946 29472011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2948 2949 * Makefile.in (MAKE_VERSION): bump version to 20110411 2950 Merge with NetBSD make, pick up 2951 o when long modifiers fail to match, check sysV style. 2952 - add a test case 2953 29542011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2955 2956 * Makefile.in (MAKE_VERSION): bump version to 20110410 2957 Merge with NetBSD make, pick up 2958 o :hash - cheap 32bit hash of value 2959 o :localtime, :gmtime - use value as format string for strftime. 2960 29612011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2962 2963 * Makefile.in (MAKE_VERSION): bump version to 20110330 2964 mostly because its a cooler version. 2965 Merge with NetBSD make, pick up 2966 o NetBSD tags for meta.[ch] 2967 o job.c call meta_job_finish() after meta_job_error(). 2968 o meta_job_error() should call meta_job_finish() to ensure 2969 .meta file is closed, and safe to copy - if .ERROR target wants. 2970 meta_job_finish() is safe to call repeatedly. 2971 29722011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2973 2974 * unit-tests/modts: use printf if it is a builtin, 2975 to save us from MirBSD 2976 2977 * Makefile.in (MAKE_VERSION): bump version to 20110329 2978 Merge with NetBSD make, pick up 2979 o fix for use after free() in CondDoExists(). 2980 o meta_oodate() report extra commands and return earlier. 2981 29822011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 2983 2984 * Makefile.in (MAKE_VERSION): bump version to 20110327 2985 Merge with NetBSD make, pick up 2986 o meta.c, if .MAKE.MODE contains curdirOk=yes 2987 allow creating .meta files in .CURDIR 2988 * boot-strap (TOOL_DIFF): aparently at least on linux distro 2989 formats the output of 'type' differently - so eat any "()" 2990 29912011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 2992 2993 * Makefile.in (MAKE_VERSION): bump version to 20110306 2994 Merge with NetBSD make, pick up 2995 o meta.c, only do getcwd() once 2996 29972011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 2998 2999 * Makefile.in (MAKE_VERSION): bump version to 20110305 3000 Merge with NetBSD make, pick up 3001 o correct sysV substitution handling of empty lhs and variable 3002 o correct exists() check for dir with trailing / 3003 o correct handling of modifiers for non-existant variables 3004 during evaluation of conditionals. 3005 o ensure MAP_FILE is defined. 3006 o meta.c use curdir[] now exported by main.c 3007 30082011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 3009 3010 * Makefile.in (MAKE_VERSION): bump version to 20110225 3011 Merge with NetBSD make, pick up 3012 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 3013 makefiles have been read. 3014 o fix example of :? modifier in man page. 3015 30162011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 3017 3018 * Makefile.in (MAKE_VERSION): bump version to 20110214 3019 Merge with NetBSD make, pick up 3020 o meta.c handle realpath() failing when generating meta file 3021 name. 3022 3023 * sigcompat.c: convert to ansi so we can use higher warning levels. 3024 3025 30262011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 3027 3028 * Makefile.in (MAKE_VERSION): bump version to 20110207 3029 Merge with NetBSD make, pick up 3030 o fix for bug in meta mode. 3031 30322011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 3033 3034 * parse.c: SunOS 5.8 at least does not have MAP_FILE 3035 30362011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 3037 3038 * Makefile.in (MAKE_VERSION): bump version to 20110101 3039 Merge with NetBSD make, pick up 3040 o use mmap(2) if available, for reading makefiles 3041 30422010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 3043 3044 * Makefile.in (MAKE_VERSION): bump version to 20101215 3045 Merge with NetBSD make, pick up 3046 o ensure meta_job_error() does not report a previous .meta file 3047 as being culprit. 3048 30492010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 3050 3051 * Makefile.in (MAKE_VERSION): bump version to 20101210 3052 Merge with NetBSD make, pick up 3053 o meta_oodate: track cwd per process, and only consider target 3054 out-of-date if missing file is outside make's CWD. 3055 Ignore files in /tmp/ etc. 3056 o to ensure unit-tests results match, need to control LC_ALL 3057 as well as LANG. 3058 o fix for parsing bug in var.c 3059 30602010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 3061 3062 * Makefile.in (MAKE_VERSION): bump version to 20101126 3063 Merge with NetBSD make, pick up 3064 o if stale dependency is an IMPSRC, search via .PATH 3065 o meta_oodate: if a referenced file is missing, target is 3066 out-of-date. 3067 o meta_oodate: if a target uses .OODATE in its commands, 3068 it (.OODATE) needs to be recomputed. 3069 o keep a pointer to youngest child node, rather than just its 3070 mtime. 3071 30722010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 3073 3074 * Makefile.in (MAKE_VERSION): bump version to 20101101 3075 30762010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 3077 3078 * machine.sh: like os.sh, 3079 allow for uname -p producing useless drivel 3080 30812010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 3082 3083 * boot-strap: document configure knobs for meta and filemon. 3084 3085 * Makefile.in (MAKE_VERSION): bump version to 20100911 3086 Merge with NetBSD make, pick up 3087 o meta.c - meta mode 3088 3089 * make-bootstrap.sh.in: handle meta.c 3090 * configure.in: add knobs for use_meta and filemon_h 3091 also, look for dirname, str[e]sep and strlcpy 3092 * util.c: add simple err[x] and warn[x] 3093 30942010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 3095 3096 * boot-strap (TOOL_DIFF): set this to ensure tests use 3097 the same version of diff that configure tested 3098 3099 * Makefile.in (MAKE_VERSION): bump version to 20100808 3100 Merge with NetBSD make, pick up 3101 o in jobs mode, when we discover we cannot make something, 3102 call PrintOnError before exit. 3103 31042010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 3105 3106 * Makefile.in (MAKE_VERSION): bump version to 20100806 3107 Merge with NetBSD make, pick up 3108 o formatting fixes for ignored errors 3109 o ensure jobs are cleaned up regardless of where wait() was called. 3110 31112010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 3112 3113 * Makefile.in (MAKE_VERSION): bump version to 20100618 3114 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 3115 31162010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 3117 3118 * Makefile.in (MAKE_VERSION): bump version to 20100616 3119 Merge with NetBSD make, pick up 3120 o man page update 3121 o call PrintOnError from JobFinish when we detect an error we 3122 are not ignoring. 3123 31242010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 3125 3126 * Makefile.in (MAKE_VERSION): bump version to 20100606 3127 Merge with NetBSD make, pick up 3128 o man page update 3129 31302010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 3131 3132 * Makefile.in (MAKE_VERSION): bump version to 20100605 3133 Merge with NetBSD make, pick up 3134 o use bmake_signal() which is a wrapper around sigaction() 3135 in place of signal() 3136 o add .export-env to allow exporting variables to environment 3137 without tracking (so no re-export when the internal value is 3138 changed). 3139 31402010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 3141 3142 * Makefile.in (MAKE_VERSION): bump version to 20100524 3143 Merge with NetBSD make, pick up 3144 o fix for .info et al being greedy. 3145 31462010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 3147 3148 * Makefile.in (MAKE_VERSION): bump version to 20100520 3149 Merge with NetBSD make, pick up 3150 o back to using realpath on argv[0] 3151 but only if contains '/' and does not start with '/'. 3152 31532010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 3154 3155 * boot-strap: use absolute path for bmake when running tests. 3156 3157 * Makefile.in (MAKE_VERSION): bump version to 20100510 3158 Merge with NetBSD make, pick up 3159 o revert use of realpath on argv[0] 3160 too many corner cases. 3161 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 3162 31632010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3164 3165 * Makefile.in (MAKE_VERSION): bump version to 20100505 3166 Merge with NetBSD make, pick up 3167 o fix for missed SIGCHLD when compiled with SunPRO 3168 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3169 done the job. 3170 31712010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3172 3173 * Makefile.in (MAKE_VERSION): bump version to 20100430 3174 Merge with NetBSD make, pick up 3175 o fflush stdout before writing to stdout 3176 31772010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3178 3179 * Makefile.in (MAKE_VERSION): bump version to 20100423 3180 Merge with NetBSD make, pick up 3181 o updated unit tests for Haiku (this time for sure). 3182 * boot-strap: based on patch from joerg 3183 honor --with-default-sys-path better. 3184 * boot-strap: remove mention of --with-prefix-sys-path 3185 31862010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3187 3188 * Makefile.in (MAKE_VERSION): bump version to 20100422 3189 * Merge with NetBSD make, pick up 3190 o fix for vfork() on Darwin. 3191 o fix for bogus $TMPDIR. 3192 o set .MAKE.MODE=compat for -B 3193 o set .MAKE.JOBS=max_jobs for -j max_jobs 3194 o allow unit-tests to run without any *.mk 3195 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3196 * boot-strap: ignore /usr/share/mk except on NetBSD. 3197 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3198 ensure sort(1) behaves as expected. 3199 32002010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3201 3202 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3203 32042010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3205 3206 * Makefile.in (MAKE_VERSION): bump version to 20100420 3207 * Merge with NetBSD make, pick up 3208 o fix for variable realpath() behavior. 3209 we have to stat(2) the result to be sure. 3210 o fix for .export (all) when nested vars use :sh 3211 32122010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3213 3214 * Makefile.in (MAKE_VERSION): bump version to 20100414 3215 * Merge with NetBSD make, pick up 3216 o use realpath to resolve argv[0] (for .MAKE) if needed. 3217 o add realpath from libc. 3218 o add :tA to resolve variable via realpath(3) if possible. 3219 32202010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3221 3222 * Makefile.in (MAKE_VERSION): bump version to 20100408 3223 * Merge with NetBSD make, pick up 3224 o unit tests for .ERROR, .error 3225 o fix for .ERROR to ensure it cannot be default target. 3226 32272010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3228 3229 * Makefile.in (MAKE_VERSION): bump version to 20100406 3230 * Merge with NetBSD make, pick up 3231 o fix for compat mode "Error code" going to debug_file. 3232 o fix for .ALLSRC being populated twice. 3233 o support for .info, .warning and .error directives 3234 o .MAKE.MODE to control make's operational mode 3235 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3236 name(s). 3237 o .MAKE.DEPENDFILE to control the name of the depend file 3238 o .ERROR target - run on failure. 3239 32402010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3241 3242 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3243 3244 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3245 32462010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3247 3248 * Makefile.in (MAKE_VERSION): bump version to 20100222 3249 * Merge with NetBSD make, pick up 3250 o better error msg for .for with mutiple inter vars 3251 3252 * boot-strap: 3253 o use make-bootstrap.sh from joerg at netbsd 3254 to avoid the need for a native make when bootstrapping. 3255 o add "" everywhere ;-) 3256 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3257 otherwise the pre-formated version. 3258 32592010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3260 3261 * Makefile.in (MAKE_VERSION): bump version to 20100102 3262 * Merge with NetBSD make, pick up: 3263 o fix for -m .../ 3264 32652009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3266 3267 * Makefile.in (MAKE_VERSION): bump version to 20091118 3268 * Merge with NetBSD make, pick up: 3269 o .unexport 3270 o report lines that start with '.' and should have ':' 3271 (catch typo's of .el*if). 3272 32732009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3274 3275 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3276 32772009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3278 3279 * Makefile.in (MAKE_VERSION): fix version to 20091007 3280 32812009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3282 3283 * Makefile.in (MAKE_VERSION): bump version to 200910007 3284 * Merge with NetBSD make, pick up: 3285 o fix for parsing of :S;...;...; applied to .for loop iterator 3286 appearing in a dependency line. 3287 32882009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3289 3290 * Makefile.in (MAKE_VERSION): bump version to 20090909 3291 * Merge with NetBSD make, pick up: 3292 o fix for -C, .CURDIR and .OBJDIR 3293 * boot-strap: 3294 o allow share_dir to be set independent of prefix. 3295 o select default share_dir better when prefix ends in $HOST_TARGET 3296 o if FORCE_BSD_MK etc were set, include them in the suggested 3297 install-mk command. 3298 32992009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3300 3301 * Makefile.in (MAKE_VERSION): bump version to 20090908 3302 * Merge with NetBSD make, pick up: 3303 o .MAKE.LEVEL for recursion tracking 3304 o fix for :M scanning \: 3305 33062009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3307 3308 * configure.in: Don't -D__EXTENSIONS__ if 3309 AC_USE_SYSTEM_EXTENSIONS says "no". 3310 33112009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3312 3313 * Makefile.in (MAKE_VERSION): bump version to 20090826 3314 Simplify MAKE_VERSION to just the bare date. 3315 * Merge with NetBSD make, pick up: 3316 o -C directory support. 3317 o support for SIGINFO 3318 o use $TMPDIR for temp files. 3319 o child of vfork should be careful about modifying parent's state. 3320 3321 33222009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3323 3324 * Appy some patches for MiNT from David Brownlee 3325 33262009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3327 3328 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3329 * Merge with NetBSD make, pick up: 3330 o Possible null pointer de-ref in Var_Set. 3331 33322009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3333 3334 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3335 * Merge with NetBSD make, pick up: 3336 o bmake_malloc et al moved to their own .c 3337 o Count both () and {} when looking for the end of a :M pattern 3338 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3339 o strlist.c - functions for processing extendable arrays of pointers to strings. 3340 o ClientData replaced with void *, so const void * can be used. 3341 o New debug flag C for DEBUG_CWD 3342 33432008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3344 3345 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3346 Apply patch from Joerg Sonnenberge to 3347 configure.in: 3348 o remove some redundant checks 3349 o check for emlloc etc only in libutil and require the whole family. 3350 util.c: 3351 o remove [v]asprintf which is no longer used. 3352 33532008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3354 3355 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3356 * Merge with NetBSD make, pick up: 3357 o util.c: avoid use of putenv() - christos 3358 33592008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3360 3361 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3362 pick up man page tweaks. 3363 33642008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3365 3366 * Makefile.in: move processing of LIBOBJS to after is definition! 3367 thus we'll have getenv.c in SRCS only if needed. 3368 3369 * make.1: add examples of how to use :? 3370 3371 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3372 * Merge with NetBSD make, pick up: 3373 o fix for .END processing with -j 3374 o segfault from Parse_Error when no makefile is open 3375 o handle numeric expressions in any variable expansion 3376 o debug output now defaults to stderr, -dF to change it - apb 3377 o make now uses bmake_malloc etc so that it can build natively 3378 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3379 33802008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3381 3382 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3383 * Merge with NetBSD make, pick up: 3384 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3385 long lines in Makefiles 3386 o optimizations for VarQuote by joerg 3387 o fix for PR/38756: dominik: make dumps core on invalid makefile 3388 33892008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3390 3391 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3392 * Merge with NetBSD make, pick up: 3393 o fix skip setting vars in VAR_GLOBAL context, to handle 3394 cases where VAR_CMD is used for other than command line vars. 3395 33962008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3397 3398 * boot-strap (make_version): we may need to look in 3399 $prefix/share/mk for sys.mk 3400 3401 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3402 * Merge with NetBSD make, pick up: 3403 o skip setting vars in VAR_GLOBAL context, when already set in 3404 VAR_CMD which takes precedence. 3405 34062008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3407 3408 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3409 * Merge with NetBSD make, pick up: 3410 o fix for ?= when LHS contains variable reference. 3411 34122008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3413 3414 * merge some patches from NetBSD pkgsrc. 3415 3416 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3417 the MAKSYSPATH used during bootstrap. 3418 3419 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3420 * Merge with NetBSD make, pick up: 3421 o warn if non-space chars follow 'empty' in a conditional. 3422 34232008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3424 3425 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3426 * Merge with NetBSD make, pick up: 3427 o consider dependencies read from .depend as optional - dsl 3428 o remember when buffer for reading makefile grows - dsl 3429 o add -dl (aka LOUD) - David O'Brien 3430 34312007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3432 3433 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3434 * Merge with NetBSD make, pick up: 3435 o Allow .PATH<suffix> to be used for .include "" 3436 3437 * boot-strap: source default settings from .bmake-boot-strap.rc 3438 34392007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3440 3441 * Makefile.in: fix maninstall on various systems 3442 provided that our man.mk is used. 3443 For non-BSD systems we install the preformatted page 3444 into $MANDIR/cat1 3445 34462007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3447 3448 * boot-strap: make bmake.1 too, so maninstall works. 3449 34502007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3451 3452 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3453 * Merge with NetBSD make, pick up: 3454 o revamped handling of defshell - configure no longer needs to 3455 know the content of the shells array - apb 3456 o stop Var_Subst modifying its input - apb 3457 o avoid calling ParseTrackInput too often - dsl 3458 34592007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3460 3461 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3462 * Merge with NetBSD make, pick up: 3463 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3464 3465 * sigcompat.c: some tweaks for HP-UX 11.x based on 3466 patch from Tobias Nygren 3467 3468 * configure.in: update handling of --with-defshell to match 3469 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3470 will now do what one might hope - provided the chosen shell 3471 behaves enough like sh. 3472 34732007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3474 3475 * Makefile.in (BMAKE_VERSION): bump to 20071008 3476 * Merge with NetBSD make, pick up: 3477 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3478 o .export/.MAKE.EXPORTED - export of variables - sjg 3479 o .MAKE.MAKEFILES - track all makefiles read - sjg 3480 o performance improvements - dsl 3481 o revamp parallel job scheduling - dsl 3482 34832006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3484 3485 * Makefile.in (BMAKE_VERSION): bump to 20060728 3486 * Merge with NetBSD make, pick up: 3487 o extra debug info during variable and cond processing - sjg 3488 o shell definition now covers newline - rillig 3489 o minor mem leak in PrintOnError - sjg 3490 34912006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3492 3493 * Makefile.in (BMAKE_VERSION): bump to 20060511 3494 * Merge with NetBSD make, pick up: 3495 o more memory leaks - coverity 3496 o possible overflow in ArchFindMember - coverity 3497 o extract variable modifier code out of Var_Parse() 3498 so it can be called recursively - sjg 3499 o unit-tests/moderrs - sjg 3500 35012006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3502 3503 * Makefile.in (BMAKE_VERSION): bump to 20060412 3504 * Merge with NetBSD make, pick up: 3505 o fixes for some memory leaks - coverity 3506 o only read first sys.mk etc when searching sysIncPath - sjg 3507 3508 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 3509 setting ${MAKEFILE} - OBATA Akio 3510 35112006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 3512 3513 * Makefile.in (BMAKE_VERSION): bump to 20060318 3514 * Merge with NetBSD make, pick up: 3515 o cleanup of job.c to remove remote handling, distcc is more 3516 useful and this code was likely bit-rotting - dsl 3517 o fix for :P modifier - sjg 3518 * boot-strap: set default prefix to something reasonable 3519 (for me anyway). 3520 35212006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 3522 3523 * Makefile.in (BMAKE_VERSION): bump to 20060301 3524 * Merge with NetBSD make, pick up: 3525 o make .WAIT apply recursively, document and test case - apb 3526 o allow variable modifiers in a variable appear anywhere in 3527 modifier list, document and test case - sjg 3528 35292006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 3530 3531 * Makefile.in (BMAKE_VERSION): bump to 20060222 3532 * Merge with NetBSD make, pick up: 3533 o improved job token handling - dsl 3534 o SIG_DFL the correct signal before exec - dsl 3535 o more debug info during parsing - dsl 3536 o allow variable modifiers to be specified via variable - sjg 3537 * boot-strap: explain why we died if no mksrc 3538 35392005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 3540 3541 * Makefile.in (BMAKE_VERSION): bump to 20051105 3542 * configure.in: always set default_sys_path 3543 default is ${prefix}/share/mk 3544 - remove prefix_sys_path, anyone wanting more than above 3545 needs to set it manually. 3546 35472005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3548 3549 * boot-strap: make this a bit easier for pkgsrc folk. 3550 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 3551 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 3552 35532005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 3554 3555 * Makefile.in (BMAKE_VERSION): bump to 20051102 3556 * job.c (JobFinish): fix likely ancient merge lossage 3557 fix from Todd Vierling. 3558 * boot-strap (srcdir): allow setting mksrc=none 3559 35602005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 3561 3562 * Makefile.in (BMAKE_VERSION): bump to 20051031 3563 * ranlib.h: skip on OSF too. 3564 (NetBSD PR 31864) 3565 35662005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 3567 3568 * Makefile.in (BMAKE_VERSION): bump to 20051002 3569 fix a silly typo 3570 35712005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3572 3573 * Makefile.in (BMAKE_VERSION): bump to 20051001 3574 support for UnixWare and some other systems, 3575 based on patches from pkgsrc/bootstrap 3576 35772005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3578 3579 * Makefile.in (BMAKE_VERSION): bump to 20050901 3580 * Merge with NetBSD make, pick up: 3581 o possible parse error causing us to wander off. 3582 35832005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 3584 3585 * Makefile.in (BMAKE_VERSION): bump to 20050606 3586 * Merge with NetBSD make, pick up: 3587 o :0x modifier for randomizing a list 3588 o fixes for a number of -Wuninitialized issues. 3589 35902005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 3591 3592 * Makefile.in (BMAKE_VERSION): bump to 20050530 3593 * Merge with NetBSD make, pick up: 3594 o Handle dependencies for .BEGIN, .END and .INTERRUPT 3595 3596 * README: was seriously out of date. 3597 35982005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 3599 3600 * Important to use .MAKE rather than MAKE. 3601 36022005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 3603 3604 * Makefile.in (BMAKE_VERSION): bump to 20050315 3605 * Merge with NetBSD make, pick up: 3606 o don't mistake .elsefoo for .else 3607 o use suffix-specific search path correctly 3608 o bunch of style nits 3609 36102004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3611 3612 * boot-strap: 3613 o ensure that args to --src and --with-mksrc 3614 are resolved before giving them to configure. 3615 o add -o "objdir" so that builder can control it, 3616 default is $OS as determined by os.sh 3617 o add -q to suppress all the install instructions. 3618 36192004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 3620 3621 * Remove __IDSTRING() 3622 3623 * Makefile.in (BMAKE_VERSION): bump to 20040508 3624 * Merge with NetBSD make, pick up: 3625 o posix fixes 3626 - remove '-e' from compat mode 3627 - add support for '+' command-line prefix. 3628 o fix for handling '--' on command-line. 3629 o fix include in lst.lib/lstInt.h to simplify '-I's 3630 o we also picked up replacement of MAKE_BOOTSTRAP 3631 with !MAKE_NATIVE which is a noop, but possibly confusing. 3632 36332004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 3634 3635 * Makefile.in (BMAKE_VERSION): bump to 20040414 3636 * Merge with NetBSD make, pick up: 3637 o allow quoted strings on lhs of conditionals 3638 o issue warning when extra .else is seen 3639 o print line numer when errors encountered during parsing from 3640 string. 3641 36422004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 3643 3644 * Makefile.in (BMAKE_VERSION): bump to 20040220 3645 * Merge with NetBSD make, pick up: 3646 o fix for old :M parsing bug. 3647 o re-jigged unit-tests 3648 36492004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3650 3651 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 3652 so that './bmake -f Makefile test' works. 3653 36542004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 3655 3656 * Makefile.in: (BMAKE_VERSION): bump to 20040214 3657 * Merge with NetBSD make, pick up: 3658 o search upwards for *.mk 3659 o fix for double free of var substitution buffers 3660 o use of getopt replaced with custom code, since the usage 3661 (re-scanning) isn't posix compatible. 3662 36632004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 3664 3665 * arch.c: don't include ranlib.h on ELF systems 3666 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 3667 36682004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3669 3670 * Makefile.in (BMAKE_VERSION): bump to 20040118 3671 3672 * boot-strap (while): export vars we assign to on cmdline 3673 * unit-test/Makefile.in: ternary is .PHONY 3674 36752004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 3676 3677 * Makefile.in (BMAKE_VERSION): bump version to 20040108 3678 * Merge with NetBSD make, pick up: 3679 o fix for ternary modifier 3680 36812004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 3682 3683 * Makefile.in (BMAKE_VERSION): bump version to 20040105 3684 * Merge with NetBSD make, pick up: 3685 o fix for cond.c to handle compound expressions better 3686 o variable expansion within sysV style replacements 3687 36882003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 3689 3690 * Make portable snprintf safer - output to /dev/null first to 3691 check space needed. 3692 3693 * Makefile.in (BMAKE_VERSION): bump version to 20031222 3694 * Merge with NetBSD make, pick up: 3695 o -dg3 to show input graph when things go wrong. 3696 o explicitly look for makefiles in objdir if not found in curdir so 3697 that errors in .depend etc will be reported accurarely. 3698 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 3699 instead as it more accurately reflects the expected behavior and 3700 is more consistently implemented. 3701 o avoid use of asprintf. 3702 37032003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 3704 3705 * util.c: Add asprintf and vasprintf. 3706 3707 * Makefile.in (BMAKE_VERSION): bump version to 20030928 3708 * Merge with NetBSD make, pick up: 3709 :[] modifier - allows picking words from a variable. 3710 :tW modifier - allows treating value as one big word. 3711 W flag for :C and :S - allows treating value as one big word. 3712 37132003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 3714 3715 * Merge with NetBSD make 3716 pick up -de flag to enable printing failed command. 3717 don't skip 1st two dir entries (normally . and ..) since 3718 coda does not have them. 3719 37202003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3721 3722 * Makefile.in (BMAKE_VERSION): bump version to 20030909 3723 * Merge with NetBSD make, pick up: 3724 - changes for -V '${VAR}' to print fully expanded value 3725 cf. -V VAR 3726 - CompatRunCommand now prints the command that failed. 3727 - several files got updated 3 clause Berkeley license. 3728 37292003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3730 3731 * boot-strap: Allow setting configure args on command line. 3732 37332003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3734 3735 * configure.in: add --with-defshell to allow sh or ksh 3736 to be selected as default shell. 3737 3738 * Makefile.in: bump version to 20030731 3739 3740 * Merge with NetBSD make 3741 Pick up .SHELL spec for ksh and associate man page changes. 3742 Also compat mode now uses the same shell specs. 3743 37442003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3745 3746 * var.c (Var_Parse): ensure delim is initialized. 3747 3748 * unit-tests/Makefile.in: use single quotes to avoid problems from 3749 some shells. 3750 3751 * makefile.boot.in: 3752 Run the unit-tests as part of the bootstrap procedure. 3753 37542003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3755 3756 * unit-tests/Makefile.in: always force complaints from 3757 ${TEST_MAKE} to be from 'make'. 3758 3759 * configure.in: add check for 'diff -u' 3760 also fix some old autoconf'isms 3761 3762 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 3763 if using GCC add -Wno-cast-qual to CFLAGS for var.o 3764 3765 * Merge with NetBSD make 3766 Pick up fix for :ts parsing error in some cases. 3767 Pick unit-tests. 3768 37692003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 3770 3771 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 3772 3773 * var.c (Var_Parse): fix bug in :ts modifier, after const 3774 correctness fixes, must pass nstr to VarModify. 3775 37762003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 3777 3778 * Makefile.in: BMAKE_VERSION switch to a date based version. 3779 We'll generally use the date of last import from NetBSD. 3780 3781 * Merge with NetBSD make 3782 Pick up fixes for const-correctness, now passes WARNS=3 on 3783 NetBSD. 3784 Pick up :ts modifier, allows controlling the separator used 3785 between words in variable expansion. 3786 37872003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 3788 3789 * FILES: include boot-strap and os.sh 3790 3791 * Makefile.in: only set WARNS if we are NetBSD, the effect on 3792 FreeBSD is known to be bad. 3793 3794 * makefile.boot.in (bootstrap): make this the default target. 3795 3796 * Makefile.in: bump version to 3.1.19 3797 3798 * machine.sh: avoid A-Z with tr as it is bound to lose. 3799 38002003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 3801 3802 * Merge with NetBSD make 3803 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3804 Plus some doc fixes. 3805 38062003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3807 3808 * Merge with NetBSD make 3809 Pick up fix for PR/1523 - don't count a library as built, if there 3810 is no way to build it 3811 3812 * Bump version to 3.1.18 3813 38142003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3815 3816 * Merge with NetBSD make 3817 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3818 appears in src list. 3819 38202003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3821 3822 * Merge with NetBSD make (mmm 10th anniversary!) 3823 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3824 pick up -X which tells us to not export VAR=val via setenv if 3825 we are already doing so via MAKEFLAGS. This saves valuable env 3826 space on systems like Darwin. 3827 set MAKE_VERSION to 3.1.17 3828 3829 * parse.c: pix up fix for suffix rules 3830 38312003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3832 3833 * Merge with NetBSD make. 3834 pick up fix for propagating -B via MAKEFLAGS. 3835 set MAKE_VERSION to 3.1.16 3836 3837 * Apply some patches from pkgsrc-bootstrap/bmake 3838 Originally by Grant Beattie <grant@netbsd.org> 3839 I may have missed some - since they are based on bmake-3.1.12 3840 38412002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3842 3843 * makefile.boot.in (bmake): update install targets for those that 3844 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3845 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3846 3847 * bmake.cat1: update the pre-formatted man page! 3848 38492002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3850 3851 * Merge with NetBSD make. 3852 pick up fix for premature free of pointer used in call 3853 to Dir_InitCur(). 3854 set MAKE_VERSION to 3.1.15 3855 38562002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3857 3858 * configure.in: determine suitable value for MKSRC. 3859 override using --with-mksrc=PATH. 3860 3861 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3862 configs(8) will use 'sun4' as an alias for 'sparc'. 3863 38642002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3865 3866 * Merge with NetBSD make. 3867 pick up ${.PATH} 3868 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3869 set MAKE_VERSION to 3.1.14 3870 add configure checks for killpg and sys/socket.h 3871 38722002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3873 3874 * tag bmake-3-1-13 3875 3876 * makefile.boot.in (bmake): use install-mk 3877 Also setup ./mk before trying to invoke bmake.boot incase we 3878 needed install-mk to create a sys.mk for us. 3879 3880 * configure.in: If we need to add -I${srcdir}/missing, make it an 3881 absolute path so that it works for lst.lib too. 3882 3883 * make.h: always include sys/cdefs.h since we provide one if the 3884 host does not. 3885 3886 * Makefile.in (install-mk): 3887 use MKSRC/install-mk which will do the right thing. 3888 use uname -p for ARCH if possible. 3889 since install-mk will setup links bsd.prog.mk -> prog.mk if 3890 needed, just .include bsd.prog.mk 3891 3892 * Merge with NetBSD make (NetBSD-1.6) 3893 Code is ansi-C only now. 3894 Bug in handling of dotLast is fixed. 3895 Can now assign .OBJDIR and make will reset its notions of life. 3896 New modifiers :tu :tl for toUpper and toLower. 3897 3898Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3899 3900 * Merge with NetBSD make 3901 pick up fix for .END failure in compat mode. 3902 pick up fix for extra va_end() in ParseVErrorInternal. 3903 3904Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3905 3906 * configure.in: for systems that have sys/cdefs.h check if it is 3907 compatible. If not, include the one under missing, but tell it to 3908 include the native one too - necessary on Linux. 3909 3910 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 3911 include_next (for gcc) to get the native sys/cdefs.h 3912 3913Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3914 3915 * job.c (JobFinish): Fix an earlier merge bug that resulted in 3916 leaking descriptors when using -jN. 3917 3918 * job.c (JobPrintCommand): See if "curdir" exists before 3919 attempting to chdir(). Doing the chdir directly in make (when in 3920 compat mode) fails silently, so let the -jN version do the same. 3921 This can happen when building kernels in an object tree and 3922 playing clever games to reset .CURDIR. 3923 3924 * Merged with NetBSD make 3925 pick up .USEBEFORE 3926 3927Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3928 3929 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 3930 3931Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3932 3933 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 3934 us not to export the iterator variable when using VAR_CMD context. 3935 3936Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3937 3938 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 3939 its the wrong "fix". 3940 3941Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3942 3943 * Redesigned export of VAR_CMD's via MAKEFLAGS. 3944 We now simply append the variable names to .MAKEOVERRIDES, and 3945 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 3946 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 3947 Apart from fixing quoting bugs in previous version, this allows us 3948 to export vars to the environment by simply doing: 3949 .MAKEOVERRIDES+= PATH 3950 Merged again with NetBSD make, but the above is the only change. 3951 3952 * configure.in: added 3953 --disable-pwd-override disable $PWD overriding getcwd() 3954 --disable-check-make-chdir disable make trying to guess 3955 when it should automatically cd ${.CURDIR} 3956 3957 * Merge with NetBSD make, changes include: 3958 parse.c (ParseDoDependency): Spot that the syntax error is 3959 caused by an unresolved cvs/rcs conflict and say so. 3960 var.c: most of Var* functions now take a ctxt as 1st arg. 3961 now does variable substituion on rhs of sysv style modifiers. 3962 3963 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 3964 is now done here. We append the name='value' to .MAKEOVERRIDES 3965 rather than directly into MAKEFLAGS as this allows a Makefile to 3966 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 3967 very similar mechanism. Note that in adding name='value' to 3968 .MAKEOVERRIDES we do the moral equivalent of: 3969 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 3970 3971Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3972 3973 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 3974 3975 * Merged with NetBSD make 3976 make -dx can now be used to run commands via sh -x 3977 better error messages on exec failures. 3978 3979Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3980 3981 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 3982 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 3983 MACHINE etc otherwise they propagate from the previous bmake. 3984 3985 * configure.in (machine): allow --with-machine=generic to make 3986 configure use machine.sh to set MACHINE. 3987 3988 * job.c (JobInterrupt): convert to using WAIT_T and friends. 3989 3990 * Makefile.in: mention in bmake.1 that we use autoconf. 3991 3992 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 3993 3994Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3995 3996 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 3997 as that rather defeats the usefulness of ${MAKEFILE}. 3998 3999 * main.c (MainParseArgs): append command line variable assignments 4000 to MAKEFLAGS so that they get propagated to child make's. 4001 Apparently this is required POSIX behaviour? Its useful anyway. 4002 4003Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4004 4005 * compat.c (CompatRunCommand): don't use perror() since stdio may 4006 cause problems in child of vfork(). 4007 4008 * compat.c, main.c: Call PrintOnError() when we are going to bail. 4009 This routine prints out the .curdir where we stopped and will also 4010 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 4011 4012 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 4013 :@ expansion. 4014 4015 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 4016 4017 * Added RCSid's for the files we've touched. 4018 4019Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4020 4021 * configure.in: Thanks to some clues from mdb@juniper.net, 4022 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 4023 as well as what ends up in _PATH_DEFSYSPATH. We now have: 4024 4025 --with-machine=MACHINE explicitly set MACHINE 4026 --with-force-machine=MACHINE set FORCE_MACHINE 4027 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 4028 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 4029 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 4030 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 4031 4032 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 4033 4034 * makefile: added a pathetically simple makefile to drive 4035 bootstrapping. Running configure by hand is more useful. 4036 4037 * Makefile.in: added MAKE_VERSION, and reworked things to be less 4038 dependent on NetBSD bsd.*.mk 4039 4040 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 4041 _PATH_OBJDIRPREFIX for those that don't want a default. 4042 construct _PATH_DEFSYSPATH from the info we get from configure. 4043 4044 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 4045 if MAKE_VERSION is defined. 4046 4047 * compat.c: when we bail, print out the .CURDIR we were in. 4048 4049Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4050 4051 * Merged with NetBSD make 4052 4053 * var.c: fixed a bug in the handling of the modifier :P 4054 if the node as found but the path was null, we segfault trying to 4055 duplicate it. 4056 4057Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 4058 4059 * Merged with NetBSD make 4060 4061 * make.c: Make_OODate's test for a library out of date was using 4062 cmtime where it should have used mtime (my bug). 4063 4064 * compat.c: Use perror() to tell us what really went wrong when we 4065 cannot exec a command. 4066 4067Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4068 4069 * Merged with NetBSD make 4070 4071Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4072 4073 * Merged with NetBSD make 4074 4075Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4076 4077 * Merged with NetBSD make 4078 4079Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4080 4081 * Merged with NetBSD make 4082 4083Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4084 4085 * util.c: don't provide signal() since we use sigcompat.c 4086 4087 * Makefile.in: added a build target. 4088 4089 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 4090 These allow some quite clever magic. 4091 4092 * main.c (main): added support for getenv(MAKESYSPATH). 4093 4094Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4095 4096 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 4097 This avoids objdir having a different value depending on how a 4098 directory was reached (via command line, or subdir.mk). 4099 4100 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 4101 4102Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4103 4104 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 4105 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 4106 I've been testing this in NetBSD's make for some weeks. 4107 4108 * Turn Makefile into Makefile.in and make it useful. 4109 4110Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 4111 4112 * Imported NetBSD's -current make(1) and resolve conflicts. 4113 4114 * Applied autoconf patches from bmake v2 4115 4116 * Imported clean code base from NetBSD-1.0 4117