12022-04-18 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20220418 4 Merge with NetBSD make, pick up 5 o ignore '.POSIX:' if not in first non-comment line 6 of Makefile as specified by POSIX. 7 add unit-tests for above. 8 o meta.c: make it easier to find usage of identifiers 9 o targ.c: add .USEBEFORE to Targ_PrintType 10 112022-04-14 Simon J Gerraty <sjg@beast.crufty.net> 12 13 * VERSION (_MAKE_VERSION): 20220414 14 15 * unit-tests/Makefile: simplify checks for shells with 16 BROKEN_TESTS, this helps with other Linux distros that 17 use dash. 18 192022-03-30 Simon J Gerraty <sjg@beast.crufty.net> 20 21 * VERSION (_MAKE_VERSION): 20220330 22 Merge with NetBSD make, pick up 23 o var.c: fix spacing, and a typo in a test 24 252022-03-26 Simon J Gerraty <sjg@beast.crufty.net> 26 27 * VERSION (_MAKE_VERSION): 20220326 28 Merge with NetBSD make, pick up 29 o parse.c: try to include 'posix.mk' the first time 30 .POSIX: is encountered, to allow for beter POSIX compliance. 31 o var.c: make debug logs more readable 32 prefer 'long long' over 'long' on 32-bit C99 platforms 33 fix crash on .undef of an environment variable 34 352022-03-03 Simon J Gerraty <sjg@beast.crufty.net> 36 37 * VERSION (_MAKE_VERSION): 20220303 38 Merge with NetBSD make, pick up 39 o tell meta mode unit tests not to expect filemon 40 o cond.c: make debug logging for comparisons less technical 41 o lst.c: fix mem leak in Lst_Remove 42 o str.c: make code for string matching syntactically more consistent 43 o var.c: simplify ParseModifier_Match 44 452022-02-14 Simon J Gerraty <sjg@beast.crufty.net> 46 47 * unit-tests/Makefile: control MAKESYSPATH for deptgt-phony 48 49 * VERSION (_MAKE_VERSION): 20220214 50 Merge with NetBSD make, pick up 51 o cond.c: simplify control flow in CondParser_Comparison 52 o job.c: fix echoing of command with '-' in silent target in jobs mode 53 o main.c: prefix the warning about read-only .OBJDIR with a colon 54 o parse.c: remove redundant conditions 55 o var.c: simplify control flow in ModifyWord_SysVSubst 56 572022-02-08 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * unit-tests/Makefile: disable opt-debug-x-trace on Linux if there 60 is any chance we have dash as .SHELL 61 62 * VERSION (_MAKE_VERSION): 20220208 63 Merge with NetBSD make, pick up 64 o more unit tests 65 o meta.c: use a variable to hold command line to be filtered 66 to avoid any side effects from content of command line. 67 682022-02-04 Simon J Gerraty <sjg@beast.crufty.net> 69 70 * VERSION (_MAKE_VERSION): 20220204 71 Merge with NetBSD make, pick up 72 o use unsigned consistently for line numbers, avoid the need for %z 73 o parse.c: do not step off end of input in Parse_IsVar 74 when checking for target local variable assignments 75 762022-02-02 Simon J Gerraty <sjg@beast.crufty.net> 77 78 * VERSION (_MAKE_VERSION): 20220202 79 Merge with NetBSD make, pick up 80 o remove redundant declaration of HashIter_Init 81 o make DEBUG0 simpler 82 832022-01-30 Simon J Gerraty <sjg@beast.crufty.net> 84 85 * cast gn->lineno to avoid %z 86 87 * VERSION (_MAKE_VERSION): 20220130 88 Merge with NetBSD make, pick up 89 o more unit tests 90 o make GNode lineno unsigned to please lint 91 o print location of recursive variable references in commands 92 o print "stack trace" (makefile includes) on fatal errors 93 o make.1: refine documentation for target local assignments 94 952022-01-28 Simon J Gerraty <sjg@beast.crufty.net> 96 97 * VERSION (_MAKE_VERSION): 20220128 98 Merge with NetBSD make, pick up 99 o inline functions called only once 100 o for.c: clean up AddEscape for building the body of a .for loop 101 o hash.c: merge duplicate code for finding an entry in a hash table 102 replace HashEntry_KeyEquals with strncmp 103 o make.1: document quirks of target local variable assignments. 104 o parse.c: cleanup white-space 105 1062022-01-26 Simon J Gerraty <sjg@beast.crufty.net> 107 108 * VERSION (_MAKE_VERSION): 20220126 109 Merge with NetBSD make, pick up 110 o allow setting target local variables 111 o more unit tests 112 o add missing newline after "cannot continue" message 113 o meta.c: clean up eat_dots 114 o parse.c: fix filename in warning about duplicate script 115 o var.c: when expanding nested variables, check simple things first 116 1172022-01-16 Simon J Gerraty <sjg@beast.crufty.net> 118 119 * VERSION (_MAKE_VERSION): 20220116 120 Merge with NetBSD make, pick up 121 o fix for unit-tests/varname-makeflags on non-BSD systems 122 o use Var_Exists rather than Var_Value where appropriate 123 o remove unnecessary functions for expanding variable names 124 o cond.c: inline EvalBare 125 o main.c: lint cleanup 126 o parse.c: condense code in Parse_IsVar 127 use islower for parsing directives (none have upper case) 128 1292022-01-12 Simon J Gerraty <sjg@beast.crufty.net> 130 131 * VERSION (_MAKE_VERSION): 20220112 132 Merge with NetBSD make, pick up 133 o meta.c: add .MAKE.META.CMP_FILTER for filtering commands before 134 comparion, rarely needed but useful when it is. 135 1362022-01-10 Simon J Gerraty <sjg@beast.crufty.net> 137 138 * VERSION (_MAKE_VERSION): 20220110 139 Merge with NetBSD make, pick up 140 o inline Buf_Clear 141 o remove redundant braces 142 o rename and inline Targ_Precious 143 o cond.c: remove redundant initializer in CondParser_ComparisonOrLeaf 144 o for.c: clean up handling of .for loops 145 fix reported line numbers of continuation lines 146 add details about .for loop variables to stack traces 147 o job.c: reduce code for initializing error handling in shell 148 o main.c: in Cmd_Exec, return error message instead of format string 149 have as few statements as possible between va_start and va_end 150 add debug logging for capturing the output of external commands 151 o make.c: use consistent variable names for varargs 152 o make_malloc.c: remove duplicate code from bmake_strdup 153 o parse.c: add missing printflike annotations 154 remove redundant lines from stack traces 155 fix stack traces in -dp mode 156 reduce confusing code in ParseForLoop 157 fix line number in debug log after returning from a file 158 rename IFile and its fields to match their actual content 159 clean up ParseDependencySources 160 o var.c: shorten ApplyModifier_Assign 161 rename is_shell_metachar, fix character conversion warning 162 merge calls to ApplyModifier_Time 163 merge duplicate code for modifiers 'gmtime' and 'localtime' 164 1652022-01-04 Simon J Gerraty <sjg@beast.crufty.net> 166 167 * parse.c: loadfile restore extra byte in buffer. 168 1692022-01-01 Simon J Gerraty <sjg@beast.crufty.net> 170 171 * VERSION (_MAKE_VERSION): 20220101 172 Merge with NetBSD make, pick up 173 o more unit-tests 174 o remove unnecessary words from command line options in CmdOpts 175 o rename eunlink to unlink_file 176 o cond.c: make ParseWord in condition parser simpler 177 internally return false for irrelevant leaves in conditions 178 replace table for function lookup in conditions with simple code 179 merge duplicate types CondEvalResult and CondResult 180 o for.c: clean up handling of .for loops and .include directives 181 o main.c: constify cached_realpath 182 clean up Cmd_Exec 183 o parse.c: sync API documentation 184 fix error message when reading more than 1 GB from stdin 185 clean up parsing of makefiles 186 fix line number in error message about open conditionals 187 unexport types VarAssignOp and VarAssign 188 clean up function names 189 remove redundant parameters in dependency parsing functions 190 reduce scope of the list of wildcard target names 191 extract OP_NOTARGET into separate function 192 clean up variable names for parsing dependency lines 193 make debug logging a bit more human-friendly 194 o var.c: condense code in ApplyModifier_Assign 195 1962021-12-21 Simon J Gerraty <sjg@beast.crufty.net> 197 198 * VERSION (_MAKE_VERSION): 20211221 199 Merge with NetBSD make, pick up 200 o more unit-tests 201 o style cleanup 202 o in CLEANUP mode, free interned strings at the very end 203 o fix memory leak for filenames in .for loops 204 o buf.c: avoid memory leak 205 o cond.c: condense CondParser_ComparisonOp 206 o hash.c: change return type of HashTable_Set to void 207 o job.c: change return type of Compat_RunCommand from int to bool 208 o main.c: remove bmake_free 209 o parse.c: condense repetetive code in ParseDirective 210 remove dead code for handling traditional include directives 211 clean up parsing of variable assignments 212 remove unreachable code for parsing the dependency operator 213 clean up loading of files 214 fix memory leak in IncludeFile 215 o var.c: fix memory leak when parsing a variable name 216 fix memory leak from ${.SUFFIXES} 217 reduce memory allocation in modifier ':?' and ':C' 218 condense RegexReplace for the modifier ':C' and avoid strlen 219 merge duplicate code for memory handling in Var_Parse 220 distinguish between short-lived and environment variables 221 rename VarFreeEnv to VarFreeShortLived 222 2232021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 224 225 * cond.c: fix mem leak in CondParser_Leaf 226 2272021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * VERSION (_MAKE_VERSION): 20211212 230 Merge with NetBSD make, pick up 231 o rename Parse_SetInput to Parse_PushInput 232 o remove remove period from end of error messages and warnings 233 to be more consistent 234 o arch.c: use simpler memory management for parsing archive members 235 o cond.c: rework and reduce recursion 236 o for.c: rename some functions to better reflect purpose 237 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 238 o var.c: in parse errors, mark whitespace more clearly 239 inline ParseEmptyArg into CondParser_FuncCallEmpty 240 minimize calls to LazyBuf_Get in ParseVarnameLong 241 treat .SUFFIXES as a read-only variable 242 2432021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 244 245 * VERSION (_MAKE_VERSION): 20211207 246 Merge with NetBSD make, pick up 247 o inline HashIter_Init 248 o parse.c: inline common subexpression in ParseRawLine 249 o var.c: merge branches for modifiers ':D' and ':U' 250 extract common code into Expr_Words 251 extract common code into Expr_Str 252 move low-level implementation details out of Var_Parse 253 2542021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 255 256 * VERSION (_MAKE_VERSION): 20211206 257 Merge with NetBSD make, pick up 258 o add unit-tests/varmod-loop-delete 259 o for.c: inline Str_Words - reduce memory allocation 260 o parse.c: do not try to expand fixed variable names 261 only allocate the name of an included file if necessary 262 clean up ParseInclude 263 o var.c: fix use-after-free in modifier ':@' 264 save a memory allocation in each modifier ':O' and ':u' 265 save a memory allocation in the modifier ':[...]' 266 in UnexportVars, replace Str_Words with Substring_Words to 267 reduce allocations and copying. 268 2692021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 270 271 * VERSION (_MAKE_VERSION): 20211204 272 Merge with NetBSD make, pick up 273 o flesh out a number of tests 274 o replace enums with bitfields, this simplifies a lot of code. 275 o var.c: refactor ParseModifierPartSubst 276 2772021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 278 279 * VERSION (_MAKE_VERSION): 20211024 280 Merge with NetBSD make, pick up 281 o Punt on write errors - ENOSPC etc. 282 2832021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 284 285 * configure.in: use_defshell, set both DEFSHELL_INDEX 286 and defshell_path if appropriate. 287 This makes it easier to use say the KSH specification with 288 and alternate path for the shell. 289 290 * configure.in compat.c: for SCO we need to force UseShell 291 292 * configure.in: SCO /bin/sh is not usable, provide a list of 293 alternatives for use as .SHELL. 294 We still have to mark some tests as broken, plus more if we end up 295 with ksh as .SHELL. 296 Issue a warning about skipped tests. 297 298 * boot-strap: leave TOOL_DIFF to configure 299 300 * configure.in: on SCO native cc is not usable, 301 gcc is to be found in /usr/gnu/bin 302 and while ancient is at least able to compile bmake. 303 Thus we add /usr/gnu/bin to PATH if it exists, and later 304 check if $CC would have been found via $PATH. 305 If not we set CC to the full path of $CC. 306 Also gnu diff is known to support -u, so if it exists use it. 307 308 * configure.in: move getopt to AC_REPLACE_FUNCS 309 also add AC_C_INLINE - in an attempt to compile using 310 native cc on SCO. 311 312 * configure.in: check for stresep as well as strsep, since we 313 define the later to the former if necessary, and if we have to 314 provide stresep we also need to provide a prototype. 315 316 * configure.in: we no longer need to worry about 317 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 318 319 * make.h: make sure we have __RCSID 320 321 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 322 can control it. 323 3242021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 325 326 * VERSION: 20211020 327 Merge with NetBSD make, pick up 328 o confirm sync of unit-tests 329 3302021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 331 332 * configure.in: check if timezone Europe/Berlin is supported 333 if not try UTC-1 334 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 335 symlink unit-tests -> ../unit-tests/obj so that 336 unit-tests/Makefile.config is put in the right place. 337 * refine filtering of .OBJDIR in unit-tests 338 3392021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 340 341 * Fix unit-tests on Minix 3.2.0 342 o job.c: do not punt if read of token pipe fails for EAGAIN. 343 On Minix at least, we are not ready to read the childExitJob pipe 344 when poll says we are. 345 There should actually be no reason for this pipe to be 346 non-blocking, but while that works fine on {Net,Free}BSD it 347 breaks another test case on Minix. 348 o unit-tests/Makefile: deal with variants of error messages 349 and use of obj as .OBJDIR 350 3512021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * configure.in: add sigaction to AC_REPLACE_FUNCS 354 we also need to check for sigaddset etc just for the benefit of 355 sigact.c 356 357 * Add sigact.c as sigaction.c so this "just works". 358 This should have been done back when bmake_signal started using 359 sigaction (I only just noticed that sigact.c wasn't here ;-) 360 Note: I no longer have access to any system where this would matter. 361 3622021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 363 364 * VERSION (_MAKE_VERSION): 20211011 365 366 * Makefile: cleanup a little 367 368 * configure.in: check for sigsetmask 369 3702021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 371 372 * VERSION (_MAKE_VERSION): 20211001 373 Merge with NetBSD make, pick up 374 o reduce locations reducing text size 375 o remove unnecessary const 376 o cond.c: fix lint warning on i386 377 do not allow unquoted 'left == right' after modifier ':?' 378 o hash.c: fix build for DEBUG_HASH_LOOKUP 379 o var.c: fix memory leak in error case of the ':?' modifier 380 3812021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 382 383 * VERSION (_MAKE_VERSION): 20210911 384 Merge with NetBSD make, pick up 385 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 386 3872021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 388 389 * VERSION (_MAKE_VERSION): 20210906 390 Merge with NetBSD make, pick up 391 o more unit tests 392 o lint cleanup 393 o rename some functions to better fit purpose 394 o for.c: cleanup - remove unnecessary optimization 395 fix embedded newlines 396 o parse.c: correct case for CVS/RCS 397 3982021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 399 400 * VERSION (_MAKE_VERSION): 20210808 401 Merge with NetBSD make, pick up 402 o var.c: remove redundant initialization in ApplyModifier_Order 403 404 * mk/options.mk: issue warning for incorrect usage 405 4062021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 407 408 * var.c: use long for :On if we don't have a 64bit int type 409 410 * VERSION (_MAKE_VERSION): 20210803 411 Merge with NetBSD make, pick up 412 o rework varmod-order tests to avoid qsort instability 413 o make.1: clarify :On entry 414 4152021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 416 417 * VERSION (_MAKE_VERSION): 20210731 418 Merge with NetBSD make, pick up 419 o fix some lint issues 420 o more unit tests 421 o var.c: rework of ApplyModifier_Order 422 4232021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 424 425 * util.c: add strto*l if HAVE_STRTO*L not defined 426 427 * VERSION (_MAKE_VERSION): 20210730 428 Merge with NetBSD make, pick up 429 o var.c: add :On and :Orn for numeric sort 430 disabled if no 64bit type available. 431 o _strtol.h: to implement strto*l functions 432 4332021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 434 435 * VERSION (_MAKE_VERSION): 20210704 436 Merge with NetBSD make, pick up 437 o unit-tests: fix some tests to be more portable 438 - job-output-null not all shells do the same number of write calls 439 - objdir-writable if TMPDIR is set; /tmp may not be usable 440 4412021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 442 443 * VERSION (_MAKE_VERSION): 20210701 444 Merge with NetBSD make, pick up 445 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 446 some tests just cannot work in some environments. 447 o buf.c: simpler upper bound for length in Buf_AddInt 448 o cond.c: fix grammar in error message for malformed conditional 449 o for.c: prevent newline injection (from ${.newline}) in .for loops 450 o var.c: use more practical data type in RegexReplace 451 (avoid need for %zu) 452 extract RegexReplace from ModifyWord_SubstRegex 453 4542021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 455 456 * VERSION (_MAKE_VERSION): 20210621 457 Merge with NetBSD make, pick up 458 o var.c: only report error for unmatched regex subexpression 459 when linting (-dL) since we cannot tell when an unmatched 460 subexpression is an expected result. 461 o move unmatched regex subexpression tests to 462 varmod-subst-regex.mk and enable strict (lint) mode 463 4642021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 465 466 * VERSION (_MAKE_VERSION): 20210616 467 Merge with NetBSD make, pick up 468 o more unit tests 469 o cond.c: rename If_Eval to EvalBare 470 improve function names for parsing conditions 471 o job.c: fix error handling of targets that cannot be made 472 o var.c: uncompress code in ApplyModifier_Unique 473 4742021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 475 476 * VERSION (_MAKE_VERSION): 20210518 477 Merge with NetBSD make, pick up 478 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 479 o job.c: Print -de error information when running multiple jobs 480 4812021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 482 483 * VERSION (_MAKE_VERSION): 20210420 484 Merge with NetBSD make, pick up 485 o use C99 bool type 486 o convert VarEvalFlags back into an enum 487 o cond.c: do not complain when skipping the condition 'no >= 10' 488 o hash.c: avoid allocating memory for simple variable names 489 o job.c: use distinct wording for writing to the shell commands file 490 remove type name for the abort status in job handling 491 rename PrintOutput to PrintFilteredOutput to avoid confusion 492 o main.c: avoid double slash in name of temporary directory 493 o var.c: use straight quotes for error 'Bad conditional expression' 494 reduce memory allocations in the modifiers ':D' and ':U' 495 rename members of ModifyWord_LoopArgs 496 clean up pattern flags for the modifiers ':S' and ':C' 497 reduce memory allocation and strlen calls in modifier ':from=to' 498 in the ':Q' modifier, only allocate memory if necessary 499 improve performance for LazyBuf 500 remove redundant parameter from ParseVarnameLong 501 migrate ParseModifierPart to use Substring 502 avoid unnecessary calls to strlen when evaluating modifiers 503 migrate ModifyWord functions to use Substring 504 migrate handling of the modifier ':S,from,to,' to Substring 505 reduce debug logging and memory allocation for ${:U...} 506 reduce verbosity of the -dv debug logging for standard cases 507 clean up debug logging for ':M' and ':N' 508 disallow '$' in the variable name of the modifier ':@' 509 simplify access to the name of an expression during evaluation 510 5112021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 512 513 * VERSION (_MAKE_VERSION): 20210330 514 Merge with NetBSD make, pick up 515 o replace enum bit-field with struct bit-field for VarEvalFlags 516 o rename VARE_NONE to VARE_PARSE_ONLY 517 o var.c: rename ApplyModifiersState to ModChain 518 fix double varname expansion in the variable modifier '::=' 519 change debug log for variable evaluation flags to lowercase 520 5212021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 522 523 * VERSION (_MAKE_VERSION): 20210314 524 Merge with NetBSD make, pick up 525 o var.c: avoid evaluating many modifiers in parse only mode 526 in strict mode (-dL) many variable references are parsed twice, 527 the first time just to report parse errors early, so we want to 528 avoid side effects and wasted effort to the extent possible. 529 5302021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 531 532 * VERSION (_MAKE_VERSION): 20210226 533 Merge with NetBSD make, pick up 534 o remove freestanding freeIt variables 535 link via FStr 536 o var.c: restructure code in ParseVarname to target human readers 537 improve error message for; 538 bad modifier in variable expression 539 unclosed modifier 540 unknown modifier 541 remove redundant parameter of ApplySingleModifier 542 explain non-obvious code around indirect variable modifiers 543 quote ':S' in error message about missing delimiter 544 extract ParseModifier_Match into separate function 545 add context information to error message about ':range' modifier 546 add quotes around variable name in an error message 547 reorder code in ModifyWords 548 use more common parameter order for VarSelectWords 549 make ModifyWord_Subst a little easier to understand 550 do not expand variable name from the command line twice 551 extract ExistsInCmdline from Var_SetWithFlags 552 save a hash map lookup when defining a cmdline variable 553 clean up VarAdd, Var_Delete, Var_ReexportVars 554 use bit-shift expressions for VarFlags constants 555 rename constants for VarFlags 556 rename ExprDefined constants for debug logging 557 rename ExprStatus to ExprDefined 558 split parameters for evaluating variable expressions 559 reduce redundant code around ModifyWords 560 print error about failed shell command before overwriting variable 561 clean up ValidShortVarname, ParseVarnameShort 562 rename VarExprStatus to ExprStatus 563 add functions for assigning the value of an expression 564 rename ApplyModifiersState_Define to Expr_Define 565 condense the code for parsing :S and :C modifiers 566 5672021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 568 569 * VERSION (_MAKE_VERSION): 20210206 570 Merge with NetBSD make, pick up 571 o unit-tests: use private TMPDIR to avoid errors from other users 572 5732021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 574 575 * VERSION (_MAKE_VERSION): 20210205 576 Merge with NetBSD make, pick up 577 o avoid strdup in mkTempFile 578 o always use vfork 579 o rename context and ctxt to scope 580 o rename some VAR constants to SCOPE 581 o Var_ functions, move the scope to the front 582 o use shortcut functions Global_Set and Global_Append 583 o add shortcut Global_Delete for deleting a global variable 584 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 585 o compat.c: when exiting due to an error, print graph information 586 o enum.c: remove overengineered Enum_ValueToString 587 o make.c: remove unused INTERNAL flag 588 remove unused return type of MakeBuildParent 589 o parse.c: replace parse error "Need an operator" with better message 590 o var.c: improve documentation about variable scopes 591 rename Var_ValueDirect to GNode_ValueDirect 592 rename old Var_SetWithFlags to Var_SetExpandWithFlags 593 merge SetVar into Var_SetWithFlags 594 split Var_Exists into plain Var_Exists and Var_ExistsExpand 595 split Var_Append into Var_Append and Var_AppendExpand 596 replace enum bit-set with bit-field 597 o unit-tests/var-op-shell: use kill rather than kill -14 598 which broke on darwin with recent update. 599 6002021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 601 602 * configure.in: check for sig_atomic_t and define it as 'int' 603 if missing. 604 605 * VERSION (_MAKE_VERSION): 20210201 606 Merge with NetBSD make, pick up 607 o use sig_atomic_t for caught_sigchld 608 6092021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 610 611 * VERSION (_MAKE_VERSION): 20210130 612 Merge with NetBSD make, pick up 613 o more unit tests 614 o convert SearchPath to struct 615 o split Buf_Destroy into Buf_Done and Buf_DoneData 616 o for.c: split For_Eval into separate functions 617 rename struct For to struct ForLoop 618 o job.c: do not create empty shell files in jobs mode 619 rename JobOpenTmpFile to JobWriteShellCommands 620 reduce unnecessary calls to waitpid 621 o parse.c: in -dp mode, print stack trace with each diagnostic 622 6232021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 624 625 * VERSION (_MAKE_VERSION): 20210123 626 Merge with NetBSD make, pick up 627 o rename Dir_Expand to SearchPath_Expand 628 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 629 o cond.c: fix debug output for comparison operators in conditionals 630 o dir.c: split Dir_FindFile into separate functions 631 6322021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 633 634 * VERSION (_MAKE_VERSION): 20210120 635 Merge with NetBSD make, pick up 636 o fix some more lint nits 637 o refine some unit tests for portability 638 o cond.c: rework parsing 639 6402021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 641 642 * VERSION (_MAKE_VERSION): 20210110 643 Merge with NetBSD make, pick up 644 o fix lint warnings 645 o consistently use boolean expressions in conditions 646 6472021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 648 649 * VERSION (_MAKE_VERSION): 20210108 650 Merge with NetBSD make, pick up 651 o job.c: back to polling token pipe if we want a token 652 o main.c: always print 'stopped in' on first call 653 The execption is if we bail because of an abort token 654 in which case just exit 6. 655 6562021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 657 658 * VERSION (_MAKE_VERSION): 20210101 659 Merge with NetBSD make, pick up 660 o Happy New Year! 661 o rename CmdOpts.lint to strict 662 o exit 2 on technical errors 663 o replace pointers in controlling conditions with booleans 664 o replace global preserveUndefined with VARE_KEEP_UNDEF 665 o compat.c: re-export variables from the actual make process 666 if using vfork this is the effect anyway 667 o cond.c: clean up VarParseResult constants 668 o for.c: fix undefined behavior in SubstVarLong 669 make control flow in SubstVarLong of .for loops more obvious 670 clean up SubstVarShort in .for loops 671 extract ForSubstBody from ForReadMore 672 clean up ForReadMore 673 simplify termination condition for .for loop 674 add error handling for .for loop items 675 job.c: re-export variables from the actual make process 676 parse.c: remove mmap for loading files, only allow files < 1 GiB 677 fix edge case in := with undefined in variable name 678 skip variable expansion in ParseDependencyTargetWord 679 var.c: split ExportVar into separate functions 680 clean up code in extracted ExportVar functions 681 remove dead code from ApplyModifiersIndirect 682 split Var_Subst into easily understandable functions 683 clean up VarParseResult constants 684 6852020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 686 687 * main.c: use .MAKE.DEPENDFILE as set by makefiles 688 6892020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 690 691 * VERSION (_MAKE_VERSION): 20201222 692 Merge with NetBSD make, pick up 693 o make DEBUG macro return boolean 694 o parse.c: fix assertion failure for files without trailing newline 695 o var.c: allow .undef to undefine multiple variables at once 696 remove excess newline from parse errors 697 6982020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * VERSION (_MAKE_VERSION): 20201221 701 Merge with NetBSD make, pick up 702 o some unit-test updates 703 7042020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * VERSION (_MAKE_VERSION): 20201220 707 Merge with NetBSD make, pick up 708 o more unit tests 709 o return FStr from Var_Parse and Var_Value 710 o spell nonexistent consistently 711 o add str_basename to reduce duplicate code 712 o compat.c: fix .ERROR_TARGET in compat -k mode 713 extract InitSignals from Compat_Run 714 extract UseShell from Compat_RunCommand 715 o cond.c: error out if an '.endif' or '.else' contain extraneous text 716 o for.c: rename ForIterate to ForReadMore 717 o hash.c: clean up hash function for HashTable 718 o lst.c: rename Vector.priv_cap to cap 719 o main.c: remove constant parameter from MakeMode 720 o make.c: use symbolic time for 0 in Make_Recheck 721 extract MakeChildren from MakeStartJobs 722 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 723 fix error message for .info/.warning/.error without argument 724 extract Var_Undef from ParseDirective 725 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 726 rename mode constants for ParseGetLine to be more expressive 727 reduce debugging details in Parse_SetInput 728 fix line numbers in .for loops 729 split ParseGetLine into separate functions 730 fix garbled output for failed shell command 731 var.c: remove redundant assignment in ApplyModifier_SysV 732 error out on unknown variable modifiers at parse time 733 remove wrong error message for indirect modifier in lint mode 734 extract ApplySingleModifier from ApplyModifiers 735 use FStr for memory management in Var_SetWithFlags 736 extract SetVar from Var_SetWithFlags 737 use FStr in VarNew 738 extract string functions from ApplyModifier_To 739 error out if .undef has not exactly 1 argument 740 extract Var_DeleteVar from Var_Delete 741 extract Var_Undef from ParseDirective 742 clean up memory management for expanding variable expressions 743 7442020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * avoid %zu 747 748 * lst.c: avoid anonymous union 749 750 * VERSION (_MAKE_VERSION): 20201212 751 Merge with NetBSD make, pick up 752 o more unit tests 753 o inline Targ_Ignore and Targ_Silent 754 o split JobFlags into separate fields 755 o remove const from function parameters (left overs from refactoring) 756 o eliminate boolean argument of Var_Export 757 o make API of Buf_Init simpler 758 o rename ParseRunOptions to ParseCommandFlags 759 o replace *line with line[0] 760 o compat.c: fix wrong exit status for multiple failed main targets 761 refactor Compat_Run to show the error condition more clearly 762 don't make .END if the main targets already failed (-k mode) 763 fix exit status in -k mode if a dependency fails 764 o for.c: clean up Buf_AddEscaped in .for loops 765 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 766 make Job_Touch simpler 767 refactor JobFinish 768 rename Shell.exitFlag to errFlag 769 move Job.xtraced to ShellWriter 770 make printing of shell commands independent from the job 771 rename shell flags in struct Shell 772 extract JobOpenTmpFile from JobStart 773 rename RunFlags to CommandFlags 774 split various Job.* into separate fields 775 rename commandShell to shell 776 extract InitShellNameAndPath from Shell_Init 777 replace signal handling macros with local functions 778 replace macro MESSAGE with local function 779 parse.c: error out on null bytes in makefiles 780 error out on misspelled directives 781 rename IFile.nextbuf to readMore 782 fix undefined behavior in ParseEOF 783 str.c: remove redundant call to strlen in Str_Words 784 var.c: error out on misspelled .unexport-env 785 error out on misspelled .export directives 786 extract ExportVars from Var_Export 787 extract ExportVarsExpand from Var_Export 788 eliminate boolean argument of Var_Export 789 fix undefined behavior when exporting ${:U } 790 rename Var_ExportVars to Var_ReexportVars 791 rename Var_Export1 to ExportVar 792 7932020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 794 795 * VERSION (_MAKE_VERSION): 20201206 796 Merge with NetBSD make, pick up 797 o more unit tests 798 o inline macros for debug logging 799 o use consistent variable names for list nodes 800 o define constants for enum zero-values 801 o dir.c: use fixed format for debug output of the directory cache 802 remove Dir_InitDir 803 o lst.c: inline Lst_Enqueue, Vector_Done 804 o meta.c: remove unused parameter from meta_needed 805 o parse.c: rename parse functions 806 o suff.c: extract ExpandChildrenRegular from ExpandChildren 807 o targ.c: don't concatenate identifiers in Targ_PrintType 808 o var.c: remove comment decoration 809 extract UnexportVars from Var_UnExport 810 extract GetVarnamesToUnexport from Var_UnExport 811 extract UnexportEnv from Var_UnExport 812 extract UnexportVar from Var_UnExport 813 move CleanEnv to UnexportVars 814 replace pointer comparisons with enum 815 add FStr to var.c to make memory handling simpler 816 use FStr in Var_UnExport 817 move type definitions in var.c to the top 818 extract FreeEnvVar from Var_Parse 819 extract ShuffleStrings from ApplyModifier_Order 820 8212020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 822 823 * VERSION (_MAKE_VERSION): 20201130 824 Merge with NetBSD make, pick up 825 o add unit tests for META MODE 826 o reduce memory allocation for dirSearchPath, GNode.parents, 827 GNode.children, OpenDirs 828 o reduce pointer indirection for GNode.cohorts and 829 GNode.implicitParents 830 o remove pointer indirection from GNode.commands 831 o inline Lst_ForEachUntil in meta mode 832 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 833 clean up memory management for CachedDirs 834 fix the reference count of dotLast going negative 835 add debug logging for OpenDirs_Done 836 extract CacheNewDir from Dir_AddDir 837 add debug logging for reference counting of CachedDir 838 rename some Dir functions to SearchPath 839 o job.c: rename some global variables 840 o main.c: reduce memory allocation in ReadBuiltinRules 841 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 842 CmdOpts.makefiles 843 Add .MAKE.UID and .MAKE.GID 844 o make.c: reduce memory allocation for/in toBeMade, 845 Make_ProcessWait, Make_ExpandUse 846 o meta.c: reduce memory allocation in meta_oodate 847 o parse.c: reduce memory allocations for parsing dependencies and 848 targets 849 o suff.c: reduce memory allocation in suffix handling 850 8512020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 852 853 * VERSION (_MAKE_VERSION): 20201124 854 Merge with NetBSD make, pick up 855 o .MAKE.{UID,GID} represent uid and gid running make. 856 o fix error handling for .BEGIN and .END dependency in -k mode 857 o fix missing "Stop." after failed .END node in -k mode 858 o use properly typed comparisons in boolean contexts 859 o replace a few HashTable_CreateEntry with HashTable_Set 860 o add HashSet type 861 o compat.c: split Compat_Make into smaller functions 862 extract DebugFailedTarget from Compat_RunCommand 863 o dir.c: refactor Dir_UpdateMTime 864 migrate CachedDir.files from HashTable to HashSet 865 o make.c: add high-level API for GNode.made 866 8672020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 868 869 * VERSION (_MAKE_VERSION): 20201122 870 Merge with NetBSD make, pick up 871 o rename GNode.context to vars 872 o suff.c: cleanup and refactor 873 rename some functions and vars to better reflect usage 874 add high-level API for CandidateSearcher 875 o targ.c: add more debug logging for suffix handling 876 o more unit tests 877 o add debug logging for setting and resetting the main target 878 8792020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 880 881 * VERSION (_MAKE_VERSION): 20201117 882 Merge with NetBSD make, pick up 883 o fix some unit-tests when .SHELL is dash 884 o rename Targ_NewGN to GNode_New 885 o make some GNode functions const 886 o main.c: call Targ_Init before Var_Init 887 cleanup PrintOnError, getTmpdir and ParseBoolean 888 o var.c: fix error message of failed :!cmd! modifier 889 8902020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 891 892 * VERSION (_MAKE_VERSION): 20201114 893 Merge with NetBSD make, pick up 894 o replace a few HashTable_CreateEntry with HashTable_Set 895 o clean up cached_stats 896 o rename DEFAULT to defaultNode 897 o remove redundant struct make_stat 898 o cond.c: in lint mode, check for ".else <cond>" 899 use bitset for IfState 900 replace large switch with if-else in Cond_EvalLine 901 o job.c: clean up JobExec, JobStart, JobDoOutput 902 use stderr for error message about failed touch 903 clean up Job_Touch 904 replace macro DBPRINTF with JobPrintln 905 rename JobState to JobStatus 906 main.c: switch cache for realpath from GNode to HashTable 907 clean up Fatal 908 clean up InitDefSysIncPath 909 use progname instead of hard-coded 'make' in warning 910 rename Main_SetVarObjdir to SetVarObjdir 911 make.1: document the -S option 912 make.c: fix debug output for GNode details 913 use symbolic names in debug output of GNodes 914 9152020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 916 917 * configure.in: fix --with-force-machine-arch 918 919 * VERSION (_MAKE_VERSION): 20201112 920 Merge with NetBSD make, pick up 921 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 922 checks in InitObjdir. Explicit .OBJDIR target always allows 923 read-only directory. 924 o cond.c: clean up Cond_EvalLine 925 9262020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 927 928 * VERSION (_MAKE_VERSION): 20201111 929 Merge with NetBSD make, pick up 930 o more unit-tests 931 o style cleanup 932 remove redundant parentheses from sizeof operator 933 replace character literal 0 with '\0'. 934 replace pointer literal 0 with NULL. 935 remove redundant parentheses. 936 replace (expr & mask) == 0 with !(expr & mask). 937 use strict typing in conditions of the form !var 938 o rename Make_OODate to GNode_IsOODate 939 o rename Make_TimeStamp to GNode_UpdateYoungestChild 940 o rename Var_Set_with_flags to Var_SetWithFlags 941 o rename dieQuietly to shouldDieQuietly 942 o buf.c: make API of Buf_Init simpler 943 o compat.c: clean up Compat_Make, Compat_RunCommand, 944 CompatDeleteTarget and CompatInterrupt 945 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 946 clean up CondParser_Comparison 947 o main.c: rename getBoolean and s2Boolean 948 rename MAKEFILE_PREFERENCE for consistency 949 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 950 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 951 replace emptyString with allocated empty string 952 error out on unclosed expressions after the colon 953 9542020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 955 956 * VERSION (_MAKE_VERSION): 20201101 957 Merge with NetBSD make, pick up 958 o negate NoExecute to GNode_ShouldExecute 959 o job.c: rename JobMatchShell to FindShellByName 960 extract EscapeShellDblQuot from JobPrintCommand 961 extract ParseRunOptions from JobPrintCommand 962 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 963 treat malformed :range, :ts and :[...] as errors 964 add tests for the variable modifiers :[words] and :range 965 9662020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 967 968 * VERSION (_MAKE_VERSION): 20201031 969 Merge with NetBSD make, pick up 970 o format #include directives consistently 971 o do not look up local variables like .TARGET anywhere else 972 o main.c: Main_SetObjdir is first called for curdir which may be 973 readonly 974 reduce the scope where recursive expressions are detected 975 remove redundant :tl from getBoolean 976 clean up mkTempFile 977 o meta.c: simplify memory allocation in meta_create and meta_oodate 978 o parse.c: extract loadedfile_mmap from loadfile 979 o trace.c: document possible undefined behavior with .CURDIR 980 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 981 rename ismeta to is_shell_metachar 982 remove debug logging for the :Q variable modifier 983 rename VarIsDynamic to VarnameIsDynamic 984 use consistent parameter order in varname parsing functions 985 extract ParseVarnameLong from Var_Parse 986 extract ParseVarnameShort from Var_Parse 987 fix type of ParseModifierPart parameter delim 988 extract IsEscapedModifierPart from ParseModifierPart 989 clean up ModifyWords 990 add test for combining the :@ and :? variable modifiers 991 9922020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 993 994 * VERSION (_MAKE_VERSION): 20201030 995 Merge with NetBSD make, pick up 996 o change char * to void * in Var_Value 997 o make iterating over HashTable simpler 998 o rename VAR_CMD to VAR_CMDLINE 999 o cond.c: clean up is_separator 1000 fix parse error in string literal in conditional 1001 o main.c: do not use objdir that is not writable 1002 in lint mode, exit with error status on errors 1003 o parse.c: clean up StrContainsWord 1004 fix out-of-bounds pointer in ParseTrackInput 1005 o var.c: rename Str_SYSVMatch and its parameters 1006 remove unsatisfiable conditions in Var_Set_with_flags 1007 document where the variable name is expanded 1008 fix documentation for VARP_SUB_ONE 1009 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 1010 document VAR_READONLY 1011 prevent appending to read-only variables 1012 extract MayExport from Var_Export1 1013 remove redundant evaluations in VarFind 1014 replace VarFindFlags with a simple Boolean 1015 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 1016 10172020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 1018 1019 * VERSION (_MAKE_VERSION): 20201028 1020 Merge with NetBSD make, pick up 1021 o rename defIncPath to defSysIncPath 1022 o initialize all CmdOpts fields 1023 o lst.c: inline Vector_Get 1024 o main.c: refactor main extract 1025 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 1026 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 1027 InitDefIncPath,CmdOpts_Init,UnlimitFiles 1028 o parse.c: merge curFile into includes 1029 rename predecessor to order_pred 1030 sort ParseSpecial alphabetically 1031 remove unused, undocumented .NOEXPORT 1032 rename ParseSpecial enum values consistently 1033 rename some fields of struct IFile 1034 10352020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 1036 1037 * VERSION (_MAKE_VERSION): 20201026 1038 Merge with NetBSD make, pick up 1039 o group the command line options and arguments into a struct 1040 o rename GNode.cmgn to youngestChild 1041 o rename hash functions to identify the type name 1042 o negate OP_NOP and rename it to GNode_IsTarget 1043 o add GNode_Path to access the path of a GNode 1044 o remove macros MIN and MAX 1045 o remove unused Lst_Find and Lst_FindFrom 1046 o arch.c: and make Arch_FindLib simpler 1047 clean up code layout 1048 make Arch_ParseArchive simpler 1049 o cond.c: inline CondFindStrMatch into FuncMake 1050 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 1051 omit trailing space in debug output for expanding file patterns 1052 refactor DirMatchFiles 1053 document that the SearchPath of Dir_FindFile may be NULL 1054 remove UNCONST from Dir_Expand 1055 inline DirFindName 1056 o for.c: clean up code for handling .for loops 1057 o hash.c: print hash in debug log with fixed width 1058 clean up hash table functions 1059 reduce amount of string hashing 1060 o job.c: refactor JobDeleteTarget 1061 use proper enum constants for aborting 1062 convert result of JobStart from macros to enum 1063 convert abort reason macros to enum 1064 rework Job_CheckCommands to reduce indentation 1065 rename Shell fields 1066 add field names in declaration of DEFSHELL_CUSTOM 1067 convert JobState and JobFlags to enum types 1068 move handling of the "..." command to JobPrintCommands 1069 o lst.c: clean up 1070 refactor LstNodeNew 1071 remove Lst_Open, Lst_Next, Lst_Close 1072 remove code for circular lists from Lst_Next 1073 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 1074 /dev/null or anything starting with "no" 1075 convert macros for debug flags into enum 1076 o make.c: inline Lst_Copy in Make_ExpandUse 1077 o meta.c: inline Lst_Find in meta_oodate 1078 make Lst_RemoveIf simpler in meta_oodate 1079 o parse.c: convert error level for Parse_Error to an enum 1080 o suff.c: properly terminate debug output with newline 1081 add more details to DEBUG_SRC log 1082 replace Dir_CopyDir with Dir_CopyDirSearchPath 1083 don't modify GNode name while rebuilding the suffix graph 1084 o var.c: reduce duplicate code in VarFind 1085 10862020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 1087 1088 * VERSION (_MAKE_VERSION): 20201022 1089 Merge with NetBSD make, pick up 1090 o more refactoring and simplification to reduce code size 1091 o var.c: extract CanonicalVarname from VarFind 1092 o make.c: extract UpdateImplicitParentsVars from Make_Update 1093 o main.c: extract PrintVar from doPrintVars 1094 extract HandlePWD from main 1095 o lst.c: inline simple Lst getters 1096 remove unused Lst_ForEach 1097 o job.c: move struct Shell from job.h to job.c 1098 o more unit tests 1099 11002020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 1101 1102 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 1103 11042020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 1105 1106 * VERSION (_MAKE_VERSION): 20201018 1107 Merge with NetBSD make, pick up 1108 o remove USE_IOVEC 1109 o rename some Hash_* apis to Hash* 1110 o replace execError with execDie 1111 o rename Lst_Init to Lst_New 1112 o add tags to enum types 1113 o rename Stack to Vector 1114 o parse.c: more refactoring 1115 o unit-tests: make some tests use line buffered stdout 1116 o unit-tests/Makefile: in meta mode do not make all tests depend on 1117 Makefile, it isn't necessary. 1118 11192020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 1120 1121 * main.c: check for CTL_HW being defined. 1122 * unit-tests/Makefile: ensure export tests output are POSIX compliant 1123 disable opt-debug-jobs test until it works on ubuntu 1124 1125 * VERSION (_MAKE_VERSION): 20201010 1126 Merge with NetBSD make, pick up 1127 o dir.c: remove pathname limit for Dir_FindHereOrAbove 1128 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 1129 o main.c: extract init_machine and init_machine_arch from main 1130 allow to disable debug logging options 1131 o parse.c: enable format string truncation warnings 1132 extract parsing of sources from ParseDoDependency 1133 split ParseDoSrc into smaller functions 1134 hide implementation details from Parse_DoVar 1135 clean up parsing of variable assignments 1136 split Parse_DoVar into manageable pieces 1137 don't modify the given line during Parse_DoVar 1138 fix out-of-bounds memory access in Parse_DoVar 1139 fix parsing of the :sh assignment modifier 1140 o var.c: rework memory allocation for the name of variables 1141 extract ApplyModifier_Literal into separate function 1142 in lint mode, reject modifiers without delimiter 1143 do not export variable names starting with '-' 1144 o fix double-free bug in -DCLEANUP mode 1145 o more cleanup to enable higher warnings level 1146 o more unit tests 1147 11482020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 1149 1150 * VERSION (_MAKE_VERSION): 20201002 1151 Merge with NetBSD make, pick up 1152 o dir.c: use hash table for looking up open directories by name 1153 o main.c: clean up option handling 1154 o parse.c: add missing const for Parse_AddIncludeDir 1155 o var.c: ApplyModifier_To, update pp in each branch 1156 o remove redundant function prototypes 1157 o more unit tests 1158 11592020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 1160 1161 * VERSION (_MAKE_VERSION): 20201001 1162 Merge with NetBSD make, pick up 1163 o compat.c: comment about "..." 1164 11652020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 1166 1167 * VERSION (_MAKE_VERSION): 20200930 1168 Merge with NetBSD make, pick up 1169 o job.c: split Job.jobPipe into 2 separate fields 1170 replace Lst_Open with direct iteration 1171 o lst.c: remove redundant assertions 1172 o targ.c: replace Lst_Open with direct iteration 1173 o var.c: fix bug in evaluation of indirect variable modifiers 1174 extract ApplyModifier_Quote into separate function 1175 o make debug logging simpler 1176 11772020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 1178 1179 * VERSION (_MAKE_VERSION): 20200927 1180 Merge with NetBSD make, pick up 1181 o parse.c: ensure parse errors result in 'stopped in' message. 1182 o compat.c: make parameter of Compat_RunCommand const 1183 o main.c: extract InitVarTarget from main 1184 o parse.c: rename ParseFinishLine to FinishDependencyGroup 1185 refactor ParseDoDependency 1186 o var.c: Var_Subst no longer returns string result 1187 rename Var_ParsePP back to Var_Parse 1188 in lint mode, improve error handling for undefined variables 1189 extract ParseVarname from Var_Parse 1190 o rename Lst_ForEach to Lst_ForEachUntil 1191 o inline Lst_ForEachUntil in several cases 1192 o clean up API for finding and creating GNodes 1193 o fix assertion failure in -j mode with .END node 1194 o inline and remove LstNode_Prev and LstNode_Next 1195 o use fine-grained type names for lists and their nodes 1196 o more unit tests 1197 11982020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 1199 1200 * VERSION (_MAKE_VERSION): 20200911 1201 Merge with NetBSD make, pick up 1202 o cond.c: split EvalComparison into smaller functions 1203 reorder parameters of condition parsing functions 1204 reduce code size in CondParser_Eval 1205 rename CondGetString to CondParser_String 1206 add CondLexer_SkipWhitespace 1207 group the condition parsing state into a struct 1208 in CondGetString, replace repeated Buf_Add with Buf_AddStr 1209 o migrate Var_Parse to Var_ParsePP 1210 o add wrappers around ctype.h functions 1211 o lst.c: use a stack instead of a list for the nested include path 1212 o more unit tests 1213 12142020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 1215 1216 * make-bootstrap.sh.in: adjust object list 1217 12182020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 1219 1220 * VERSION (_MAKE_VERSION): 20200902 1221 Merge with NetBSD make, pick up 1222 o use make_stat to ensure no confusion over valid fields 1223 returned by cached_stat 1224 o var.c: make VarQuote const-correct 1225 o add unit tests for .for 1226 12272020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1228 1229 * VERSION (_MAKE_VERSION): 20200901 1230 Merge with NetBSD make, pick up 1231 o rename Hash_Table fields 1232 o make data types in Dir_HasWildcards more precise 1233 12342020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1235 1236 * VERSION (_MAKE_VERSION): 20200831 1237 Merge with NetBSD make, pick up 1238 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1239 o lst.c: Lst_Open renable assert that list isn't open 1240 o unit test for .TARGET dependent flags 1241 o var.c: fix aliasing bug in VarUniq 1242 o more unit tests for :u 1243 12442020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1245 1246 * VERSION (_MAKE_VERSION): 20200830 1247 Merge with NetBSD make, pick up 1248 o allow for strict type checking for Boolean 1249 o Var_Parse never returns NULL 1250 o Var_Subst never returns NULL 1251 o Lst_Find now takes boolean match function 1252 o rename Lst_Memeber to Lst_FindDatum 1253 o rename LstNode functions to match their type 1254 o rename GNode.iParents to implicitParents 1255 o fix assertion failure for .SUFFIXES in archives 1256 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1257 remove unreachable code from CompatRunCommand 1258 o main.c: simplify getBoolean 1259 o stc.c: replace brk_string with simpler Str_Words 1260 o suff.c: add debug macros 1261 12622020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1263 1264 * VERSION (_MAKE_VERSION): 20200828 1265 Merge with NetBSD make, pick up 1266 o lst.c: inline LstIsValid and LstNodeIsValid 1267 o remove trailing S from Lst function names after migration complete 1268 o more comment cleanup/clarification 1269 o suff.c: clean up suffix handling 1270 o more unit tests 1271 12722020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1273 1274 * VERSION (_MAKE_VERSION): 20200826 1275 Merge with NetBSD make, pick up 1276 o enum.c: distinguish between bitsets containing flags and 1277 ordinary enums 1278 o var.c: fix error message for ::!= modifier with shell error 1279 o fix bugs in -DCLEANUP mode 1280 12812020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1282 1283 * VERSION (_MAKE_VERSION): 20200824 1284 Merge with NetBSD make, pick up 1285 o in debug mode, print GNode details in symbols 1286 12872020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1288 1289 * VERSION (_MAKE_VERSION): 20200823 1290 Merge with NetBSD make, pick up 1291 o lst.c: more asserts, 1292 make args to Lst_Find match others. 1293 o var.c: pass flags to VarAdd 1294 o arch.c: use Buffer 1295 o str.c: brk_string return size_t for nwords 1296 o more unit tests 1297 12982020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1299 1300 * VERSION (_MAKE_VERSION): 1301 Merge with NetBSD make, pick up 1302 o var.c: support for read-only variables eg .SHELL 1303 being the shell used to run scripts. 1304 o lst.c: more simplification 1305 o more documentation and style cleanup 1306 o more unit tests 1307 o ensure unit-test/Makefile is run by TEST_MAKE 1308 o reduce duplication of header inclusion 1309 13102020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1311 1312 * VERSION (_MAKE_VERSION): 20200821 1313 Merge with NetBSD make, pick up 1314 o lst.c: revert invalid assertion - but document it 1315 o dir.c: split Dir_Init into two functions 1316 13172020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1318 1319 * lst.c: needs inttypes.h on Linux 1320 1321 * VERSION (_MAKE_VERSION): 20200820 1322 Merge with NetBSD make, pick up 1323 o make.1: clarify some passages 1324 o var.c: more cleanup, clarify comments 1325 o make_malloc.c: remove unreachable code 1326 o cond.c: make CondGetString easier to debug 1327 o simplify list usage 1328 o unit-tests: more 1329 13302020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1331 1332 * VERSION (_MAKE_VERSION): 20200816 1333 Merge with NetBSD make, pick up 1334 o refactor unit-tests to be more fine grained 1335 not all tests moved yet 1336 13372020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1338 1339 * VERSION (_MAKE_VERSION): 20200814 1340 Merge with NetBSD make, pick up 1341 o more str_concat variants 1342 o more enums for flags 1343 o var.c: cleanup for higher warnings level 1344 13452020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1346 1347 * VERSION (_MAKE_VERSION): 20200810 1348 Merge with NetBSD make, pick up 1349 o more unit tests 1350 o general comment and style cleanup 1351 13522020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1353 1354 * VERSION (_MAKE_VERSION): 20200808 1355 Merge with NetBSD make, pick up 1356 o enum.[ch]: streamline, enums for use in flags and debug output 1357 o cond.c: cleanup 1358 o var.c: reduce duplicate code for modifiers 1359 debug logging for Var_Parse 1360 more detailed debug output 1361 o more unit tests 1362 13632020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1364 1365 * unit-tests/Makefile: -r for recursive and include Makefile.inc 1366 so I can run tests in meta mode 1367 supress extra noise if in meta mode 1368 1369 * VERSION (_MAKE_VERSION): 20200806 1370 Merge with NetBSD make, pick up 1371 o parse.c: remove VARE_WANTRES for LINT 1372 we just want to check parsing (for now). 1373 13742020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1375 1376 * VERSION (_MAKE_VERSION): 20200805 1377 Merge with NetBSD make, pick up 1378 o make.1: Rework the description of dependence operators 1379 13802020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1381 1382 * VERSION (_MAKE_VERSION): 20200803 1383 Merge with NetBSD make, pick up 1384 o revert some C99 usage, for max portability 1385 o unit-tests/lint 1386 13872020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 1388 1389 * VERSION (_MAKE_VERSION): 20200802 1390 Merge with NetBSD make, pick up 1391 o more unit tests 1392 13932020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 1394 1395 * Remove NetBSD specific plumbing from unit-tests/Makefile 1396 1397 * VERSION (_MAKE_VERSION): 20200801 1398 Merge with NetBSD make, pick up 1399 o make Var_Value return const 1400 o size_t for buf sizes 1401 o optimize some buffer operations - avoid strlen 1402 14032020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1404 1405 * VERSION (_MAKE_VERSION): 20200731 1406 Merge with NetBSD make, pick up 1407 o var.c: fix undefinded behavior for incomplete :t modifier 1408 fixes unit-test/moderrs on Ubuntu 1409 o parse.c: When parsing variable assignments other than := 1410 if DEBUG(LINT) test substition of value, so we get a file and 1411 line number in the resulting error. 1412 o dir.c: fix parsing of nested braces in dependency lines 1413 add unit-tests 1414 14152020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1416 1417 * VERSION (_MAKE_VERSION): 20200730 1418 Merge with NetBSD make, pick up 1419 o var.c: minor cleanup 1420 o unit-tests: more tests to improve code coverage 1421 14222020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 1423 1424 * VERSION (_MAKE_VERSION): 20200728 1425 Merge with NetBSD make, pick up 1426 o var.c: more optimizations 1427 14282020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1429 1430 * VERSION (_MAKE_VERSION): 20200726 1431 Merge with NetBSD make, pick up 1432 o collapse lsd.lib into lst.c - reduce code size and allow inlining 1433 o lots of function comment updates 1434 o var.c: more optimizations 1435 o make return of Var_Parse const 1436 14372020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1438 1439 * VERSION (_MAKE_VERSION): 20200720 1440 Merge with NetBSD make, pick up 1441 o DEBUG_HASH report stats at end and tone down the noise 1442 o var.c: each flag type gets its own prefix. 1443 move SysV string matching to var.c 1444 make ampersand in ${VAR:from=to&} an ordinary character 1445 cleanup and simplify implementation of modifiers 1446 o make.1: move documentation for assignment modifiers 1447 14482020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1449 1450 * VERSION (_MAKE_VERSION): 20200718 1451 Merge with NetBSD make, pick up 1452 o DEBUG_HASH to see how well the hash tables are working 1453 14542020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1455 1456 * bsd.after-import.mk: make sure we update unit-tests/Makefile 1457 14582020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1459 1460 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 1461 1462 * VERSION (_MAKE_VERSION): 20200710 1463 Merge with NetBSD make, pick up 1464 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 1465 o meta.c: target flagged .META is out-of-date if meta file missing 1466 14672020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 1468 1469 * VERSION (_MAKE_VERSION): 20200709 1470 Merge with NetBSD make, pick up 1471 o cond.c: fix for compare_expression when doEval=0 1472 o unit-tests/Makefile: rework 1473 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 1474 14752020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1476 1477 * VERSION (_MAKE_VERSION): 20200704 1478 Merge with NetBSD make, pick up 1479 (most of this by rillig@) 1480 o lots of style and white-space cleanup 1481 o lots more unit tests for variable modifiers 1482 o simplified description of some functions 1483 o str.c: refactor Str_Match 1484 o var.c: debugging output for :@ 1485 constify VarModify parameter 1486 fix :hash modifier on 16-bit platforms 1487 remove unnecessary forward declarations 1488 refactor ApplyModifier_SysV to have less indentation 1489 simplify code for :E and :R 1490 clean up code for :H and :T 1491 refactor ApplyModifiers 1492 1493 * var.c: we need stdint.h on some platforms to get uint32_t 1494 * unit-test/Makefile: we need to supress the specific error 1495 for RE substitution error in modmisc, since it varies accross 1496 different OS. 1497 14982020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 1499 1500 * VERSION (_MAKE_VERSION): 20200702 1501 Merge with NetBSD make, pick up 1502 o var.c: more improvements to avoiding unnecessary evaluation 1503 use enums for flags 1504 o remove flags arg to Var_Set which outside of var.c is always 0 1505 15062020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1507 1508 * VERSION (_MAKE_VERSION): 20200701 1509 Merge with NetBSD make, pick up 1510 o var.c: with change to cond.c; ensure that nested variables 1511 within a variable name are expanded. 1512 o unit-tests/varmisc.mk: test for nested varname 1513 15142020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 1515 1516 * VERSION (_MAKE_VERSION): 20200629 1517 Merge with NetBSD make, pick up 1518 o cond.c: do not eval unnecessary terms of conditionals. 1519 15202020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 1521 1522 * VERSION (_MAKE_VERSION): 20200625 1523 Merge with NetBSD make, pick up 1524 o meta.c: report error if lseek in filemon_read fails 1525 15262020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1527 1528 * VERSION (_MAKE_VERSION): 20200622 1529 Merge with NetBSD make, pick up 1530 o dieQuietly: ignore OP_SUBMAKE as too aggressive 1531 15322020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 1533 1534 * VERSION (_MAKE_VERSION): 20200619 1535 Merge with NetBSD make, pick up 1536 o str.c: performance improvement for Str_Match for multiple '*' 1537 o dieQuietly: supress the failure output from make 1538 when failing node is a sub-make or a sibling failed. 1539 This cuts down greatly on unhelpful noise at the end of 1540 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 1541 15422020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1543 1544 * FILES: add LICENSE to appease some packagers. 1545 This is an attempt to fairly represent the license on almost 1546 200 files, which are almost all BSD-3-Clause 1547 The few exceptions being more liberal. 1548 1549 * VERSION (_MAKE_VERSION): 20200610 1550 Merge with NetBSD make, pick up 1551 o unit test for :Or 1552 15532020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1554 1555 * VERSION (_MAKE_VERSION): 20200606 1556 Merge with NetBSD make, pick up 1557 o make.1: cleanup 1558 1559 * Makefile: fix depends for main.o which broke MAKE_VERSION 1560 15612020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 1562 1563 * VERSION (_MAKE_VERSION): 20200605 1564 Merge with NetBSD make, pick up 1565 o dir.c: cached_stats - don't confuse stat and lstat results. 1566 o var.c: add :Or for reverse sort. 1567 15682020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1569 1570 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1571 also if --with-filemon= specifies path to filemon.h 1572 set use_filemon=dev 1573 * dirname.c: remove include of namespace.h 1574 15752020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1576 1577 * VERSION (_MAKE_VERSION): 20200517 1578 Merge with NetBSD make, pick up 1579 o modified dollar tests to avoid shell dependencies 1580 o new tests for .INCLUDEFROM 1581 15822020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1583 1584 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1585 to not depend so much on shell behavior 1586 15872020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1588 1589 * VERSION (_MAKE_VERSION): 20200510 1590 Merge with NetBSD make, pick up 1591 o unit test for dollar handling 1592 15932020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 1594 1595 * VERSION (_MAKE_VERSION): 20200506 1596 Merge with NetBSD make, pick up 1597 o str.c: empty string does not match % pattern 1598 plus unit-test changes 1599 16002020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 1601 1602 * VERSION (_MAKE_VERSION): 20200504 1603 May the 4th be with you 1604 Merge with NetBSD make, pick up 1605 o var.c: import handling of old sysV style modifier using '%' 1606 o str.c: refactor brk_string 1607 o unit-tests: add test case for lazy conditions 1608 16092020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1610 1611 * VERSION (_MAKE_VERSION): 20200418 1612 1613 * configure.in: use_makefile=no for cygwin et al. 1614 case insensitive filesystems just don't work if both 1615 makefile and Makefile exist. 1616 NOTE: bmake does not support cygwin and likely never will, 1617 but if brave souls want to try it - help them out. 1618 16192020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 1620 1621 * VERSION (_MAKE_VERSION): 20200402 1622 Merge with NetBSD make, pick up 1623 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 1624 a blank command is perfectly valid. 1625 16262020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1627 1628 * VERSION (_MAKE_VERSION): 20200330 1629 Merge with NetBSD make, pick up 1630 o make.h: extern debug_file 1631 16322020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1633 1634 * VERSION (_MAKE_VERSION): 20200318 1635 Merge with NetBSD make, pick up 1636 o meta.c: meta_oodate, check for corrupted meta file 1637 earlier and more often. 1638 16392020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1640 1641 * VERSION (_MAKE_VERSION): 20200220 1642 16432020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1644 1645 * boot-strap: unset MAKEFLAGS 1646 16472020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1648 1649 * VERSION (_MAKE_VERSION): 20200212 1650 * meta.c: meta_compat_parent check for USE_FILEMON 1651 patch from Soeren Tempel 1652 16532020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1654 1655 * VERSION: 20200205 1656 Merge with NetBSD make, pick up 1657 o meta.c: fix compat mode, need to call meta_job_output() 1658 o job.c: extra fds for meta mode not needed if using filemon_dev 1659 16602020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1661 1662 * VERSION: 20200122 1663 Merge with NetBSD make, pick up 1664 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1665 returns FALSE. 1666 16672020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1668 1669 * VERSION: 20200121 1670 Merge with NetBSD make, pick up 1671 o filemon/filemon_{dev,ktrace}.c: allow selection of 1672 filemon implementation. filemon_dev.c uses the kernel module 1673 while filemon_ktrace.c leverages the fktrace api available in 1674 NetBSD. filemon_ktrace.c can hopefully form the basis for 1675 adding support for other tracing mechanisms such as strace on 1676 Linux. 1677 o meta.c: when target is out-of-date per normal make rules 1678 record value of .OODATE in meta file. 1679 16802019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1681 1682 * VERSION: 20190926 1683 Merge with NetBSD make, pick up 1684 o parse.c: don't pass NULL to realpath(3) 1685 some versions cannot handle it. 1686 16872019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1688 1689 * VERSION: 20190409 1690 Merge with NetBSD make, pick up 1691 o parse.c: ParseDoDependency: free paths rather than assert 1692 16932018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1694 1695 * VERSION: 20181222 1696 1697 * configure.in: add --without-makefile to avoid generating 1698 makefile and make-bootstrap.sh 1699 1700 * include Makefile.inc if it exists 1701 1702 * Use Makefile and Makefile.config.in in unit-tests 1703 so we can use just: make obj && make && make test 1704 when bmake is already available. 1705 We add --without-makefile to CONFIGURE_ARGS in this case. 1706 1707 * tweak bsd.after-import.mk (captures Makefile.config etc 1708 after import to FreeBSD for example) to cope with all the above. 1709 17102018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1711 1712 * VERSION: 20181221 1713 Merge with NetBSD make, pick up 1714 o parse.c: ParseVErrorInternal use .PARSEDIR 1715 and apply if relative, and then use .PARSEFILE 1716 for consistent result. 1717 17182018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1719 1720 * VERSION: 20181220 1721 Merge with NetBSD make, pick up 1722 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1723 is relative 1724 o var.c: avoid SEGFAULT in .unexport-env 1725 when MAKELEVEL is not set 1726 17272018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1728 1729 * VERSION: 20181216 1730 Merge with NetBSD make, pick up 1731 o fix for unit-tests/varquote.mk on Debian 1732 17332018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1734 1735 * VERSION: 20180919 1736 Merge with NetBSD make, pick up 1737 o var.c: add :q 1738 o dir.c: cleanup caching of stats 1739 17402018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1741 1742 * Makefile.config.in: use += where it makes sense. 1743 17442018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1745 1746 * VERSION: 20180512 1747 Merge with NetBSD make, pick up 1748 o job.c: skip polling job token pipe 1749 17502018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1751 1752 * VERSION: 20180405 1753 Merge with NetBSD make, pick up 1754 o parse.c: be more cautious about detecting depenency line 1755 rather than sysV style include. 1756 17572018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 1758 1759 * VERSION: 20180222 1760 Merge with NetBSD make, pick up 1761 o parse.c: avoid calling sysconf for every call to loadfile 1762 17632018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1764 1765 * VERSION: 20180218 1766 Merge with NetBSD make, pick up 1767 o var.c: Var_Set handle NULL value anytime. 1768 17692018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1770 1771 * VERSION: 20180212 1772 Merge with NetBSD make, pick up 1773 o parse.c: do not treat .info as warning with -W 1774 17752017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1776 1777 * VERSION: 20171207 1778 Merge with NetBSD make, pick up 1779 o var.c: Var_Append use Var_Set if var not previously set 1780 so that VAR_CMD is handled correctly. 1781 Add a suitable unit-test. 1782 17832017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1784 1785 * VERSION (_MAKE_VERSION): 20171126 1786 1787 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 1788 since AC_TRY_COMPILE puts input inside main() 1789 which upsets modern compilers. 1790 17912017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1792 1793 * VERSION: 20171118 1794 Merge with NetBSD make, pick up 1795 o var.c: do not append to variable set on command line 1796 add unit-test to catch this. 1797 17982017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1799 1800 * VERSION: 20171028 1801 Merge with NetBSD make, pick up 1802 o main.c: ignore empty MAKEOBJDIR 1803 1804 * Makefile.config.in: 1805 make @prefix@ @machine*@ and @default_sys_path@ defaults. 1806 18072017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1808 1809 * VERSION: 20171005 1810 1811 * unit-tests/dotwait.mk: redirect stderr through pipe for more 1812 consistent result on some platforms. 1813 18142017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1815 1816 * machine.sh: entry for AIX 1817 18182017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1819 1820 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 1821 to a file that can be included by configure as well as make. 1822 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 1823 18242017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 1825 1826 * Makefile (_MAKE_VERSION): 20170810 1827 Merge with NetBSD make, pick up 1828 o meta.c: if target is in subdir we only need subdir name in 1829 meta_name. 1830 18312017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 1832 1833 * Makefile (_MAKE_VERSION): 20170720 1834 Merge with NetBSD make, pick up 1835 o compat.c: pass SIGINT etc onto child and wait for it to exit 1836 before we self-terminate. 1837 18382017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1839 1840 * Makefile (_MAKE_VERSION): 20170711 1841 forgot to update after merge on 20170708 ;-) 1842 o main.c: refactor to reduce size of main function. 1843 add -v option to always fully expand values. 1844 o meta.c: ensure command output in meta file has ending newline 1845 even when filemon not being used. 1846 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 1847 pathname via ':L' since any ':' in pathname breaks that. 1848 Instead set a '${.p.}' to pathname in the target context and 1849 use that. 1850 18512017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1852 1853 * Makefile (_MAKE_VERSION): 20170510 1854 Merge with NetBSD make, pick up 1855 o main.c: Main_SetObjdir: ensure buf2 is in scope 1856 18572017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1858 1859 * Makefile (_MAKE_VERSION): 20170505 1860 see mk/ChangeLog 1861 18622017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1863 1864 * parse.c: not everyone has stdint.h 1865 18662017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1867 1868 * Makefile (_MAKE_VERSION): 20170501 1869 see mk/ChangeLog 1870 18712017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1872 1873 * Makefile (_MAKE_VERSION): 20170421 1874 Merge with NetBSD make, pick up 1875 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 1876 18772017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1878 1879 * Makefile (_MAKE_VERSION): 20170420 1880 Merge with NetBSD make, pick up 1881 o main.c: only use -C arg "as is" if it contains no 1882 relative component. 1883 18842017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1885 1886 * Makefile (_MAKE_VERSION): 20170418 1887 Merge with NetBSD make, pick up 1888 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 1889 18902017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1891 1892 * Makefile (_MAKE_VERSION): 20170417 1893 Merge with NetBSD make, pick up 1894 o fixes a number of coverity complaints 1895 - check return value of fseek, fcntl 1896 - plug memory leak in Dir_FindFile, Var_LoopExpand, 1897 JobPrintCommand, ParseTraditionalInclude 1898 - use bmake_malloc() where NULL is not tollerated 1899 - use MAKE_ATTR_UNUSED rather that kludges like 1900 return(unused ? 0 : 0) 1901 - use purge_cached_realpaths() rather than abuse cached_realpath() 1902 19032017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1904 1905 * Makefile (_MAKE_VERSION): 20170413 1906 Merge with NetBSD make, pick up 1907 o main.c: when setting .OBJDIR ignore '$' in paths. 1908 1909 * job.c: use MALLOC_OPTIONS to set malloc_options. 1910 19112017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1912 1913 * Makefile (_MAKE_VERSION): 20170411 1914 Merge with NetBSD make, pick up 1915 o str.c: Str_Match: allow [^a-z] to behave as expected. 1916 19172017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1918 1919 * Makefile (_MAKE_VERSION): 20170326 1920 Merge with NetBSD make, pick up 1921 o main.c: purge relative paths from realpath cache when .OBJDIR 1922 is changed. 1923 19242017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1925 1926 * Makefile (_MAKE_VERSION): 20170311 1927 Merge with NetBSD make, pick up 1928 o main.c: only use -C arg "as is" if it starts with '/'. 1929 19302017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1931 1932 * Makefile (_MAKE_VERSION): 20170301 1933 Merge with NetBSD make, pick up 1934 o main.c: use -C arg "as is" rather than getcwd() 1935 if they identify the same directory. 1936 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 1937 19382017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 1939 1940 * Makefile (_MAKE_VERSION): 20170201 1941 Merge with NetBSD make, pick up 1942 o var.c: allow :_=var and avoid use of special context. 1943 19442017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1945 1946 * Makefile (_MAKE_VERSION): 20170130 1947 Merge with NetBSD make, pick up 1948 o var.c: add :range and :_ 1949 o main.c: partially initialize Dir_* before MainParseArgs() 1950 can be called. 1951 If -V, skip Main_ExportMAKEFLAGS() 1952 19532017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 1954 1955 * Makefile (_MAKE_VERSION): 20170114 1956 Merge with NetBSD make, pick up 1957 o var.c: allow specifying the utc value used by :{gm,local}time 1958 19592016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1960 1961 * Makefile (_MAKE_VERSION): 20161212 1962 Merge with NetBSD make, pick up 1963 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 1964 19652016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 1966 1967 * Makefile (_MAKE_VERSION): 20161209 1968 Merge with NetBSD make, pick up 1969 o main.c: cleanup setting of .OBJDIR 1970 o parse.c: avoid coredump from (var)=val 1971 19722016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1973 1974 * Makefile (_MAKE_VERSION): 20161126 1975 Merge with NetBSD make, pick up 1976 o make.c: Make_OODate: report src node name if path not set 1977 19782016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1979 1980 * Makefile (_MAKE_VERSION): 20160926 1981 Merge with NetBSD make, pick up 1982 o support for .DELETE_ON_ERROR: (remove targets that fail) 1983 19842016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1985 1986 * Makefile MAN: tweak .Dt to match ${PROG} 1987 19882016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 1989 1990 * Makefile (_MAKE_VERSION): 20160818 1991 its a neater number; pick up whitespace fixes to man page. 1992 19932016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 1994 1995 * Makefile (_MAKE_VERSION): 20160817 1996 Merge with NetBSD make, pick up 1997 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 1998 so we can call it before adding entries to missingFiles. 1999 Thus we do not track files we have been told to ignore. 2000 20012016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 2002 2003 * Makefile (_MAKE_VERSION): 20160815 2004 Merge with NetBSD make, pick up 2005 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 2006 pathnames, and skip if the expansion is empty. 2007 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2008 20092016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 2010 2011 * Makefile (_MAKE_VERSION): 20160812 2012 Merge with NetBSD make, pick up 2013 o meta.c: remove all missingFiles entries that match a deleted 2014 dir. 2015 o main.c: set .ERROR_CMD if possible. 2016 20172016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2018 2019 * Makefile (_MAKE_VERSION): 20160606 2020 Merge with NetBSD make, pick up 2021 o dir.c: extend mtimes cache to others via cached_stat() 2022 20232016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2024 2025 * Makefile (_MAKE_VERSION): 20160604 2026 Merge with NetBSD make, pick up 2027 o meta.c: missing filemon data is only relevant if we read a 2028 meta file. 2029 Also do not return oodate for a missing metafile if gn->path 2030 points to .CURDIR 2031 20322016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2033 2034 * Makefile (_MAKE_VERSION): 20160602 2035 Merge with NetBSD make, pick up 2036 o cached_realpath(): avoid hitting filesystem more than necessary. 2037 o meta.c: refactor need_meta decision, add knobs for 2038 missing meta file and filemon data wrt out-of-datedness. 2039 20402016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2041 2042 * Makefile (_MAKE_VERSION): 20160528 2043 2044 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2045 20462016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 2047 2048 * Makefile (_MAKE_VERSION): 20160512 2049 Merge with NetBSD make, pick up 2050 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 2051 this is useful for gcov builds. 2052 o propagate errors from filemon(4). 2053 20542016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 2055 2056 * Makefile (_MAKE_VERSION): 20160509 2057 Merge with NetBSD make, pick up 2058 o remove use of non-standard types u_int etc. 2059 o meta.c: apply realpath() before matching against metaIgnorePaths 2060 20612016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 2062 2063 * Makefile (_MAKE_VERSION): 20160404 2064 Merge with NetBSD make, pick up 2065 o allow makefile to set .MAKE.JOBS 2066 2067 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2068 20692016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 2070 2071 * Makefile (_MAKE_VERSION): 20160315 2072 Merge with NetBSD make, pick up 2073 o fix handling of archive members 2074 20752016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2076 2077 * Makefile (_MAKE_VERSION): rename variable to avoid interference 2078 with checks for ${MAKE_VERSION} 2079 20802016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 2081 2082 * Makefile (MAKE_VERSION): 20160310 2083 Merge with NetBSD make, pick up 2084 o meta.c: treat missing Read file same as Write, incase we Delete it. 2085 20862016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 2087 2088 * Makefile (MAKE_VERSION): 20160307 2089 Merge with NetBSD make, pick up 2090 o var.c: fix :ts\nnn to be octal by default. 2091 o meta.c: meta_finish() to cleanup memory. 2092 20932016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 2094 2095 * Makefile (MAKE_VERSION): 20160226 2096 Merge with NetBSD make, pick up 2097 o meta.c: allow meta file for makeDepend if makefiles want it. 2098 20992016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 2100 2101 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 2102 for backwards compatability. 2103 2104 * Makefile (MAKE_VERSION): 20160220 2105 Merge with NetBSD make, pick up 2106 o var.c: add knob to control handling of '$$' in := 2107 21082016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 2109 2110 * Makefile (MAKE_VERSION): 20160218 2111 Merge with NetBSD make, pick up 2112 o var.c: add .export-literal allows us to fix sys.clean-env.mk 2113 post the changes to Var_Subst. 2114 Var_Subst now takes flags, and does not consume '$$' in := 2115 21162016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 2117 2118 * Makefile (MAKE_VERSION): 20160217 2119 Merge with NetBSD make, pick up 2120 o var.c: preserve '$$' in := 2121 o parse.c: add .dinclude for handling included 2122 makefile like .depend 2123 21242015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 2125 2126 * Makefile (MAKE_VERSION): 20151220 2127 Merge with NetBSD make, pick up 2128 o suff.c: re-initialize suffNull when clearing suffixes. 2129 21302015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 2131 2132 * Makefile (MAKE_VERSION): 20151201 2133 Merge with NetBSD make, pick up 2134 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 2135 o meta.c: meta_oodate: use lstat(2) for checking link target 2136 in case it is a symlink. 2137 o var.c: avoid calling brk_string and Var_Export1 with empty 2138 strings. 2139 21402015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2141 2142 * Makefile (MAKE_VERSION): 20151126 2143 Merge with NetBSD make, pick up 2144 o parse.c: ParseTrackInput don't access beyond 2145 end of old value. 2146 21472015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 2148 2149 * Makefile (MAKE_VERSION): 20151022 2150 2151 * Add support for BSD/OS which lacks inttypes.h 2152 and really needs sys/param.h for sys/sysctl.h 2153 also 'type' is not a shell builtin. 2154 2155 * var.c: eliminate uint32_t and need for inttypes.h 2156 2157 * main.c: PrintOnError flush stdout before run .ERROR 2158 2159 * parse.c: cope with _SC_PAGESIZE not being defined. 2160 2161 21622015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 2163 2164 * Makefile (MAKE_VERSION): 20151020 2165 Merge with NetBSD make, pick up 2166 o var.c: fix uninitialized var 2167 21682015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 2169 2170 * var.c: the conditional expressions used with ':?' can be 2171 expensive, if already discarding do not evaluate or expand 2172 anything. 2173 21742015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2175 2176 * Makefile (MAKE_VERSION): 20151010 2177 Merge with NetBSD make, pick up 2178 o Add Boolean wantit flag to Var_Subst and Var_Parse 2179 when FALSE we know we are discarding the result and can 2180 skip operations like Cmd_Exec. 2181 21822015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2183 2184 * Makefile (MAKE_VERSION): 20151009 2185 Merge with NetBSD make, pick up 2186 o var.c: don't check for NULL before free() 2187 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2188 21892015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2190 2191 * Makefile (MAKE_VERSION): 20150910 2192 Merge with NetBSD make, pick up 2193 o main.c: with -w print Enter/Leaving messages for objdir too 2194 if necessary. 2195 o centralize shell metachar handling 2196 2197 * FILES: add metachar.[ch] 2198 21992015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2200 2201 * Makefile (MAKE_VERSION): 20150606 2202 Merge with NetBSD make, pick up 2203 o make.1: document .OBJDIR target 2204 22052015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2206 2207 * Makefile (MAKE_VERSION): 20150505 2208 Merge with NetBSD make, pick up 2209 o cond.c: be strict about lhs of comparison when evaluating .if 2210 but less so when called from variable expansion. 2211 o unit-tests/cond2.mk: test various error conditions 2212 22132015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 2214 2215 * machine.sh (MACHINE): Add Bitrig 2216 patch from joerg@netbsd.org 2217 22182015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 2219 2220 * Makefile (MAKE_VERSION): 20150418 2221 Merge with NetBSD make, pick up 2222 o job.c: use memmove() rather than memcpy() 2223 2224 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2225 case, so skip it. 2226 22272015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2228 2229 * Makefile (MAKE_VERSION): 20150411 2230 bump version - only mk/ changes. 2231 22322015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2233 2234 * Makefile (MAKE_VERSION): 20150410 2235 Merge with NetBSD make, pick up 2236 o document different handling of '-' in jobs mode vs compat 2237 o fix jobs mode so that '-' only applies to whole job 2238 when shell lacks hasErrCtl 2239 o meta.c: use separate vars to track lcwd and latestdir (read) 2240 per process 2241 22422015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2243 2244 * Makefile (MAKE_VERSION): 20150401 2245 Merge with NetBSD make, pick up 2246 o meta.c: close meta file in child 2247 2248 * Makefile: use BINDIR.bmake if set. 2249 Same for MANDIR and SHAREDIR 2250 Handy for testing release candidates 2251 in various environments. 2252 22532015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2254 2255 * move initialization of savederr to block where it is used 2256 to avoid spurious warning from gcc5 2257 22582014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2259 2260 * Makefile (MAKE_VERSION): 20141111 2261 just a cooler number 2262 22632014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2264 2265 * Makefile (MAKE_VERSION): 20141105 2266 Merge with NetBSD make, pick up 2267 o revert major overhaul of suffix handling 2268 and POSIX compliance - too much breakage 2269 and impossible to make backwards compatible. 2270 o we still have the new unit test structure which is ok. 2271 o meta.c ensure "-- filemon" is at start of line. 2272 22732014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2274 2275 * configure.in: test that result of getconf PATH_MAX is numeric 2276 and discard if not. Apparently needed for Hurd. 2277 22782014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2279 2280 * Makefile (MAKE_VERSION): 20140830 2281 Merge with NetBSD make, pick up 2282 o major overhaul of suffix handling 2283 o improved POSIX compliance 2284 o overhauled unit-tests 2285 22862014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2287 2288 * Makefile (MAKE_VERSION): 20140620 2289 Merge with NetBSD make, pick up 2290 o var.c return varNoError rather than var_Error for ::= modifiers. 2291 22922014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2293 2294 * Makefile (MAKE_VERSION): 20140522 2295 Merge with NetBSD make, pick up 2296 o var.c detect some parse errors. 2297 22982014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2299 2300 * Fix spelling errors - patch from Pedro Giffuni 2301 23022014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2303 2304 * Makefile (MAKE_VERSION): 20140214 2305 Merge with NetBSD make, pick up 2306 o .INCLUDEFROM* 2307 o use Var_Value to get MAKEOBJDIR[PREFIX] 2308 o reduced realloc'ign in brk_string. 2309 * configure.in: add a check for compiler supporting __func__ 2310 23112014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2312 2313 * boot-strap: ignore mksrc=none 2314 23152014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2316 2317 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2318 23192014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2320 2321 * Makefile (MAKE_VERSION): 20140101 2322 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2323 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2324 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2325 Hurd) 2326 * configure.in: Add AC_PREREQ and check for 2327 sysctl; patch from Andrew Shadura andrewsh at debian.org 2328 23292013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2330 2331 * Makefile (MAKE_VERSION): 20131010 2332 * lose the const from arg to systcl to avoid problems on older BSDs. 2333 23342013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2335 2336 * Makefile (MAKE_VERSION): 20131001 2337 Merge with NetBSD make, pick up 2338 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2339 hw.machine_arch if necessary. 2340 o meta.c: meta_oodate - need to look at src of Link and target 2341 of Move as well. 2342 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 2343 provide __arraycount() if needed. 2344 23452013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 2346 2347 * Makefile (MAKE_VERSION): 20130904 2348 Merge with NetBSD make, pick up 2349 o Add VAR_INTERNAL context, so that internal setting of 2350 MAKEFILE does not override value set by makefiles. 2351 23522013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 2353 2354 * Makefile (MAKE_VERSION): 20130902 2355 Merge with NetBSD make, pick up 2356 o CompatRunCommand: only apply shellErrFlag when errCheck is true 2357 23582013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2359 2360 * Makefile (MAKE_VERSION): 20130828 2361 Merge with NetBSD make, pick up 2362 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 2363 o Call Job_SetPrefix() from Job_Init() so makefiles have 2364 opportunity to set .MAKE.JOB.PREFIX 2365 23662013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 2367 2368 * Makefile (MAKE_VERSION): 20130730 2369 Merge with NetBSD make, pick up 2370 o Allow suppression of --- job -- tokens by setting 2371 .MAKE.JOB.PREFIX empty. 2372 23732013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2374 2375 * Makefile (MAKE_VERSION): 20130716 2376 Merge with NetBSD make, pick up 2377 o number of gmake compatibility tweaks 2378 -w for gmake style entering/leaving messages 2379 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 2380 handle MAKEFLAGS containing only letters. 2381 o when overriding a GLOBAL variable on the command line, 2382 delete it from GLOBAL context so -V doesn't show the wrong 2383 value. 2384 23852013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 2386 2387 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 2388 2389 * Makefile (MAKE_VERSION): 20130706 2390 Merge with NetBSD make, pick up 2391 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 2392 true so that CompatRunCommand() can use it, to ensure 2393 consistent behavior with jobs mode. 2394 o use MAKE_LEVEL_ENV to define the variable to propagate 2395 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 2396 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 2397 paths to ignore. 2398 23992013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2400 2401 * Makefile (MAKE_VERSION): 20130604 2402 Merge with NetBSD make, pick up 2403 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 2404 to avoid leaking descriptors. 2405 24062013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2407 2408 * Makefile (MAKE_VERSION): 20130528 2409 Merge with NetBSD make, pick up 2410 o var.c: cleanup some left-overs in VarHash() 2411 24122013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2413 2414 * Makefile (MAKE_VERSION): 20130520 2415 generate manifest from component FILES rather than have to 2416 update FILES when mk/FILES changes. 2417 24182013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2419 2420 * Makefile (MAKE_VERSION): 20130518 2421 Merge with NetBSD make, pick up 2422 o suff.c: don't skip all processsing for .PHONY targets 2423 else wildcard srcs do not get expanded. 2424 o var.c: expand name of variable to delete if necessary. 2425 24262013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2427 2428 * Makefile (MAKE_VERSION): 20130330 2429 Merge with NetBSD make, pick up 2430 o meta.c: refine the handling of .OODATE in commands. 2431 Rather than suppress command comparison for the entire script 2432 as though .NOMETA_CMP had been used, only suppress it for the 2433 one command line. 2434 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 2435 suppress comparison of a command without otherwise affecting it. 2436 o make.1: document that 2437 24382013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 2439 2440 * Makefile (MAKE_VERSION): 20130321 2441 yes, not quite right but its a cooler number. 2442 Merge with NetBSD make, pick up 2443 o parse.c: fix ParseGmakeExport to be portable 2444 and add a unit-test. 2445 * meta.c: call meta_init() before makefiles are read and if built 2446 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 2447 this let's makefiles test for support. 2448 Call meta_mode_init() to process .MAKE.MODE. 2449 24502013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2451 2452 * Makefile (MAKE_VERSION): 20130305 2453 Merge with NetBSD make, pick up 2454 o run .STALE: target when a dependency from .depend is missing. 2455 o job.c: add Job_RunTarget() for the above and .BEGIN 2456 24572013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2458 2459 * Makefile (MAKE_VERSION): 20130303 2460 Merge with NetBSD make, pick up 2461 o main.c: set .MAKE.OS to utsname.sysname 2462 o job.c: more checks for read and poll errors 2463 o var.c: lose VarChangeCase() saves 4% time 2464 24652013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 2466 2467 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 2468 want to use MAKEOBJDIR 2469 24702013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 2471 2472 * Merge with NetBSD make, pick up 2473 o make.1: more info on how shell commands are handled. 2474 o job.c,main.c: detect write errors to job pipes. 2475 24762013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 2477 2478 * Makefile (MAKE_VERSION): 20130123 2479 Merge with NetBSD make, pick up 2480 o meta.c: if script uses .OODATE and meta_oodate() decides 2481 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 2482 o var.c: in debug output indicate which variabale modifiers 2483 apply to. 2484 o remove Check_Cwd logic the makefiles have been fixed. 2485 24862012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2487 2488 * makefile.in: add a simple makefile for folk who insist on 2489 ./configure; make; make install 2490 it just runs boot-strap 2491 * include mk/* to accommodate the above 2492 * boot-strap: re-work to accommodate the above 2493 mksrc defaults to $Mydir/mk 2494 allow op={configure,build,install,clean,all} 2495 add options to facilitate install 2496 * Makefile.config.in: just the bits set by configure 2497 * Makefile: bump version to 20121212 2498 abandon Makefile.in (NetBSD Makefile) 2499 leverage mk/* instead 2500 * configure.in: ensure srcdir is absolute 2501 25022012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2503 2504 * Makefile.in (MAKE_VERSION): 20121111 2505 fix generation of bmake.cat1 2506 25072012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 2508 2509 * Makefile.in (MAKE_VERSION): 20121109 2510 Merge with NetBSD make, pick up 2511 o make.c: MakeBuildChild: return 0 so search continues if a 2512 .ORDER dependency is detected. 2513 o unit-tests/order: test the above 2514 25152012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2516 2517 * Makefile.in (MAKE_VERSION): 20121102 2518 Merge with NetBSD make, pick up 2519 o cond.c: allow cond_state[] to grow. 2520 In meta mode with a very large tree, we can hit the limit 2521 while processing dirdeps. 2522 25232012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 2524 2525 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 2526 25272012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2528 2529 * Makefile.in (MAKE_VERSION): 20121010 2530 o protect syntax that only bmake parses correctly. 2531 o remove auto setting of FORCE_MACHINE, use configure's 2532 --with-force-machine=whatever if that is desired. 2533 25342012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 2535 2536 * Makefile.in: do not lose history from make.1 when generating bmake.1 2537 25382012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 2539 2540 * Makefile.in (MAKE_VERSION): 20121007 2541 Merge with NetBSD make, pick up 2542 o compat.c: ignore empty commands - same as jobs mode. 2543 o make.1: document meta chars that cause use of shell 2544 25452012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 2546 2547 * Makefile.in (MAKE_VERSION): bump version to 20120911 2548 * bsd.after-import.mk: include Makefile.inc early and allow it to 2549 override PROG 2550 25512012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 2552 2553 * Makefile.in (MAKE_VERSION): bump version to 20120831 2554 Merge with NetBSD make, pick up 2555 o cast sizeof() to int for comparison 2556 o minor make.1 tweak 2557 25582012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2559 2560 * Makefile.in (MAKE_VERSION): bump version to 20120830 2561 Merge with NetBSD make, pick up 2562 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 2563 o debug flag -dV causes -V to show raw value regardless. 2564 25652012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2566 2567 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2568 gets SRCTOP set. 2569 25702012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2571 2572 * Makefile.in (MAKE_VERSION): bump version to 20120704 2573 Merge with NetBSD make, pick up 2574 o Job_ParseShell should call Shell_Init if it has been 2575 previously called. 2576 * Makefile.in: set USE_META based on configure result. 2577 also .PARSEDIR is safer indicator of bmake. 2578 25792012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2580 2581 * Makefile.in: bump version to 20120626 2582 ensure CPPFLAGS is in CFLAGS 2583 * meta.c: avoid nested externs 2584 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2585 25862012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2587 2588 * Makefile.in (MAKE_VERSION): bump version to 20120620 2589 Merge with NetBSD make, pick up 2590 o make_malloc.c: avoid including make_malloc.h again 2591 2592 * Makefile.in: avoid bmake only syntax or protect with 2593 .if defined(.MAKE.LEVEL) 2594 * bsd.after-import.mk: replace .-include with .sinclude 2595 ensure? SRCTOP gets a value 2596 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 2597 25982012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 2599 2600 * Makefile.in (MAKE_VERSION): bump version to 20120612 2601 Merge with NetBSD make, pick up 2602 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 2603 for greater portability. 2604 o unit-tests/forloop: check that .for works as expected wrt 2605 number of times and with "quoted strings". 2606 26072012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2608 2609 * Makefile.in (MAKE_VERSION): bump version to 20120606 2610 Merge with NetBSD make, pick up 2611 o compat.c: use kill(2) rather than raise(3). 2612 * configure.in: look for sys/dev/filemon 2613 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 2614 and pass BOOTSTRAP_XTRAS to boot-strap. 2615 26162012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2617 2618 * Makefile.in (MAKE_VERSION): bump version to 20120604 2619 Merge with NetBSD make, pick up 2620 o util.c and var.c share same var for tracking if environ 2621 has been reallocated. 2622 o util.c provide getenv with setenv. 2623 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 2624 when the shell actively strips .MAKE.* from the environment. 2625 We still refer to the variable always as .MAKE.LEVEL 2626 * util.c fix bug in findenv() was finding prefix of name. 2627 * compat.c: re-raising SIGINT etc after running .INTERRUPT 2628 results in more reliable termination of all activity on many 2629 platforms. 2630 26312012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2632 2633 * Makefile.in (MAKE_VERSION): bump version to 20120602 2634 Merge with NetBSD make, pick up 2635 o for.c: handle quoted items in .for list 2636 26372012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 2638 2639 * Makefile.in (MAKE_VERSION): bump version to 20120530 2640 Merge with NetBSD make, pick up 2641 o compat.c: ignore empty command. 2642 26432012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2644 2645 * Makefile.in (MAKE_VERSION): bump version to 20120524 2646 * FILES: add bsd.after-import.mk: 2647 A simple means of integrating bmake into a BSD build system. 2648 26492012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2650 2651 * Makefile.in (MAKE_VERSION): bump version to 20120520 2652 Merge with NetBSD make, pick up 2653 o increased limit for nested conditionals. 2654 26552012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2656 2657 * Makefile.in (MAKE_VERSION): bump version to 20120518 2658 Merge with NetBSD make, pick up 2659 o use _exit(2) in signal hanlder 2660 o Don't use the [dir] cache when building nodes that might have 2661 changed since the last exec. 2662 o Avoid nested extern declaration warnings. 2663 26642012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2665 2666 * meta.c (fgetLine): avoid %z - not portable. 2667 * parse.c: Since we moved include of sys/mman.h 2668 and def's of MAP_COPY etc. we got dups from a merge. 2669 26702012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2671 2672 * Makefile.in (MAKE_VERSION): bump version to 20120420 2673 Merge with NetBSD make, pick up 2674 o restore duplicate supression in .MAKE.MAKEFILES 2675 runtime saving can be significant. 2676 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2677 consumption up to 20%. 2678 26792012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2680 2681 * Makefile.in (MAKE_VERSION): bump version to 20120420 2682 Merge with NetBSD make, pick up 2683 o remove duplicate supression in .MAKE.MAKEFILES 2684 o improved dir cache behavior 2685 o gmake'ish export command 2686 26872012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2688 2689 * Makefile.in (MAKE_VERSION): bump version to 20120325 2690 Merge with NetBSD make, pick up 2691 o fix parsing of :[#] in conditionals. 2692 26932012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2694 2695 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2696 since some systems cannot cope with .Nx <version> 2697 26982011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2699 2700 * Makefile.in (MAKE_VERSION): bump version to 20111111 2701 Merge with NetBSD make, pick up 2702 o debug output for .PARSEDIR and .PARSEFILE 2703 27042011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2705 2706 * Makefile.in (MAKE_VERSION): bump version to 20111010 2707 27082011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2709 2710 * boot-strap: check for an expected file in the dirs we look for. 2711 * make-bootstrap.sh: pass on LDSTATIC 2712 27132011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2714 2715 * Makefile.in (MAKE_VERSION): bump version to 20111001 2716 Merge with NetBSD make, pick up 2717 o ensure .PREFIX is set for .PHONY 2718 and .TARGET set for .PHONY run via .END 2719 o __dead used consistently 2720 27212011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2722 2723 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2724 27252011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2726 2727 * Makefile.in (MAKE_VERSION): bump version to 20110905 2728 Merge with NetBSD make, pick up 2729 o meta_oodate: ignore makeDependfile 2730 27312011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2732 2733 * Makefile.in (MAKE_VERSION): bump version to 20110828 2734 Merge with NetBSD make, pick up 2735 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2736 as SILENT if a .meta file is created 2737 27382011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2739 2740 * Makefile.in (MAKE_VERSION): bump version to 20110818 2741 Merge with NetBSD make, pick up 2742 o in meta mode, if target flagged .META a missing .meta file 2743 means target is out-of-date 2744 o fixes for gcc 4.5 warnings 2745 o simplify job printing code 2746 27472011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 2748 2749 * Makefile.in (MAKE_VERSION): bump version to 20110808 2750 Merge with NetBSD make, pick up 2751 o do not touch OP_SPECIAL targets when doing make -t 2752 27532011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 2754 2755 * Makefile.in (MAKE_VERSION): bump version to 20110622 2756 Merge with NetBSD make, pick up 2757 o meta_oodate detect corrupted .meta file and declare oodate. 2758 * configure.in: add check for setsid 2759 27602011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 2761 2762 * Merge with NetBSD make, pick up 2763 o unit-tests/modts now works on MirBSD 2764 27652011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2766 2767 * Makefile.in (MAKE_VERSION): bump version to 20110606 2768 Merge with NetBSD make, pick up 2769 o ApplyModifiers: when we parse a variable which is not 2770 the entire modifier string, or not followed by ':', do not 2771 consider it as containing modifiers. 2772 o loadfile: ensure newline at end of mapped file. 2773 27742011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2775 2776 * Makefile.in (MAKE_VERSION): bump version to 20110505 2777 Merge with NetBSD make, pick up 2778 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 2779 of make's control. In meta mode, any generated file within 2780 said bailiwick, which is found to be missing, causes current 2781 target to be out-of-date. 2782 27832011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2784 2785 * Makefile.in (MAKE_VERSION): bump version to 20110411 2786 Merge with NetBSD make, pick up 2787 o when long modifiers fail to match, check sysV style. 2788 - add a test case 2789 27902011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2791 2792 * Makefile.in (MAKE_VERSION): bump version to 20110410 2793 Merge with NetBSD make, pick up 2794 o :hash - cheap 32bit hash of value 2795 o :localtime, :gmtime - use value as format string for strftime. 2796 27972011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2798 2799 * Makefile.in (MAKE_VERSION): bump version to 20110330 2800 mostly because its a cooler version. 2801 Merge with NetBSD make, pick up 2802 o NetBSD tags for meta.[ch] 2803 o job.c call meta_job_finish() after meta_job_error(). 2804 o meta_job_error() should call meta_job_finish() to ensure 2805 .meta file is closed, and safe to copy - if .ERROR target wants. 2806 meta_job_finish() is safe to call repeatedly. 2807 28082011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2809 2810 * unit-tests/modts: use printf if it is a builtin, 2811 to save us from MirBSD 2812 2813 * Makefile.in (MAKE_VERSION): bump version to 20110329 2814 Merge with NetBSD make, pick up 2815 o fix for use after free() in CondDoExists(). 2816 o meta_oodate() report extra commands and return earlier. 2817 28182011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 2819 2820 * Makefile.in (MAKE_VERSION): bump version to 20110327 2821 Merge with NetBSD make, pick up 2822 o meta.c, if .MAKE.MODE contains curdirOk=yes 2823 allow creating .meta files in .CURDIR 2824 * boot-strap (TOOL_DIFF): aparently at least on linux distro 2825 formats the output of 'type' differently - so eat any "()" 2826 28272011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 2828 2829 * Makefile.in (MAKE_VERSION): bump version to 20110306 2830 Merge with NetBSD make, pick up 2831 o meta.c, only do getcwd() once 2832 28332011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 2834 2835 * Makefile.in (MAKE_VERSION): bump version to 20110305 2836 Merge with NetBSD make, pick up 2837 o correct sysV substitution handling of empty lhs and variable 2838 o correct exists() check for dir with trailing / 2839 o correct handling of modifiers for non-existant variables 2840 during evaluation of conditionals. 2841 o ensure MAP_FILE is defined. 2842 o meta.c use curdir[] now exported by main.c 2843 28442011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 2845 2846 * Makefile.in (MAKE_VERSION): bump version to 20110225 2847 Merge with NetBSD make, pick up 2848 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 2849 makefiles have been read. 2850 o fix example of :? modifier in man page. 2851 28522011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 2853 2854 * Makefile.in (MAKE_VERSION): bump version to 20110214 2855 Merge with NetBSD make, pick up 2856 o meta.c handle realpath() failing when generating meta file 2857 name. 2858 2859 * sigcompat.c: convert to ansi so we can use higher warning levels. 2860 2861 28622011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 2863 2864 * Makefile.in (MAKE_VERSION): bump version to 20110207 2865 Merge with NetBSD make, pick up 2866 o fix for bug in meta mode. 2867 28682011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2869 2870 * parse.c: SunOS 5.8 at least does not have MAP_FILE 2871 28722011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2873 2874 * Makefile.in (MAKE_VERSION): bump version to 20110101 2875 Merge with NetBSD make, pick up 2876 o use mmap(2) if available, for reading makefiles 2877 28782010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 2879 2880 * Makefile.in (MAKE_VERSION): bump version to 20101215 2881 Merge with NetBSD make, pick up 2882 o ensure meta_job_error() does not report a previous .meta file 2883 as being culprit. 2884 28852010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 2886 2887 * Makefile.in (MAKE_VERSION): bump version to 20101210 2888 Merge with NetBSD make, pick up 2889 o meta_oodate: track cwd per process, and only consider target 2890 out-of-date if missing file is outside make's CWD. 2891 Ignore files in /tmp/ etc. 2892 o to ensure unit-tests results match, need to control LC_ALL 2893 as well as LANG. 2894 o fix for parsing bug in var.c 2895 28962010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2897 2898 * Makefile.in (MAKE_VERSION): bump version to 20101126 2899 Merge with NetBSD make, pick up 2900 o if stale dependency is an IMPSRC, search via .PATH 2901 o meta_oodate: if a referenced file is missing, target is 2902 out-of-date. 2903 o meta_oodate: if a target uses .OODATE in its commands, 2904 it (.OODATE) needs to be recomputed. 2905 o keep a pointer to youngest child node, rather than just its 2906 mtime. 2907 29082010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2909 2910 * Makefile.in (MAKE_VERSION): bump version to 20101101 2911 29122010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2913 2914 * machine.sh: like os.sh, 2915 allow for uname -p producing useless drivel 2916 29172010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 2918 2919 * boot-strap: document configure knobs for meta and filemon. 2920 2921 * Makefile.in (MAKE_VERSION): bump version to 20100911 2922 Merge with NetBSD make, pick up 2923 o meta.c - meta mode 2924 2925 * make-bootstrap.sh.in: handle meta.c 2926 * configure.in: add knobs for use_meta and filemon_h 2927 also, look for dirname, str[e]sep and strlcpy 2928 * util.c: add simple err[x] and warn[x] 2929 29302010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2931 2932 * boot-strap (TOOL_DIFF): set this to ensure tests use 2933 the same version of diff that configure tested 2934 2935 * Makefile.in (MAKE_VERSION): bump version to 20100808 2936 Merge with NetBSD make, pick up 2937 o in jobs mode, when we discover we cannot make something, 2938 call PrintOnError before exit. 2939 29402010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 2941 2942 * Makefile.in (MAKE_VERSION): bump version to 20100806 2943 Merge with NetBSD make, pick up 2944 o formatting fixes for ignored errors 2945 o ensure jobs are cleaned up regardless of where wait() was called. 2946 29472010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2948 2949 * Makefile.in (MAKE_VERSION): bump version to 20100618 2950 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 2951 29522010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2953 2954 * Makefile.in (MAKE_VERSION): bump version to 20100616 2955 Merge with NetBSD make, pick up 2956 o man page update 2957 o call PrintOnError from JobFinish when we detect an error we 2958 are not ignoring. 2959 29602010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2961 2962 * Makefile.in (MAKE_VERSION): bump version to 20100606 2963 Merge with NetBSD make, pick up 2964 o man page update 2965 29662010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 2967 2968 * Makefile.in (MAKE_VERSION): bump version to 20100605 2969 Merge with NetBSD make, pick up 2970 o use bmake_signal() which is a wrapper around sigaction() 2971 in place of signal() 2972 o add .export-env to allow exporting variables to environment 2973 without tracking (so no re-export when the internal value is 2974 changed). 2975 29762010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2977 2978 * Makefile.in (MAKE_VERSION): bump version to 20100524 2979 Merge with NetBSD make, pick up 2980 o fix for .info et al being greedy. 2981 29822010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 2983 2984 * Makefile.in (MAKE_VERSION): bump version to 20100520 2985 Merge with NetBSD make, pick up 2986 o back to using realpath on argv[0] 2987 but only if contains '/' and does not start with '/'. 2988 29892010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2990 2991 * boot-strap: use absolute path for bmake when running tests. 2992 2993 * Makefile.in (MAKE_VERSION): bump version to 20100510 2994 Merge with NetBSD make, pick up 2995 o revert use of realpath on argv[0] 2996 too many corner cases. 2997 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 2998 29992010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 3000 3001 * Makefile.in (MAKE_VERSION): bump version to 20100505 3002 Merge with NetBSD make, pick up 3003 o fix for missed SIGCHLD when compiled with SunPRO 3004 actually for bmake, defining FORCE_POSIX_SIGNALS would have 3005 done the job. 3006 30072010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 3008 3009 * Makefile.in (MAKE_VERSION): bump version to 20100430 3010 Merge with NetBSD make, pick up 3011 o fflush stdout before writing to stdout 3012 30132010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 3014 3015 * Makefile.in (MAKE_VERSION): bump version to 20100423 3016 Merge with NetBSD make, pick up 3017 o updated unit tests for Haiku (this time for sure). 3018 * boot-strap: based on patch from joerg 3019 honor --with-default-sys-path better. 3020 * boot-strap: remove mention of --with-prefix-sys-path 3021 30222010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 3023 3024 * Makefile.in (MAKE_VERSION): bump version to 20100422 3025 * Merge with NetBSD make, pick up 3026 o fix for vfork() on Darwin. 3027 o fix for bogus $TMPDIR. 3028 o set .MAKE.MODE=compat for -B 3029 o set .MAKE.JOBS=max_jobs for -j max_jobs 3030 o allow unit-tests to run without any *.mk 3031 o unit-tests/modmisc be more conservative in dirs presumed to exist. 3032 * boot-strap: ignore /usr/share/mk except on NetBSD. 3033 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 3034 ensure sort(1) behaves as expected. 3035 30362010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 3037 3038 * boot-strap: add FindHereOrAbove so we can use -m .../mk 3039 30402010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 3041 3042 * Makefile.in (MAKE_VERSION): bump version to 20100420 3043 * Merge with NetBSD make, pick up 3044 o fix for variable realpath() behavior. 3045 we have to stat(2) the result to be sure. 3046 o fix for .export (all) when nested vars use :sh 3047 30482010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 3049 3050 * Makefile.in (MAKE_VERSION): bump version to 20100414 3051 * Merge with NetBSD make, pick up 3052 o use realpath to resolve argv[0] (for .MAKE) if needed. 3053 o add realpath from libc. 3054 o add :tA to resolve variable via realpath(3) if possible. 3055 30562010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 3057 3058 * Makefile.in (MAKE_VERSION): bump version to 20100408 3059 * Merge with NetBSD make, pick up 3060 o unit tests for .ERROR, .error 3061 o fix for .ERROR to ensure it cannot be default target. 3062 30632010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 3064 3065 * Makefile.in (MAKE_VERSION): bump version to 20100406 3066 * Merge with NetBSD make, pick up 3067 o fix for compat mode "Error code" going to debug_file. 3068 o fix for .ALLSRC being populated twice. 3069 o support for .info, .warning and .error directives 3070 o .MAKE.MODE to control make's operational mode 3071 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 3072 name(s). 3073 o .MAKE.DEPENDFILE to control the name of the depend file 3074 o .ERROR target - run on failure. 3075 30762010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 3077 3078 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 3079 3080 * os.sh,arch.c: patch for Haiku from joerg at netbsd 3081 30822010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 3083 3084 * Makefile.in (MAKE_VERSION): bump version to 20100222 3085 * Merge with NetBSD make, pick up 3086 o better error msg for .for with mutiple inter vars 3087 3088 * boot-strap: 3089 o use make-bootstrap.sh from joerg at netbsd 3090 to avoid the need for a native make when bootstrapping. 3091 o add "" everywhere ;-) 3092 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 3093 otherwise the pre-formated version. 3094 30952010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 3096 3097 * Makefile.in (MAKE_VERSION): bump version to 20100102 3098 * Merge with NetBSD make, pick up: 3099 o fix for -m .../ 3100 31012009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 3102 3103 * Makefile.in (MAKE_VERSION): bump version to 20091118 3104 * Merge with NetBSD make, pick up: 3105 o .unexport 3106 o report lines that start with '.' and should have ':' 3107 (catch typo's of .el*if). 3108 31092009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3110 3111 * configure.in: Ensure that srcdir and mksrc are absolute paths. 3112 31132009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3114 3115 * Makefile.in (MAKE_VERSION): fix version to 20091007 3116 31172009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 3118 3119 * Makefile.in (MAKE_VERSION): bump version to 200910007 3120 * Merge with NetBSD make, pick up: 3121 o fix for parsing of :S;...;...; applied to .for loop iterator 3122 appearing in a dependency line. 3123 31242009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3125 3126 * Makefile.in (MAKE_VERSION): bump version to 20090909 3127 * Merge with NetBSD make, pick up: 3128 o fix for -C, .CURDIR and .OBJDIR 3129 * boot-strap: 3130 o allow share_dir to be set independent of prefix. 3131 o select default share_dir better when prefix ends in $HOST_TARGET 3132 o if FORCE_BSD_MK etc were set, include them in the suggested 3133 install-mk command. 3134 31352009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 3136 3137 * Makefile.in (MAKE_VERSION): bump version to 20090908 3138 * Merge with NetBSD make, pick up: 3139 o .MAKE.LEVEL for recursion tracking 3140 o fix for :M scanning \: 3141 31422009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3143 3144 * configure.in: Don't -D__EXTENSIONS__ if 3145 AC_USE_SYSTEM_EXTENSIONS says "no". 3146 31472009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 3148 3149 * Makefile.in (MAKE_VERSION): bump version to 20090826 3150 Simplify MAKE_VERSION to just the bare date. 3151 * Merge with NetBSD make, pick up: 3152 o -C directory support. 3153 o support for SIGINFO 3154 o use $TMPDIR for temp files. 3155 o child of vfork should be careful about modifying parent's state. 3156 3157 31582009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 3159 3160 * Appy some patches for MiNT from David Brownlee 3161 31622009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 3163 3164 * Makefile.in (BMAKE_VERSION): bump version to 20090222 3165 * Merge with NetBSD make, pick up: 3166 o Possible null pointer de-ref in Var_Set. 3167 31682009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 3169 3170 * Makefile.in (BMAKE_VERSION): bump version to 20090204 3171 * Merge with NetBSD make, pick up: 3172 o bmake_malloc et al moved to their own .c 3173 o Count both () and {} when looking for the end of a :M pattern 3174 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 3175 o strlist.c - functions for processing extendable arrays of pointers to strings. 3176 o ClientData replaced with void *, so const void * can be used. 3177 o New debug flag C for DEBUG_CWD 3178 31792008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 3180 3181 * Makefile.in (BMAKE_VERSION): bump version to 20081111 3182 Apply patch from Joerg Sonnenberge to 3183 configure.in: 3184 o remove some redundant checks 3185 o check for emlloc etc only in libutil and require the whole family. 3186 util.c: 3187 o remove [v]asprintf which is no longer used. 3188 31892008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3190 3191 * Makefile.in (BMAKE_VERSION): bump version to 20081101 3192 * Merge with NetBSD make, pick up: 3193 o util.c: avoid use of putenv() - christos 3194 31952008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 3196 3197 * Makefile.in (BMAKE_VERSION): bump version to 20081030 3198 pick up man page tweaks. 3199 32002008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 3201 3202 * Makefile.in: move processing of LIBOBJS to after is definition! 3203 thus we'll have getenv.c in SRCS only if needed. 3204 3205 * make.1: add examples of how to use :? 3206 3207 * Makefile.in (BMAKE_VERSION): bump version to 20081029 3208 * Merge with NetBSD make, pick up: 3209 o fix for .END processing with -j 3210 o segfault from Parse_Error when no makefile is open 3211 o handle numeric expressions in any variable expansion 3212 o debug output now defaults to stderr, -dF to change it - apb 3213 o make now uses bmake_malloc etc so that it can build natively 3214 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 3215 32162008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 3217 3218 * Makefile.in (BMAKE_VERSION): bump version to 20080808 3219 * Merge with NetBSD make, pick up: 3220 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 3221 long lines in Makefiles 3222 o optimizations for VarQuote by joerg 3223 o fix for PR/38756: dominik: make dumps core on invalid makefile 3224 32252008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3226 3227 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3228 * Merge with NetBSD make, pick up: 3229 o fix skip setting vars in VAR_GLOBAL context, to handle 3230 cases where VAR_CMD is used for other than command line vars. 3231 32322008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3233 3234 * boot-strap (make_version): we may need to look in 3235 $prefix/share/mk for sys.mk 3236 3237 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3238 * Merge with NetBSD make, pick up: 3239 o skip setting vars in VAR_GLOBAL context, when already set in 3240 VAR_CMD which takes precedence. 3241 32422008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3243 3244 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3245 * Merge with NetBSD make, pick up: 3246 o fix for ?= when LHS contains variable reference. 3247 32482008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3249 3250 * merge some patches from NetBSD pkgsrc. 3251 3252 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3253 the MAKSYSPATH used during bootstrap. 3254 3255 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3256 * Merge with NetBSD make, pick up: 3257 o warn if non-space chars follow 'empty' in a conditional. 3258 32592008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3260 3261 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3262 * Merge with NetBSD make, pick up: 3263 o consider dependencies read from .depend as optional - dsl 3264 o remember when buffer for reading makefile grows - dsl 3265 o add -dl (aka LOUD) - David O'Brien 3266 32672007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3268 3269 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3270 * Merge with NetBSD make, pick up: 3271 o Allow .PATH<suffix> to be used for .include "" 3272 3273 * boot-strap: source default settings from .bmake-boot-strap.rc 3274 32752007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3276 3277 * Makefile.in: fix maninstall on various systems 3278 provided that our man.mk is used. 3279 For non-BSD systems we install the preformatted page 3280 into $MANDIR/cat1 3281 32822007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3283 3284 * boot-strap: make bmake.1 too, so maninstall works. 3285 32862007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3287 3288 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3289 * Merge with NetBSD make, pick up: 3290 o revamped handling of defshell - configure no longer needs to 3291 know the content of the shells array - apb 3292 o stop Var_Subst modifying its input - apb 3293 o avoid calling ParseTrackInput too often - dsl 3294 32952007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3296 3297 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3298 * Merge with NetBSD make, pick up: 3299 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3300 3301 * sigcompat.c: some tweaks for HP-UX 11.x based on 3302 patch from Tobias Nygren 3303 3304 * configure.in: update handling of --with-defshell to match 3305 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3306 will now do what one might hope - provided the chosen shell 3307 behaves enough like sh. 3308 33092007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3310 3311 * Makefile.in (BMAKE_VERSION): bump to 20071008 3312 * Merge with NetBSD make, pick up: 3313 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3314 o .export/.MAKE.EXPORTED - export of variables - sjg 3315 o .MAKE.MAKEFILES - track all makefiles read - sjg 3316 o performance improvements - dsl 3317 o revamp parallel job scheduling - dsl 3318 33192006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3320 3321 * Makefile.in (BMAKE_VERSION): bump to 20060728 3322 * Merge with NetBSD make, pick up: 3323 o extra debug info during variable and cond processing - sjg 3324 o shell definition now covers newline - rillig 3325 o minor mem leak in PrintOnError - sjg 3326 33272006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3328 3329 * Makefile.in (BMAKE_VERSION): bump to 20060511 3330 * Merge with NetBSD make, pick up: 3331 o more memory leaks - coverity 3332 o possible overflow in ArchFindMember - coverity 3333 o extract variable modifier code out of Var_Parse() 3334 so it can be called recursively - sjg 3335 o unit-tests/moderrs - sjg 3336 33372006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3338 3339 * Makefile.in (BMAKE_VERSION): bump to 20060412 3340 * Merge with NetBSD make, pick up: 3341 o fixes for some memory leaks - coverity 3342 o only read first sys.mk etc when searching sysIncPath - sjg 3343 3344 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 3345 setting ${MAKEFILE} - OBATA Akio 3346 33472006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 3348 3349 * Makefile.in (BMAKE_VERSION): bump to 20060318 3350 * Merge with NetBSD make, pick up: 3351 o cleanup of job.c to remove remote handling, distcc is more 3352 useful and this code was likely bit-rotting - dsl 3353 o fix for :P modifier - sjg 3354 * boot-strap: set default prefix to something reasonable 3355 (for me anyway). 3356 33572006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 3358 3359 * Makefile.in (BMAKE_VERSION): bump to 20060301 3360 * Merge with NetBSD make, pick up: 3361 o make .WAIT apply recursively, document and test case - apb 3362 o allow variable modifiers in a variable appear anywhere in 3363 modifier list, document and test case - sjg 3364 33652006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 3366 3367 * Makefile.in (BMAKE_VERSION): bump to 20060222 3368 * Merge with NetBSD make, pick up: 3369 o improved job token handling - dsl 3370 o SIG_DFL the correct signal before exec - dsl 3371 o more debug info during parsing - dsl 3372 o allow variable modifiers to be specified via variable - sjg 3373 * boot-strap: explain why we died if no mksrc 3374 33752005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 3376 3377 * Makefile.in (BMAKE_VERSION): bump to 20051105 3378 * configure.in: always set default_sys_path 3379 default is ${prefix}/share/mk 3380 - remove prefix_sys_path, anyone wanting more than above 3381 needs to set it manually. 3382 33832005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3384 3385 * boot-strap: make this a bit easier for pkgsrc folk. 3386 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 3387 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 3388 33892005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 3390 3391 * Makefile.in (BMAKE_VERSION): bump to 20051102 3392 * job.c (JobFinish): fix likely ancient merge lossage 3393 fix from Todd Vierling. 3394 * boot-strap (srcdir): allow setting mksrc=none 3395 33962005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 3397 3398 * Makefile.in (BMAKE_VERSION): bump to 20051031 3399 * ranlib.h: skip on OSF too. 3400 (NetBSD PR 31864) 3401 34022005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 3403 3404 * Makefile.in (BMAKE_VERSION): bump to 20051002 3405 fix a silly typo 3406 34072005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3408 3409 * Makefile.in (BMAKE_VERSION): bump to 20051001 3410 support for UnixWare and some other systems, 3411 based on patches from pkgsrc/bootstrap 3412 34132005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3414 3415 * Makefile.in (BMAKE_VERSION): bump to 20050901 3416 * Merge with NetBSD make, pick up: 3417 o possible parse error causing us to wander off. 3418 34192005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 3420 3421 * Makefile.in (BMAKE_VERSION): bump to 20050606 3422 * Merge with NetBSD make, pick up: 3423 o :0x modifier for randomizing a list 3424 o fixes for a number of -Wuninitialized issues. 3425 34262005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 3427 3428 * Makefile.in (BMAKE_VERSION): bump to 20050530 3429 * Merge with NetBSD make, pick up: 3430 o Handle dependencies for .BEGIN, .END and .INTERRUPT 3431 3432 * README: was seriously out of date. 3433 34342005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 3435 3436 * Important to use .MAKE rather than MAKE. 3437 34382005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 3439 3440 * Makefile.in (BMAKE_VERSION): bump to 20050315 3441 * Merge with NetBSD make, pick up: 3442 o don't mistake .elsefoo for .else 3443 o use suffix-specific search path correctly 3444 o bunch of style nits 3445 34462004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3447 3448 * boot-strap: 3449 o ensure that args to --src and --with-mksrc 3450 are resolved before giving them to configure. 3451 o add -o "objdir" so that builder can control it, 3452 default is $OS as determined by os.sh 3453 o add -q to suppress all the install instructions. 3454 34552004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 3456 3457 * Remove __IDSTRING() 3458 3459 * Makefile.in (BMAKE_VERSION): bump to 20040508 3460 * Merge with NetBSD make, pick up: 3461 o posix fixes 3462 - remove '-e' from compat mode 3463 - add support for '+' command-line prefix. 3464 o fix for handling '--' on command-line. 3465 o fix include in lst.lib/lstInt.h to simplify '-I's 3466 o we also picked up replacement of MAKE_BOOTSTRAP 3467 with !MAKE_NATIVE which is a noop, but possibly confusing. 3468 34692004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 3470 3471 * Makefile.in (BMAKE_VERSION): bump to 20040414 3472 * Merge with NetBSD make, pick up: 3473 o allow quoted strings on lhs of conditionals 3474 o issue warning when extra .else is seen 3475 o print line numer when errors encountered during parsing from 3476 string. 3477 34782004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 3479 3480 * Makefile.in (BMAKE_VERSION): bump to 20040220 3481 * Merge with NetBSD make, pick up: 3482 o fix for old :M parsing bug. 3483 o re-jigged unit-tests 3484 34852004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3486 3487 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 3488 so that './bmake -f Makefile test' works. 3489 34902004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 3491 3492 * Makefile.in: (BMAKE_VERSION): bump to 20040214 3493 * Merge with NetBSD make, pick up: 3494 o search upwards for *.mk 3495 o fix for double free of var substitution buffers 3496 o use of getopt replaced with custom code, since the usage 3497 (re-scanning) isn't posix compatible. 3498 34992004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 3500 3501 * arch.c: don't include ranlib.h on ELF systems 3502 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 3503 35042004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3505 3506 * Makefile.in (BMAKE_VERSION): bump to 20040118 3507 3508 * boot-strap (while): export vars we assign to on cmdline 3509 * unit-test/Makefile.in: ternary is .PHONY 3510 35112004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 3512 3513 * Makefile.in (BMAKE_VERSION): bump version to 20040108 3514 * Merge with NetBSD make, pick up: 3515 o fix for ternary modifier 3516 35172004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 3518 3519 * Makefile.in (BMAKE_VERSION): bump version to 20040105 3520 * Merge with NetBSD make, pick up: 3521 o fix for cond.c to handle compound expressions better 3522 o variable expansion within sysV style replacements 3523 35242003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 3525 3526 * Make portable snprintf safer - output to /dev/null first to 3527 check space needed. 3528 3529 * Makefile.in (BMAKE_VERSION): bump version to 20031222 3530 * Merge with NetBSD make, pick up: 3531 o -dg3 to show input graph when things go wrong. 3532 o explicitly look for makefiles in objdir if not found in curdir so 3533 that errors in .depend etc will be reported accurarely. 3534 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 3535 instead as it more accurately reflects the expected behavior and 3536 is more consistently implemented. 3537 o avoid use of asprintf. 3538 35392003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 3540 3541 * util.c: Add asprintf and vasprintf. 3542 3543 * Makefile.in (BMAKE_VERSION): bump version to 20030928 3544 * Merge with NetBSD make, pick up: 3545 :[] modifier - allows picking words from a variable. 3546 :tW modifier - allows treating value as one big word. 3547 W flag for :C and :S - allows treating value as one big word. 3548 35492003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 3550 3551 * Merge with NetBSD make 3552 pick up -de flag to enable printing failed command. 3553 don't skip 1st two dir entries (normally . and ..) since 3554 coda does not have them. 3555 35562003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3557 3558 * Makefile.in (BMAKE_VERSION): bump version to 20030909 3559 * Merge with NetBSD make, pick up: 3560 - changes for -V '${VAR}' to print fully expanded value 3561 cf. -V VAR 3562 - CompatRunCommand now prints the command that failed. 3563 - several files got updated 3 clause Berkeley license. 3564 35652003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3566 3567 * boot-strap: Allow setting configure args on command line. 3568 35692003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3570 3571 * configure.in: add --with-defshell to allow sh or ksh 3572 to be selected as default shell. 3573 3574 * Makefile.in: bump version to 20030731 3575 3576 * Merge with NetBSD make 3577 Pick up .SHELL spec for ksh and associate man page changes. 3578 Also compat mode now uses the same shell specs. 3579 35802003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3581 3582 * var.c (Var_Parse): ensure delim is initialized. 3583 3584 * unit-tests/Makefile.in: use single quotes to avoid problems from 3585 some shells. 3586 3587 * makefile.boot.in: 3588 Run the unit-tests as part of the bootstrap procedure. 3589 35902003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3591 3592 * unit-tests/Makefile.in: always force complaints from 3593 ${TEST_MAKE} to be from 'make'. 3594 3595 * configure.in: add check for 'diff -u' 3596 also fix some old autoconf'isms 3597 3598 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 3599 if using GCC add -Wno-cast-qual to CFLAGS for var.o 3600 3601 * Merge with NetBSD make 3602 Pick up fix for :ts parsing error in some cases. 3603 Pick unit-tests. 3604 36052003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 3606 3607 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 3608 3609 * var.c (Var_Parse): fix bug in :ts modifier, after const 3610 correctness fixes, must pass nstr to VarModify. 3611 36122003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 3613 3614 * Makefile.in: BMAKE_VERSION switch to a date based version. 3615 We'll generally use the date of last import from NetBSD. 3616 3617 * Merge with NetBSD make 3618 Pick up fixes for const-correctness, now passes WARNS=3 on 3619 NetBSD. 3620 Pick up :ts modifier, allows controlling the separator used 3621 between words in variable expansion. 3622 36232003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 3624 3625 * FILES: include boot-strap and os.sh 3626 3627 * Makefile.in: only set WARNS if we are NetBSD, the effect on 3628 FreeBSD is known to be bad. 3629 3630 * makefile.boot.in (bootstrap): make this the default target. 3631 3632 * Makefile.in: bump version to 3.1.19 3633 3634 * machine.sh: avoid A-Z with tr as it is bound to lose. 3635 36362003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 3637 3638 * Merge with NetBSD make 3639 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3640 Plus some doc fixes. 3641 36422003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3643 3644 * Merge with NetBSD make 3645 Pick up fix for PR/1523 - don't count a library as built, if there 3646 is no way to build it 3647 3648 * Bump version to 3.1.18 3649 36502003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3651 3652 * Merge with NetBSD make 3653 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3654 appears in src list. 3655 36562003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3657 3658 * Merge with NetBSD make (mmm 10th anniversary!) 3659 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3660 pick up -X which tells us to not export VAR=val via setenv if 3661 we are already doing so via MAKEFLAGS. This saves valuable env 3662 space on systems like Darwin. 3663 set MAKE_VERSION to 3.1.17 3664 3665 * parse.c: pix up fix for suffix rules 3666 36672003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3668 3669 * Merge with NetBSD make. 3670 pick up fix for propagating -B via MAKEFLAGS. 3671 set MAKE_VERSION to 3.1.16 3672 3673 * Apply some patches from pkgsrc-bootstrap/bmake 3674 Originally by Grant Beattie <grant@netbsd.org> 3675 I may have missed some - since they are based on bmake-3.1.12 3676 36772002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3678 3679 * makefile.boot.in (bmake): update install targets for those that 3680 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3681 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3682 3683 * bmake.cat1: update the pre-formatted man page! 3684 36852002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3686 3687 * Merge with NetBSD make. 3688 pick up fix for premature free of pointer used in call 3689 to Dir_InitCur(). 3690 set MAKE_VERSION to 3.1.15 3691 36922002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3693 3694 * configure.in: determine suitable value for MKSRC. 3695 override using --with-mksrc=PATH. 3696 3697 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3698 configs(8) will use 'sun4' as an alias for 'sparc'. 3699 37002002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3701 3702 * Merge with NetBSD make. 3703 pick up ${.PATH} 3704 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3705 set MAKE_VERSION to 3.1.14 3706 add configure checks for killpg and sys/socket.h 3707 37082002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3709 3710 * tag bmake-3-1-13 3711 3712 * makefile.boot.in (bmake): use install-mk 3713 Also setup ./mk before trying to invoke bmake.boot incase we 3714 needed install-mk to create a sys.mk for us. 3715 3716 * configure.in: If we need to add -I${srcdir}/missing, make it an 3717 absolute path so that it works for lst.lib too. 3718 3719 * make.h: always include sys/cdefs.h since we provide one if the 3720 host does not. 3721 3722 * Makefile.in (install-mk): 3723 use MKSRC/install-mk which will do the right thing. 3724 use uname -p for ARCH if possible. 3725 since install-mk will setup links bsd.prog.mk -> prog.mk if 3726 needed, just .include bsd.prog.mk 3727 3728 * Merge with NetBSD make (NetBSD-1.6) 3729 Code is ansi-C only now. 3730 Bug in handling of dotLast is fixed. 3731 Can now assign .OBJDIR and make will reset its notions of life. 3732 New modifiers :tu :tl for toUpper and toLower. 3733 3734Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3735 3736 * Merge with NetBSD make 3737 pick up fix for .END failure in compat mode. 3738 pick up fix for extra va_end() in ParseVErrorInternal. 3739 3740Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3741 3742 * configure.in: for systems that have sys/cdefs.h check if it is 3743 compatible. If not, include the one under missing, but tell it to 3744 include the native one too - necessary on Linux. 3745 3746 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 3747 include_next (for gcc) to get the native sys/cdefs.h 3748 3749Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3750 3751 * job.c (JobFinish): Fix an earlier merge bug that resulted in 3752 leaking descriptors when using -jN. 3753 3754 * job.c (JobPrintCommand): See if "curdir" exists before 3755 attempting to chdir(). Doing the chdir directly in make (when in 3756 compat mode) fails silently, so let the -jN version do the same. 3757 This can happen when building kernels in an object tree and 3758 playing clever games to reset .CURDIR. 3759 3760 * Merged with NetBSD make 3761 pick up .USEBEFORE 3762 3763Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3764 3765 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 3766 3767Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3768 3769 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 3770 us not to export the iterator variable when using VAR_CMD context. 3771 3772Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3773 3774 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 3775 its the wrong "fix". 3776 3777Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3778 3779 * Redesigned export of VAR_CMD's via MAKEFLAGS. 3780 We now simply append the variable names to .MAKEOVERRIDES, and 3781 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 3782 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 3783 Apart from fixing quoting bugs in previous version, this allows us 3784 to export vars to the environment by simply doing: 3785 .MAKEOVERRIDES+= PATH 3786 Merged again with NetBSD make, but the above is the only change. 3787 3788 * configure.in: added 3789 --disable-pwd-override disable $PWD overriding getcwd() 3790 --disable-check-make-chdir disable make trying to guess 3791 when it should automatically cd ${.CURDIR} 3792 3793 * Merge with NetBSD make, changes include: 3794 parse.c (ParseDoDependency): Spot that the syntax error is 3795 caused by an unresolved cvs/rcs conflict and say so. 3796 var.c: most of Var* functions now take a ctxt as 1st arg. 3797 now does variable substituion on rhs of sysv style modifiers. 3798 3799 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 3800 is now done here. We append the name='value' to .MAKEOVERRIDES 3801 rather than directly into MAKEFLAGS as this allows a Makefile to 3802 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 3803 very similar mechanism. Note that in adding name='value' to 3804 .MAKEOVERRIDES we do the moral equivalent of: 3805 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 3806 3807Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3808 3809 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 3810 3811 * Merged with NetBSD make 3812 make -dx can now be used to run commands via sh -x 3813 better error messages on exec failures. 3814 3815Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3816 3817 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 3818 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 3819 MACHINE etc otherwise they propagate from the previous bmake. 3820 3821 * configure.in (machine): allow --with-machine=generic to make 3822 configure use machine.sh to set MACHINE. 3823 3824 * job.c (JobInterrupt): convert to using WAIT_T and friends. 3825 3826 * Makefile.in: mention in bmake.1 that we use autoconf. 3827 3828 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 3829 3830Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3831 3832 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 3833 as that rather defeats the usefulness of ${MAKEFILE}. 3834 3835 * main.c (MainParseArgs): append command line variable assignments 3836 to MAKEFLAGS so that they get propagated to child make's. 3837 Apparently this is required POSIX behaviour? Its useful anyway. 3838 3839Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3840 3841 * compat.c (CompatRunCommand): don't use perror() since stdio may 3842 cause problems in child of vfork(). 3843 3844 * compat.c, main.c: Call PrintOnError() when we are going to bail. 3845 This routine prints out the .curdir where we stopped and will also 3846 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 3847 3848 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 3849 :@ expansion. 3850 3851 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 3852 3853 * Added RCSid's for the files we've touched. 3854 3855Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3856 3857 * configure.in: Thanks to some clues from mdb@juniper.net, 3858 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 3859 as well as what ends up in _PATH_DEFSYSPATH. We now have: 3860 3861 --with-machine=MACHINE explicitly set MACHINE 3862 --with-force-machine=MACHINE set FORCE_MACHINE 3863 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 3864 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 3865 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 3866 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 3867 3868 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 3869 3870 * makefile: added a pathetically simple makefile to drive 3871 bootstrapping. Running configure by hand is more useful. 3872 3873 * Makefile.in: added MAKE_VERSION, and reworked things to be less 3874 dependent on NetBSD bsd.*.mk 3875 3876 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 3877 _PATH_OBJDIRPREFIX for those that don't want a default. 3878 construct _PATH_DEFSYSPATH from the info we get from configure. 3879 3880 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 3881 if MAKE_VERSION is defined. 3882 3883 * compat.c: when we bail, print out the .CURDIR we were in. 3884 3885Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3886 3887 * Merged with NetBSD make 3888 3889 * var.c: fixed a bug in the handling of the modifier :P 3890 if the node as found but the path was null, we segfault trying to 3891 duplicate it. 3892 3893Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3894 3895 * Merged with NetBSD make 3896 3897 * make.c: Make_OODate's test for a library out of date was using 3898 cmtime where it should have used mtime (my bug). 3899 3900 * compat.c: Use perror() to tell us what really went wrong when we 3901 cannot exec a command. 3902 3903Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3904 3905 * Merged with NetBSD make 3906 3907Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3908 3909 * Merged with NetBSD make 3910 3911Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3912 3913 * Merged with NetBSD make 3914 3915Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3916 3917 * Merged with NetBSD make 3918 3919Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3920 3921 * util.c: don't provide signal() since we use sigcompat.c 3922 3923 * Makefile.in: added a build target. 3924 3925 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 3926 These allow some quite clever magic. 3927 3928 * main.c (main): added support for getenv(MAKESYSPATH). 3929 3930Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3931 3932 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 3933 This avoids objdir having a different value depending on how a 3934 directory was reached (via command line, or subdir.mk). 3935 3936 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 3937 3938Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3939 3940 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 3941 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 3942 I've been testing this in NetBSD's make for some weeks. 3943 3944 * Turn Makefile into Makefile.in and make it useful. 3945 3946Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3947 3948 * Imported NetBSD's -current make(1) and resolve conflicts. 3949 3950 * Applied autoconf patches from bmake v2 3951 3952 * Imported clean code base from NetBSD-1.0 3953