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