12021-12-15 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * cond.c: fix mem leak in CondParser_Leaf 4 52021-12-12 Simon J Gerraty <sjg@beast.crufty.net> 6 7 * VERSION (_MAKE_VERSION): 20211212 8 Merge with NetBSD make, pick up 9 o rename Parse_SetInput to Parse_PushInput 10 o remove remove period from end of error messages and warnings 11 to be more consistent 12 o arch.c: use simpler memory management for parsing archive members 13 o cond.c: rework and reduce recursion 14 o for.c: rename some functions to better reflect purpose 15 o suff.c: add Suff_NamesStr to provide .SUFFIXES as a string. 16 o var.c: in parse errors, mark whitespace more clearly 17 inline ParseEmptyArg into CondParser_FuncCallEmpty 18 minimize calls to LazyBuf_Get in ParseVarnameLong 19 treat .SUFFIXES as a read-only variable 20 212021-12-07 Simon J Gerraty <sjg@beast.crufty.net> 22 23 * VERSION (_MAKE_VERSION): 20211207 24 Merge with NetBSD make, pick up 25 o inline HashIter_Init 26 o parse.c: inline common subexpression in ParseRawLine 27 o var.c: merge branches for modifiers ':D' and ':U' 28 extract common code into Expr_Words 29 extract common code into Expr_Str 30 move low-level implementation details out of Var_Parse 31 322021-12-06 Simon J Gerraty <sjg@beast.crufty.net> 33 34 * VERSION (_MAKE_VERSION): 20211206 35 Merge with NetBSD make, pick up 36 o add unit-tests/varmod-loop-delete 37 o for.c: inline Str_Words - reduce memory allocation 38 o parse.c: do not try to expand fixed variable names 39 only allocate the name of an included file if necessary 40 clean up ParseInclude 41 o var.c: fix use-after-free in modifier ':@' 42 save a memory allocation in each modifier ':O' and ':u' 43 save a memory allocation in the modifier ':[...]' 44 in UnexportVars, replace Str_Words with Substring_Words to 45 reduce allocations and copying. 46 472021-12-04 Simon J Gerraty <sjg@beast.crufty.net> 48 49 * VERSION (_MAKE_VERSION): 20211204 50 Merge with NetBSD make, pick up 51 o flesh out a number of tests 52 o replace enums with bitfields, this simplifies a lot of code. 53 o var.c: refactor ParseModifierPartSubst 54 552021-10-24 Simon J Gerraty <sjg@beast.crufty.net> 56 57 * VERSION (_MAKE_VERSION): 20211024 58 Merge with NetBSD make, pick up 59 o Punt on write errors - ENOSPC etc. 60 612021-10-22 Simon J Gerraty <sjg@beast.crufty.net> 62 63 * configure.in: use_defshell, set both DEFSHELL_INDEX 64 and defshell_path if appropriate. 65 This makes it easier to use say the KSH specification with 66 and alternate path for the shell. 67 68 * configure.in compat.c: for SCO we need to force UseShell 69 70 * configure.in: SCO /bin/sh is not usable, provide a list of 71 alternatives for use as .SHELL. 72 We still have to mark some tests as broken, plus more if we end up 73 with ksh as .SHELL. 74 Issue a warning about skipped tests. 75 76 * boot-strap: leave TOOL_DIFF to configure 77 78 * configure.in: on SCO native cc is not usable, 79 gcc is to be found in /usr/gnu/bin 80 and while ancient is at least able to compile bmake. 81 Thus we add /usr/gnu/bin to PATH if it exists, and later 82 check if $CC would have been found via $PATH. 83 If not we set CC to the full path of $CC. 84 Also gnu diff is known to support -u, so if it exists use it. 85 86 * configure.in: move getopt to AC_REPLACE_FUNCS 87 also add AC_C_INLINE - in an attempt to compile using 88 native cc on SCO. 89 90 * configure.in: check for stresep as well as strsep, since we 91 define the later to the former if necessary, and if we have to 92 provide stresep we also need to provide a prototype. 93 94 * configure.in: we no longer need to worry about 95 sys/cdefs.h providing __RCSID which simplifies things quite a bit. 96 97 * make.h: make sure we have __RCSID 98 99 * unit-tests/Makefile.config.in: add TOOL_DIFF so configure 100 can control it. 101 1022021-10-20 Simon J Gerraty <sjg@beast.crufty.net> 103 104 * VERSION: 20211020 105 Merge with NetBSD make, pick up 106 o confirm sync of unit-tests 107 1082021-10-18 Simon J Gerraty <sjg@beast.crufty.net> 109 110 * configure.in: check if timezone Europe/Berlin is supported 111 if not try UTC-1 112 * configure.in: if .OBJDIR is $srcdir/obj we need to create a 113 symlink unit-tests -> ../unit-tests/obj so that 114 unit-tests/Makefile.config is put in the right place. 115 * refine filtering of .OBJDIR in unit-tests 116 1172021-10-16 Simon J Gerraty <sjg@beast.crufty.net> 118 119 * Fix unit-tests on Minix 3.2.0 120 o job.c: do not punt if read of token pipe fails for EAGAIN. 121 On Minix at least, we are not ready to read the childExitJob pipe 122 when poll says we are. 123 There should actually be no reason for this pipe to be 124 non-blocking, but while that works fine on {Net,Free}BSD it 125 breaks another test case on Minix. 126 o unit-tests/Makefile: deal with variants of error messages 127 and use of obj as .OBJDIR 128 1292021-10-14 Simon J Gerraty <sjg@beast.crufty.net> 130 131 * configure.in: add sigaction to AC_REPLACE_FUNCS 132 we also need to check for sigaddset etc just for the benefit of 133 sigact.c 134 135 * Add sigact.c as sigaction.c so this "just works". 136 This should have been done back when bmake_signal started using 137 sigaction (I only just noticed that sigact.c wasn't here ;-) 138 Note: I no longer have access to any system where this would matter. 139 1402021-10-13 Simon J Gerraty <sjg@beast.crufty.net> 141 142 * VERSION (_MAKE_VERSION): 20211011 143 144 * Makefile: cleanup a little 145 146 * configure.in: check for sigsetmask 147 1482021-10-01 Simon J Gerraty <sjg@beast.crufty.net> 149 150 * VERSION (_MAKE_VERSION): 20211001 151 Merge with NetBSD make, pick up 152 o reduce locations reducing text size 153 o remove unnecessary const 154 o cond.c: fix lint warning on i386 155 do not allow unquoted 'left == right' after modifier ':?' 156 o hash.c: fix build for DEBUG_HASH_LOOKUP 157 o var.c: fix memory leak in error case of the ':?' modifier 158 1592021-09-11 Simon J Gerraty <sjg@beast.crufty.net> 160 161 * VERSION (_MAKE_VERSION): 20210911 162 Merge with NetBSD make, pick up 163 o var.c: replace remaining ModChain_ShouldEval with Expr_ShouldEval 164 1652021-09-08 Simon J Gerraty <sjg@beast.crufty.net> 166 167 * VERSION (_MAKE_VERSION): 20210906 168 Merge with NetBSD make, pick up 169 o more unit tests 170 o lint cleanup 171 o rename some functions to better fit purpose 172 o for.c: cleanup - remove unnecessary optimization 173 fix embedded newlines 174 o parse.c: correct case for CVS/RCS 175 1762021-08-11 Simon J Gerraty <sjg@beast.crufty.net> 177 178 * VERSION (_MAKE_VERSION): 20210808 179 Merge with NetBSD make, pick up 180 o var.c: remove redundant initialization in ApplyModifier_Order 181 182 * mk/options.mk: issue warning for incorrect usage 183 1842021-08-03 Simon J Gerraty <sjg@beast.crufty.net> 185 186 * var.c: use long for :On if we don't have a 64bit int type 187 188 * VERSION (_MAKE_VERSION): 20210803 189 Merge with NetBSD make, pick up 190 o rework varmod-order tests to avoid qsort instability 191 o make.1: clarify :On entry 192 1932021-07-31 Simon J Gerraty <sjg@beast.crufty.net> 194 195 * VERSION (_MAKE_VERSION): 20210731 196 Merge with NetBSD make, pick up 197 o fix some lint issues 198 o more unit tests 199 o var.c: rework of ApplyModifier_Order 200 2012021-07-30 Simon J Gerraty <sjg@beast.crufty.net> 202 203 * util.c: add strto*l if HAVE_STRTO*L not defined 204 205 * VERSION (_MAKE_VERSION): 20210730 206 Merge with NetBSD make, pick up 207 o var.c: add :On and :Orn for numeric sort 208 disabled if no 64bit type available. 209 o _strtol.h: to implement strto*l functions 210 2112021-07-04 Simon J Gerraty <sjg@beast.crufty.net> 212 213 * VERSION (_MAKE_VERSION): 20210704 214 Merge with NetBSD make, pick up 215 o unit-tests: fix some tests to be more portable 216 - job-output-null not all shells do the same number of write calls 217 - objdir-writable if TMPDIR is set; /tmp may not be usable 218 2192021-07-01 Simon J Gerraty <sjg@beast.crufty.net> 220 221 * VERSION (_MAKE_VERSION): 20210701 222 Merge with NetBSD make, pick up 223 o unit-tests: allow for BROKEN_TESTS to list TESTS to be skipped; 224 some tests just cannot work in some environments. 225 o buf.c: simpler upper bound for length in Buf_AddInt 226 o cond.c: fix grammar in error message for malformed conditional 227 o for.c: prevent newline injection (from ${.newline}) in .for loops 228 o var.c: use more practical data type in RegexReplace 229 (avoid need for %zu) 230 extract RegexReplace from ModifyWord_SubstRegex 231 2322021-06-21 Simon J Gerraty <sjg@beast.crufty.net> 233 234 * VERSION (_MAKE_VERSION): 20210621 235 Merge with NetBSD make, pick up 236 o var.c: only report error for unmatched regex subexpression 237 when linting (-dL) since we cannot tell when an unmatched 238 subexpression is an expected result. 239 o move unmatched regex subexpression tests to 240 varmod-subst-regex.mk and enable strict (lint) mode 241 2422021-06-16 Simon J Gerraty <sjg@beast.crufty.net> 243 244 * VERSION (_MAKE_VERSION): 20210616 245 Merge with NetBSD make, pick up 246 o more unit tests 247 o cond.c: rename If_Eval to EvalBare 248 improve function names for parsing conditions 249 o job.c: fix error handling of targets that cannot be made 250 o var.c: uncompress code in ApplyModifier_Unique 251 2522021-05-18 Simon J Gerraty <sjg@beast.crufty.net> 253 254 * VERSION (_MAKE_VERSION): 20210518 255 Merge with NetBSD make, pick up 256 o fix unit-tests/opt-chdir to cope with /nonexistent existing. 257 o job.c: Print -de error information when running multiple jobs 258 2592021-04-20 Simon J Gerraty <sjg@beast.crufty.net> 260 261 * VERSION (_MAKE_VERSION): 20210420 262 Merge with NetBSD make, pick up 263 o use C99 bool type 264 o convert VarEvalFlags back into an enum 265 o cond.c: do not complain when skipping the condition 'no >= 10' 266 o hash.c: avoid allocating memory for simple variable names 267 o job.c: use distinct wording for writing to the shell commands file 268 remove type name for the abort status in job handling 269 rename PrintOutput to PrintFilteredOutput to avoid confusion 270 o main.c: avoid double slash in name of temporary directory 271 o var.c: use straight quotes for error 'Bad conditional expression' 272 reduce memory allocations in the modifiers ':D' and ':U' 273 rename members of ModifyWord_LoopArgs 274 clean up pattern flags for the modifiers ':S' and ':C' 275 reduce memory allocation and strlen calls in modifier ':from=to' 276 in the ':Q' modifier, only allocate memory if necessary 277 improve performance for LazyBuf 278 remove redundant parameter from ParseVarnameLong 279 migrate ParseModifierPart to use Substring 280 avoid unnecessary calls to strlen when evaluating modifiers 281 migrate ModifyWord functions to use Substring 282 migrate handling of the modifier ':S,from,to,' to Substring 283 reduce debug logging and memory allocation for ${:U...} 284 reduce verbosity of the -dv debug logging for standard cases 285 clean up debug logging for ':M' and ':N' 286 disallow '$' in the variable name of the modifier ':@' 287 simplify access to the name of an expression during evaluation 288 2892021-03-30 Simon J Gerraty <sjg@beast.crufty.net> 290 291 * VERSION (_MAKE_VERSION): 20210330 292 Merge with NetBSD make, pick up 293 o replace enum bit-field with struct bit-field for VarEvalFlags 294 o rename VARE_NONE to VARE_PARSE_ONLY 295 o var.c: rename ApplyModifiersState to ModChain 296 fix double varname expansion in the variable modifier '::=' 297 change debug log for variable evaluation flags to lowercase 298 2992021-03-14 Simon J Gerraty <sjg@beast.crufty.net> 300 301 * VERSION (_MAKE_VERSION): 20210314 302 Merge with NetBSD make, pick up 303 o var.c: avoid evaluating many modifiers in parse only mode 304 in strict mode (-dL) many variable references are parsed twice, 305 the first time just to report parse errors early, so we want to 306 avoid side effects and wasted effort to the extent possible. 307 3082021-02-26 Simon J Gerraty <sjg@beast.crufty.net> 309 310 * VERSION (_MAKE_VERSION): 20210226 311 Merge with NetBSD make, pick up 312 o remove freestanding freeIt variables 313 link via FStr 314 o var.c: restructure code in ParseVarname to target human readers 315 improve error message for; 316 bad modifier in variable expression 317 unclosed modifier 318 unknown modifier 319 remove redundant parameter of ApplySingleModifier 320 explain non-obvious code around indirect variable modifiers 321 quote ':S' in error message about missing delimiter 322 extract ParseModifier_Match into separate function 323 add context information to error message about ':range' modifier 324 add quotes around variable name in an error message 325 reorder code in ModifyWords 326 use more common parameter order for VarSelectWords 327 make ModifyWord_Subst a little easier to understand 328 do not expand variable name from the command line twice 329 extract ExistsInCmdline from Var_SetWithFlags 330 save a hash map lookup when defining a cmdline variable 331 clean up VarAdd, Var_Delete, Var_ReexportVars 332 use bit-shift expressions for VarFlags constants 333 rename constants for VarFlags 334 rename ExprDefined constants for debug logging 335 rename ExprStatus to ExprDefined 336 split parameters for evaluating variable expressions 337 reduce redundant code around ModifyWords 338 print error about failed shell command before overwriting variable 339 clean up ValidShortVarname, ParseVarnameShort 340 rename VarExprStatus to ExprStatus 341 add functions for assigning the value of an expression 342 rename ApplyModifiersState_Define to Expr_Define 343 condense the code for parsing :S and :C modifiers 344 3452021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 346 347 * VERSION (_MAKE_VERSION): 20210206 348 Merge with NetBSD make, pick up 349 o unit-tests: use private TMPDIR to avoid errors from other users 350 3512021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 352 353 * VERSION (_MAKE_VERSION): 20210205 354 Merge with NetBSD make, pick up 355 o avoid strdup in mkTempFile 356 o always use vfork 357 o rename context and ctxt to scope 358 o rename some VAR constants to SCOPE 359 o Var_ functions, move the scope to the front 360 o use shortcut functions Global_Set and Global_Append 361 o add shortcut Global_Delete for deleting a global variable 362 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 363 o compat.c: when exiting due to an error, print graph information 364 o enum.c: remove overengineered Enum_ValueToString 365 o make.c: remove unused INTERNAL flag 366 remove unused return type of MakeBuildParent 367 o parse.c: replace parse error "Need an operator" with better message 368 o var.c: improve documentation about variable scopes 369 rename Var_ValueDirect to GNode_ValueDirect 370 rename old Var_SetWithFlags to Var_SetExpandWithFlags 371 merge SetVar into Var_SetWithFlags 372 split Var_Exists into plain Var_Exists and Var_ExistsExpand 373 split Var_Append into Var_Append and Var_AppendExpand 374 replace enum bit-set with bit-field 375 o unit-tests/var-op-shell: use kill rather than kill -14 376 which broke on darwin with recent update. 377 3782021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 379 380 * configure.in: check for sig_atomic_t and define it as 'int' 381 if missing. 382 383 * VERSION (_MAKE_VERSION): 20210201 384 Merge with NetBSD make, pick up 385 o use sig_atomic_t for caught_sigchld 386 3872021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 388 389 * VERSION (_MAKE_VERSION): 20210130 390 Merge with NetBSD make, pick up 391 o more unit tests 392 o convert SearchPath to struct 393 o split Buf_Destroy into Buf_Done and Buf_DoneData 394 o for.c: split For_Eval into separate functions 395 rename struct For to struct ForLoop 396 o job.c: do not create empty shell files in jobs mode 397 rename JobOpenTmpFile to JobWriteShellCommands 398 reduce unnecessary calls to waitpid 399 o parse.c: in -dp mode, print stack trace with each diagnostic 400 4012021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 402 403 * VERSION (_MAKE_VERSION): 20210123 404 Merge with NetBSD make, pick up 405 o rename Dir_Expand to SearchPath_Expand 406 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 407 o cond.c: fix debug output for comparison operators in conditionals 408 o dir.c: split Dir_FindFile into separate functions 409 4102021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 411 412 * VERSION (_MAKE_VERSION): 20210120 413 Merge with NetBSD make, pick up 414 o fix some more lint nits 415 o refine some unit tests for portability 416 o cond.c: rework parsing 417 4182021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 419 420 * VERSION (_MAKE_VERSION): 20210110 421 Merge with NetBSD make, pick up 422 o fix lint warnings 423 o consistently use boolean expressions in conditions 424 4252021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 426 427 * VERSION (_MAKE_VERSION): 20210108 428 Merge with NetBSD make, pick up 429 o job.c: back to polling token pipe if we want a token 430 o main.c: always print 'stopped in' on first call 431 The execption is if we bail because of an abort token 432 in which case just exit 6. 433 4342021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 435 436 * VERSION (_MAKE_VERSION): 20210101 437 Merge with NetBSD make, pick up 438 o Happy New Year! 439 o rename CmdOpts.lint to strict 440 o exit 2 on technical errors 441 o replace pointers in controlling conditions with booleans 442 o replace global preserveUndefined with VARE_KEEP_UNDEF 443 o compat.c: re-export variables from the actual make process 444 if using vfork this is the effect anyway 445 o cond.c: clean up VarParseResult constants 446 o for.c: fix undefined behavior in SubstVarLong 447 make control flow in SubstVarLong of .for loops more obvious 448 clean up SubstVarShort in .for loops 449 extract ForSubstBody from ForReadMore 450 clean up ForReadMore 451 simplify termination condition for .for loop 452 add error handling for .for loop items 453 job.c: re-export variables from the actual make process 454 parse.c: remove mmap for loading files, only allow files < 1 GiB 455 fix edge case in := with undefined in variable name 456 skip variable expansion in ParseDependencyTargetWord 457 var.c: split ExportVar into separate functions 458 clean up code in extracted ExportVar functions 459 remove dead code from ApplyModifiersIndirect 460 split Var_Subst into easily understandable functions 461 clean up VarParseResult constants 462 4632020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 464 465 * main.c: use .MAKE.DEPENDFILE as set by makefiles 466 4672020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 468 469 * VERSION (_MAKE_VERSION): 20201222 470 Merge with NetBSD make, pick up 471 o make DEBUG macro return boolean 472 o parse.c: fix assertion failure for files without trailing newline 473 o var.c: allow .undef to undefine multiple variables at once 474 remove excess newline from parse errors 475 4762020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 477 478 * VERSION (_MAKE_VERSION): 20201221 479 Merge with NetBSD make, pick up 480 o some unit-test updates 481 4822020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 483 484 * VERSION (_MAKE_VERSION): 20201220 485 Merge with NetBSD make, pick up 486 o more unit tests 487 o return FStr from Var_Parse and Var_Value 488 o spell nonexistent consistently 489 o add str_basename to reduce duplicate code 490 o compat.c: fix .ERROR_TARGET in compat -k mode 491 extract InitSignals from Compat_Run 492 extract UseShell from Compat_RunCommand 493 o cond.c: error out if an '.endif' or '.else' contain extraneous text 494 o for.c: rename ForIterate to ForReadMore 495 o hash.c: clean up hash function for HashTable 496 o lst.c: rename Vector.priv_cap to cap 497 o main.c: remove constant parameter from MakeMode 498 o make.c: use symbolic time for 0 in Make_Recheck 499 extract MakeChildren from MakeStartJobs 500 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 501 fix error message for .info/.warning/.error without argument 502 extract Var_Undef from ParseDirective 503 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 504 rename mode constants for ParseGetLine to be more expressive 505 reduce debugging details in Parse_SetInput 506 fix line numbers in .for loops 507 split ParseGetLine into separate functions 508 fix garbled output for failed shell command 509 var.c: remove redundant assignment in ApplyModifier_SysV 510 error out on unknown variable modifiers at parse time 511 remove wrong error message for indirect modifier in lint mode 512 extract ApplySingleModifier from ApplyModifiers 513 use FStr for memory management in Var_SetWithFlags 514 extract SetVar from Var_SetWithFlags 515 use FStr in VarNew 516 extract string functions from ApplyModifier_To 517 error out if .undef has not exactly 1 argument 518 extract Var_DeleteVar from Var_Delete 519 extract Var_Undef from ParseDirective 520 clean up memory management for expanding variable expressions 521 5222020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 523 524 * avoid %zu 525 526 * lst.c: avoid anonymous union 527 528 * VERSION (_MAKE_VERSION): 20201212 529 Merge with NetBSD make, pick up 530 o more unit tests 531 o inline Targ_Ignore and Targ_Silent 532 o split JobFlags into separate fields 533 o remove const from function parameters (left overs from refactoring) 534 o eliminate boolean argument of Var_Export 535 o make API of Buf_Init simpler 536 o rename ParseRunOptions to ParseCommandFlags 537 o replace *line with line[0] 538 o compat.c: fix wrong exit status for multiple failed main targets 539 refactor Compat_Run to show the error condition more clearly 540 don't make .END if the main targets already failed (-k mode) 541 fix exit status in -k mode if a dependency fails 542 o for.c: clean up Buf_AddEscaped in .for loops 543 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 544 make Job_Touch simpler 545 refactor JobFinish 546 rename Shell.exitFlag to errFlag 547 move Job.xtraced to ShellWriter 548 make printing of shell commands independent from the job 549 rename shell flags in struct Shell 550 extract JobOpenTmpFile from JobStart 551 rename RunFlags to CommandFlags 552 split various Job.* into separate fields 553 rename commandShell to shell 554 extract InitShellNameAndPath from Shell_Init 555 replace signal handling macros with local functions 556 replace macro MESSAGE with local function 557 parse.c: error out on null bytes in makefiles 558 error out on misspelled directives 559 rename IFile.nextbuf to readMore 560 fix undefined behavior in ParseEOF 561 str.c: remove redundant call to strlen in Str_Words 562 var.c: error out on misspelled .unexport-env 563 error out on misspelled .export directives 564 extract ExportVars from Var_Export 565 extract ExportVarsExpand from Var_Export 566 eliminate boolean argument of Var_Export 567 fix undefined behavior when exporting ${:U } 568 rename Var_ExportVars to Var_ReexportVars 569 rename Var_Export1 to ExportVar 570 5712020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 572 573 * VERSION (_MAKE_VERSION): 20201206 574 Merge with NetBSD make, pick up 575 o more unit tests 576 o inline macros for debug logging 577 o use consistent variable names for list nodes 578 o define constants for enum zero-values 579 o dir.c: use fixed format for debug output of the directory cache 580 remove Dir_InitDir 581 o lst.c: inline Lst_Enqueue, Vector_Done 582 o meta.c: remove unused parameter from meta_needed 583 o parse.c: rename parse functions 584 o suff.c: extract ExpandChildrenRegular from ExpandChildren 585 o targ.c: don't concatenate identifiers in Targ_PrintType 586 o var.c: remove comment decoration 587 extract UnexportVars from Var_UnExport 588 extract GetVarnamesToUnexport from Var_UnExport 589 extract UnexportEnv from Var_UnExport 590 extract UnexportVar from Var_UnExport 591 move CleanEnv to UnexportVars 592 replace pointer comparisons with enum 593 add FStr to var.c to make memory handling simpler 594 use FStr in Var_UnExport 595 move type definitions in var.c to the top 596 extract FreeEnvVar from Var_Parse 597 extract ShuffleStrings from ApplyModifier_Order 598 5992020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 600 601 * VERSION (_MAKE_VERSION): 20201130 602 Merge with NetBSD make, pick up 603 o add unit tests for META MODE 604 o reduce memory allocation for dirSearchPath, GNode.parents, 605 GNode.children, OpenDirs 606 o reduce pointer indirection for GNode.cohorts and 607 GNode.implicitParents 608 o remove pointer indirection from GNode.commands 609 o inline Lst_ForEachUntil in meta mode 610 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 611 clean up memory management for CachedDirs 612 fix the reference count of dotLast going negative 613 add debug logging for OpenDirs_Done 614 extract CacheNewDir from Dir_AddDir 615 add debug logging for reference counting of CachedDir 616 rename some Dir functions to SearchPath 617 o job.c: rename some global variables 618 o main.c: reduce memory allocation in ReadBuiltinRules 619 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 620 CmdOpts.makefiles 621 Add .MAKE.UID and .MAKE.GID 622 o make.c: reduce memory allocation for/in toBeMade, 623 Make_ProcessWait, Make_ExpandUse 624 o meta.c: reduce memory allocation in meta_oodate 625 o parse.c: reduce memory allocations for parsing dependencies and 626 targets 627 o suff.c: reduce memory allocation in suffix handling 628 6292020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 630 631 * VERSION (_MAKE_VERSION): 20201124 632 Merge with NetBSD make, pick up 633 o .MAKE.{UID,GID} represent uid and gid running make. 634 o fix error handling for .BEGIN and .END dependency in -k mode 635 o fix missing "Stop." after failed .END node in -k mode 636 o use properly typed comparisons in boolean contexts 637 o replace a few HashTable_CreateEntry with HashTable_Set 638 o add HashSet type 639 o compat.c: split Compat_Make into smaller functions 640 extract DebugFailedTarget from Compat_RunCommand 641 o dir.c: refactor Dir_UpdateMTime 642 migrate CachedDir.files from HashTable to HashSet 643 o make.c: add high-level API for GNode.made 644 6452020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 646 647 * VERSION (_MAKE_VERSION): 20201122 648 Merge with NetBSD make, pick up 649 o rename GNode.context to vars 650 o suff.c: cleanup and refactor 651 rename some functions and vars to better reflect usage 652 add high-level API for CandidateSearcher 653 o targ.c: add more debug logging for suffix handling 654 o more unit tests 655 o add debug logging for setting and resetting the main target 656 6572020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 658 659 * VERSION (_MAKE_VERSION): 20201117 660 Merge with NetBSD make, pick up 661 o fix some unit-tests when .SHELL is dash 662 o rename Targ_NewGN to GNode_New 663 o make some GNode functions const 664 o main.c: call Targ_Init before Var_Init 665 cleanup PrintOnError, getTmpdir and ParseBoolean 666 o var.c: fix error message of failed :!cmd! modifier 667 6682020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 669 670 * VERSION (_MAKE_VERSION): 20201114 671 Merge with NetBSD make, pick up 672 o replace a few HashTable_CreateEntry with HashTable_Set 673 o clean up cached_stats 674 o rename DEFAULT to defaultNode 675 o remove redundant struct make_stat 676 o cond.c: in lint mode, check for ".else <cond>" 677 use bitset for IfState 678 replace large switch with if-else in Cond_EvalLine 679 o job.c: clean up JobExec, JobStart, JobDoOutput 680 use stderr for error message about failed touch 681 clean up Job_Touch 682 replace macro DBPRINTF with JobPrintln 683 rename JobState to JobStatus 684 main.c: switch cache for realpath from GNode to HashTable 685 clean up Fatal 686 clean up InitDefSysIncPath 687 use progname instead of hard-coded 'make' in warning 688 rename Main_SetVarObjdir to SetVarObjdir 689 make.1: document the -S option 690 make.c: fix debug output for GNode details 691 use symbolic names in debug output of GNodes 692 6932020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 694 695 * configure.in: fix --with-force-machine-arch 696 697 * VERSION (_MAKE_VERSION): 20201112 698 Merge with NetBSD make, pick up 699 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 700 checks in InitObjdir. Explicit .OBJDIR target always allows 701 read-only directory. 702 o cond.c: clean up Cond_EvalLine 703 7042020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 705 706 * VERSION (_MAKE_VERSION): 20201111 707 Merge with NetBSD make, pick up 708 o more unit-tests 709 o style cleanup 710 remove redundant parentheses from sizeof operator 711 replace character literal 0 with '\0'. 712 replace pointer literal 0 with NULL. 713 remove redundant parentheses. 714 replace (expr & mask) == 0 with !(expr & mask). 715 use strict typing in conditions of the form !var 716 o rename Make_OODate to GNode_IsOODate 717 o rename Make_TimeStamp to GNode_UpdateYoungestChild 718 o rename Var_Set_with_flags to Var_SetWithFlags 719 o rename dieQuietly to shouldDieQuietly 720 o buf.c: make API of Buf_Init simpler 721 o compat.c: clean up Compat_Make, Compat_RunCommand, 722 CompatDeleteTarget and CompatInterrupt 723 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 724 clean up CondParser_Comparison 725 o main.c: rename getBoolean and s2Boolean 726 rename MAKEFILE_PREFERENCE for consistency 727 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 728 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 729 replace emptyString with allocated empty string 730 error out on unclosed expressions after the colon 731 7322020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 733 734 * VERSION (_MAKE_VERSION): 20201101 735 Merge with NetBSD make, pick up 736 o negate NoExecute to GNode_ShouldExecute 737 o job.c: rename JobMatchShell to FindShellByName 738 extract EscapeShellDblQuot from JobPrintCommand 739 extract ParseRunOptions from JobPrintCommand 740 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 741 treat malformed :range, :ts and :[...] as errors 742 add tests for the variable modifiers :[words] and :range 743 7442020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * VERSION (_MAKE_VERSION): 20201031 747 Merge with NetBSD make, pick up 748 o format #include directives consistently 749 o do not look up local variables like .TARGET anywhere else 750 o main.c: Main_SetObjdir is first called for curdir which may be 751 readonly 752 reduce the scope where recursive expressions are detected 753 remove redundant :tl from getBoolean 754 clean up mkTempFile 755 o meta.c: simplify memory allocation in meta_create and meta_oodate 756 o parse.c: extract loadedfile_mmap from loadfile 757 o trace.c: document possible undefined behavior with .CURDIR 758 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 759 rename ismeta to is_shell_metachar 760 remove debug logging for the :Q variable modifier 761 rename VarIsDynamic to VarnameIsDynamic 762 use consistent parameter order in varname parsing functions 763 extract ParseVarnameLong from Var_Parse 764 extract ParseVarnameShort from Var_Parse 765 fix type of ParseModifierPart parameter delim 766 extract IsEscapedModifierPart from ParseModifierPart 767 clean up ModifyWords 768 add test for combining the :@ and :? variable modifiers 769 7702020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 771 772 * VERSION (_MAKE_VERSION): 20201030 773 Merge with NetBSD make, pick up 774 o change char * to void * in Var_Value 775 o make iterating over HashTable simpler 776 o rename VAR_CMD to VAR_CMDLINE 777 o cond.c: clean up is_separator 778 fix parse error in string literal in conditional 779 o main.c: do not use objdir that is not writable 780 in lint mode, exit with error status on errors 781 o parse.c: clean up StrContainsWord 782 fix out-of-bounds pointer in ParseTrackInput 783 o var.c: rename Str_SYSVMatch and its parameters 784 remove unsatisfiable conditions in Var_Set_with_flags 785 document where the variable name is expanded 786 fix documentation for VARP_SUB_ONE 787 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 788 document VAR_READONLY 789 prevent appending to read-only variables 790 extract MayExport from Var_Export1 791 remove redundant evaluations in VarFind 792 replace VarFindFlags with a simple Boolean 793 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 794 7952020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 796 797 * VERSION (_MAKE_VERSION): 20201028 798 Merge with NetBSD make, pick up 799 o rename defIncPath to defSysIncPath 800 o initialize all CmdOpts fields 801 o lst.c: inline Vector_Get 802 o main.c: refactor main extract 803 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 804 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 805 InitDefIncPath,CmdOpts_Init,UnlimitFiles 806 o parse.c: merge curFile into includes 807 rename predecessor to order_pred 808 sort ParseSpecial alphabetically 809 remove unused, undocumented .NOEXPORT 810 rename ParseSpecial enum values consistently 811 rename some fields of struct IFile 812 8132020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 814 815 * VERSION (_MAKE_VERSION): 20201026 816 Merge with NetBSD make, pick up 817 o group the command line options and arguments into a struct 818 o rename GNode.cmgn to youngestChild 819 o rename hash functions to identify the type name 820 o negate OP_NOP and rename it to GNode_IsTarget 821 o add GNode_Path to access the path of a GNode 822 o remove macros MIN and MAX 823 o remove unused Lst_Find and Lst_FindFrom 824 o arch.c: and make Arch_FindLib simpler 825 clean up code layout 826 make Arch_ParseArchive simpler 827 o cond.c: inline CondFindStrMatch into FuncMake 828 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 829 omit trailing space in debug output for expanding file patterns 830 refactor DirMatchFiles 831 document that the SearchPath of Dir_FindFile may be NULL 832 remove UNCONST from Dir_Expand 833 inline DirFindName 834 o for.c: clean up code for handling .for loops 835 o hash.c: print hash in debug log with fixed width 836 clean up hash table functions 837 reduce amount of string hashing 838 o job.c: refactor JobDeleteTarget 839 use proper enum constants for aborting 840 convert result of JobStart from macros to enum 841 convert abort reason macros to enum 842 rework Job_CheckCommands to reduce indentation 843 rename Shell fields 844 add field names in declaration of DEFSHELL_CUSTOM 845 convert JobState and JobFlags to enum types 846 move handling of the "..." command to JobPrintCommands 847 o lst.c: clean up 848 refactor LstNodeNew 849 remove Lst_Open, Lst_Next, Lst_Close 850 remove code for circular lists from Lst_Next 851 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 852 /dev/null or anything starting with "no" 853 convert macros for debug flags into enum 854 o make.c: inline Lst_Copy in Make_ExpandUse 855 o meta.c: inline Lst_Find in meta_oodate 856 make Lst_RemoveIf simpler in meta_oodate 857 o parse.c: convert error level for Parse_Error to an enum 858 o suff.c: properly terminate debug output with newline 859 add more details to DEBUG_SRC log 860 replace Dir_CopyDir with Dir_CopyDirSearchPath 861 don't modify GNode name while rebuilding the suffix graph 862 o var.c: reduce duplicate code in VarFind 863 8642020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 865 866 * VERSION (_MAKE_VERSION): 20201022 867 Merge with NetBSD make, pick up 868 o more refactoring and simplification to reduce code size 869 o var.c: extract CanonicalVarname from VarFind 870 o make.c: extract UpdateImplicitParentsVars from Make_Update 871 o main.c: extract PrintVar from doPrintVars 872 extract HandlePWD from main 873 o lst.c: inline simple Lst getters 874 remove unused Lst_ForEach 875 o job.c: move struct Shell from job.h to job.c 876 o more unit tests 877 8782020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 879 880 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 881 8822020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * VERSION (_MAKE_VERSION): 20201018 885 Merge with NetBSD make, pick up 886 o remove USE_IOVEC 887 o rename some Hash_* apis to Hash* 888 o replace execError with execDie 889 o rename Lst_Init to Lst_New 890 o add tags to enum types 891 o rename Stack to Vector 892 o parse.c: more refactoring 893 o unit-tests: make some tests use line buffered stdout 894 o unit-tests/Makefile: in meta mode do not make all tests depend on 895 Makefile, it isn't necessary. 896 8972020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 898 899 * main.c: check for CTL_HW being defined. 900 * unit-tests/Makefile: ensure export tests output are POSIX compliant 901 disable opt-debug-jobs test until it works on ubuntu 902 903 * VERSION (_MAKE_VERSION): 20201010 904 Merge with NetBSD make, pick up 905 o dir.c: remove pathname limit for Dir_FindHereOrAbove 906 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 907 o main.c: extract init_machine and init_machine_arch from main 908 allow to disable debug logging options 909 o parse.c: enable format string truncation warnings 910 extract parsing of sources from ParseDoDependency 911 split ParseDoSrc into smaller functions 912 hide implementation details from Parse_DoVar 913 clean up parsing of variable assignments 914 split Parse_DoVar into manageable pieces 915 don't modify the given line during Parse_DoVar 916 fix out-of-bounds memory access in Parse_DoVar 917 fix parsing of the :sh assignment modifier 918 o var.c: rework memory allocation for the name of variables 919 extract ApplyModifier_Literal into separate function 920 in lint mode, reject modifiers without delimiter 921 do not export variable names starting with '-' 922 o fix double-free bug in -DCLEANUP mode 923 o more cleanup to enable higher warnings level 924 o more unit tests 925 9262020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 927 928 * VERSION (_MAKE_VERSION): 20201002 929 Merge with NetBSD make, pick up 930 o dir.c: use hash table for looking up open directories by name 931 o main.c: clean up option handling 932 o parse.c: add missing const for Parse_AddIncludeDir 933 o var.c: ApplyModifier_To, update pp in each branch 934 o remove redundant function prototypes 935 o more unit tests 936 9372020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 938 939 * VERSION (_MAKE_VERSION): 20201001 940 Merge with NetBSD make, pick up 941 o compat.c: comment about "..." 942 9432020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 944 945 * VERSION (_MAKE_VERSION): 20200930 946 Merge with NetBSD make, pick up 947 o job.c: split Job.jobPipe into 2 separate fields 948 replace Lst_Open with direct iteration 949 o lst.c: remove redundant assertions 950 o targ.c: replace Lst_Open with direct iteration 951 o var.c: fix bug in evaluation of indirect variable modifiers 952 extract ApplyModifier_Quote into separate function 953 o make debug logging simpler 954 9552020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 956 957 * VERSION (_MAKE_VERSION): 20200927 958 Merge with NetBSD make, pick up 959 o parse.c: ensure parse errors result in 'stopped in' message. 960 o compat.c: make parameter of Compat_RunCommand const 961 o main.c: extract InitVarTarget from main 962 o parse.c: rename ParseFinishLine to FinishDependencyGroup 963 refactor ParseDoDependency 964 o var.c: Var_Subst no longer returns string result 965 rename Var_ParsePP back to Var_Parse 966 in lint mode, improve error handling for undefined variables 967 extract ParseVarname from Var_Parse 968 o rename Lst_ForEach to Lst_ForEachUntil 969 o inline Lst_ForEachUntil in several cases 970 o clean up API for finding and creating GNodes 971 o fix assertion failure in -j mode with .END node 972 o inline and remove LstNode_Prev and LstNode_Next 973 o use fine-grained type names for lists and their nodes 974 o more unit tests 975 9762020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 977 978 * VERSION (_MAKE_VERSION): 20200911 979 Merge with NetBSD make, pick up 980 o cond.c: split EvalComparison into smaller functions 981 reorder parameters of condition parsing functions 982 reduce code size in CondParser_Eval 983 rename CondGetString to CondParser_String 984 add CondLexer_SkipWhitespace 985 group the condition parsing state into a struct 986 in CondGetString, replace repeated Buf_Add with Buf_AddStr 987 o migrate Var_Parse to Var_ParsePP 988 o add wrappers around ctype.h functions 989 o lst.c: use a stack instead of a list for the nested include path 990 o more unit tests 991 9922020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 993 994 * make-bootstrap.sh.in: adjust object list 995 9962020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 997 998 * VERSION (_MAKE_VERSION): 20200902 999 Merge with NetBSD make, pick up 1000 o use make_stat to ensure no confusion over valid fields 1001 returned by cached_stat 1002 o var.c: make VarQuote const-correct 1003 o add unit tests for .for 1004 10052020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 1006 1007 * VERSION (_MAKE_VERSION): 20200901 1008 Merge with NetBSD make, pick up 1009 o rename Hash_Table fields 1010 o make data types in Dir_HasWildcards more precise 1011 10122020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 1013 1014 * VERSION (_MAKE_VERSION): 20200831 1015 Merge with NetBSD make, pick up 1016 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 1017 o lst.c: Lst_Open renable assert that list isn't open 1018 o unit test for .TARGET dependent flags 1019 o var.c: fix aliasing bug in VarUniq 1020 o more unit tests for :u 1021 10222020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 1023 1024 * VERSION (_MAKE_VERSION): 20200830 1025 Merge with NetBSD make, pick up 1026 o allow for strict type checking for Boolean 1027 o Var_Parse never returns NULL 1028 o Var_Subst never returns NULL 1029 o Lst_Find now takes boolean match function 1030 o rename Lst_Memeber to Lst_FindDatum 1031 o rename LstNode functions to match their type 1032 o rename GNode.iParents to implicitParents 1033 o fix assertion failure for .SUFFIXES in archives 1034 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 1035 remove unreachable code from CompatRunCommand 1036 o main.c: simplify getBoolean 1037 o stc.c: replace brk_string with simpler Str_Words 1038 o suff.c: add debug macros 1039 10402020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 1041 1042 * VERSION (_MAKE_VERSION): 20200828 1043 Merge with NetBSD make, pick up 1044 o lst.c: inline LstIsValid and LstNodeIsValid 1045 o remove trailing S from Lst function names after migration complete 1046 o more comment cleanup/clarification 1047 o suff.c: clean up suffix handling 1048 o more unit tests 1049 10502020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 1051 1052 * VERSION (_MAKE_VERSION): 20200826 1053 Merge with NetBSD make, pick up 1054 o enum.c: distinguish between bitsets containing flags and 1055 ordinary enums 1056 o var.c: fix error message for ::!= modifier with shell error 1057 o fix bugs in -DCLEANUP mode 1058 10592020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 1060 1061 * VERSION (_MAKE_VERSION): 20200824 1062 Merge with NetBSD make, pick up 1063 o in debug mode, print GNode details in symbols 1064 10652020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 1066 1067 * VERSION (_MAKE_VERSION): 20200823 1068 Merge with NetBSD make, pick up 1069 o lst.c: more asserts, 1070 make args to Lst_Find match others. 1071 o var.c: pass flags to VarAdd 1072 o arch.c: use Buffer 1073 o str.c: brk_string return size_t for nwords 1074 o more unit tests 1075 10762020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 1077 1078 * VERSION (_MAKE_VERSION): 1079 Merge with NetBSD make, pick up 1080 o var.c: support for read-only variables eg .SHELL 1081 being the shell used to run scripts. 1082 o lst.c: more simplification 1083 o more documentation and style cleanup 1084 o more unit tests 1085 o ensure unit-test/Makefile is run by TEST_MAKE 1086 o reduce duplication of header inclusion 1087 10882020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 1089 1090 * VERSION (_MAKE_VERSION): 20200821 1091 Merge with NetBSD make, pick up 1092 o lst.c: revert invalid assertion - but document it 1093 o dir.c: split Dir_Init into two functions 1094 10952020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 1096 1097 * lst.c: needs inttypes.h on Linux 1098 1099 * VERSION (_MAKE_VERSION): 20200820 1100 Merge with NetBSD make, pick up 1101 o make.1: clarify some passages 1102 o var.c: more cleanup, clarify comments 1103 o make_malloc.c: remove unreachable code 1104 o cond.c: make CondGetString easier to debug 1105 o simplify list usage 1106 o unit-tests: more 1107 11082020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 1109 1110 * VERSION (_MAKE_VERSION): 20200816 1111 Merge with NetBSD make, pick up 1112 o refactor unit-tests to be more fine grained 1113 not all tests moved yet 1114 11152020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 1116 1117 * VERSION (_MAKE_VERSION): 20200814 1118 Merge with NetBSD make, pick up 1119 o more str_concat variants 1120 o more enums for flags 1121 o var.c: cleanup for higher warnings level 1122 11232020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 1124 1125 * VERSION (_MAKE_VERSION): 20200810 1126 Merge with NetBSD make, pick up 1127 o more unit tests 1128 o general comment and style cleanup 1129 11302020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 1131 1132 * VERSION (_MAKE_VERSION): 20200808 1133 Merge with NetBSD make, pick up 1134 o enum.[ch]: streamline, enums for use in flags and debug output 1135 o cond.c: cleanup 1136 o var.c: reduce duplicate code for modifiers 1137 debug logging for Var_Parse 1138 more detailed debug output 1139 o more unit tests 1140 11412020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 1142 1143 * unit-tests/Makefile: -r for recursive and include Makefile.inc 1144 so I can run tests in meta mode 1145 supress extra noise if in meta mode 1146 1147 * VERSION (_MAKE_VERSION): 20200806 1148 Merge with NetBSD make, pick up 1149 o parse.c: remove VARE_WANTRES for LINT 1150 we just want to check parsing (for now). 1151 11522020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 1153 1154 * VERSION (_MAKE_VERSION): 20200805 1155 Merge with NetBSD make, pick up 1156 o make.1: Rework the description of dependence operators 1157 11582020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 1159 1160 * VERSION (_MAKE_VERSION): 20200803 1161 Merge with NetBSD make, pick up 1162 o revert some C99 usage, for max portability 1163 o unit-tests/lint 1164 11652020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 1166 1167 * VERSION (_MAKE_VERSION): 20200802 1168 Merge with NetBSD make, pick up 1169 o more unit tests 1170 11712020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 1172 1173 * Remove NetBSD specific plumbing from unit-tests/Makefile 1174 1175 * VERSION (_MAKE_VERSION): 20200801 1176 Merge with NetBSD make, pick up 1177 o make Var_Value return const 1178 o size_t for buf sizes 1179 o optimize some buffer operations - avoid strlen 1180 11812020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 1182 1183 * VERSION (_MAKE_VERSION): 20200731 1184 Merge with NetBSD make, pick up 1185 o var.c: fix undefinded behavior for incomplete :t modifier 1186 fixes unit-test/moderrs on Ubuntu 1187 o parse.c: When parsing variable assignments other than := 1188 if DEBUG(LINT) test substition of value, so we get a file and 1189 line number in the resulting error. 1190 o dir.c: fix parsing of nested braces in dependency lines 1191 add unit-tests 1192 11932020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 1194 1195 * VERSION (_MAKE_VERSION): 20200730 1196 Merge with NetBSD make, pick up 1197 o var.c: minor cleanup 1198 o unit-tests: more tests to improve code coverage 1199 12002020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 1201 1202 * VERSION (_MAKE_VERSION): 20200728 1203 Merge with NetBSD make, pick up 1204 o var.c: more optimizations 1205 12062020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 1207 1208 * VERSION (_MAKE_VERSION): 20200726 1209 Merge with NetBSD make, pick up 1210 o collapse lsd.lib into lst.c - reduce code size and allow inlining 1211 o lots of function comment updates 1212 o var.c: more optimizations 1213 o make return of Var_Parse const 1214 12152020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 1216 1217 * VERSION (_MAKE_VERSION): 20200720 1218 Merge with NetBSD make, pick up 1219 o DEBUG_HASH report stats at end and tone down the noise 1220 o var.c: each flag type gets its own prefix. 1221 move SysV string matching to var.c 1222 make ampersand in ${VAR:from=to&} an ordinary character 1223 cleanup and simplify implementation of modifiers 1224 o make.1: move documentation for assignment modifiers 1225 12262020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 1227 1228 * VERSION (_MAKE_VERSION): 20200718 1229 Merge with NetBSD make, pick up 1230 o DEBUG_HASH to see how well the hash tables are working 1231 12322020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 1233 1234 * bsd.after-import.mk: make sure we update unit-tests/Makefile 1235 12362020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 1237 1238 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 1239 1240 * VERSION (_MAKE_VERSION): 20200710 1241 Merge with NetBSD make, pick up 1242 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 1243 o meta.c: target flagged .META is out-of-date if meta file missing 1244 12452020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 1246 1247 * VERSION (_MAKE_VERSION): 20200709 1248 Merge with NetBSD make, pick up 1249 o cond.c: fix for compare_expression when doEval=0 1250 o unit-tests/Makefile: rework 1251 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 1252 12532020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 1254 1255 * VERSION (_MAKE_VERSION): 20200704 1256 Merge with NetBSD make, pick up 1257 (most of this by rillig@) 1258 o lots of style and white-space cleanup 1259 o lots more unit tests for variable modifiers 1260 o simplified description of some functions 1261 o str.c: refactor Str_Match 1262 o var.c: debugging output for :@ 1263 constify VarModify parameter 1264 fix :hash modifier on 16-bit platforms 1265 remove unnecessary forward declarations 1266 refactor ApplyModifier_SysV to have less indentation 1267 simplify code for :E and :R 1268 clean up code for :H and :T 1269 refactor ApplyModifiers 1270 1271 * var.c: we need stdint.h on some platforms to get uint32_t 1272 * unit-test/Makefile: we need to supress the specific error 1273 for RE substitution error in modmisc, since it varies accross 1274 different OS. 1275 12762020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 1277 1278 * VERSION (_MAKE_VERSION): 20200702 1279 Merge with NetBSD make, pick up 1280 o var.c: more improvements to avoiding unnecessary evaluation 1281 use enums for flags 1282 o remove flags arg to Var_Set which outside of var.c is always 0 1283 12842020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 1285 1286 * VERSION (_MAKE_VERSION): 20200701 1287 Merge with NetBSD make, pick up 1288 o var.c: with change to cond.c; ensure that nested variables 1289 within a variable name are expanded. 1290 o unit-tests/varmisc.mk: test for nested varname 1291 12922020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 1293 1294 * VERSION (_MAKE_VERSION): 20200629 1295 Merge with NetBSD make, pick up 1296 o cond.c: do not eval unnecessary terms of conditionals. 1297 12982020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 1299 1300 * VERSION (_MAKE_VERSION): 20200625 1301 Merge with NetBSD make, pick up 1302 o meta.c: report error if lseek in filemon_read fails 1303 13042020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 1305 1306 * VERSION (_MAKE_VERSION): 20200622 1307 Merge with NetBSD make, pick up 1308 o dieQuietly: ignore OP_SUBMAKE as too aggressive 1309 13102020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 1311 1312 * VERSION (_MAKE_VERSION): 20200619 1313 Merge with NetBSD make, pick up 1314 o str.c: performance improvement for Str_Match for multiple '*' 1315 o dieQuietly: supress the failure output from make 1316 when failing node is a sub-make or a sibling failed. 1317 This cuts down greatly on unhelpful noise at the end of 1318 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 1319 13202020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 1321 1322 * FILES: add LICENSE to appease some packagers. 1323 This is an attempt to fairly represent the license on almost 1324 200 files, which are almost all BSD-3-Clause 1325 The few exceptions being more liberal. 1326 1327 * VERSION (_MAKE_VERSION): 20200610 1328 Merge with NetBSD make, pick up 1329 o unit test for :Or 1330 13312020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 1332 1333 * VERSION (_MAKE_VERSION): 20200606 1334 Merge with NetBSD make, pick up 1335 o make.1: cleanup 1336 1337 * Makefile: fix depends for main.o which broke MAKE_VERSION 1338 13392020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 1340 1341 * VERSION (_MAKE_VERSION): 20200605 1342 Merge with NetBSD make, pick up 1343 o dir.c: cached_stats - don't confuse stat and lstat results. 1344 o var.c: add :Or for reverse sort. 1345 13462020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1347 1348 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1349 also if --with-filemon= specifies path to filemon.h 1350 set use_filemon=dev 1351 * dirname.c: remove include of namespace.h 1352 13532020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1354 1355 * VERSION (_MAKE_VERSION): 20200517 1356 Merge with NetBSD make, pick up 1357 o modified dollar tests to avoid shell dependencies 1358 o new tests for .INCLUDEFROM 1359 13602020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1361 1362 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1363 to not depend so much on shell behavior 1364 13652020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1366 1367 * VERSION (_MAKE_VERSION): 20200510 1368 Merge with NetBSD make, pick up 1369 o unit test for dollar handling 1370 13712020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 1372 1373 * VERSION (_MAKE_VERSION): 20200506 1374 Merge with NetBSD make, pick up 1375 o str.c: empty string does not match % pattern 1376 plus unit-test changes 1377 13782020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 1379 1380 * VERSION (_MAKE_VERSION): 20200504 1381 May the 4th be with you 1382 Merge with NetBSD make, pick up 1383 o var.c: import handling of old sysV style modifier using '%' 1384 o str.c: refactor brk_string 1385 o unit-tests: add test case for lazy conditions 1386 13872020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1388 1389 * VERSION (_MAKE_VERSION): 20200418 1390 1391 * configure.in: use_makefile=no for cygwin et al. 1392 case insensitive filesystems just don't work if both 1393 makefile and Makefile exist. 1394 NOTE: bmake does not support cygwin and likely never will, 1395 but if brave souls want to try it - help them out. 1396 13972020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 1398 1399 * VERSION (_MAKE_VERSION): 20200402 1400 Merge with NetBSD make, pick up 1401 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 1402 a blank command is perfectly valid. 1403 14042020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1405 1406 * VERSION (_MAKE_VERSION): 20200330 1407 Merge with NetBSD make, pick up 1408 o make.h: extern debug_file 1409 14102020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1411 1412 * VERSION (_MAKE_VERSION): 20200318 1413 Merge with NetBSD make, pick up 1414 o meta.c: meta_oodate, check for corrupted meta file 1415 earlier and more often. 1416 14172020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1418 1419 * VERSION (_MAKE_VERSION): 20200220 1420 14212020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1422 1423 * boot-strap: unset MAKEFLAGS 1424 14252020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1426 1427 * VERSION (_MAKE_VERSION): 20200212 1428 * meta.c: meta_compat_parent check for USE_FILEMON 1429 patch from Soeren Tempel 1430 14312020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1432 1433 * VERSION: 20200205 1434 Merge with NetBSD make, pick up 1435 o meta.c: fix compat mode, need to call meta_job_output() 1436 o job.c: extra fds for meta mode not needed if using filemon_dev 1437 14382020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1439 1440 * VERSION: 20200122 1441 Merge with NetBSD make, pick up 1442 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1443 returns FALSE. 1444 14452020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1446 1447 * VERSION: 20200121 1448 Merge with NetBSD make, pick up 1449 o filemon/filemon_{dev,ktrace}.c: allow selection of 1450 filemon implementation. filemon_dev.c uses the kernel module 1451 while filemon_ktrace.c leverages the fktrace api available in 1452 NetBSD. filemon_ktrace.c can hopefully form the basis for 1453 adding support for other tracing mechanisms such as strace on 1454 Linux. 1455 o meta.c: when target is out-of-date per normal make rules 1456 record value of .OODATE in meta file. 1457 14582019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1459 1460 * VERSION: 20190926 1461 Merge with NetBSD make, pick up 1462 o parse.c: don't pass NULL to realpath(3) 1463 some versions cannot handle it. 1464 14652019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1466 1467 * VERSION: 20190409 1468 Merge with NetBSD make, pick up 1469 o parse.c: ParseDoDependency: free paths rather than assert 1470 14712018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1472 1473 * VERSION: 20181222 1474 1475 * configure.in: add --without-makefile to avoid generating 1476 makefile and make-bootstrap.sh 1477 1478 * include Makefile.inc if it exists 1479 1480 * Use Makefile and Makefile.config.in in unit-tests 1481 so we can use just: make obj && make && make test 1482 when bmake is already available. 1483 We add --without-makefile to CONFIGURE_ARGS in this case. 1484 1485 * tweak bsd.after-import.mk (captures Makefile.config etc 1486 after import to FreeBSD for example) to cope with all the above. 1487 14882018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1489 1490 * VERSION: 20181221 1491 Merge with NetBSD make, pick up 1492 o parse.c: ParseVErrorInternal use .PARSEDIR 1493 and apply if relative, and then use .PARSEFILE 1494 for consistent result. 1495 14962018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1497 1498 * VERSION: 20181220 1499 Merge with NetBSD make, pick up 1500 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1501 is relative 1502 o var.c: avoid SEGFAULT in .unexport-env 1503 when MAKELEVEL is not set 1504 15052018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1506 1507 * VERSION: 20181216 1508 Merge with NetBSD make, pick up 1509 o fix for unit-tests/varquote.mk on Debian 1510 15112018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1512 1513 * VERSION: 20180919 1514 Merge with NetBSD make, pick up 1515 o var.c: add :q 1516 o dir.c: cleanup caching of stats 1517 15182018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1519 1520 * Makefile.config.in: use += where it makes sense. 1521 15222018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1523 1524 * VERSION: 20180512 1525 Merge with NetBSD make, pick up 1526 o job.c: skip polling job token pipe 1527 15282018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1529 1530 * VERSION: 20180405 1531 Merge with NetBSD make, pick up 1532 o parse.c: be more cautious about detecting depenency line 1533 rather than sysV style include. 1534 15352018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 1536 1537 * VERSION: 20180222 1538 Merge with NetBSD make, pick up 1539 o parse.c: avoid calling sysconf for every call to loadfile 1540 15412018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1542 1543 * VERSION: 20180218 1544 Merge with NetBSD make, pick up 1545 o var.c: Var_Set handle NULL value anytime. 1546 15472018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1548 1549 * VERSION: 20180212 1550 Merge with NetBSD make, pick up 1551 o parse.c: do not treat .info as warning with -W 1552 15532017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1554 1555 * VERSION: 20171207 1556 Merge with NetBSD make, pick up 1557 o var.c: Var_Append use Var_Set if var not previously set 1558 so that VAR_CMD is handled correctly. 1559 Add a suitable unit-test. 1560 15612017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1562 1563 * VERSION (_MAKE_VERSION): 20171126 1564 1565 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 1566 since AC_TRY_COMPILE puts input inside main() 1567 which upsets modern compilers. 1568 15692017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1570 1571 * VERSION: 20171118 1572 Merge with NetBSD make, pick up 1573 o var.c: do not append to variable set on command line 1574 add unit-test to catch this. 1575 15762017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1577 1578 * VERSION: 20171028 1579 Merge with NetBSD make, pick up 1580 o main.c: ignore empty MAKEOBJDIR 1581 1582 * Makefile.config.in: 1583 make @prefix@ @machine*@ and @default_sys_path@ defaults. 1584 15852017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1586 1587 * VERSION: 20171005 1588 1589 * unit-tests/dotwait.mk: redirect stderr through pipe for more 1590 consistent result on some platforms. 1591 15922017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1593 1594 * machine.sh: entry for AIX 1595 15962017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1597 1598 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 1599 to a file that can be included by configure as well as make. 1600 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 1601 16022017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 1603 1604 * Makefile (_MAKE_VERSION): 20170810 1605 Merge with NetBSD make, pick up 1606 o meta.c: if target is in subdir we only need subdir name in 1607 meta_name. 1608 16092017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 1610 1611 * Makefile (_MAKE_VERSION): 20170720 1612 Merge with NetBSD make, pick up 1613 o compat.c: pass SIGINT etc onto child and wait for it to exit 1614 before we self-terminate. 1615 16162017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1617 1618 * Makefile (_MAKE_VERSION): 20170711 1619 forgot to update after merge on 20170708 ;-) 1620 o main.c: refactor to reduce size of main function. 1621 add -v option to always fully expand values. 1622 o meta.c: ensure command output in meta file has ending newline 1623 even when filemon not being used. 1624 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 1625 pathname via ':L' since any ':' in pathname breaks that. 1626 Instead set a '${.p.}' to pathname in the target context and 1627 use that. 1628 16292017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1630 1631 * Makefile (_MAKE_VERSION): 20170510 1632 Merge with NetBSD make, pick up 1633 o main.c: Main_SetObjdir: ensure buf2 is in scope 1634 16352017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1636 1637 * Makefile (_MAKE_VERSION): 20170505 1638 see mk/ChangeLog 1639 16402017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1641 1642 * parse.c: not everyone has stdint.h 1643 16442017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1645 1646 * Makefile (_MAKE_VERSION): 20170501 1647 see mk/ChangeLog 1648 16492017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1650 1651 * Makefile (_MAKE_VERSION): 20170421 1652 Merge with NetBSD make, pick up 1653 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 1654 16552017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1656 1657 * Makefile (_MAKE_VERSION): 20170420 1658 Merge with NetBSD make, pick up 1659 o main.c: only use -C arg "as is" if it contains no 1660 relative component. 1661 16622017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1663 1664 * Makefile (_MAKE_VERSION): 20170418 1665 Merge with NetBSD make, pick up 1666 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 1667 16682017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1669 1670 * Makefile (_MAKE_VERSION): 20170417 1671 Merge with NetBSD make, pick up 1672 o fixes a number of coverity complaints 1673 - check return value of fseek, fcntl 1674 - plug memory leak in Dir_FindFile, Var_LoopExpand, 1675 JobPrintCommand, ParseTraditionalInclude 1676 - use bmake_malloc() where NULL is not tollerated 1677 - use MAKE_ATTR_UNUSED rather that kludges like 1678 return(unused ? 0 : 0) 1679 - use purge_cached_realpaths() rather than abuse cached_realpath() 1680 16812017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1682 1683 * Makefile (_MAKE_VERSION): 20170413 1684 Merge with NetBSD make, pick up 1685 o main.c: when setting .OBJDIR ignore '$' in paths. 1686 1687 * job.c: use MALLOC_OPTIONS to set malloc_options. 1688 16892017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1690 1691 * Makefile (_MAKE_VERSION): 20170411 1692 Merge with NetBSD make, pick up 1693 o str.c: Str_Match: allow [^a-z] to behave as expected. 1694 16952017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1696 1697 * Makefile (_MAKE_VERSION): 20170326 1698 Merge with NetBSD make, pick up 1699 o main.c: purge relative paths from realpath cache when .OBJDIR 1700 is changed. 1701 17022017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1703 1704 * Makefile (_MAKE_VERSION): 20170311 1705 Merge with NetBSD make, pick up 1706 o main.c: only use -C arg "as is" if it starts with '/'. 1707 17082017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1709 1710 * Makefile (_MAKE_VERSION): 20170301 1711 Merge with NetBSD make, pick up 1712 o main.c: use -C arg "as is" rather than getcwd() 1713 if they identify the same directory. 1714 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 1715 17162017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 1717 1718 * Makefile (_MAKE_VERSION): 20170201 1719 Merge with NetBSD make, pick up 1720 o var.c: allow :_=var and avoid use of special context. 1721 17222017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1723 1724 * Makefile (_MAKE_VERSION): 20170130 1725 Merge with NetBSD make, pick up 1726 o var.c: add :range and :_ 1727 o main.c: partially initialize Dir_* before MainParseArgs() 1728 can be called. 1729 If -V, skip Main_ExportMAKEFLAGS() 1730 17312017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 1732 1733 * Makefile (_MAKE_VERSION): 20170114 1734 Merge with NetBSD make, pick up 1735 o var.c: allow specifying the utc value used by :{gm,local}time 1736 17372016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1738 1739 * Makefile (_MAKE_VERSION): 20161212 1740 Merge with NetBSD make, pick up 1741 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 1742 17432016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 1744 1745 * Makefile (_MAKE_VERSION): 20161209 1746 Merge with NetBSD make, pick up 1747 o main.c: cleanup setting of .OBJDIR 1748 o parse.c: avoid coredump from (var)=val 1749 17502016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1751 1752 * Makefile (_MAKE_VERSION): 20161126 1753 Merge with NetBSD make, pick up 1754 o make.c: Make_OODate: report src node name if path not set 1755 17562016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1757 1758 * Makefile (_MAKE_VERSION): 20160926 1759 Merge with NetBSD make, pick up 1760 o support for .DELETE_ON_ERROR: (remove targets that fail) 1761 17622016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1763 1764 * Makefile MAN: tweak .Dt to match ${PROG} 1765 17662016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 1767 1768 * Makefile (_MAKE_VERSION): 20160818 1769 its a neater number; pick up whitespace fixes to man page. 1770 17712016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 1772 1773 * Makefile (_MAKE_VERSION): 20160817 1774 Merge with NetBSD make, pick up 1775 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 1776 so we can call it before adding entries to missingFiles. 1777 Thus we do not track files we have been told to ignore. 1778 17792016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1780 1781 * Makefile (_MAKE_VERSION): 20160815 1782 Merge with NetBSD make, pick up 1783 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 1784 pathnames, and skip if the expansion is empty. 1785 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 1786 17872016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1788 1789 * Makefile (_MAKE_VERSION): 20160812 1790 Merge with NetBSD make, pick up 1791 o meta.c: remove all missingFiles entries that match a deleted 1792 dir. 1793 o main.c: set .ERROR_CMD if possible. 1794 17952016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1796 1797 * Makefile (_MAKE_VERSION): 20160606 1798 Merge with NetBSD make, pick up 1799 o dir.c: extend mtimes cache to others via cached_stat() 1800 18012016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1802 1803 * Makefile (_MAKE_VERSION): 20160604 1804 Merge with NetBSD make, pick up 1805 o meta.c: missing filemon data is only relevant if we read a 1806 meta file. 1807 Also do not return oodate for a missing metafile if gn->path 1808 points to .CURDIR 1809 18102016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1811 1812 * Makefile (_MAKE_VERSION): 20160602 1813 Merge with NetBSD make, pick up 1814 o cached_realpath(): avoid hitting filesystem more than necessary. 1815 o meta.c: refactor need_meta decision, add knobs for 1816 missing meta file and filemon data wrt out-of-datedness. 1817 18182016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 1819 1820 * Makefile (_MAKE_VERSION): 20160528 1821 1822 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 1823 18242016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1825 1826 * Makefile (_MAKE_VERSION): 20160512 1827 Merge with NetBSD make, pick up 1828 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 1829 this is useful for gcov builds. 1830 o propagate errors from filemon(4). 1831 18322016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 1833 1834 * Makefile (_MAKE_VERSION): 20160509 1835 Merge with NetBSD make, pick up 1836 o remove use of non-standard types u_int etc. 1837 o meta.c: apply realpath() before matching against metaIgnorePaths 1838 18392016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1840 1841 * Makefile (_MAKE_VERSION): 20160404 1842 Merge with NetBSD make, pick up 1843 o allow makefile to set .MAKE.JOBS 1844 1845 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 1846 18472016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1848 1849 * Makefile (_MAKE_VERSION): 20160315 1850 Merge with NetBSD make, pick up 1851 o fix handling of archive members 1852 18532016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 1854 1855 * Makefile (_MAKE_VERSION): rename variable to avoid interference 1856 with checks for ${MAKE_VERSION} 1857 18582016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1859 1860 * Makefile (MAKE_VERSION): 20160310 1861 Merge with NetBSD make, pick up 1862 o meta.c: treat missing Read file same as Write, incase we Delete it. 1863 18642016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1865 1866 * Makefile (MAKE_VERSION): 20160307 1867 Merge with NetBSD make, pick up 1868 o var.c: fix :ts\nnn to be octal by default. 1869 o meta.c: meta_finish() to cleanup memory. 1870 18712016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1872 1873 * Makefile (MAKE_VERSION): 20160226 1874 Merge with NetBSD make, pick up 1875 o meta.c: allow meta file for makeDepend if makefiles want it. 1876 18772016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 1878 1879 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 1880 for backwards compatability. 1881 1882 * Makefile (MAKE_VERSION): 20160220 1883 Merge with NetBSD make, pick up 1884 o var.c: add knob to control handling of '$$' in := 1885 18862016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1887 1888 * Makefile (MAKE_VERSION): 20160218 1889 Merge with NetBSD make, pick up 1890 o var.c: add .export-literal allows us to fix sys.clean-env.mk 1891 post the changes to Var_Subst. 1892 Var_Subst now takes flags, and does not consume '$$' in := 1893 18942016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 1895 1896 * Makefile (MAKE_VERSION): 20160217 1897 Merge with NetBSD make, pick up 1898 o var.c: preserve '$$' in := 1899 o parse.c: add .dinclude for handling included 1900 makefile like .depend 1901 19022015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 1903 1904 * Makefile (MAKE_VERSION): 20151220 1905 Merge with NetBSD make, pick up 1906 o suff.c: re-initialize suffNull when clearing suffixes. 1907 19082015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 1909 1910 * Makefile (MAKE_VERSION): 20151201 1911 Merge with NetBSD make, pick up 1912 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 1913 o meta.c: meta_oodate: use lstat(2) for checking link target 1914 in case it is a symlink. 1915 o var.c: avoid calling brk_string and Var_Export1 with empty 1916 strings. 1917 19182015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1919 1920 * Makefile (MAKE_VERSION): 20151126 1921 Merge with NetBSD make, pick up 1922 o parse.c: ParseTrackInput don't access beyond 1923 end of old value. 1924 19252015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 1926 1927 * Makefile (MAKE_VERSION): 20151022 1928 1929 * Add support for BSD/OS which lacks inttypes.h 1930 and really needs sys/param.h for sys/sysctl.h 1931 also 'type' is not a shell builtin. 1932 1933 * var.c: eliminate uint32_t and need for inttypes.h 1934 1935 * main.c: PrintOnError flush stdout before run .ERROR 1936 1937 * parse.c: cope with _SC_PAGESIZE not being defined. 1938 1939 19402015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1941 1942 * Makefile (MAKE_VERSION): 20151020 1943 Merge with NetBSD make, pick up 1944 o var.c: fix uninitialized var 1945 19462015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1947 1948 * var.c: the conditional expressions used with ':?' can be 1949 expensive, if already discarding do not evaluate or expand 1950 anything. 1951 19522015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1953 1954 * Makefile (MAKE_VERSION): 20151010 1955 Merge with NetBSD make, pick up 1956 o Add Boolean wantit flag to Var_Subst and Var_Parse 1957 when FALSE we know we are discarding the result and can 1958 skip operations like Cmd_Exec. 1959 19602015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 1961 1962 * Makefile (MAKE_VERSION): 20151009 1963 Merge with NetBSD make, pick up 1964 o var.c: don't check for NULL before free() 1965 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 1966 19672015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 1968 1969 * Makefile (MAKE_VERSION): 20150910 1970 Merge with NetBSD make, pick up 1971 o main.c: with -w print Enter/Leaving messages for objdir too 1972 if necessary. 1973 o centralize shell metachar handling 1974 1975 * FILES: add metachar.[ch] 1976 19772015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1978 1979 * Makefile (MAKE_VERSION): 20150606 1980 Merge with NetBSD make, pick up 1981 o make.1: document .OBJDIR target 1982 19832015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1984 1985 * Makefile (MAKE_VERSION): 20150505 1986 Merge with NetBSD make, pick up 1987 o cond.c: be strict about lhs of comparison when evaluating .if 1988 but less so when called from variable expansion. 1989 o unit-tests/cond2.mk: test various error conditions 1990 19912015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1992 1993 * machine.sh (MACHINE): Add Bitrig 1994 patch from joerg@netbsd.org 1995 19962015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1997 1998 * Makefile (MAKE_VERSION): 20150418 1999 Merge with NetBSD make, pick up 2000 o job.c: use memmove() rather than memcpy() 2001 2002 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 2003 case, so skip it. 2004 20052015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2006 2007 * Makefile (MAKE_VERSION): 20150411 2008 bump version - only mk/ changes. 2009 20102015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2011 2012 * Makefile (MAKE_VERSION): 20150410 2013 Merge with NetBSD make, pick up 2014 o document different handling of '-' in jobs mode vs compat 2015 o fix jobs mode so that '-' only applies to whole job 2016 when shell lacks hasErrCtl 2017 o meta.c: use separate vars to track lcwd and latestdir (read) 2018 per process 2019 20202015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 2021 2022 * Makefile (MAKE_VERSION): 20150401 2023 Merge with NetBSD make, pick up 2024 o meta.c: close meta file in child 2025 2026 * Makefile: use BINDIR.bmake if set. 2027 Same for MANDIR and SHAREDIR 2028 Handy for testing release candidates 2029 in various environments. 2030 20312015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 2032 2033 * move initialization of savederr to block where it is used 2034 to avoid spurious warning from gcc5 2035 20362014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2037 2038 * Makefile (MAKE_VERSION): 20141111 2039 just a cooler number 2040 20412014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 2042 2043 * Makefile (MAKE_VERSION): 20141105 2044 Merge with NetBSD make, pick up 2045 o revert major overhaul of suffix handling 2046 and POSIX compliance - too much breakage 2047 and impossible to make backwards compatible. 2048 o we still have the new unit test structure which is ok. 2049 o meta.c ensure "-- filemon" is at start of line. 2050 20512014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 2052 2053 * configure.in: test that result of getconf PATH_MAX is numeric 2054 and discard if not. Apparently needed for Hurd. 2055 20562014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2057 2058 * Makefile (MAKE_VERSION): 20140830 2059 Merge with NetBSD make, pick up 2060 o major overhaul of suffix handling 2061 o improved POSIX compliance 2062 o overhauled unit-tests 2063 20642014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2065 2066 * Makefile (MAKE_VERSION): 20140620 2067 Merge with NetBSD make, pick up 2068 o var.c return varNoError rather than var_Error for ::= modifiers. 2069 20702014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 2071 2072 * Makefile (MAKE_VERSION): 20140522 2073 Merge with NetBSD make, pick up 2074 o var.c detect some parse errors. 2075 20762014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 2077 2078 * Fix spelling errors - patch from Pedro Giffuni 2079 20802014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 2081 2082 * Makefile (MAKE_VERSION): 20140214 2083 Merge with NetBSD make, pick up 2084 o .INCLUDEFROM* 2085 o use Var_Value to get MAKEOBJDIR[PREFIX] 2086 o reduced realloc'ign in brk_string. 2087 * configure.in: add a check for compiler supporting __func__ 2088 20892014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2090 2091 * boot-strap: ignore mksrc=none 2092 20932014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 2094 2095 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 2096 20972014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2098 2099 * Makefile (MAKE_VERSION): 20140101 2100 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 2101 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 2102 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 2103 Hurd) 2104 * configure.in: Add AC_PREREQ and check for 2105 sysctl; patch from Andrew Shadura andrewsh at debian.org 2106 21072013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2108 2109 * Makefile (MAKE_VERSION): 20131010 2110 * lose the const from arg to systcl to avoid problems on older BSDs. 2111 21122013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2113 2114 * Makefile (MAKE_VERSION): 20131001 2115 Merge with NetBSD make, pick up 2116 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 2117 hw.machine_arch if necessary. 2118 o meta.c: meta_oodate - need to look at src of Link and target 2119 of Move as well. 2120 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 2121 provide __arraycount() if needed. 2122 21232013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 2124 2125 * Makefile (MAKE_VERSION): 20130904 2126 Merge with NetBSD make, pick up 2127 o Add VAR_INTERNAL context, so that internal setting of 2128 MAKEFILE does not override value set by makefiles. 2129 21302013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 2131 2132 * Makefile (MAKE_VERSION): 20130902 2133 Merge with NetBSD make, pick up 2134 o CompatRunCommand: only apply shellErrFlag when errCheck is true 2135 21362013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2137 2138 * Makefile (MAKE_VERSION): 20130828 2139 Merge with NetBSD make, pick up 2140 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 2141 o Call Job_SetPrefix() from Job_Init() so makefiles have 2142 opportunity to set .MAKE.JOB.PREFIX 2143 21442013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 2145 2146 * Makefile (MAKE_VERSION): 20130730 2147 Merge with NetBSD make, pick up 2148 o Allow suppression of --- job -- tokens by setting 2149 .MAKE.JOB.PREFIX empty. 2150 21512013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 2152 2153 * Makefile (MAKE_VERSION): 20130716 2154 Merge with NetBSD make, pick up 2155 o number of gmake compatibility tweaks 2156 -w for gmake style entering/leaving messages 2157 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 2158 handle MAKEFLAGS containing only letters. 2159 o when overriding a GLOBAL variable on the command line, 2160 delete it from GLOBAL context so -V doesn't show the wrong 2161 value. 2162 21632013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 2164 2165 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 2166 2167 * Makefile (MAKE_VERSION): 20130706 2168 Merge with NetBSD make, pick up 2169 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 2170 true so that CompatRunCommand() can use it, to ensure 2171 consistent behavior with jobs mode. 2172 o use MAKE_LEVEL_ENV to define the variable to propagate 2173 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 2174 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 2175 paths to ignore. 2176 21772013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2178 2179 * Makefile (MAKE_VERSION): 20130604 2180 Merge with NetBSD make, pick up 2181 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 2182 to avoid leaking descriptors. 2183 21842013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 2185 2186 * Makefile (MAKE_VERSION): 20130528 2187 Merge with NetBSD make, pick up 2188 o var.c: cleanup some left-overs in VarHash() 2189 21902013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2191 2192 * Makefile (MAKE_VERSION): 20130520 2193 generate manifest from component FILES rather than have to 2194 update FILES when mk/FILES changes. 2195 21962013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2197 2198 * Makefile (MAKE_VERSION): 20130518 2199 Merge with NetBSD make, pick up 2200 o suff.c: don't skip all processsing for .PHONY targets 2201 else wildcard srcs do not get expanded. 2202 o var.c: expand name of variable to delete if necessary. 2203 22042013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2205 2206 * Makefile (MAKE_VERSION): 20130330 2207 Merge with NetBSD make, pick up 2208 o meta.c: refine the handling of .OODATE in commands. 2209 Rather than suppress command comparison for the entire script 2210 as though .NOMETA_CMP had been used, only suppress it for the 2211 one command line. 2212 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 2213 suppress comparison of a command without otherwise affecting it. 2214 o make.1: document that 2215 22162013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 2217 2218 * Makefile (MAKE_VERSION): 20130321 2219 yes, not quite right but its a cooler number. 2220 Merge with NetBSD make, pick up 2221 o parse.c: fix ParseGmakeExport to be portable 2222 and add a unit-test. 2223 * meta.c: call meta_init() before makefiles are read and if built 2224 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 2225 this let's makefiles test for support. 2226 Call meta_mode_init() to process .MAKE.MODE. 2227 22282013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 2229 2230 * Makefile (MAKE_VERSION): 20130305 2231 Merge with NetBSD make, pick up 2232 o run .STALE: target when a dependency from .depend is missing. 2233 o job.c: add Job_RunTarget() for the above and .BEGIN 2234 22352013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 2236 2237 * Makefile (MAKE_VERSION): 20130303 2238 Merge with NetBSD make, pick up 2239 o main.c: set .MAKE.OS to utsname.sysname 2240 o job.c: more checks for read and poll errors 2241 o var.c: lose VarChangeCase() saves 4% time 2242 22432013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 2244 2245 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 2246 want to use MAKEOBJDIR 2247 22482013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 2249 2250 * Merge with NetBSD make, pick up 2251 o make.1: more info on how shell commands are handled. 2252 o job.c,main.c: detect write errors to job pipes. 2253 22542013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 2255 2256 * Makefile (MAKE_VERSION): 20130123 2257 Merge with NetBSD make, pick up 2258 o meta.c: if script uses .OODATE and meta_oodate() decides 2259 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 2260 o var.c: in debug output indicate which variabale modifiers 2261 apply to. 2262 o remove Check_Cwd logic the makefiles have been fixed. 2263 22642012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 2265 2266 * makefile.in: add a simple makefile for folk who insist on 2267 ./configure; make; make install 2268 it just runs boot-strap 2269 * include mk/* to accommodate the above 2270 * boot-strap: re-work to accommodate the above 2271 mksrc defaults to $Mydir/mk 2272 allow op={configure,build,install,clean,all} 2273 add options to facilitate install 2274 * Makefile.config.in: just the bits set by configure 2275 * Makefile: bump version to 20121212 2276 abandon Makefile.in (NetBSD Makefile) 2277 leverage mk/* instead 2278 * configure.in: ensure srcdir is absolute 2279 22802012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 2281 2282 * Makefile.in (MAKE_VERSION): 20121111 2283 fix generation of bmake.cat1 2284 22852012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 2286 2287 * Makefile.in (MAKE_VERSION): 20121109 2288 Merge with NetBSD make, pick up 2289 o make.c: MakeBuildChild: return 0 so search continues if a 2290 .ORDER dependency is detected. 2291 o unit-tests/order: test the above 2292 22932012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2294 2295 * Makefile.in (MAKE_VERSION): 20121102 2296 Merge with NetBSD make, pick up 2297 o cond.c: allow cond_state[] to grow. 2298 In meta mode with a very large tree, we can hit the limit 2299 while processing dirdeps. 2300 23012012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 2302 2303 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 2304 23052012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2306 2307 * Makefile.in (MAKE_VERSION): 20121010 2308 o protect syntax that only bmake parses correctly. 2309 o remove auto setting of FORCE_MACHINE, use configure's 2310 --with-force-machine=whatever if that is desired. 2311 23122012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 2313 2314 * Makefile.in: do not lose history from make.1 when generating bmake.1 2315 23162012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 2317 2318 * Makefile.in (MAKE_VERSION): 20121007 2319 Merge with NetBSD make, pick up 2320 o compat.c: ignore empty commands - same as jobs mode. 2321 o make.1: document meta chars that cause use of shell 2322 23232012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 2324 2325 * Makefile.in (MAKE_VERSION): bump version to 20120911 2326 * bsd.after-import.mk: include Makefile.inc early and allow it to 2327 override PROG 2328 23292012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 2330 2331 * Makefile.in (MAKE_VERSION): bump version to 20120831 2332 Merge with NetBSD make, pick up 2333 o cast sizeof() to int for comparison 2334 o minor make.1 tweak 2335 23362012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 2337 2338 * Makefile.in (MAKE_VERSION): bump version to 20120830 2339 Merge with NetBSD make, pick up 2340 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 2341 o debug flag -dV causes -V to show raw value regardless. 2342 23432012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2344 2345 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2346 gets SRCTOP set. 2347 23482012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2349 2350 * Makefile.in (MAKE_VERSION): bump version to 20120704 2351 Merge with NetBSD make, pick up 2352 o Job_ParseShell should call Shell_Init if it has been 2353 previously called. 2354 * Makefile.in: set USE_META based on configure result. 2355 also .PARSEDIR is safer indicator of bmake. 2356 23572012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2358 2359 * Makefile.in: bump version to 20120626 2360 ensure CPPFLAGS is in CFLAGS 2361 * meta.c: avoid nested externs 2362 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2363 23642012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2365 2366 * Makefile.in (MAKE_VERSION): bump version to 20120620 2367 Merge with NetBSD make, pick up 2368 o make_malloc.c: avoid including make_malloc.h again 2369 2370 * Makefile.in: avoid bmake only syntax or protect with 2371 .if defined(.MAKE.LEVEL) 2372 * bsd.after-import.mk: replace .-include with .sinclude 2373 ensure? SRCTOP gets a value 2374 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 2375 23762012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 2377 2378 * Makefile.in (MAKE_VERSION): bump version to 20120612 2379 Merge with NetBSD make, pick up 2380 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 2381 for greater portability. 2382 o unit-tests/forloop: check that .for works as expected wrt 2383 number of times and with "quoted strings". 2384 23852012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2386 2387 * Makefile.in (MAKE_VERSION): bump version to 20120606 2388 Merge with NetBSD make, pick up 2389 o compat.c: use kill(2) rather than raise(3). 2390 * configure.in: look for sys/dev/filemon 2391 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 2392 and pass BOOTSTRAP_XTRAS to boot-strap. 2393 23942012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2395 2396 * Makefile.in (MAKE_VERSION): bump version to 20120604 2397 Merge with NetBSD make, pick up 2398 o util.c and var.c share same var for tracking if environ 2399 has been reallocated. 2400 o util.c provide getenv with setenv. 2401 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 2402 when the shell actively strips .MAKE.* from the environment. 2403 We still refer to the variable always as .MAKE.LEVEL 2404 * util.c fix bug in findenv() was finding prefix of name. 2405 * compat.c: re-raising SIGINT etc after running .INTERRUPT 2406 results in more reliable termination of all activity on many 2407 platforms. 2408 24092012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2410 2411 * Makefile.in (MAKE_VERSION): bump version to 20120602 2412 Merge with NetBSD make, pick up 2413 o for.c: handle quoted items in .for list 2414 24152012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 2416 2417 * Makefile.in (MAKE_VERSION): bump version to 20120530 2418 Merge with NetBSD make, pick up 2419 o compat.c: ignore empty command. 2420 24212012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2422 2423 * Makefile.in (MAKE_VERSION): bump version to 20120524 2424 * FILES: add bsd.after-import.mk: 2425 A simple means of integrating bmake into a BSD build system. 2426 24272012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2428 2429 * Makefile.in (MAKE_VERSION): bump version to 20120520 2430 Merge with NetBSD make, pick up 2431 o increased limit for nested conditionals. 2432 24332012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2434 2435 * Makefile.in (MAKE_VERSION): bump version to 20120518 2436 Merge with NetBSD make, pick up 2437 o use _exit(2) in signal hanlder 2438 o Don't use the [dir] cache when building nodes that might have 2439 changed since the last exec. 2440 o Avoid nested extern declaration warnings. 2441 24422012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2443 2444 * meta.c (fgetLine): avoid %z - not portable. 2445 * parse.c: Since we moved include of sys/mman.h 2446 and def's of MAP_COPY etc. we got dups from a merge. 2447 24482012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2449 2450 * Makefile.in (MAKE_VERSION): bump version to 20120420 2451 Merge with NetBSD make, pick up 2452 o restore duplicate supression in .MAKE.MAKEFILES 2453 runtime saving can be significant. 2454 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2455 consumption up to 20%. 2456 24572012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2458 2459 * Makefile.in (MAKE_VERSION): bump version to 20120420 2460 Merge with NetBSD make, pick up 2461 o remove duplicate supression in .MAKE.MAKEFILES 2462 o improved dir cache behavior 2463 o gmake'ish export command 2464 24652012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2466 2467 * Makefile.in (MAKE_VERSION): bump version to 20120325 2468 Merge with NetBSD make, pick up 2469 o fix parsing of :[#] in conditionals. 2470 24712012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2472 2473 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2474 since some systems cannot cope with .Nx <version> 2475 24762011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2477 2478 * Makefile.in (MAKE_VERSION): bump version to 20111111 2479 Merge with NetBSD make, pick up 2480 o debug output for .PARSEDIR and .PARSEFILE 2481 24822011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2483 2484 * Makefile.in (MAKE_VERSION): bump version to 20111010 2485 24862011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2487 2488 * boot-strap: check for an expected file in the dirs we look for. 2489 * make-bootstrap.sh: pass on LDSTATIC 2490 24912011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2492 2493 * Makefile.in (MAKE_VERSION): bump version to 20111001 2494 Merge with NetBSD make, pick up 2495 o ensure .PREFIX is set for .PHONY 2496 and .TARGET set for .PHONY run via .END 2497 o __dead used consistently 2498 24992011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2500 2501 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2502 25032011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2504 2505 * Makefile.in (MAKE_VERSION): bump version to 20110905 2506 Merge with NetBSD make, pick up 2507 o meta_oodate: ignore makeDependfile 2508 25092011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2510 2511 * Makefile.in (MAKE_VERSION): bump version to 20110828 2512 Merge with NetBSD make, pick up 2513 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2514 as SILENT if a .meta file is created 2515 25162011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2517 2518 * Makefile.in (MAKE_VERSION): bump version to 20110818 2519 Merge with NetBSD make, pick up 2520 o in meta mode, if target flagged .META a missing .meta file 2521 means target is out-of-date 2522 o fixes for gcc 4.5 warnings 2523 o simplify job printing code 2524 25252011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 2526 2527 * Makefile.in (MAKE_VERSION): bump version to 20110808 2528 Merge with NetBSD make, pick up 2529 o do not touch OP_SPECIAL targets when doing make -t 2530 25312011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 2532 2533 * Makefile.in (MAKE_VERSION): bump version to 20110622 2534 Merge with NetBSD make, pick up 2535 o meta_oodate detect corrupted .meta file and declare oodate. 2536 * configure.in: add check for setsid 2537 25382011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 2539 2540 * Merge with NetBSD make, pick up 2541 o unit-tests/modts now works on MirBSD 2542 25432011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2544 2545 * Makefile.in (MAKE_VERSION): bump version to 20110606 2546 Merge with NetBSD make, pick up 2547 o ApplyModifiers: when we parse a variable which is not 2548 the entire modifier string, or not followed by ':', do not 2549 consider it as containing modifiers. 2550 o loadfile: ensure newline at end of mapped file. 2551 25522011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2553 2554 * Makefile.in (MAKE_VERSION): bump version to 20110505 2555 Merge with NetBSD make, pick up 2556 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 2557 of make's control. In meta mode, any generated file within 2558 said bailiwick, which is found to be missing, causes current 2559 target to be out-of-date. 2560 25612011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2562 2563 * Makefile.in (MAKE_VERSION): bump version to 20110411 2564 Merge with NetBSD make, pick up 2565 o when long modifiers fail to match, check sysV style. 2566 - add a test case 2567 25682011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2569 2570 * Makefile.in (MAKE_VERSION): bump version to 20110410 2571 Merge with NetBSD make, pick up 2572 o :hash - cheap 32bit hash of value 2573 o :localtime, :gmtime - use value as format string for strftime. 2574 25752011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2576 2577 * Makefile.in (MAKE_VERSION): bump version to 20110330 2578 mostly because its a cooler version. 2579 Merge with NetBSD make, pick up 2580 o NetBSD tags for meta.[ch] 2581 o job.c call meta_job_finish() after meta_job_error(). 2582 o meta_job_error() should call meta_job_finish() to ensure 2583 .meta file is closed, and safe to copy - if .ERROR target wants. 2584 meta_job_finish() is safe to call repeatedly. 2585 25862011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2587 2588 * unit-tests/modts: use printf if it is a builtin, 2589 to save us from MirBSD 2590 2591 * Makefile.in (MAKE_VERSION): bump version to 20110329 2592 Merge with NetBSD make, pick up 2593 o fix for use after free() in CondDoExists(). 2594 o meta_oodate() report extra commands and return earlier. 2595 25962011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 2597 2598 * Makefile.in (MAKE_VERSION): bump version to 20110327 2599 Merge with NetBSD make, pick up 2600 o meta.c, if .MAKE.MODE contains curdirOk=yes 2601 allow creating .meta files in .CURDIR 2602 * boot-strap (TOOL_DIFF): aparently at least on linux distro 2603 formats the output of 'type' differently - so eat any "()" 2604 26052011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 2606 2607 * Makefile.in (MAKE_VERSION): bump version to 20110306 2608 Merge with NetBSD make, pick up 2609 o meta.c, only do getcwd() once 2610 26112011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 2612 2613 * Makefile.in (MAKE_VERSION): bump version to 20110305 2614 Merge with NetBSD make, pick up 2615 o correct sysV substitution handling of empty lhs and variable 2616 o correct exists() check for dir with trailing / 2617 o correct handling of modifiers for non-existant variables 2618 during evaluation of conditionals. 2619 o ensure MAP_FILE is defined. 2620 o meta.c use curdir[] now exported by main.c 2621 26222011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 2623 2624 * Makefile.in (MAKE_VERSION): bump version to 20110225 2625 Merge with NetBSD make, pick up 2626 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 2627 makefiles have been read. 2628 o fix example of :? modifier in man page. 2629 26302011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 2631 2632 * Makefile.in (MAKE_VERSION): bump version to 20110214 2633 Merge with NetBSD make, pick up 2634 o meta.c handle realpath() failing when generating meta file 2635 name. 2636 2637 * sigcompat.c: convert to ansi so we can use higher warning levels. 2638 2639 26402011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 2641 2642 * Makefile.in (MAKE_VERSION): bump version to 20110207 2643 Merge with NetBSD make, pick up 2644 o fix for bug in meta mode. 2645 26462011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2647 2648 * parse.c: SunOS 5.8 at least does not have MAP_FILE 2649 26502011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2651 2652 * Makefile.in (MAKE_VERSION): bump version to 20110101 2653 Merge with NetBSD make, pick up 2654 o use mmap(2) if available, for reading makefiles 2655 26562010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 2657 2658 * Makefile.in (MAKE_VERSION): bump version to 20101215 2659 Merge with NetBSD make, pick up 2660 o ensure meta_job_error() does not report a previous .meta file 2661 as being culprit. 2662 26632010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 2664 2665 * Makefile.in (MAKE_VERSION): bump version to 20101210 2666 Merge with NetBSD make, pick up 2667 o meta_oodate: track cwd per process, and only consider target 2668 out-of-date if missing file is outside make's CWD. 2669 Ignore files in /tmp/ etc. 2670 o to ensure unit-tests results match, need to control LC_ALL 2671 as well as LANG. 2672 o fix for parsing bug in var.c 2673 26742010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2675 2676 * Makefile.in (MAKE_VERSION): bump version to 20101126 2677 Merge with NetBSD make, pick up 2678 o if stale dependency is an IMPSRC, search via .PATH 2679 o meta_oodate: if a referenced file is missing, target is 2680 out-of-date. 2681 o meta_oodate: if a target uses .OODATE in its commands, 2682 it (.OODATE) needs to be recomputed. 2683 o keep a pointer to youngest child node, rather than just its 2684 mtime. 2685 26862010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2687 2688 * Makefile.in (MAKE_VERSION): bump version to 20101101 2689 26902010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2691 2692 * machine.sh: like os.sh, 2693 allow for uname -p producing useless drivel 2694 26952010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 2696 2697 * boot-strap: document configure knobs for meta and filemon. 2698 2699 * Makefile.in (MAKE_VERSION): bump version to 20100911 2700 Merge with NetBSD make, pick up 2701 o meta.c - meta mode 2702 2703 * make-bootstrap.sh.in: handle meta.c 2704 * configure.in: add knobs for use_meta and filemon_h 2705 also, look for dirname, str[e]sep and strlcpy 2706 * util.c: add simple err[x] and warn[x] 2707 27082010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2709 2710 * boot-strap (TOOL_DIFF): set this to ensure tests use 2711 the same version of diff that configure tested 2712 2713 * Makefile.in (MAKE_VERSION): bump version to 20100808 2714 Merge with NetBSD make, pick up 2715 o in jobs mode, when we discover we cannot make something, 2716 call PrintOnError before exit. 2717 27182010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 2719 2720 * Makefile.in (MAKE_VERSION): bump version to 20100806 2721 Merge with NetBSD make, pick up 2722 o formatting fixes for ignored errors 2723 o ensure jobs are cleaned up regardless of where wait() was called. 2724 27252010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2726 2727 * Makefile.in (MAKE_VERSION): bump version to 20100618 2728 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 2729 27302010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2731 2732 * Makefile.in (MAKE_VERSION): bump version to 20100616 2733 Merge with NetBSD make, pick up 2734 o man page update 2735 o call PrintOnError from JobFinish when we detect an error we 2736 are not ignoring. 2737 27382010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2739 2740 * Makefile.in (MAKE_VERSION): bump version to 20100606 2741 Merge with NetBSD make, pick up 2742 o man page update 2743 27442010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 2745 2746 * Makefile.in (MAKE_VERSION): bump version to 20100605 2747 Merge with NetBSD make, pick up 2748 o use bmake_signal() which is a wrapper around sigaction() 2749 in place of signal() 2750 o add .export-env to allow exporting variables to environment 2751 without tracking (so no re-export when the internal value is 2752 changed). 2753 27542010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2755 2756 * Makefile.in (MAKE_VERSION): bump version to 20100524 2757 Merge with NetBSD make, pick up 2758 o fix for .info et al being greedy. 2759 27602010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 2761 2762 * Makefile.in (MAKE_VERSION): bump version to 20100520 2763 Merge with NetBSD make, pick up 2764 o back to using realpath on argv[0] 2765 but only if contains '/' and does not start with '/'. 2766 27672010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2768 2769 * boot-strap: use absolute path for bmake when running tests. 2770 2771 * Makefile.in (MAKE_VERSION): bump version to 20100510 2772 Merge with NetBSD make, pick up 2773 o revert use of realpath on argv[0] 2774 too many corner cases. 2775 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 2776 27772010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2778 2779 * Makefile.in (MAKE_VERSION): bump version to 20100505 2780 Merge with NetBSD make, pick up 2781 o fix for missed SIGCHLD when compiled with SunPRO 2782 actually for bmake, defining FORCE_POSIX_SIGNALS would have 2783 done the job. 2784 27852010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 2786 2787 * Makefile.in (MAKE_VERSION): bump version to 20100430 2788 Merge with NetBSD make, pick up 2789 o fflush stdout before writing to stdout 2790 27912010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 2792 2793 * Makefile.in (MAKE_VERSION): bump version to 20100423 2794 Merge with NetBSD make, pick up 2795 o updated unit tests for Haiku (this time for sure). 2796 * boot-strap: based on patch from joerg 2797 honor --with-default-sys-path better. 2798 * boot-strap: remove mention of --with-prefix-sys-path 2799 28002010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 2801 2802 * Makefile.in (MAKE_VERSION): bump version to 20100422 2803 * Merge with NetBSD make, pick up 2804 o fix for vfork() on Darwin. 2805 o fix for bogus $TMPDIR. 2806 o set .MAKE.MODE=compat for -B 2807 o set .MAKE.JOBS=max_jobs for -j max_jobs 2808 o allow unit-tests to run without any *.mk 2809 o unit-tests/modmisc be more conservative in dirs presumed to exist. 2810 * boot-strap: ignore /usr/share/mk except on NetBSD. 2811 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 2812 ensure sort(1) behaves as expected. 2813 28142010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2815 2816 * boot-strap: add FindHereOrAbove so we can use -m .../mk 2817 28182010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2819 2820 * Makefile.in (MAKE_VERSION): bump version to 20100420 2821 * Merge with NetBSD make, pick up 2822 o fix for variable realpath() behavior. 2823 we have to stat(2) the result to be sure. 2824 o fix for .export (all) when nested vars use :sh 2825 28262010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 2827 2828 * Makefile.in (MAKE_VERSION): bump version to 20100414 2829 * Merge with NetBSD make, pick up 2830 o use realpath to resolve argv[0] (for .MAKE) if needed. 2831 o add realpath from libc. 2832 o add :tA to resolve variable via realpath(3) if possible. 2833 28342010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 2835 2836 * Makefile.in (MAKE_VERSION): bump version to 20100408 2837 * Merge with NetBSD make, pick up 2838 o unit tests for .ERROR, .error 2839 o fix for .ERROR to ensure it cannot be default target. 2840 28412010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 2842 2843 * Makefile.in (MAKE_VERSION): bump version to 20100406 2844 * Merge with NetBSD make, pick up 2845 o fix for compat mode "Error code" going to debug_file. 2846 o fix for .ALLSRC being populated twice. 2847 o support for .info, .warning and .error directives 2848 o .MAKE.MODE to control make's operational mode 2849 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 2850 name(s). 2851 o .MAKE.DEPENDFILE to control the name of the depend file 2852 o .ERROR target - run on failure. 2853 28542010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 2855 2856 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 2857 2858 * os.sh,arch.c: patch for Haiku from joerg at netbsd 2859 28602010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 2861 2862 * Makefile.in (MAKE_VERSION): bump version to 20100222 2863 * Merge with NetBSD make, pick up 2864 o better error msg for .for with mutiple inter vars 2865 2866 * boot-strap: 2867 o use make-bootstrap.sh from joerg at netbsd 2868 to avoid the need for a native make when bootstrapping. 2869 o add "" everywhere ;-) 2870 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 2871 otherwise the pre-formated version. 2872 28732010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2874 2875 * Makefile.in (MAKE_VERSION): bump version to 20100102 2876 * Merge with NetBSD make, pick up: 2877 o fix for -m .../ 2878 28792009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 2880 2881 * Makefile.in (MAKE_VERSION): bump version to 20091118 2882 * Merge with NetBSD make, pick up: 2883 o .unexport 2884 o report lines that start with '.' and should have ':' 2885 (catch typo's of .el*if). 2886 28872009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2888 2889 * configure.in: Ensure that srcdir and mksrc are absolute paths. 2890 28912009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2892 2893 * Makefile.in (MAKE_VERSION): fix version to 20091007 2894 28952009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 2896 2897 * Makefile.in (MAKE_VERSION): bump version to 200910007 2898 * Merge with NetBSD make, pick up: 2899 o fix for parsing of :S;...;...; applied to .for loop iterator 2900 appearing in a dependency line. 2901 29022009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 2903 2904 * Makefile.in (MAKE_VERSION): bump version to 20090909 2905 * Merge with NetBSD make, pick up: 2906 o fix for -C, .CURDIR and .OBJDIR 2907 * boot-strap: 2908 o allow share_dir to be set independent of prefix. 2909 o select default share_dir better when prefix ends in $HOST_TARGET 2910 o if FORCE_BSD_MK etc were set, include them in the suggested 2911 install-mk command. 2912 29132009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2914 2915 * Makefile.in (MAKE_VERSION): bump version to 20090908 2916 * Merge with NetBSD make, pick up: 2917 o .MAKE.LEVEL for recursion tracking 2918 o fix for :M scanning \: 2919 29202009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 2921 2922 * configure.in: Don't -D__EXTENSIONS__ if 2923 AC_USE_SYSTEM_EXTENSIONS says "no". 2924 29252009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 2926 2927 * Makefile.in (MAKE_VERSION): bump version to 20090826 2928 Simplify MAKE_VERSION to just the bare date. 2929 * Merge with NetBSD make, pick up: 2930 o -C directory support. 2931 o support for SIGINFO 2932 o use $TMPDIR for temp files. 2933 o child of vfork should be careful about modifying parent's state. 2934 2935 29362009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2937 2938 * Appy some patches for MiNT from David Brownlee 2939 29402009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 2941 2942 * Makefile.in (BMAKE_VERSION): bump version to 20090222 2943 * Merge with NetBSD make, pick up: 2944 o Possible null pointer de-ref in Var_Set. 2945 29462009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 2947 2948 * Makefile.in (BMAKE_VERSION): bump version to 20090204 2949 * Merge with NetBSD make, pick up: 2950 o bmake_malloc et al moved to their own .c 2951 o Count both () and {} when looking for the end of a :M pattern 2952 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 2953 o strlist.c - functions for processing extendable arrays of pointers to strings. 2954 o ClientData replaced with void *, so const void * can be used. 2955 o New debug flag C for DEBUG_CWD 2956 29572008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2958 2959 * Makefile.in (BMAKE_VERSION): bump version to 20081111 2960 Apply patch from Joerg Sonnenberge to 2961 configure.in: 2962 o remove some redundant checks 2963 o check for emlloc etc only in libutil and require the whole family. 2964 util.c: 2965 o remove [v]asprintf which is no longer used. 2966 29672008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2968 2969 * Makefile.in (BMAKE_VERSION): bump version to 20081101 2970 * Merge with NetBSD make, pick up: 2971 o util.c: avoid use of putenv() - christos 2972 29732008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2974 2975 * Makefile.in (BMAKE_VERSION): bump version to 20081030 2976 pick up man page tweaks. 2977 29782008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 2979 2980 * Makefile.in: move processing of LIBOBJS to after is definition! 2981 thus we'll have getenv.c in SRCS only if needed. 2982 2983 * make.1: add examples of how to use :? 2984 2985 * Makefile.in (BMAKE_VERSION): bump version to 20081029 2986 * Merge with NetBSD make, pick up: 2987 o fix for .END processing with -j 2988 o segfault from Parse_Error when no makefile is open 2989 o handle numeric expressions in any variable expansion 2990 o debug output now defaults to stderr, -dF to change it - apb 2991 o make now uses bmake_malloc etc so that it can build natively 2992 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 2993 29942008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 2995 2996 * Makefile.in (BMAKE_VERSION): bump version to 20080808 2997 * Merge with NetBSD make, pick up: 2998 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 2999 long lines in Makefiles 3000 o optimizations for VarQuote by joerg 3001 o fix for PR/38756: dominik: make dumps core on invalid makefile 3002 30032008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 3004 3005 * Makefile.in (BMAKE_VERSION): bump version to 20080515 3006 * Merge with NetBSD make, pick up: 3007 o fix skip setting vars in VAR_GLOBAL context, to handle 3008 cases where VAR_CMD is used for other than command line vars. 3009 30102008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 3011 3012 * boot-strap (make_version): we may need to look in 3013 $prefix/share/mk for sys.mk 3014 3015 * Makefile.in (BMAKE_VERSION): bump version to 20080514 3016 * Merge with NetBSD make, pick up: 3017 o skip setting vars in VAR_GLOBAL context, when already set in 3018 VAR_CMD which takes precedence. 3019 30202008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 3021 3022 * Makefile.in (BMAKE_VERSION): bump version to 20080330 3023 * Merge with NetBSD make, pick up: 3024 o fix for ?= when LHS contains variable reference. 3025 30262008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3027 3028 * merge some patches from NetBSD pkgsrc. 3029 3030 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 3031 the MAKSYSPATH used during bootstrap. 3032 3033 * Makefile.in (BMAKE_VERSION): bump version to 20080215 3034 * Merge with NetBSD make, pick up: 3035 o warn if non-space chars follow 'empty' in a conditional. 3036 30372008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3038 3039 * Makefile.in (BMAKE_VERSION): bump version to 20080118 3040 * Merge with NetBSD make, pick up: 3041 o consider dependencies read from .depend as optional - dsl 3042 o remember when buffer for reading makefile grows - dsl 3043 o add -dl (aka LOUD) - David O'Brien 3044 30452007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 3046 3047 * Makefile.in (BMAKE_VERSION): bump version to 20071022 3048 * Merge with NetBSD make, pick up: 3049 o Allow .PATH<suffix> to be used for .include "" 3050 3051 * boot-strap: source default settings from .bmake-boot-strap.rc 3052 30532007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 3054 3055 * Makefile.in: fix maninstall on various systems 3056 provided that our man.mk is used. 3057 For non-BSD systems we install the preformatted page 3058 into $MANDIR/cat1 3059 30602007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 3061 3062 * boot-strap: make bmake.1 too, so maninstall works. 3063 30642007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 3065 3066 * Makefile.in (BMAKE_VERSION): bump version to 20071014 3067 * Merge with NetBSD make, pick up: 3068 o revamped handling of defshell - configure no longer needs to 3069 know the content of the shells array - apb 3070 o stop Var_Subst modifying its input - apb 3071 o avoid calling ParseTrackInput too often - dsl 3072 30732007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 3074 3075 * Makefile.in (BMAKE_VERSION): bump version to 20071011 3076 * Merge with NetBSD make, pick up: 3077 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 3078 3079 * sigcompat.c: some tweaks for HP-UX 11.x based on 3080 patch from Tobias Nygren 3081 3082 * configure.in: update handling of --with-defshell to match 3083 new make behavior. --with-defshell=/usr/xpg4/bin/sh 3084 will now do what one might hope - provided the chosen shell 3085 behaves enough like sh. 3086 30872007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 3088 3089 * Makefile.in (BMAKE_VERSION): bump to 20071008 3090 * Merge with NetBSD make, pick up: 3091 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 3092 o .export/.MAKE.EXPORTED - export of variables - sjg 3093 o .MAKE.MAKEFILES - track all makefiles read - sjg 3094 o performance improvements - dsl 3095 o revamp parallel job scheduling - dsl 3096 30972006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3098 3099 * Makefile.in (BMAKE_VERSION): bump to 20060728 3100 * Merge with NetBSD make, pick up: 3101 o extra debug info during variable and cond processing - sjg 3102 o shell definition now covers newline - rillig 3103 o minor mem leak in PrintOnError - sjg 3104 31052006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3106 3107 * Makefile.in (BMAKE_VERSION): bump to 20060511 3108 * Merge with NetBSD make, pick up: 3109 o more memory leaks - coverity 3110 o possible overflow in ArchFindMember - coverity 3111 o extract variable modifier code out of Var_Parse() 3112 so it can be called recursively - sjg 3113 o unit-tests/moderrs - sjg 3114 31152006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 3116 3117 * Makefile.in (BMAKE_VERSION): bump to 20060412 3118 * Merge with NetBSD make, pick up: 3119 o fixes for some memory leaks - coverity 3120 o only read first sys.mk etc when searching sysIncPath - sjg 3121 3122 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 3123 setting ${MAKEFILE} - OBATA Akio 3124 31252006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 3126 3127 * Makefile.in (BMAKE_VERSION): bump to 20060318 3128 * Merge with NetBSD make, pick up: 3129 o cleanup of job.c to remove remote handling, distcc is more 3130 useful and this code was likely bit-rotting - dsl 3131 o fix for :P modifier - sjg 3132 * boot-strap: set default prefix to something reasonable 3133 (for me anyway). 3134 31352006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 3136 3137 * Makefile.in (BMAKE_VERSION): bump to 20060301 3138 * Merge with NetBSD make, pick up: 3139 o make .WAIT apply recursively, document and test case - apb 3140 o allow variable modifiers in a variable appear anywhere in 3141 modifier list, document and test case - sjg 3142 31432006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 3144 3145 * Makefile.in (BMAKE_VERSION): bump to 20060222 3146 * Merge with NetBSD make, pick up: 3147 o improved job token handling - dsl 3148 o SIG_DFL the correct signal before exec - dsl 3149 o more debug info during parsing - dsl 3150 o allow variable modifiers to be specified via variable - sjg 3151 * boot-strap: explain why we died if no mksrc 3152 31532005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 3154 3155 * Makefile.in (BMAKE_VERSION): bump to 20051105 3156 * configure.in: always set default_sys_path 3157 default is ${prefix}/share/mk 3158 - remove prefix_sys_path, anyone wanting more than above 3159 needs to set it manually. 3160 31612005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 3162 3163 * boot-strap: make this a bit easier for pkgsrc folk. 3164 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 3165 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 3166 31672005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 3168 3169 * Makefile.in (BMAKE_VERSION): bump to 20051102 3170 * job.c (JobFinish): fix likely ancient merge lossage 3171 fix from Todd Vierling. 3172 * boot-strap (srcdir): allow setting mksrc=none 3173 31742005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 3175 3176 * Makefile.in (BMAKE_VERSION): bump to 20051031 3177 * ranlib.h: skip on OSF too. 3178 (NetBSD PR 31864) 3179 31802005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 3181 3182 * Makefile.in (BMAKE_VERSION): bump to 20051002 3183 fix a silly typo 3184 31852005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 3186 3187 * Makefile.in (BMAKE_VERSION): bump to 20051001 3188 support for UnixWare and some other systems, 3189 based on patches from pkgsrc/bootstrap 3190 31912005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 3192 3193 * Makefile.in (BMAKE_VERSION): bump to 20050901 3194 * Merge with NetBSD make, pick up: 3195 o possible parse error causing us to wander off. 3196 31972005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 3198 3199 * Makefile.in (BMAKE_VERSION): bump to 20050606 3200 * Merge with NetBSD make, pick up: 3201 o :0x modifier for randomizing a list 3202 o fixes for a number of -Wuninitialized issues. 3203 32042005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 3205 3206 * Makefile.in (BMAKE_VERSION): bump to 20050530 3207 * Merge with NetBSD make, pick up: 3208 o Handle dependencies for .BEGIN, .END and .INTERRUPT 3209 3210 * README: was seriously out of date. 3211 32122005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 3213 3214 * Important to use .MAKE rather than MAKE. 3215 32162005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 3217 3218 * Makefile.in (BMAKE_VERSION): bump to 20050315 3219 * Merge with NetBSD make, pick up: 3220 o don't mistake .elsefoo for .else 3221 o use suffix-specific search path correctly 3222 o bunch of style nits 3223 32242004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 3225 3226 * boot-strap: 3227 o ensure that args to --src and --with-mksrc 3228 are resolved before giving them to configure. 3229 o add -o "objdir" so that builder can control it, 3230 default is $OS as determined by os.sh 3231 o add -q to suppress all the install instructions. 3232 32332004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 3234 3235 * Remove __IDSTRING() 3236 3237 * Makefile.in (BMAKE_VERSION): bump to 20040508 3238 * Merge with NetBSD make, pick up: 3239 o posix fixes 3240 - remove '-e' from compat mode 3241 - add support for '+' command-line prefix. 3242 o fix for handling '--' on command-line. 3243 o fix include in lst.lib/lstInt.h to simplify '-I's 3244 o we also picked up replacement of MAKE_BOOTSTRAP 3245 with !MAKE_NATIVE which is a noop, but possibly confusing. 3246 32472004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 3248 3249 * Makefile.in (BMAKE_VERSION): bump to 20040414 3250 * Merge with NetBSD make, pick up: 3251 o allow quoted strings on lhs of conditionals 3252 o issue warning when extra .else is seen 3253 o print line numer when errors encountered during parsing from 3254 string. 3255 32562004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 3257 3258 * Makefile.in (BMAKE_VERSION): bump to 20040220 3259 * Merge with NetBSD make, pick up: 3260 o fix for old :M parsing bug. 3261 o re-jigged unit-tests 3262 32632004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 3264 3265 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 3266 so that './bmake -f Makefile test' works. 3267 32682004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 3269 3270 * Makefile.in: (BMAKE_VERSION): bump to 20040214 3271 * Merge with NetBSD make, pick up: 3272 o search upwards for *.mk 3273 o fix for double free of var substitution buffers 3274 o use of getopt replaced with custom code, since the usage 3275 (re-scanning) isn't posix compatible. 3276 32772004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 3278 3279 * arch.c: don't include ranlib.h on ELF systems 3280 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 3281 32822004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 3283 3284 * Makefile.in (BMAKE_VERSION): bump to 20040118 3285 3286 * boot-strap (while): export vars we assign to on cmdline 3287 * unit-test/Makefile.in: ternary is .PHONY 3288 32892004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 3290 3291 * Makefile.in (BMAKE_VERSION): bump version to 20040108 3292 * Merge with NetBSD make, pick up: 3293 o fix for ternary modifier 3294 32952004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 3296 3297 * Makefile.in (BMAKE_VERSION): bump version to 20040105 3298 * Merge with NetBSD make, pick up: 3299 o fix for cond.c to handle compound expressions better 3300 o variable expansion within sysV style replacements 3301 33022003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 3303 3304 * Make portable snprintf safer - output to /dev/null first to 3305 check space needed. 3306 3307 * Makefile.in (BMAKE_VERSION): bump version to 20031222 3308 * Merge with NetBSD make, pick up: 3309 o -dg3 to show input graph when things go wrong. 3310 o explicitly look for makefiles in objdir if not found in curdir so 3311 that errors in .depend etc will be reported accurarely. 3312 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 3313 instead as it more accurately reflects the expected behavior and 3314 is more consistently implemented. 3315 o avoid use of asprintf. 3316 33172003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 3318 3319 * util.c: Add asprintf and vasprintf. 3320 3321 * Makefile.in (BMAKE_VERSION): bump version to 20030928 3322 * Merge with NetBSD make, pick up: 3323 :[] modifier - allows picking words from a variable. 3324 :tW modifier - allows treating value as one big word. 3325 W flag for :C and :S - allows treating value as one big word. 3326 33272003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 3328 3329 * Merge with NetBSD make 3330 pick up -de flag to enable printing failed command. 3331 don't skip 1st two dir entries (normally . and ..) since 3332 coda does not have them. 3333 33342003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 3335 3336 * Makefile.in (BMAKE_VERSION): bump version to 20030909 3337 * Merge with NetBSD make, pick up: 3338 - changes for -V '${VAR}' to print fully expanded value 3339 cf. -V VAR 3340 - CompatRunCommand now prints the command that failed. 3341 - several files got updated 3 clause Berkeley license. 3342 33432003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3344 3345 * boot-strap: Allow setting configure args on command line. 3346 33472003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3348 3349 * configure.in: add --with-defshell to allow sh or ksh 3350 to be selected as default shell. 3351 3352 * Makefile.in: bump version to 20030731 3353 3354 * Merge with NetBSD make 3355 Pick up .SHELL spec for ksh and associate man page changes. 3356 Also compat mode now uses the same shell specs. 3357 33582003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3359 3360 * var.c (Var_Parse): ensure delim is initialized. 3361 3362 * unit-tests/Makefile.in: use single quotes to avoid problems from 3363 some shells. 3364 3365 * makefile.boot.in: 3366 Run the unit-tests as part of the bootstrap procedure. 3367 33682003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3369 3370 * unit-tests/Makefile.in: always force complaints from 3371 ${TEST_MAKE} to be from 'make'. 3372 3373 * configure.in: add check for 'diff -u' 3374 also fix some old autoconf'isms 3375 3376 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 3377 if using GCC add -Wno-cast-qual to CFLAGS for var.o 3378 3379 * Merge with NetBSD make 3380 Pick up fix for :ts parsing error in some cases. 3381 Pick unit-tests. 3382 33832003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 3384 3385 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 3386 3387 * var.c (Var_Parse): fix bug in :ts modifier, after const 3388 correctness fixes, must pass nstr to VarModify. 3389 33902003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 3391 3392 * Makefile.in: BMAKE_VERSION switch to a date based version. 3393 We'll generally use the date of last import from NetBSD. 3394 3395 * Merge with NetBSD make 3396 Pick up fixes for const-correctness, now passes WARNS=3 on 3397 NetBSD. 3398 Pick up :ts modifier, allows controlling the separator used 3399 between words in variable expansion. 3400 34012003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 3402 3403 * FILES: include boot-strap and os.sh 3404 3405 * Makefile.in: only set WARNS if we are NetBSD, the effect on 3406 FreeBSD is known to be bad. 3407 3408 * makefile.boot.in (bootstrap): make this the default target. 3409 3410 * Makefile.in: bump version to 3.1.19 3411 3412 * machine.sh: avoid A-Z with tr as it is bound to lose. 3413 34142003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 3415 3416 * Merge with NetBSD make 3417 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3418 Plus some doc fixes. 3419 34202003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3421 3422 * Merge with NetBSD make 3423 Pick up fix for PR/1523 - don't count a library as built, if there 3424 is no way to build it 3425 3426 * Bump version to 3.1.18 3427 34282003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3429 3430 * Merge with NetBSD make 3431 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3432 appears in src list. 3433 34342003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3435 3436 * Merge with NetBSD make (mmm 10th anniversary!) 3437 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3438 pick up -X which tells us to not export VAR=val via setenv if 3439 we are already doing so via MAKEFLAGS. This saves valuable env 3440 space on systems like Darwin. 3441 set MAKE_VERSION to 3.1.17 3442 3443 * parse.c: pix up fix for suffix rules 3444 34452003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3446 3447 * Merge with NetBSD make. 3448 pick up fix for propagating -B via MAKEFLAGS. 3449 set MAKE_VERSION to 3.1.16 3450 3451 * Apply some patches from pkgsrc-bootstrap/bmake 3452 Originally by Grant Beattie <grant@netbsd.org> 3453 I may have missed some - since they are based on bmake-3.1.12 3454 34552002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3456 3457 * makefile.boot.in (bmake): update install targets for those that 3458 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3459 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3460 3461 * bmake.cat1: update the pre-formatted man page! 3462 34632002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3464 3465 * Merge with NetBSD make. 3466 pick up fix for premature free of pointer used in call 3467 to Dir_InitCur(). 3468 set MAKE_VERSION to 3.1.15 3469 34702002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3471 3472 * configure.in: determine suitable value for MKSRC. 3473 override using --with-mksrc=PATH. 3474 3475 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3476 configs(8) will use 'sun4' as an alias for 'sparc'. 3477 34782002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3479 3480 * Merge with NetBSD make. 3481 pick up ${.PATH} 3482 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3483 set MAKE_VERSION to 3.1.14 3484 add configure checks for killpg and sys/socket.h 3485 34862002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3487 3488 * tag bmake-3-1-13 3489 3490 * makefile.boot.in (bmake): use install-mk 3491 Also setup ./mk before trying to invoke bmake.boot incase we 3492 needed install-mk to create a sys.mk for us. 3493 3494 * configure.in: If we need to add -I${srcdir}/missing, make it an 3495 absolute path so that it works for lst.lib too. 3496 3497 * make.h: always include sys/cdefs.h since we provide one if the 3498 host does not. 3499 3500 * Makefile.in (install-mk): 3501 use MKSRC/install-mk which will do the right thing. 3502 use uname -p for ARCH if possible. 3503 since install-mk will setup links bsd.prog.mk -> prog.mk if 3504 needed, just .include bsd.prog.mk 3505 3506 * Merge with NetBSD make (NetBSD-1.6) 3507 Code is ansi-C only now. 3508 Bug in handling of dotLast is fixed. 3509 Can now assign .OBJDIR and make will reset its notions of life. 3510 New modifiers :tu :tl for toUpper and toLower. 3511 3512Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3513 3514 * Merge with NetBSD make 3515 pick up fix for .END failure in compat mode. 3516 pick up fix for extra va_end() in ParseVErrorInternal. 3517 3518Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3519 3520 * configure.in: for systems that have sys/cdefs.h check if it is 3521 compatible. If not, include the one under missing, but tell it to 3522 include the native one too - necessary on Linux. 3523 3524 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 3525 include_next (for gcc) to get the native sys/cdefs.h 3526 3527Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3528 3529 * job.c (JobFinish): Fix an earlier merge bug that resulted in 3530 leaking descriptors when using -jN. 3531 3532 * job.c (JobPrintCommand): See if "curdir" exists before 3533 attempting to chdir(). Doing the chdir directly in make (when in 3534 compat mode) fails silently, so let the -jN version do the same. 3535 This can happen when building kernels in an object tree and 3536 playing clever games to reset .CURDIR. 3537 3538 * Merged with NetBSD make 3539 pick up .USEBEFORE 3540 3541Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3542 3543 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 3544 3545Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3546 3547 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 3548 us not to export the iterator variable when using VAR_CMD context. 3549 3550Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3551 3552 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 3553 its the wrong "fix". 3554 3555Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3556 3557 * Redesigned export of VAR_CMD's via MAKEFLAGS. 3558 We now simply append the variable names to .MAKEOVERRIDES, and 3559 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 3560 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 3561 Apart from fixing quoting bugs in previous version, this allows us 3562 to export vars to the environment by simply doing: 3563 .MAKEOVERRIDES+= PATH 3564 Merged again with NetBSD make, but the above is the only change. 3565 3566 * configure.in: added 3567 --disable-pwd-override disable $PWD overriding getcwd() 3568 --disable-check-make-chdir disable make trying to guess 3569 when it should automatically cd ${.CURDIR} 3570 3571 * Merge with NetBSD make, changes include: 3572 parse.c (ParseDoDependency): Spot that the syntax error is 3573 caused by an unresolved cvs/rcs conflict and say so. 3574 var.c: most of Var* functions now take a ctxt as 1st arg. 3575 now does variable substituion on rhs of sysv style modifiers. 3576 3577 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 3578 is now done here. We append the name='value' to .MAKEOVERRIDES 3579 rather than directly into MAKEFLAGS as this allows a Makefile to 3580 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 3581 very similar mechanism. Note that in adding name='value' to 3582 .MAKEOVERRIDES we do the moral equivalent of: 3583 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 3584 3585Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3586 3587 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 3588 3589 * Merged with NetBSD make 3590 make -dx can now be used to run commands via sh -x 3591 better error messages on exec failures. 3592 3593Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3594 3595 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 3596 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 3597 MACHINE etc otherwise they propagate from the previous bmake. 3598 3599 * configure.in (machine): allow --with-machine=generic to make 3600 configure use machine.sh to set MACHINE. 3601 3602 * job.c (JobInterrupt): convert to using WAIT_T and friends. 3603 3604 * Makefile.in: mention in bmake.1 that we use autoconf. 3605 3606 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 3607 3608Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3609 3610 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 3611 as that rather defeats the usefulness of ${MAKEFILE}. 3612 3613 * main.c (MainParseArgs): append command line variable assignments 3614 to MAKEFLAGS so that they get propagated to child make's. 3615 Apparently this is required POSIX behaviour? Its useful anyway. 3616 3617Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3618 3619 * compat.c (CompatRunCommand): don't use perror() since stdio may 3620 cause problems in child of vfork(). 3621 3622 * compat.c, main.c: Call PrintOnError() when we are going to bail. 3623 This routine prints out the .curdir where we stopped and will also 3624 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 3625 3626 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 3627 :@ expansion. 3628 3629 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 3630 3631 * Added RCSid's for the files we've touched. 3632 3633Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3634 3635 * configure.in: Thanks to some clues from mdb@juniper.net, 3636 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 3637 as well as what ends up in _PATH_DEFSYSPATH. We now have: 3638 3639 --with-machine=MACHINE explicitly set MACHINE 3640 --with-force-machine=MACHINE set FORCE_MACHINE 3641 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 3642 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 3643 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 3644 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 3645 3646 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 3647 3648 * makefile: added a pathetically simple makefile to drive 3649 bootstrapping. Running configure by hand is more useful. 3650 3651 * Makefile.in: added MAKE_VERSION, and reworked things to be less 3652 dependent on NetBSD bsd.*.mk 3653 3654 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 3655 _PATH_OBJDIRPREFIX for those that don't want a default. 3656 construct _PATH_DEFSYSPATH from the info we get from configure. 3657 3658 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 3659 if MAKE_VERSION is defined. 3660 3661 * compat.c: when we bail, print out the .CURDIR we were in. 3662 3663Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3664 3665 * Merged with NetBSD make 3666 3667 * var.c: fixed a bug in the handling of the modifier :P 3668 if the node as found but the path was null, we segfault trying to 3669 duplicate it. 3670 3671Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3672 3673 * Merged with NetBSD make 3674 3675 * make.c: Make_OODate's test for a library out of date was using 3676 cmtime where it should have used mtime (my bug). 3677 3678 * compat.c: Use perror() to tell us what really went wrong when we 3679 cannot exec a command. 3680 3681Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3682 3683 * Merged with NetBSD make 3684 3685Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3686 3687 * Merged with NetBSD make 3688 3689Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3690 3691 * Merged with NetBSD make 3692 3693Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3694 3695 * Merged with NetBSD make 3696 3697Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3698 3699 * util.c: don't provide signal() since we use sigcompat.c 3700 3701 * Makefile.in: added a build target. 3702 3703 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 3704 These allow some quite clever magic. 3705 3706 * main.c (main): added support for getenv(MAKESYSPATH). 3707 3708Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3709 3710 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 3711 This avoids objdir having a different value depending on how a 3712 directory was reached (via command line, or subdir.mk). 3713 3714 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 3715 3716Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3717 3718 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 3719 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 3720 I've been testing this in NetBSD's make for some weeks. 3721 3722 * Turn Makefile into Makefile.in and make it useful. 3723 3724Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3725 3726 * Imported NetBSD's -current make(1) and resolve conflicts. 3727 3728 * Applied autoconf patches from bmake v2 3729 3730 * Imported clean code base from NetBSD-1.0 3731