12021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20210110 4 Merge with NetBSD make, pick up 5 o fix lint warnings 6 o consistently use boolean expressions in conditions 7 82021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 9 10 * VERSION (_MAKE_VERSION): 20210108 11 Merge with NetBSD make, pick up 12 o job.c: back to polling token pipe if we want a token 13 o main.c: always print 'stopped in' on first call 14 The execption is if we bail because of an abort token 15 in which case just exit 6. 16 172021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 18 19 * VERSION (_MAKE_VERSION): 20210101 20 Merge with NetBSD make, pick up 21 o Happy New Year! 22 o rename CmdOpts.lint to strict 23 o exit 2 on technical errors 24 o replace pointers in controlling conditions with booleans 25 o replace global preserveUndefined with VARE_KEEP_UNDEF 26 o compat.c: re-export variables from the actual make process 27 if using vfork this is the effect anyway 28 o cond.c: clean up VarParseResult constants 29 o for.c: fix undefined behavior in SubstVarLong 30 make control flow in SubstVarLong of .for loops more obvious 31 clean up SubstVarShort in .for loops 32 extract ForSubstBody from ForReadMore 33 clean up ForReadMore 34 simplify termination condition for .for loop 35 add error handling for .for loop items 36 job.c: re-export variables from the actual make process 37 parse.c: remove mmap for loading files, only allow files < 1 GiB 38 fix edge case in := with undefined in variable name 39 skip variable expansion in ParseDependencyTargetWord 40 var.c: split ExportVar into separate functions 41 clean up code in extracted ExportVar functions 42 remove dead code from ApplyModifiersIndirect 43 split Var_Subst into easily understandable functions 44 clean up VarParseResult constants 45 462020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 47 48 * main.c: use .MAKE.DEPENDFILE as set by makefiles 49 502020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 51 52 * VERSION (_MAKE_VERSION): 20201222 53 Merge with NetBSD make, pick up 54 o make DEBUG macro return boolean 55 o parse.c: fix assertion failure for files without trailing newline 56 o var.c: allow .undef to undefine multiple variables at once 57 remove excess newline from parse errors 58 592020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 60 61 * VERSION (_MAKE_VERSION): 20201221 62 Merge with NetBSD make, pick up 63 o some unit-test updates 64 652020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 66 67 * VERSION (_MAKE_VERSION): 20201220 68 Merge with NetBSD make, pick up 69 o more unit tests 70 o return FStr from Var_Parse and Var_Value 71 o spell nonexistent consistently 72 o add str_basename to reduce duplicate code 73 o compat.c: fix .ERROR_TARGET in compat -k mode 74 extract InitSignals from Compat_Run 75 extract UseShell from Compat_RunCommand 76 o cond.c: error out if an '.endif' or '.else' contain extraneous text 77 o for.c: rename ForIterate to ForReadMore 78 o hash.c: clean up hash function for HashTable 79 o lst.c: rename Vector.priv_cap to cap 80 o main.c: remove constant parameter from MakeMode 81 o make.c: use symbolic time for 0 in Make_Recheck 82 extract MakeChildren from MakeStartJobs 83 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 84 fix error message for .info/.warning/.error without argument 85 extract Var_Undef from ParseDirective 86 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 87 rename mode constants for ParseGetLine to be more expressive 88 reduce debugging details in Parse_SetInput 89 fix line numbers in .for loops 90 split ParseGetLine into separate functions 91 fix garbled output for failed shell command 92 var.c: remove redundant assignment in ApplyModifier_SysV 93 error out on unknown variable modifiers at parse time 94 remove wrong error message for indirect modifier in lint mode 95 extract ApplySingleModifier from ApplyModifiers 96 use FStr for memory management in Var_SetWithFlags 97 extract SetVar from Var_SetWithFlags 98 use FStr in VarNew 99 extract string functions from ApplyModifier_To 100 error out if .undef has not exactly 1 argument 101 extract Var_DeleteVar from Var_Delete 102 extract Var_Undef from ParseDirective 103 clean up memory management for expanding variable expressions 104 1052020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 106 107 * avoid %zu 108 109 * lst.c: avoid anonymous union 110 111 * VERSION (_MAKE_VERSION): 20201212 112 Merge with NetBSD make, pick up 113 o more unit tests 114 o inline Targ_Ignore and Targ_Silent 115 o split JobFlags into separate fields 116 o remove const from function parameters (left overs from refactoring) 117 o eliminate boolean argument of Var_Export 118 o make API of Buf_Init simpler 119 o rename ParseRunOptions to ParseCommandFlags 120 o replace *line with line[0] 121 o compat.c: fix wrong exit status for multiple failed main targets 122 refactor Compat_Run to show the error condition more clearly 123 don't make .END if the main targets already failed (-k mode) 124 fix exit status in -k mode if a dependency fails 125 o for.c: clean up Buf_AddEscaped in .for loops 126 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 127 make Job_Touch simpler 128 refactor JobFinish 129 rename Shell.exitFlag to errFlag 130 move Job.xtraced to ShellWriter 131 make printing of shell commands independent from the job 132 rename shell flags in struct Shell 133 extract JobOpenTmpFile from JobStart 134 rename RunFlags to CommandFlags 135 split various Job.* into separate fields 136 rename commandShell to shell 137 extract InitShellNameAndPath from Shell_Init 138 replace signal handling macros with local functions 139 replace macro MESSAGE with local function 140 parse.c: error out on null bytes in makefiles 141 error out on misspelled directives 142 rename IFile.nextbuf to readMore 143 fix undefined behavior in ParseEOF 144 str.c: remove redundant call to strlen in Str_Words 145 var.c: error out on misspelled .unexport-env 146 error out on misspelled .export directives 147 extract ExportVars from Var_Export 148 extract ExportVarsExpand from Var_Export 149 eliminate boolean argument of Var_Export 150 fix undefined behavior when exporting ${:U } 151 rename Var_ExportVars to Var_ReexportVars 152 rename Var_Export1 to ExportVar 153 1542020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 155 156 * VERSION (_MAKE_VERSION): 20201206 157 Merge with NetBSD make, pick up 158 o more unit tests 159 o inline macros for debug logging 160 o use consistent variable names for list nodes 161 o define constants for enum zero-values 162 o dir.c: use fixed format for debug output of the directory cache 163 remove Dir_InitDir 164 o lst.c: inline Lst_Enqueue, Vector_Done 165 o meta.c: remove unused parameter from meta_needed 166 o parse.c: rename parse functions 167 o suff.c: extract ExpandChildrenRegular from ExpandChildren 168 o targ.c: don't concatenate identifiers in Targ_PrintType 169 o var.c: remove comment decoration 170 extract UnexportVars from Var_UnExport 171 extract GetVarnamesToUnexport from Var_UnExport 172 extract UnexportEnv from Var_UnExport 173 extract UnexportVar from Var_UnExport 174 move CleanEnv to UnexportVars 175 replace pointer comparisons with enum 176 add FStr to var.c to make memory handling simpler 177 use FStr in Var_UnExport 178 move type definitions in var.c to the top 179 extract FreeEnvVar from Var_Parse 180 extract ShuffleStrings from ApplyModifier_Order 181 1822020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 183 184 * VERSION (_MAKE_VERSION): 20201130 185 Merge with NetBSD make, pick up 186 o add unit tests for META MODE 187 o reduce memory allocation for dirSearchPath, GNode.parents, 188 GNode.children, OpenDirs 189 o reduce pointer indirection for GNode.cohorts and 190 GNode.implicitParents 191 o remove pointer indirection from GNode.commands 192 o inline Lst_ForEachUntil in meta mode 193 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 194 clean up memory management for CachedDirs 195 fix the reference count of dotLast going negative 196 add debug logging for OpenDirs_Done 197 extract CacheNewDir from Dir_AddDir 198 add debug logging for reference counting of CachedDir 199 rename some Dir functions to SearchPath 200 o job.c: rename some global variables 201 o main.c: reduce memory allocation in ReadBuiltinRules 202 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 203 CmdOpts.makefiles 204 Add .MAKE.UID and .MAKE.GID 205 o make.c: reduce memory allocation for/in toBeMade, 206 Make_ProcessWait, Make_ExpandUse 207 o meta.c: reduce memory allocation in meta_oodate 208 o parse.c: reduce memory allocations for parsing dependencies and 209 targets 210 o suff.c: reduce memory allocation in suffix handling 211 2122020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 213 214 * VERSION (_MAKE_VERSION): 20201124 215 Merge with NetBSD make, pick up 216 o .MAKE.{UID,GID} represent uid and gid running make. 217 o fix error handling for .BEGIN and .END dependency in -k mode 218 o fix missing "Stop." after failed .END node in -k mode 219 o use properly typed comparisons in boolean contexts 220 o replace a few HashTable_CreateEntry with HashTable_Set 221 o add HashSet type 222 o compat.c: split Compat_Make into smaller functions 223 extract DebugFailedTarget from Compat_RunCommand 224 o dir.c: refactor Dir_UpdateMTime 225 migrate CachedDir.files from HashTable to HashSet 226 o make.c: add high-level API for GNode.made 227 2282020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 229 230 * VERSION (_MAKE_VERSION): 20201122 231 Merge with NetBSD make, pick up 232 o rename GNode.context to vars 233 o suff.c: cleanup and refactor 234 rename some functions and vars to better reflect usage 235 add high-level API for CandidateSearcher 236 o targ.c: add more debug logging for suffix handling 237 o more unit tests 238 o add debug logging for setting and resetting the main target 239 2402020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 241 242 * VERSION (_MAKE_VERSION): 20201117 243 Merge with NetBSD make, pick up 244 o fix some unit-tests when .SHELL is dash 245 o rename Targ_NewGN to GNode_New 246 o make some GNode functions const 247 o main.c: call Targ_Init before Var_Init 248 cleanup PrintOnError, getTmpdir and ParseBoolean 249 o var.c: fix error message of failed :!cmd! modifier 250 2512020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 252 253 * VERSION (_MAKE_VERSION): 20201114 254 Merge with NetBSD make, pick up 255 o replace a few HashTable_CreateEntry with HashTable_Set 256 o clean up cached_stats 257 o rename DEFAULT to defaultNode 258 o remove redundant struct make_stat 259 o cond.c: in lint mode, check for ".else <cond>" 260 use bitset for IfState 261 replace large switch with if-else in Cond_EvalLine 262 o job.c: clean up JobExec, JobStart, JobDoOutput 263 use stderr for error message about failed touch 264 clean up Job_Touch 265 replace macro DBPRINTF with JobPrintln 266 rename JobState to JobStatus 267 main.c: switch cache for realpath from GNode to HashTable 268 clean up Fatal 269 clean up InitDefSysIncPath 270 use progname instead of hard-coded 'make' in warning 271 rename Main_SetVarObjdir to SetVarObjdir 272 make.1: document the -S option 273 make.c: fix debug output for GNode details 274 use symbolic names in debug output of GNodes 275 2762020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 277 278 * configure.in: fix --with-force-machine-arch 279 280 * VERSION (_MAKE_VERSION): 20201112 281 Merge with NetBSD make, pick up 282 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 283 checks in InitObjdir. Explicit .OBJDIR target always allows 284 read-only directory. 285 o cond.c: clean up Cond_EvalLine 286 2872020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 288 289 * VERSION (_MAKE_VERSION): 20201111 290 Merge with NetBSD make, pick up 291 o more unit-tests 292 o style cleanup 293 remove redundant parentheses from sizeof operator 294 replace character literal 0 with '\0'. 295 replace pointer literal 0 with NULL. 296 remove redundant parentheses. 297 replace (expr & mask) == 0 with !(expr & mask). 298 use strict typing in conditions of the form !var 299 o rename Make_OODate to GNode_IsOODate 300 o rename Make_TimeStamp to GNode_UpdateYoungestChild 301 o rename Var_Set_with_flags to Var_SetWithFlags 302 o rename dieQuietly to shouldDieQuietly 303 o buf.c: make API of Buf_Init simpler 304 o compat.c: clean up Compat_Make, Compat_RunCommand, 305 CompatDeleteTarget and CompatInterrupt 306 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 307 clean up CondParser_Comparison 308 o main.c: rename getBoolean and s2Boolean 309 rename MAKEFILE_PREFERENCE for consistency 310 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 311 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 312 replace emptyString with allocated empty string 313 error out on unclosed expressions after the colon 314 3152020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 316 317 * VERSION (_MAKE_VERSION): 20201101 318 Merge with NetBSD make, pick up 319 o negate NoExecute to GNode_ShouldExecute 320 o job.c: rename JobMatchShell to FindShellByName 321 extract EscapeShellDblQuot from JobPrintCommand 322 extract ParseRunOptions from JobPrintCommand 323 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 324 treat malformed :range, :ts and :[...] as errors 325 add tests for the variable modifiers :[words] and :range 326 3272020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 328 329 * VERSION (_MAKE_VERSION): 20201031 330 Merge with NetBSD make, pick up 331 o format #include directives consistently 332 o do not look up local variables like .TARGET anywhere else 333 o main.c: Main_SetObjdir is first called for curdir which may be 334 readonly 335 reduce the scope where recursive expressions are detected 336 remove redundant :tl from getBoolean 337 clean up mkTempFile 338 o meta.c: simplify memory allocation in meta_create and meta_oodate 339 o parse.c: extract loadedfile_mmap from loadfile 340 o trace.c: document possible undefined behavior with .CURDIR 341 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 342 rename ismeta to is_shell_metachar 343 remove debug logging for the :Q variable modifier 344 rename VarIsDynamic to VarnameIsDynamic 345 use consistent parameter order in varname parsing functions 346 extract ParseVarnameLong from Var_Parse 347 extract ParseVarnameShort from Var_Parse 348 fix type of ParseModifierPart parameter delim 349 extract IsEscapedModifierPart from ParseModifierPart 350 clean up ModifyWords 351 add test for combining the :@ and :? variable modifiers 352 3532020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 354 355 * VERSION (_MAKE_VERSION): 20201030 356 Merge with NetBSD make, pick up 357 o change char * to void * in Var_Value 358 o make iterating over HashTable simpler 359 o rename VAR_CMD to VAR_CMDLINE 360 o cond.c: clean up is_separator 361 fix parse error in string literal in conditional 362 o main.c: do not use objdir that is not writable 363 in lint mode, exit with error status on errors 364 o parse.c: clean up StrContainsWord 365 fix out-of-bounds pointer in ParseTrackInput 366 o var.c: rename Str_SYSVMatch and its parameters 367 remove unsatisfiable conditions in Var_Set_with_flags 368 document where the variable name is expanded 369 fix documentation for VARP_SUB_ONE 370 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 371 document VAR_READONLY 372 prevent appending to read-only variables 373 extract MayExport from Var_Export1 374 remove redundant evaluations in VarFind 375 replace VarFindFlags with a simple Boolean 376 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 377 3782020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 379 380 * VERSION (_MAKE_VERSION): 20201028 381 Merge with NetBSD make, pick up 382 o rename defIncPath to defSysIncPath 383 o initialize all CmdOpts fields 384 o lst.c: inline Vector_Get 385 o main.c: refactor main extract 386 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 387 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 388 InitDefIncPath,CmdOpts_Init,UnlimitFiles 389 o parse.c: merge curFile into includes 390 rename predecessor to order_pred 391 sort ParseSpecial alphabetically 392 remove unused, undocumented .NOEXPORT 393 rename ParseSpecial enum values consistently 394 rename some fields of struct IFile 395 3962020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 397 398 * VERSION (_MAKE_VERSION): 20201026 399 Merge with NetBSD make, pick up 400 o group the command line options and arguments into a struct 401 o rename GNode.cmgn to youngestChild 402 o rename hash functions to identify the type name 403 o negate OP_NOP and rename it to GNode_IsTarget 404 o add GNode_Path to access the path of a GNode 405 o remove macros MIN and MAX 406 o remove unused Lst_Find and Lst_FindFrom 407 o arch.c: and make Arch_FindLib simpler 408 clean up code layout 409 make Arch_ParseArchive simpler 410 o cond.c: inline CondFindStrMatch into FuncMake 411 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 412 omit trailing space in debug output for expanding file patterns 413 refactor DirMatchFiles 414 document that the SearchPath of Dir_FindFile may be NULL 415 remove UNCONST from Dir_Expand 416 inline DirFindName 417 o for.c: clean up code for handling .for loops 418 o hash.c: print hash in debug log with fixed width 419 clean up hash table functions 420 reduce amount of string hashing 421 o job.c: refactor JobDeleteTarget 422 use proper enum constants for aborting 423 convert result of JobStart from macros to enum 424 convert abort reason macros to enum 425 rework Job_CheckCommands to reduce indentation 426 rename Shell fields 427 add field names in declaration of DEFSHELL_CUSTOM 428 convert JobState and JobFlags to enum types 429 move handling of the "..." command to JobPrintCommands 430 o lst.c: clean up 431 refactor LstNodeNew 432 remove Lst_Open, Lst_Next, Lst_Close 433 remove code for circular lists from Lst_Next 434 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 435 /dev/null or anything starting with "no" 436 convert macros for debug flags into enum 437 o make.c: inline Lst_Copy in Make_ExpandUse 438 o meta.c: inline Lst_Find in meta_oodate 439 make Lst_RemoveIf simpler in meta_oodate 440 o parse.c: convert error level for Parse_Error to an enum 441 o suff.c: properly terminate debug output with newline 442 add more details to DEBUG_SRC log 443 replace Dir_CopyDir with Dir_CopyDirSearchPath 444 don't modify GNode name while rebuilding the suffix graph 445 o var.c: reduce duplicate code in VarFind 446 4472020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 448 449 * VERSION (_MAKE_VERSION): 20201022 450 Merge with NetBSD make, pick up 451 o more refactoring and simplification to reduce code size 452 o var.c: extract CanonicalVarname from VarFind 453 o make.c: extract UpdateImplicitParentsVars from Make_Update 454 o main.c: extract PrintVar from doPrintVars 455 extract HandlePWD from main 456 o lst.c: inline simple Lst getters 457 remove unused Lst_ForEach 458 o job.c: move struct Shell from job.h to job.c 459 o more unit tests 460 4612020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 462 463 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 464 4652020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 466 467 * VERSION (_MAKE_VERSION): 20201018 468 Merge with NetBSD make, pick up 469 o remove USE_IOVEC 470 o rename some Hash_* apis to Hash* 471 o replace execError with execDie 472 o rename Lst_Init to Lst_New 473 o add tags to enum types 474 o rename Stack to Vector 475 o parse.c: more refactoring 476 o unit-tests: make some tests use line buffered stdout 477 o unit-tests/Makefile: in meta mode do not make all tests depend on 478 Makefile, it isn't necessary. 479 4802020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 481 482 * main.c: check for CTL_HW being defined. 483 * unit-tests/Makefile: ensure export tests output are POSIX compliant 484 disable opt-debug-jobs test until it works on ubuntu 485 486 * VERSION (_MAKE_VERSION): 20201010 487 Merge with NetBSD make, pick up 488 o dir.c: remove pathname limit for Dir_FindHereOrAbove 489 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 490 o main.c: extract init_machine and init_machine_arch from main 491 allow to disable debug logging options 492 o parse.c: enable format string truncation warnings 493 extract parsing of sources from ParseDoDependency 494 split ParseDoSrc into smaller functions 495 hide implementation details from Parse_DoVar 496 clean up parsing of variable assignments 497 split Parse_DoVar into manageable pieces 498 don't modify the given line during Parse_DoVar 499 fix out-of-bounds memory access in Parse_DoVar 500 fix parsing of the :sh assignment modifier 501 o var.c: rework memory allocation for the name of variables 502 extract ApplyModifier_Literal into separate function 503 in lint mode, reject modifiers without delimiter 504 do not export variable names starting with '-' 505 o fix double-free bug in -DCLEANUP mode 506 o more cleanup to enable higher warnings level 507 o more unit tests 508 5092020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 510 511 * VERSION (_MAKE_VERSION): 20201002 512 Merge with NetBSD make, pick up 513 o dir.c: use hash table for looking up open directories by name 514 o main.c: clean up option handling 515 o parse.c: add missing const for Parse_AddIncludeDir 516 o var.c: ApplyModifier_To, update pp in each branch 517 o remove redundant function prototypes 518 o more unit tests 519 5202020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 521 522 * VERSION (_MAKE_VERSION): 20201001 523 Merge with NetBSD make, pick up 524 o compat.c: comment about "..." 525 5262020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 527 528 * VERSION (_MAKE_VERSION): 20200930 529 Merge with NetBSD make, pick up 530 o job.c: split Job.jobPipe into 2 separate fields 531 replace Lst_Open with direct iteration 532 o lst.c: remove redundant assertions 533 o targ.c: replace Lst_Open with direct iteration 534 o var.c: fix bug in evaluation of indirect variable modifiers 535 extract ApplyModifier_Quote into separate function 536 o make debug logging simpler 537 5382020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 539 540 * VERSION (_MAKE_VERSION): 20200927 541 Merge with NetBSD make, pick up 542 o parse.c: ensure parse errors result in 'stopped in' message. 543 o compat.c: make parameter of Compat_RunCommand const 544 o main.c: extract InitVarTarget from main 545 o parse.c: rename ParseFinishLine to FinishDependencyGroup 546 refactor ParseDoDependency 547 o var.c: Var_Subst no longer returns string result 548 rename Var_ParsePP back to Var_Parse 549 in lint mode, improve error handling for undefined variables 550 extract ParseVarname from Var_Parse 551 o rename Lst_ForEach to Lst_ForEachUntil 552 o inline Lst_ForEachUntil in several cases 553 o clean up API for finding and creating GNodes 554 o fix assertion failure in -j mode with .END node 555 o inline and remove LstNode_Prev and LstNode_Next 556 o use fine-grained type names for lists and their nodes 557 o more unit tests 558 5592020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 560 561 * VERSION (_MAKE_VERSION): 20200911 562 Merge with NetBSD make, pick up 563 o cond.c: split EvalComparison into smaller functions 564 reorder parameters of condition parsing functions 565 reduce code size in CondParser_Eval 566 rename CondGetString to CondParser_String 567 add CondLexer_SkipWhitespace 568 group the condition parsing state into a struct 569 in CondGetString, replace repeated Buf_Add with Buf_AddStr 570 o migrate Var_Parse to Var_ParsePP 571 o add wrappers around ctype.h functions 572 o lst.c: use a stack instead of a list for the nested include path 573 o more unit tests 574 5752020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 576 577 * make-bootstrap.sh.in: adjust object list 578 5792020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 580 581 * VERSION (_MAKE_VERSION): 20200902 582 Merge with NetBSD make, pick up 583 o use make_stat to ensure no confusion over valid fields 584 returned by cached_stat 585 o var.c: make VarQuote const-correct 586 o add unit tests for .for 587 5882020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 589 590 * VERSION (_MAKE_VERSION): 20200901 591 Merge with NetBSD make, pick up 592 o rename Hash_Table fields 593 o make data types in Dir_HasWildcards more precise 594 5952020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 596 597 * VERSION (_MAKE_VERSION): 20200831 598 Merge with NetBSD make, pick up 599 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 600 o lst.c: Lst_Open renable assert that list isn't open 601 o unit test for .TARGET dependent flags 602 o var.c: fix aliasing bug in VarUniq 603 o more unit tests for :u 604 6052020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 606 607 * VERSION (_MAKE_VERSION): 20200830 608 Merge with NetBSD make, pick up 609 o allow for strict type checking for Boolean 610 o Var_Parse never returns NULL 611 o Var_Subst never returns NULL 612 o Lst_Find now takes boolean match function 613 o rename Lst_Memeber to Lst_FindDatum 614 o rename LstNode functions to match their type 615 o rename GNode.iParents to implicitParents 616 o fix assertion failure for .SUFFIXES in archives 617 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 618 remove unreachable code from CompatRunCommand 619 o main.c: simplify getBoolean 620 o stc.c: replace brk_string with simpler Str_Words 621 o suff.c: add debug macros 622 6232020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 624 625 * VERSION (_MAKE_VERSION): 20200828 626 Merge with NetBSD make, pick up 627 o lst.c: inline LstIsValid and LstNodeIsValid 628 o remove trailing S from Lst function names after migration complete 629 o more comment cleanup/clarification 630 o suff.c: clean up suffix handling 631 o more unit tests 632 6332020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 634 635 * VERSION (_MAKE_VERSION): 20200826 636 Merge with NetBSD make, pick up 637 o enum.c: distinguish between bitsets containing flags and 638 ordinary enums 639 o var.c: fix error message for ::!= modifier with shell error 640 o fix bugs in -DCLEANUP mode 641 6422020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 643 644 * VERSION (_MAKE_VERSION): 20200824 645 Merge with NetBSD make, pick up 646 o in debug mode, print GNode details in symbols 647 6482020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 649 650 * VERSION (_MAKE_VERSION): 20200823 651 Merge with NetBSD make, pick up 652 o lst.c: more asserts, 653 make args to Lst_Find match others. 654 o var.c: pass flags to VarAdd 655 o arch.c: use Buffer 656 o str.c: brk_string return size_t for nwords 657 o more unit tests 658 6592020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 660 661 * VERSION (_MAKE_VERSION): 662 Merge with NetBSD make, pick up 663 o var.c: support for read-only variables eg .SHELL 664 being the shell used to run scripts. 665 o lst.c: more simplification 666 o more documentation and style cleanup 667 o more unit tests 668 o ensure unit-test/Makefile is run by TEST_MAKE 669 o reduce duplication of header inclusion 670 6712020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 672 673 * VERSION (_MAKE_VERSION): 20200821 674 Merge with NetBSD make, pick up 675 o lst.c: revert invalid assertion - but document it 676 o dir.c: split Dir_Init into two functions 677 6782020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 679 680 * lst.c: needs inttypes.h on Linux 681 682 * VERSION (_MAKE_VERSION): 20200820 683 Merge with NetBSD make, pick up 684 o make.1: clarify some passages 685 o var.c: more cleanup, clarify comments 686 o make_malloc.c: remove unreachable code 687 o cond.c: make CondGetString easier to debug 688 o simplify list usage 689 o unit-tests: more 690 6912020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 692 693 * VERSION (_MAKE_VERSION): 20200816 694 Merge with NetBSD make, pick up 695 o refactor unit-tests to be more fine grained 696 not all tests moved yet 697 6982020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 699 700 * VERSION (_MAKE_VERSION): 20200814 701 Merge with NetBSD make, pick up 702 o more str_concat variants 703 o more enums for flags 704 o var.c: cleanup for higher warnings level 705 7062020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 707 708 * VERSION (_MAKE_VERSION): 20200810 709 Merge with NetBSD make, pick up 710 o more unit tests 711 o general comment and style cleanup 712 7132020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 714 715 * VERSION (_MAKE_VERSION): 20200808 716 Merge with NetBSD make, pick up 717 o enum.[ch]: streamline, enums for use in flags and debug output 718 o cond.c: cleanup 719 o var.c: reduce duplicate code for modifiers 720 debug logging for Var_Parse 721 more detailed debug output 722 o more unit tests 723 7242020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 725 726 * unit-tests/Makefile: -r for recursive and include Makefile.inc 727 so I can run tests in meta mode 728 supress extra noise if in meta mode 729 730 * VERSION (_MAKE_VERSION): 20200806 731 Merge with NetBSD make, pick up 732 o parse.c: remove VARE_WANTRES for LINT 733 we just want to check parsing (for now). 734 7352020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 736 737 * VERSION (_MAKE_VERSION): 20200805 738 Merge with NetBSD make, pick up 739 o make.1: Rework the description of dependence operators 740 7412020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 742 743 * VERSION (_MAKE_VERSION): 20200803 744 Merge with NetBSD make, pick up 745 o revert some C99 usage, for max portability 746 o unit-tests/lint 747 7482020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 749 750 * VERSION (_MAKE_VERSION): 20200802 751 Merge with NetBSD make, pick up 752 o more unit tests 753 7542020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 755 756 * Remove NetBSD specific plumbing from unit-tests/Makefile 757 758 * VERSION (_MAKE_VERSION): 20200801 759 Merge with NetBSD make, pick up 760 o make Var_Value return const 761 o size_t for buf sizes 762 o optimize some buffer operations - avoid strlen 763 7642020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 765 766 * VERSION (_MAKE_VERSION): 20200731 767 Merge with NetBSD make, pick up 768 o var.c: fix undefinded behavior for incomplete :t modifier 769 fixes unit-test/moderrs on Ubuntu 770 o parse.c: When parsing variable assignments other than := 771 if DEBUG(LINT) test substition of value, so we get a file and 772 line number in the resulting error. 773 o dir.c: fix parsing of nested braces in dependency lines 774 add unit-tests 775 7762020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 777 778 * VERSION (_MAKE_VERSION): 20200730 779 Merge with NetBSD make, pick up 780 o var.c: minor cleanup 781 o unit-tests: more tests to improve code coverage 782 7832020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 784 785 * VERSION (_MAKE_VERSION): 20200728 786 Merge with NetBSD make, pick up 787 o var.c: more optimizations 788 7892020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 790 791 * VERSION (_MAKE_VERSION): 20200726 792 Merge with NetBSD make, pick up 793 o collapse lsd.lib into lst.c - reduce code size and allow inlining 794 o lots of function comment updates 795 o var.c: more optimizations 796 o make return of Var_Parse const 797 7982020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 799 800 * VERSION (_MAKE_VERSION): 20200720 801 Merge with NetBSD make, pick up 802 o DEBUG_HASH report stats at end and tone down the noise 803 o var.c: each flag type gets its own prefix. 804 move SysV string matching to var.c 805 make ampersand in ${VAR:from=to&} an ordinary character 806 cleanup and simplify implementation of modifiers 807 o make.1: move documentation for assignment modifiers 808 8092020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 810 811 * VERSION (_MAKE_VERSION): 20200718 812 Merge with NetBSD make, pick up 813 o DEBUG_HASH to see how well the hash tables are working 814 8152020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 816 817 * bsd.after-import.mk: make sure we update unit-tests/Makefile 818 8192020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 820 821 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 822 823 * VERSION (_MAKE_VERSION): 20200710 824 Merge with NetBSD make, pick up 825 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 826 o meta.c: target flagged .META is out-of-date if meta file missing 827 8282020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 829 830 * VERSION (_MAKE_VERSION): 20200709 831 Merge with NetBSD make, pick up 832 o cond.c: fix for compare_expression when doEval=0 833 o unit-tests/Makefile: rework 834 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 835 8362020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 837 838 * VERSION (_MAKE_VERSION): 20200704 839 Merge with NetBSD make, pick up 840 (most of this by rillig@) 841 o lots of style and white-space cleanup 842 o lots more unit tests for variable modifiers 843 o simplified description of some functions 844 o str.c: refactor Str_Match 845 o var.c: debugging output for :@ 846 constify VarModify parameter 847 fix :hash modifier on 16-bit platforms 848 remove unnecessary forward declarations 849 refactor ApplyModifier_SysV to have less indentation 850 simplify code for :E and :R 851 clean up code for :H and :T 852 refactor ApplyModifiers 853 854 * var.c: we need stdint.h on some platforms to get uint32_t 855 * unit-test/Makefile: we need to supress the specific error 856 for RE substitution error in modmisc, since it varies accross 857 different OS. 858 8592020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 860 861 * VERSION (_MAKE_VERSION): 20200702 862 Merge with NetBSD make, pick up 863 o var.c: more improvements to avoiding unnecessary evaluation 864 use enums for flags 865 o remove flags arg to Var_Set which outside of var.c is always 0 866 8672020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 868 869 * VERSION (_MAKE_VERSION): 20200701 870 Merge with NetBSD make, pick up 871 o var.c: with change to cond.c; ensure that nested variables 872 within a variable name are expanded. 873 o unit-tests/varmisc.mk: test for nested varname 874 8752020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 876 877 * VERSION (_MAKE_VERSION): 20200629 878 Merge with NetBSD make, pick up 879 o cond.c: do not eval unnecessary terms of conditionals. 880 8812020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 882 883 * VERSION (_MAKE_VERSION): 20200625 884 Merge with NetBSD make, pick up 885 o meta.c: report error if lseek in filemon_read fails 886 8872020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 888 889 * VERSION (_MAKE_VERSION): 20200622 890 Merge with NetBSD make, pick up 891 o dieQuietly: ignore OP_SUBMAKE as too aggressive 892 8932020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 894 895 * VERSION (_MAKE_VERSION): 20200619 896 Merge with NetBSD make, pick up 897 o str.c: performance improvement for Str_Match for multiple '*' 898 o dieQuietly: supress the failure output from make 899 when failing node is a sub-make or a sibling failed. 900 This cuts down greatly on unhelpful noise at the end of 901 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 902 9032020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 904 905 * FILES: add LICENSE to appease some packagers. 906 This is an attempt to fairly represent the license on almost 907 200 files, which are almost all BSD-3-Clause 908 The few exceptions being more liberal. 909 910 * VERSION (_MAKE_VERSION): 20200610 911 Merge with NetBSD make, pick up 912 o unit test for :Or 913 9142020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 915 916 * VERSION (_MAKE_VERSION): 20200606 917 Merge with NetBSD make, pick up 918 o make.1: cleanup 919 920 * Makefile: fix depends for main.o which broke MAKE_VERSION 921 9222020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 923 924 * VERSION (_MAKE_VERSION): 20200605 925 Merge with NetBSD make, pick up 926 o dir.c: cached_stats - don't confuse stat and lstat results. 927 o var.c: add :Or for reverse sort. 928 9292020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 930 931 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 932 also if --with-filemon= specifies path to filemon.h 933 set use_filemon=dev 934 * dirname.c: remove include of namespace.h 935 9362020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 937 938 * VERSION (_MAKE_VERSION): 20200517 939 Merge with NetBSD make, pick up 940 o modified dollar tests to avoid shell dependencies 941 o new tests for .INCLUDEFROM 942 9432020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 944 945 * unit-tests/dollar.mk: tweak '1 dollar literal' test 946 to not depend so much on shell behavior 947 9482020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 949 950 * VERSION (_MAKE_VERSION): 20200510 951 Merge with NetBSD make, pick up 952 o unit test for dollar handling 953 9542020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 955 956 * VERSION (_MAKE_VERSION): 20200506 957 Merge with NetBSD make, pick up 958 o str.c: empty string does not match % pattern 959 plus unit-test changes 960 9612020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 962 963 * VERSION (_MAKE_VERSION): 20200504 964 May the 4th be with you 965 Merge with NetBSD make, pick up 966 o var.c: import handling of old sysV style modifier using '%' 967 o str.c: refactor brk_string 968 o unit-tests: add test case for lazy conditions 969 9702020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 971 972 * VERSION (_MAKE_VERSION): 20200418 973 974 * configure.in: use_makefile=no for cygwin et al. 975 case insensitive filesystems just don't work if both 976 makefile and Makefile exist. 977 NOTE: bmake does not support cygwin and likely never will, 978 but if brave souls want to try it - help them out. 979 9802020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 981 982 * VERSION (_MAKE_VERSION): 20200402 983 Merge with NetBSD make, pick up 984 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 985 a blank command is perfectly valid. 986 9872020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 988 989 * VERSION (_MAKE_VERSION): 20200330 990 Merge with NetBSD make, pick up 991 o make.h: extern debug_file 992 9932020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 994 995 * VERSION (_MAKE_VERSION): 20200318 996 Merge with NetBSD make, pick up 997 o meta.c: meta_oodate, check for corrupted meta file 998 earlier and more often. 999 10002020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1001 1002 * VERSION (_MAKE_VERSION): 20200220 1003 10042020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1005 1006 * boot-strap: unset MAKEFLAGS 1007 10082020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1009 1010 * VERSION (_MAKE_VERSION): 20200212 1011 * meta.c: meta_compat_parent check for USE_FILEMON 1012 patch from Soeren Tempel 1013 10142020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1015 1016 * VERSION: 20200205 1017 Merge with NetBSD make, pick up 1018 o meta.c: fix compat mode, need to call meta_job_output() 1019 o job.c: extra fds for meta mode not needed if using filemon_dev 1020 10212020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1022 1023 * VERSION: 20200122 1024 Merge with NetBSD make, pick up 1025 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1026 returns FALSE. 1027 10282020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1029 1030 * VERSION: 20200121 1031 Merge with NetBSD make, pick up 1032 o filemon/filemon_{dev,ktrace}.c: allow selection of 1033 filemon implementation. filemon_dev.c uses the kernel module 1034 while filemon_ktrace.c leverages the fktrace api available in 1035 NetBSD. filemon_ktrace.c can hopefully form the basis for 1036 adding support for other tracing mechanisms such as strace on 1037 Linux. 1038 o meta.c: when target is out-of-date per normal make rules 1039 record value of .OODATE in meta file. 1040 10412019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1042 1043 * VERSION: 20190926 1044 Merge with NetBSD make, pick up 1045 o parse.c: don't pass NULL to realpath(3) 1046 some versions cannot handle it. 1047 10482019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1049 1050 * VERSION: 20190409 1051 Merge with NetBSD make, pick up 1052 o parse.c: ParseDoDependency: free paths rather than assert 1053 10542018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1055 1056 * VERSION: 20181222 1057 1058 * configure.in: add --without-makefile to avoid generating 1059 makefile and make-bootstrap.sh 1060 1061 * include Makefile.inc if it exists 1062 1063 * Use Makefile and Makefile.config.in in unit-tests 1064 so we can use just: make obj && make && make test 1065 when bmake is already available. 1066 We add --without-makefile to CONFIGURE_ARGS in this case. 1067 1068 * tweak bsd.after-import.mk (captures Makefile.config etc 1069 after import to FreeBSD for example) to cope with all the above. 1070 10712018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1072 1073 * VERSION: 20181221 1074 Merge with NetBSD make, pick up 1075 o parse.c: ParseVErrorInternal use .PARSEDIR 1076 and apply if relative, and then use .PARSEFILE 1077 for consistent result. 1078 10792018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1080 1081 * VERSION: 20181220 1082 Merge with NetBSD make, pick up 1083 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1084 is relative 1085 o var.c: avoid SEGFAULT in .unexport-env 1086 when MAKELEVEL is not set 1087 10882018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1089 1090 * VERSION: 20181216 1091 Merge with NetBSD make, pick up 1092 o fix for unit-tests/varquote.mk on Debian 1093 10942018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1095 1096 * VERSION: 20180919 1097 Merge with NetBSD make, pick up 1098 o var.c: add :q 1099 o dir.c: cleanup caching of stats 1100 11012018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1102 1103 * Makefile.config.in: use += where it makes sense. 1104 11052018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1106 1107 * VERSION: 20180512 1108 Merge with NetBSD make, pick up 1109 o job.c: skip polling job token pipe 1110 11112018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1112 1113 * VERSION: 20180405 1114 Merge with NetBSD make, pick up 1115 o parse.c: be more cautious about detecting depenency line 1116 rather than sysV style include. 1117 11182018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 1119 1120 * VERSION: 20180222 1121 Merge with NetBSD make, pick up 1122 o parse.c: avoid calling sysconf for every call to loadfile 1123 11242018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1125 1126 * VERSION: 20180218 1127 Merge with NetBSD make, pick up 1128 o var.c: Var_Set handle NULL value anytime. 1129 11302018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1131 1132 * VERSION: 20180212 1133 Merge with NetBSD make, pick up 1134 o parse.c: do not treat .info as warning with -W 1135 11362017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1137 1138 * VERSION: 20171207 1139 Merge with NetBSD make, pick up 1140 o var.c: Var_Append use Var_Set if var not previously set 1141 so that VAR_CMD is handled correctly. 1142 Add a suitable unit-test. 1143 11442017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1145 1146 * VERSION (_MAKE_VERSION): 20171126 1147 1148 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 1149 since AC_TRY_COMPILE puts input inside main() 1150 which upsets modern compilers. 1151 11522017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1153 1154 * VERSION: 20171118 1155 Merge with NetBSD make, pick up 1156 o var.c: do not append to variable set on command line 1157 add unit-test to catch this. 1158 11592017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1160 1161 * VERSION: 20171028 1162 Merge with NetBSD make, pick up 1163 o main.c: ignore empty MAKEOBJDIR 1164 1165 * Makefile.config.in: 1166 make @prefix@ @machine*@ and @default_sys_path@ defaults. 1167 11682017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1169 1170 * VERSION: 20171005 1171 1172 * unit-tests/dotwait.mk: redirect stderr through pipe for more 1173 consistent result on some platforms. 1174 11752017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1176 1177 * machine.sh: entry for AIX 1178 11792017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1180 1181 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 1182 to a file that can be included by configure as well as make. 1183 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 1184 11852017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 1186 1187 * Makefile (_MAKE_VERSION): 20170810 1188 Merge with NetBSD make, pick up 1189 o meta.c: if target is in subdir we only need subdir name in 1190 meta_name. 1191 11922017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 1193 1194 * Makefile (_MAKE_VERSION): 20170720 1195 Merge with NetBSD make, pick up 1196 o compat.c: pass SIGINT etc onto child and wait for it to exit 1197 before we self-terminate. 1198 11992017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1200 1201 * Makefile (_MAKE_VERSION): 20170711 1202 forgot to update after merge on 20170708 ;-) 1203 o main.c: refactor to reduce size of main function. 1204 add -v option to always fully expand values. 1205 o meta.c: ensure command output in meta file has ending newline 1206 even when filemon not being used. 1207 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 1208 pathname via ':L' since any ':' in pathname breaks that. 1209 Instead set a '${.p.}' to pathname in the target context and 1210 use that. 1211 12122017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1213 1214 * Makefile (_MAKE_VERSION): 20170510 1215 Merge with NetBSD make, pick up 1216 o main.c: Main_SetObjdir: ensure buf2 is in scope 1217 12182017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1219 1220 * Makefile (_MAKE_VERSION): 20170505 1221 see mk/ChangeLog 1222 12232017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1224 1225 * parse.c: not everyone has stdint.h 1226 12272017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1228 1229 * Makefile (_MAKE_VERSION): 20170501 1230 see mk/ChangeLog 1231 12322017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1233 1234 * Makefile (_MAKE_VERSION): 20170421 1235 Merge with NetBSD make, pick up 1236 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 1237 12382017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1239 1240 * Makefile (_MAKE_VERSION): 20170420 1241 Merge with NetBSD make, pick up 1242 o main.c: only use -C arg "as is" if it contains no 1243 relative component. 1244 12452017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1246 1247 * Makefile (_MAKE_VERSION): 20170418 1248 Merge with NetBSD make, pick up 1249 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 1250 12512017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1252 1253 * Makefile (_MAKE_VERSION): 20170417 1254 Merge with NetBSD make, pick up 1255 o fixes a number of coverity complaints 1256 - check return value of fseek, fcntl 1257 - plug memory leak in Dir_FindFile, Var_LoopExpand, 1258 JobPrintCommand, ParseTraditionalInclude 1259 - use bmake_malloc() where NULL is not tollerated 1260 - use MAKE_ATTR_UNUSED rather that kludges like 1261 return(unused ? 0 : 0) 1262 - use purge_cached_realpaths() rather than abuse cached_realpath() 1263 12642017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1265 1266 * Makefile (_MAKE_VERSION): 20170413 1267 Merge with NetBSD make, pick up 1268 o main.c: when setting .OBJDIR ignore '$' in paths. 1269 1270 * job.c: use MALLOC_OPTIONS to set malloc_options. 1271 12722017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1273 1274 * Makefile (_MAKE_VERSION): 20170411 1275 Merge with NetBSD make, pick up 1276 o str.c: Str_Match: allow [^a-z] to behave as expected. 1277 12782017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1279 1280 * Makefile (_MAKE_VERSION): 20170326 1281 Merge with NetBSD make, pick up 1282 o main.c: purge relative paths from realpath cache when .OBJDIR 1283 is changed. 1284 12852017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1286 1287 * Makefile (_MAKE_VERSION): 20170311 1288 Merge with NetBSD make, pick up 1289 o main.c: only use -C arg "as is" if it starts with '/'. 1290 12912017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1292 1293 * Makefile (_MAKE_VERSION): 20170301 1294 Merge with NetBSD make, pick up 1295 o main.c: use -C arg "as is" rather than getcwd() 1296 if they identify the same directory. 1297 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 1298 12992017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 1300 1301 * Makefile (_MAKE_VERSION): 20170201 1302 Merge with NetBSD make, pick up 1303 o var.c: allow :_=var and avoid use of special context. 1304 13052017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1306 1307 * Makefile (_MAKE_VERSION): 20170130 1308 Merge with NetBSD make, pick up 1309 o var.c: add :range and :_ 1310 o main.c: partially initialize Dir_* before MainParseArgs() 1311 can be called. 1312 If -V, skip Main_ExportMAKEFLAGS() 1313 13142017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 1315 1316 * Makefile (_MAKE_VERSION): 20170114 1317 Merge with NetBSD make, pick up 1318 o var.c: allow specifying the utc value used by :{gm,local}time 1319 13202016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1321 1322 * Makefile (_MAKE_VERSION): 20161212 1323 Merge with NetBSD make, pick up 1324 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 1325 13262016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 1327 1328 * Makefile (_MAKE_VERSION): 20161209 1329 Merge with NetBSD make, pick up 1330 o main.c: cleanup setting of .OBJDIR 1331 o parse.c: avoid coredump from (var)=val 1332 13332016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1334 1335 * Makefile (_MAKE_VERSION): 20161126 1336 Merge with NetBSD make, pick up 1337 o make.c: Make_OODate: report src node name if path not set 1338 13392016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1340 1341 * Makefile (_MAKE_VERSION): 20160926 1342 Merge with NetBSD make, pick up 1343 o support for .DELETE_ON_ERROR: (remove targets that fail) 1344 13452016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1346 1347 * Makefile MAN: tweak .Dt to match ${PROG} 1348 13492016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 1350 1351 * Makefile (_MAKE_VERSION): 20160818 1352 its a neater number; pick up whitespace fixes to man page. 1353 13542016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 1355 1356 * Makefile (_MAKE_VERSION): 20160817 1357 Merge with NetBSD make, pick up 1358 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 1359 so we can call it before adding entries to missingFiles. 1360 Thus we do not track files we have been told to ignore. 1361 13622016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1363 1364 * Makefile (_MAKE_VERSION): 20160815 1365 Merge with NetBSD make, pick up 1366 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 1367 pathnames, and skip if the expansion is empty. 1368 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 1369 13702016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1371 1372 * Makefile (_MAKE_VERSION): 20160812 1373 Merge with NetBSD make, pick up 1374 o meta.c: remove all missingFiles entries that match a deleted 1375 dir. 1376 o main.c: set .ERROR_CMD if possible. 1377 13782016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1379 1380 * Makefile (_MAKE_VERSION): 20160606 1381 Merge with NetBSD make, pick up 1382 o dir.c: extend mtimes cache to others via cached_stat() 1383 13842016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1385 1386 * Makefile (_MAKE_VERSION): 20160604 1387 Merge with NetBSD make, pick up 1388 o meta.c: missing filemon data is only relevant if we read a 1389 meta file. 1390 Also do not return oodate for a missing metafile if gn->path 1391 points to .CURDIR 1392 13932016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1394 1395 * Makefile (_MAKE_VERSION): 20160602 1396 Merge with NetBSD make, pick up 1397 o cached_realpath(): avoid hitting filesystem more than necessary. 1398 o meta.c: refactor need_meta decision, add knobs for 1399 missing meta file and filemon data wrt out-of-datedness. 1400 14012016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 1402 1403 * Makefile (_MAKE_VERSION): 20160528 1404 1405 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 1406 14072016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1408 1409 * Makefile (_MAKE_VERSION): 20160512 1410 Merge with NetBSD make, pick up 1411 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 1412 this is useful for gcov builds. 1413 o propagate errors from filemon(4). 1414 14152016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 1416 1417 * Makefile (_MAKE_VERSION): 20160509 1418 Merge with NetBSD make, pick up 1419 o remove use of non-standard types u_int etc. 1420 o meta.c: apply realpath() before matching against metaIgnorePaths 1421 14222016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1423 1424 * Makefile (_MAKE_VERSION): 20160404 1425 Merge with NetBSD make, pick up 1426 o allow makefile to set .MAKE.JOBS 1427 1428 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 1429 14302016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1431 1432 * Makefile (_MAKE_VERSION): 20160315 1433 Merge with NetBSD make, pick up 1434 o fix handling of archive members 1435 14362016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 1437 1438 * Makefile (_MAKE_VERSION): rename variable to avoid interference 1439 with checks for ${MAKE_VERSION} 1440 14412016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1442 1443 * Makefile (MAKE_VERSION): 20160310 1444 Merge with NetBSD make, pick up 1445 o meta.c: treat missing Read file same as Write, incase we Delete it. 1446 14472016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1448 1449 * Makefile (MAKE_VERSION): 20160307 1450 Merge with NetBSD make, pick up 1451 o var.c: fix :ts\nnn to be octal by default. 1452 o meta.c: meta_finish() to cleanup memory. 1453 14542016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1455 1456 * Makefile (MAKE_VERSION): 20160226 1457 Merge with NetBSD make, pick up 1458 o meta.c: allow meta file for makeDepend if makefiles want it. 1459 14602016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 1461 1462 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 1463 for backwards compatability. 1464 1465 * Makefile (MAKE_VERSION): 20160220 1466 Merge with NetBSD make, pick up 1467 o var.c: add knob to control handling of '$$' in := 1468 14692016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1470 1471 * Makefile (MAKE_VERSION): 20160218 1472 Merge with NetBSD make, pick up 1473 o var.c: add .export-literal allows us to fix sys.clean-env.mk 1474 post the changes to Var_Subst. 1475 Var_Subst now takes flags, and does not consume '$$' in := 1476 14772016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 1478 1479 * Makefile (MAKE_VERSION): 20160217 1480 Merge with NetBSD make, pick up 1481 o var.c: preserve '$$' in := 1482 o parse.c: add .dinclude for handling included 1483 makefile like .depend 1484 14852015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 1486 1487 * Makefile (MAKE_VERSION): 20151220 1488 Merge with NetBSD make, pick up 1489 o suff.c: re-initialize suffNull when clearing suffixes. 1490 14912015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 1492 1493 * Makefile (MAKE_VERSION): 20151201 1494 Merge with NetBSD make, pick up 1495 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 1496 o meta.c: meta_oodate: use lstat(2) for checking link target 1497 in case it is a symlink. 1498 o var.c: avoid calling brk_string and Var_Export1 with empty 1499 strings. 1500 15012015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1502 1503 * Makefile (MAKE_VERSION): 20151126 1504 Merge with NetBSD make, pick up 1505 o parse.c: ParseTrackInput don't access beyond 1506 end of old value. 1507 15082015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 1509 1510 * Makefile (MAKE_VERSION): 20151022 1511 1512 * Add support for BSD/OS which lacks inttypes.h 1513 and really needs sys/param.h for sys/sysctl.h 1514 also 'type' is not a shell builtin. 1515 1516 * var.c: eliminate uint32_t and need for inttypes.h 1517 1518 * main.c: PrintOnError flush stdout before run .ERROR 1519 1520 * parse.c: cope with _SC_PAGESIZE not being defined. 1521 1522 15232015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1524 1525 * Makefile (MAKE_VERSION): 20151020 1526 Merge with NetBSD make, pick up 1527 o var.c: fix uninitialized var 1528 15292015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1530 1531 * var.c: the conditional expressions used with ':?' can be 1532 expensive, if already discarding do not evaluate or expand 1533 anything. 1534 15352015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1536 1537 * Makefile (MAKE_VERSION): 20151010 1538 Merge with NetBSD make, pick up 1539 o Add Boolean wantit flag to Var_Subst and Var_Parse 1540 when FALSE we know we are discarding the result and can 1541 skip operations like Cmd_Exec. 1542 15432015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 1544 1545 * Makefile (MAKE_VERSION): 20151009 1546 Merge with NetBSD make, pick up 1547 o var.c: don't check for NULL before free() 1548 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 1549 15502015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 1551 1552 * Makefile (MAKE_VERSION): 20150910 1553 Merge with NetBSD make, pick up 1554 o main.c: with -w print Enter/Leaving messages for objdir too 1555 if necessary. 1556 o centralize shell metachar handling 1557 1558 * FILES: add metachar.[ch] 1559 15602015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1561 1562 * Makefile (MAKE_VERSION): 20150606 1563 Merge with NetBSD make, pick up 1564 o make.1: document .OBJDIR target 1565 15662015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1567 1568 * Makefile (MAKE_VERSION): 20150505 1569 Merge with NetBSD make, pick up 1570 o cond.c: be strict about lhs of comparison when evaluating .if 1571 but less so when called from variable expansion. 1572 o unit-tests/cond2.mk: test various error conditions 1573 15742015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1575 1576 * machine.sh (MACHINE): Add Bitrig 1577 patch from joerg@netbsd.org 1578 15792015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1580 1581 * Makefile (MAKE_VERSION): 20150418 1582 Merge with NetBSD make, pick up 1583 o job.c: use memmove() rather than memcpy() 1584 1585 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 1586 case, so skip it. 1587 15882015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1589 1590 * Makefile (MAKE_VERSION): 20150411 1591 bump version - only mk/ changes. 1592 15932015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 1594 1595 * Makefile (MAKE_VERSION): 20150410 1596 Merge with NetBSD make, pick up 1597 o document different handling of '-' in jobs mode vs compat 1598 o fix jobs mode so that '-' only applies to whole job 1599 when shell lacks hasErrCtl 1600 o meta.c: use separate vars to track lcwd and latestdir (read) 1601 per process 1602 16032015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1604 1605 * Makefile (MAKE_VERSION): 20150401 1606 Merge with NetBSD make, pick up 1607 o meta.c: close meta file in child 1608 1609 * Makefile: use BINDIR.bmake if set. 1610 Same for MANDIR and SHAREDIR 1611 Handy for testing release candidates 1612 in various environments. 1613 16142015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1615 1616 * move initialization of savederr to block where it is used 1617 to avoid spurious warning from gcc5 1618 16192014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1620 1621 * Makefile (MAKE_VERSION): 20141111 1622 just a cooler number 1623 16242014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1625 1626 * Makefile (MAKE_VERSION): 20141105 1627 Merge with NetBSD make, pick up 1628 o revert major overhaul of suffix handling 1629 and POSIX compliance - too much breakage 1630 and impossible to make backwards compatible. 1631 o we still have the new unit test structure which is ok. 1632 o meta.c ensure "-- filemon" is at start of line. 1633 16342014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 1635 1636 * configure.in: test that result of getconf PATH_MAX is numeric 1637 and discard if not. Apparently needed for Hurd. 1638 16392014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 1640 1641 * Makefile (MAKE_VERSION): 20140830 1642 Merge with NetBSD make, pick up 1643 o major overhaul of suffix handling 1644 o improved POSIX compliance 1645 o overhauled unit-tests 1646 16472014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 1648 1649 * Makefile (MAKE_VERSION): 20140620 1650 Merge with NetBSD make, pick up 1651 o var.c return varNoError rather than var_Error for ::= modifiers. 1652 16532014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1654 1655 * Makefile (MAKE_VERSION): 20140522 1656 Merge with NetBSD make, pick up 1657 o var.c detect some parse errors. 1658 16592014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1660 1661 * Fix spelling errors - patch from Pedro Giffuni 1662 16632014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1664 1665 * Makefile (MAKE_VERSION): 20140214 1666 Merge with NetBSD make, pick up 1667 o .INCLUDEFROM* 1668 o use Var_Value to get MAKEOBJDIR[PREFIX] 1669 o reduced realloc'ign in brk_string. 1670 * configure.in: add a check for compiler supporting __func__ 1671 16722014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 1673 1674 * boot-strap: ignore mksrc=none 1675 16762014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 1677 1678 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 1679 16802014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 1681 1682 * Makefile (MAKE_VERSION): 20140101 1683 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 1684 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 1685 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 1686 Hurd) 1687 * configure.in: Add AC_PREREQ and check for 1688 sysctl; patch from Andrew Shadura andrewsh at debian.org 1689 16902013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 1691 1692 * Makefile (MAKE_VERSION): 20131010 1693 * lose the const from arg to systcl to avoid problems on older BSDs. 1694 16952013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1696 1697 * Makefile (MAKE_VERSION): 20131001 1698 Merge with NetBSD make, pick up 1699 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 1700 hw.machine_arch if necessary. 1701 o meta.c: meta_oodate - need to look at src of Link and target 1702 of Move as well. 1703 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 1704 provide __arraycount() if needed. 1705 17062013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1707 1708 * Makefile (MAKE_VERSION): 20130904 1709 Merge with NetBSD make, pick up 1710 o Add VAR_INTERNAL context, so that internal setting of 1711 MAKEFILE does not override value set by makefiles. 1712 17132013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1714 1715 * Makefile (MAKE_VERSION): 20130902 1716 Merge with NetBSD make, pick up 1717 o CompatRunCommand: only apply shellErrFlag when errCheck is true 1718 17192013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1720 1721 * Makefile (MAKE_VERSION): 20130828 1722 Merge with NetBSD make, pick up 1723 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 1724 o Call Job_SetPrefix() from Job_Init() so makefiles have 1725 opportunity to set .MAKE.JOB.PREFIX 1726 17272013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 1728 1729 * Makefile (MAKE_VERSION): 20130730 1730 Merge with NetBSD make, pick up 1731 o Allow suppression of --- job -- tokens by setting 1732 .MAKE.JOB.PREFIX empty. 1733 17342013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1735 1736 * Makefile (MAKE_VERSION): 20130716 1737 Merge with NetBSD make, pick up 1738 o number of gmake compatibility tweaks 1739 -w for gmake style entering/leaving messages 1740 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 1741 handle MAKEFLAGS containing only letters. 1742 o when overriding a GLOBAL variable on the command line, 1743 delete it from GLOBAL context so -V doesn't show the wrong 1744 value. 1745 17462013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 1747 1748 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 1749 1750 * Makefile (MAKE_VERSION): 20130706 1751 Merge with NetBSD make, pick up 1752 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 1753 true so that CompatRunCommand() can use it, to ensure 1754 consistent behavior with jobs mode. 1755 o use MAKE_LEVEL_ENV to define the variable to propagate 1756 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 1757 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 1758 paths to ignore. 1759 17602013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1761 1762 * Makefile (MAKE_VERSION): 20130604 1763 Merge with NetBSD make, pick up 1764 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 1765 to avoid leaking descriptors. 1766 17672013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 1768 1769 * Makefile (MAKE_VERSION): 20130528 1770 Merge with NetBSD make, pick up 1771 o var.c: cleanup some left-overs in VarHash() 1772 17732013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1774 1775 * Makefile (MAKE_VERSION): 20130520 1776 generate manifest from component FILES rather than have to 1777 update FILES when mk/FILES changes. 1778 17792013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 1780 1781 * Makefile (MAKE_VERSION): 20130518 1782 Merge with NetBSD make, pick up 1783 o suff.c: don't skip all processsing for .PHONY targets 1784 else wildcard srcs do not get expanded. 1785 o var.c: expand name of variable to delete if necessary. 1786 17872013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1788 1789 * Makefile (MAKE_VERSION): 20130330 1790 Merge with NetBSD make, pick up 1791 o meta.c: refine the handling of .OODATE in commands. 1792 Rather than suppress command comparison for the entire script 1793 as though .NOMETA_CMP had been used, only suppress it for the 1794 one command line. 1795 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 1796 suppress comparison of a command without otherwise affecting it. 1797 o make.1: document that 1798 17992013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1800 1801 * Makefile (MAKE_VERSION): 20130321 1802 yes, not quite right but its a cooler number. 1803 Merge with NetBSD make, pick up 1804 o parse.c: fix ParseGmakeExport to be portable 1805 and add a unit-test. 1806 * meta.c: call meta_init() before makefiles are read and if built 1807 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 1808 this let's makefiles test for support. 1809 Call meta_mode_init() to process .MAKE.MODE. 1810 18112013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 1812 1813 * Makefile (MAKE_VERSION): 20130305 1814 Merge with NetBSD make, pick up 1815 o run .STALE: target when a dependency from .depend is missing. 1816 o job.c: add Job_RunTarget() for the above and .BEGIN 1817 18182013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1819 1820 * Makefile (MAKE_VERSION): 20130303 1821 Merge with NetBSD make, pick up 1822 o main.c: set .MAKE.OS to utsname.sysname 1823 o job.c: more checks for read and poll errors 1824 o var.c: lose VarChangeCase() saves 4% time 1825 18262013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1827 1828 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 1829 want to use MAKEOBJDIR 1830 18312013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 1832 1833 * Merge with NetBSD make, pick up 1834 o make.1: more info on how shell commands are handled. 1835 o job.c,main.c: detect write errors to job pipes. 1836 18372013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 1838 1839 * Makefile (MAKE_VERSION): 20130123 1840 Merge with NetBSD make, pick up 1841 o meta.c: if script uses .OODATE and meta_oodate() decides 1842 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 1843 o var.c: in debug output indicate which variabale modifiers 1844 apply to. 1845 o remove Check_Cwd logic the makefiles have been fixed. 1846 18472012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1848 1849 * makefile.in: add a simple makefile for folk who insist on 1850 ./configure; make; make install 1851 it just runs boot-strap 1852 * include mk/* to accommodate the above 1853 * boot-strap: re-work to accommodate the above 1854 mksrc defaults to $Mydir/mk 1855 allow op={configure,build,install,clean,all} 1856 add options to facilitate install 1857 * Makefile.config.in: just the bits set by configure 1858 * Makefile: bump version to 20121212 1859 abandon Makefile.in (NetBSD Makefile) 1860 leverage mk/* instead 1861 * configure.in: ensure srcdir is absolute 1862 18632012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1864 1865 * Makefile.in (MAKE_VERSION): 20121111 1866 fix generation of bmake.cat1 1867 18682012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1869 1870 * Makefile.in (MAKE_VERSION): 20121109 1871 Merge with NetBSD make, pick up 1872 o make.c: MakeBuildChild: return 0 so search continues if a 1873 .ORDER dependency is detected. 1874 o unit-tests/order: test the above 1875 18762012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 1877 1878 * Makefile.in (MAKE_VERSION): 20121102 1879 Merge with NetBSD make, pick up 1880 o cond.c: allow cond_state[] to grow. 1881 In meta mode with a very large tree, we can hit the limit 1882 while processing dirdeps. 1883 18842012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 1885 1886 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 1887 18882012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1889 1890 * Makefile.in (MAKE_VERSION): 20121010 1891 o protect syntax that only bmake parses correctly. 1892 o remove auto setting of FORCE_MACHINE, use configure's 1893 --with-force-machine=whatever if that is desired. 1894 18952012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 1896 1897 * Makefile.in: do not lose history from make.1 when generating bmake.1 1898 18992012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 1900 1901 * Makefile.in (MAKE_VERSION): 20121007 1902 Merge with NetBSD make, pick up 1903 o compat.c: ignore empty commands - same as jobs mode. 1904 o make.1: document meta chars that cause use of shell 1905 19062012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1907 1908 * Makefile.in (MAKE_VERSION): bump version to 20120911 1909 * bsd.after-import.mk: include Makefile.inc early and allow it to 1910 override PROG 1911 19122012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 1913 1914 * Makefile.in (MAKE_VERSION): bump version to 20120831 1915 Merge with NetBSD make, pick up 1916 o cast sizeof() to int for comparison 1917 o minor make.1 tweak 1918 19192012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 1920 1921 * Makefile.in (MAKE_VERSION): bump version to 20120830 1922 Merge with NetBSD make, pick up 1923 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 1924 o debug flag -dV causes -V to show raw value regardless. 1925 19262012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 1927 1928 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 1929 gets SRCTOP set. 1930 19312012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 1932 1933 * Makefile.in (MAKE_VERSION): bump version to 20120704 1934 Merge with NetBSD make, pick up 1935 o Job_ParseShell should call Shell_Init if it has been 1936 previously called. 1937 * Makefile.in: set USE_META based on configure result. 1938 also .PARSEDIR is safer indicator of bmake. 1939 19402012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 1941 1942 * Makefile.in: bump version to 20120626 1943 ensure CPPFLAGS is in CFLAGS 1944 * meta.c: avoid nested externs 1945 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 1946 19472012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 1948 1949 * Makefile.in (MAKE_VERSION): bump version to 20120620 1950 Merge with NetBSD make, pick up 1951 o make_malloc.c: avoid including make_malloc.h again 1952 1953 * Makefile.in: avoid bmake only syntax or protect with 1954 .if defined(.MAKE.LEVEL) 1955 * bsd.after-import.mk: replace .-include with .sinclude 1956 ensure? SRCTOP gets a value 1957 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 1958 19592012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 1960 1961 * Makefile.in (MAKE_VERSION): bump version to 20120612 1962 Merge with NetBSD make, pick up 1963 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 1964 for greater portability. 1965 o unit-tests/forloop: check that .for works as expected wrt 1966 number of times and with "quoted strings". 1967 19682012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1969 1970 * Makefile.in (MAKE_VERSION): bump version to 20120606 1971 Merge with NetBSD make, pick up 1972 o compat.c: use kill(2) rather than raise(3). 1973 * configure.in: look for sys/dev/filemon 1974 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 1975 and pass BOOTSTRAP_XTRAS to boot-strap. 1976 19772012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1978 1979 * Makefile.in (MAKE_VERSION): bump version to 20120604 1980 Merge with NetBSD make, pick up 1981 o util.c and var.c share same var for tracking if environ 1982 has been reallocated. 1983 o util.c provide getenv with setenv. 1984 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 1985 when the shell actively strips .MAKE.* from the environment. 1986 We still refer to the variable always as .MAKE.LEVEL 1987 * util.c fix bug in findenv() was finding prefix of name. 1988 * compat.c: re-raising SIGINT etc after running .INTERRUPT 1989 results in more reliable termination of all activity on many 1990 platforms. 1991 19922012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1993 1994 * Makefile.in (MAKE_VERSION): bump version to 20120602 1995 Merge with NetBSD make, pick up 1996 o for.c: handle quoted items in .for list 1997 19982012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 1999 2000 * Makefile.in (MAKE_VERSION): bump version to 20120530 2001 Merge with NetBSD make, pick up 2002 o compat.c: ignore empty command. 2003 20042012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2005 2006 * Makefile.in (MAKE_VERSION): bump version to 20120524 2007 * FILES: add bsd.after-import.mk: 2008 A simple means of integrating bmake into a BSD build system. 2009 20102012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2011 2012 * Makefile.in (MAKE_VERSION): bump version to 20120520 2013 Merge with NetBSD make, pick up 2014 o increased limit for nested conditionals. 2015 20162012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2017 2018 * Makefile.in (MAKE_VERSION): bump version to 20120518 2019 Merge with NetBSD make, pick up 2020 o use _exit(2) in signal hanlder 2021 o Don't use the [dir] cache when building nodes that might have 2022 changed since the last exec. 2023 o Avoid nested extern declaration warnings. 2024 20252012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2026 2027 * meta.c (fgetLine): avoid %z - not portable. 2028 * parse.c: Since we moved include of sys/mman.h 2029 and def's of MAP_COPY etc. we got dups from a merge. 2030 20312012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2032 2033 * Makefile.in (MAKE_VERSION): bump version to 20120420 2034 Merge with NetBSD make, pick up 2035 o restore duplicate supression in .MAKE.MAKEFILES 2036 runtime saving can be significant. 2037 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2038 consumption up to 20%. 2039 20402012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2041 2042 * Makefile.in (MAKE_VERSION): bump version to 20120420 2043 Merge with NetBSD make, pick up 2044 o remove duplicate supression in .MAKE.MAKEFILES 2045 o improved dir cache behavior 2046 o gmake'ish export command 2047 20482012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2049 2050 * Makefile.in (MAKE_VERSION): bump version to 20120325 2051 Merge with NetBSD make, pick up 2052 o fix parsing of :[#] in conditionals. 2053 20542012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2055 2056 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2057 since some systems cannot cope with .Nx <version> 2058 20592011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2060 2061 * Makefile.in (MAKE_VERSION): bump version to 20111111 2062 Merge with NetBSD make, pick up 2063 o debug output for .PARSEDIR and .PARSEFILE 2064 20652011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2066 2067 * Makefile.in (MAKE_VERSION): bump version to 20111010 2068 20692011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2070 2071 * boot-strap: check for an expected file in the dirs we look for. 2072 * make-bootstrap.sh: pass on LDSTATIC 2073 20742011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2075 2076 * Makefile.in (MAKE_VERSION): bump version to 20111001 2077 Merge with NetBSD make, pick up 2078 o ensure .PREFIX is set for .PHONY 2079 and .TARGET set for .PHONY run via .END 2080 o __dead used consistently 2081 20822011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2083 2084 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2085 20862011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2087 2088 * Makefile.in (MAKE_VERSION): bump version to 20110905 2089 Merge with NetBSD make, pick up 2090 o meta_oodate: ignore makeDependfile 2091 20922011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2093 2094 * Makefile.in (MAKE_VERSION): bump version to 20110828 2095 Merge with NetBSD make, pick up 2096 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2097 as SILENT if a .meta file is created 2098 20992011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2100 2101 * Makefile.in (MAKE_VERSION): bump version to 20110818 2102 Merge with NetBSD make, pick up 2103 o in meta mode, if target flagged .META a missing .meta file 2104 means target is out-of-date 2105 o fixes for gcc 4.5 warnings 2106 o simplify job printing code 2107 21082011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 2109 2110 * Makefile.in (MAKE_VERSION): bump version to 20110808 2111 Merge with NetBSD make, pick up 2112 o do not touch OP_SPECIAL targets when doing make -t 2113 21142011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 2115 2116 * Makefile.in (MAKE_VERSION): bump version to 20110622 2117 Merge with NetBSD make, pick up 2118 o meta_oodate detect corrupted .meta file and declare oodate. 2119 * configure.in: add check for setsid 2120 21212011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 2122 2123 * Merge with NetBSD make, pick up 2124 o unit-tests/modts now works on MirBSD 2125 21262011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2127 2128 * Makefile.in (MAKE_VERSION): bump version to 20110606 2129 Merge with NetBSD make, pick up 2130 o ApplyModifiers: when we parse a variable which is not 2131 the entire modifier string, or not followed by ':', do not 2132 consider it as containing modifiers. 2133 o loadfile: ensure newline at end of mapped file. 2134 21352011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2136 2137 * Makefile.in (MAKE_VERSION): bump version to 20110505 2138 Merge with NetBSD make, pick up 2139 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 2140 of make's control. In meta mode, any generated file within 2141 said bailiwick, which is found to be missing, causes current 2142 target to be out-of-date. 2143 21442011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2145 2146 * Makefile.in (MAKE_VERSION): bump version to 20110411 2147 Merge with NetBSD make, pick up 2148 o when long modifiers fail to match, check sysV style. 2149 - add a test case 2150 21512011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2152 2153 * Makefile.in (MAKE_VERSION): bump version to 20110410 2154 Merge with NetBSD make, pick up 2155 o :hash - cheap 32bit hash of value 2156 o :localtime, :gmtime - use value as format string for strftime. 2157 21582011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2159 2160 * Makefile.in (MAKE_VERSION): bump version to 20110330 2161 mostly because its a cooler version. 2162 Merge with NetBSD make, pick up 2163 o NetBSD tags for meta.[ch] 2164 o job.c call meta_job_finish() after meta_job_error(). 2165 o meta_job_error() should call meta_job_finish() to ensure 2166 .meta file is closed, and safe to copy - if .ERROR target wants. 2167 meta_job_finish() is safe to call repeatedly. 2168 21692011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2170 2171 * unit-tests/modts: use printf if it is a builtin, 2172 to save us from MirBSD 2173 2174 * Makefile.in (MAKE_VERSION): bump version to 20110329 2175 Merge with NetBSD make, pick up 2176 o fix for use after free() in CondDoExists(). 2177 o meta_oodate() report extra commands and return earlier. 2178 21792011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 2180 2181 * Makefile.in (MAKE_VERSION): bump version to 20110327 2182 Merge with NetBSD make, pick up 2183 o meta.c, if .MAKE.MODE contains curdirOk=yes 2184 allow creating .meta files in .CURDIR 2185 * boot-strap (TOOL_DIFF): aparently at least on linux distro 2186 formats the output of 'type' differently - so eat any "()" 2187 21882011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 2189 2190 * Makefile.in (MAKE_VERSION): bump version to 20110306 2191 Merge with NetBSD make, pick up 2192 o meta.c, only do getcwd() once 2193 21942011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 2195 2196 * Makefile.in (MAKE_VERSION): bump version to 20110305 2197 Merge with NetBSD make, pick up 2198 o correct sysV substitution handling of empty lhs and variable 2199 o correct exists() check for dir with trailing / 2200 o correct handling of modifiers for non-existant variables 2201 during evaluation of conditionals. 2202 o ensure MAP_FILE is defined. 2203 o meta.c use curdir[] now exported by main.c 2204 22052011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 2206 2207 * Makefile.in (MAKE_VERSION): bump version to 20110225 2208 Merge with NetBSD make, pick up 2209 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 2210 makefiles have been read. 2211 o fix example of :? modifier in man page. 2212 22132011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 2214 2215 * Makefile.in (MAKE_VERSION): bump version to 20110214 2216 Merge with NetBSD make, pick up 2217 o meta.c handle realpath() failing when generating meta file 2218 name. 2219 2220 * sigcompat.c: convert to ansi so we can use higher warning levels. 2221 2222 22232011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 2224 2225 * Makefile.in (MAKE_VERSION): bump version to 20110207 2226 Merge with NetBSD make, pick up 2227 o fix for bug in meta mode. 2228 22292011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2230 2231 * parse.c: SunOS 5.8 at least does not have MAP_FILE 2232 22332011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2234 2235 * Makefile.in (MAKE_VERSION): bump version to 20110101 2236 Merge with NetBSD make, pick up 2237 o use mmap(2) if available, for reading makefiles 2238 22392010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 2240 2241 * Makefile.in (MAKE_VERSION): bump version to 20101215 2242 Merge with NetBSD make, pick up 2243 o ensure meta_job_error() does not report a previous .meta file 2244 as being culprit. 2245 22462010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 2247 2248 * Makefile.in (MAKE_VERSION): bump version to 20101210 2249 Merge with NetBSD make, pick up 2250 o meta_oodate: track cwd per process, and only consider target 2251 out-of-date if missing file is outside make's CWD. 2252 Ignore files in /tmp/ etc. 2253 o to ensure unit-tests results match, need to control LC_ALL 2254 as well as LANG. 2255 o fix for parsing bug in var.c 2256 22572010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2258 2259 * Makefile.in (MAKE_VERSION): bump version to 20101126 2260 Merge with NetBSD make, pick up 2261 o if stale dependency is an IMPSRC, search via .PATH 2262 o meta_oodate: if a referenced file is missing, target is 2263 out-of-date. 2264 o meta_oodate: if a target uses .OODATE in its commands, 2265 it (.OODATE) needs to be recomputed. 2266 o keep a pointer to youngest child node, rather than just its 2267 mtime. 2268 22692010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2270 2271 * Makefile.in (MAKE_VERSION): bump version to 20101101 2272 22732010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2274 2275 * machine.sh: like os.sh, 2276 allow for uname -p producing useless drivel 2277 22782010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 2279 2280 * boot-strap: document configure knobs for meta and filemon. 2281 2282 * Makefile.in (MAKE_VERSION): bump version to 20100911 2283 Merge with NetBSD make, pick up 2284 o meta.c - meta mode 2285 2286 * make-bootstrap.sh.in: handle meta.c 2287 * configure.in: add knobs for use_meta and filemon_h 2288 also, look for dirname, str[e]sep and strlcpy 2289 * util.c: add simple err[x] and warn[x] 2290 22912010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2292 2293 * boot-strap (TOOL_DIFF): set this to ensure tests use 2294 the same version of diff that configure tested 2295 2296 * Makefile.in (MAKE_VERSION): bump version to 20100808 2297 Merge with NetBSD make, pick up 2298 o in jobs mode, when we discover we cannot make something, 2299 call PrintOnError before exit. 2300 23012010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 2302 2303 * Makefile.in (MAKE_VERSION): bump version to 20100806 2304 Merge with NetBSD make, pick up 2305 o formatting fixes for ignored errors 2306 o ensure jobs are cleaned up regardless of where wait() was called. 2307 23082010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2309 2310 * Makefile.in (MAKE_VERSION): bump version to 20100618 2311 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 2312 23132010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2314 2315 * Makefile.in (MAKE_VERSION): bump version to 20100616 2316 Merge with NetBSD make, pick up 2317 o man page update 2318 o call PrintOnError from JobFinish when we detect an error we 2319 are not ignoring. 2320 23212010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2322 2323 * Makefile.in (MAKE_VERSION): bump version to 20100606 2324 Merge with NetBSD make, pick up 2325 o man page update 2326 23272010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 2328 2329 * Makefile.in (MAKE_VERSION): bump version to 20100605 2330 Merge with NetBSD make, pick up 2331 o use bmake_signal() which is a wrapper around sigaction() 2332 in place of signal() 2333 o add .export-env to allow exporting variables to environment 2334 without tracking (so no re-export when the internal value is 2335 changed). 2336 23372010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2338 2339 * Makefile.in (MAKE_VERSION): bump version to 20100524 2340 Merge with NetBSD make, pick up 2341 o fix for .info et al being greedy. 2342 23432010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 2344 2345 * Makefile.in (MAKE_VERSION): bump version to 20100520 2346 Merge with NetBSD make, pick up 2347 o back to using realpath on argv[0] 2348 but only if contains '/' and does not start with '/'. 2349 23502010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2351 2352 * boot-strap: use absolute path for bmake when running tests. 2353 2354 * Makefile.in (MAKE_VERSION): bump version to 20100510 2355 Merge with NetBSD make, pick up 2356 o revert use of realpath on argv[0] 2357 too many corner cases. 2358 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 2359 23602010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2361 2362 * Makefile.in (MAKE_VERSION): bump version to 20100505 2363 Merge with NetBSD make, pick up 2364 o fix for missed SIGCHLD when compiled with SunPRO 2365 actually for bmake, defining FORCE_POSIX_SIGNALS would have 2366 done the job. 2367 23682010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 2369 2370 * Makefile.in (MAKE_VERSION): bump version to 20100430 2371 Merge with NetBSD make, pick up 2372 o fflush stdout before writing to stdout 2373 23742010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 2375 2376 * Makefile.in (MAKE_VERSION): bump version to 20100423 2377 Merge with NetBSD make, pick up 2378 o updated unit tests for Haiku (this time for sure). 2379 * boot-strap: based on patch from joerg 2380 honor --with-default-sys-path better. 2381 * boot-strap: remove mention of --with-prefix-sys-path 2382 23832010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 2384 2385 * Makefile.in (MAKE_VERSION): bump version to 20100422 2386 * Merge with NetBSD make, pick up 2387 o fix for vfork() on Darwin. 2388 o fix for bogus $TMPDIR. 2389 o set .MAKE.MODE=compat for -B 2390 o set .MAKE.JOBS=max_jobs for -j max_jobs 2391 o allow unit-tests to run without any *.mk 2392 o unit-tests/modmisc be more conservative in dirs presumed to exist. 2393 * boot-strap: ignore /usr/share/mk except on NetBSD. 2394 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 2395 ensure sort(1) behaves as expected. 2396 23972010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2398 2399 * boot-strap: add FindHereOrAbove so we can use -m .../mk 2400 24012010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2402 2403 * Makefile.in (MAKE_VERSION): bump version to 20100420 2404 * Merge with NetBSD make, pick up 2405 o fix for variable realpath() behavior. 2406 we have to stat(2) the result to be sure. 2407 o fix for .export (all) when nested vars use :sh 2408 24092010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 2410 2411 * Makefile.in (MAKE_VERSION): bump version to 20100414 2412 * Merge with NetBSD make, pick up 2413 o use realpath to resolve argv[0] (for .MAKE) if needed. 2414 o add realpath from libc. 2415 o add :tA to resolve variable via realpath(3) if possible. 2416 24172010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 2418 2419 * Makefile.in (MAKE_VERSION): bump version to 20100408 2420 * Merge with NetBSD make, pick up 2421 o unit tests for .ERROR, .error 2422 o fix for .ERROR to ensure it cannot be default target. 2423 24242010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 2425 2426 * Makefile.in (MAKE_VERSION): bump version to 20100406 2427 * Merge with NetBSD make, pick up 2428 o fix for compat mode "Error code" going to debug_file. 2429 o fix for .ALLSRC being populated twice. 2430 o support for .info, .warning and .error directives 2431 o .MAKE.MODE to control make's operational mode 2432 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 2433 name(s). 2434 o .MAKE.DEPENDFILE to control the name of the depend file 2435 o .ERROR target - run on failure. 2436 24372010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 2438 2439 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 2440 2441 * os.sh,arch.c: patch for Haiku from joerg at netbsd 2442 24432010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 2444 2445 * Makefile.in (MAKE_VERSION): bump version to 20100222 2446 * Merge with NetBSD make, pick up 2447 o better error msg for .for with mutiple inter vars 2448 2449 * boot-strap: 2450 o use make-bootstrap.sh from joerg at netbsd 2451 to avoid the need for a native make when bootstrapping. 2452 o add "" everywhere ;-) 2453 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 2454 otherwise the pre-formated version. 2455 24562010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2457 2458 * Makefile.in (MAKE_VERSION): bump version to 20100102 2459 * Merge with NetBSD make, pick up: 2460 o fix for -m .../ 2461 24622009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 2463 2464 * Makefile.in (MAKE_VERSION): bump version to 20091118 2465 * Merge with NetBSD make, pick up: 2466 o .unexport 2467 o report lines that start with '.' and should have ':' 2468 (catch typo's of .el*if). 2469 24702009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2471 2472 * configure.in: Ensure that srcdir and mksrc are absolute paths. 2473 24742009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2475 2476 * Makefile.in (MAKE_VERSION): fix version to 20091007 2477 24782009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 2479 2480 * Makefile.in (MAKE_VERSION): bump version to 200910007 2481 * Merge with NetBSD make, pick up: 2482 o fix for parsing of :S;...;...; applied to .for loop iterator 2483 appearing in a dependency line. 2484 24852009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 2486 2487 * Makefile.in (MAKE_VERSION): bump version to 20090909 2488 * Merge with NetBSD make, pick up: 2489 o fix for -C, .CURDIR and .OBJDIR 2490 * boot-strap: 2491 o allow share_dir to be set independent of prefix. 2492 o select default share_dir better when prefix ends in $HOST_TARGET 2493 o if FORCE_BSD_MK etc were set, include them in the suggested 2494 install-mk command. 2495 24962009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2497 2498 * Makefile.in (MAKE_VERSION): bump version to 20090908 2499 * Merge with NetBSD make, pick up: 2500 o .MAKE.LEVEL for recursion tracking 2501 o fix for :M scanning \: 2502 25032009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 2504 2505 * configure.in: Don't -D__EXTENSIONS__ if 2506 AC_USE_SYSTEM_EXTENSIONS says "no". 2507 25082009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 2509 2510 * Makefile.in (MAKE_VERSION): bump version to 20090826 2511 Simplify MAKE_VERSION to just the bare date. 2512 * Merge with NetBSD make, pick up: 2513 o -C directory support. 2514 o support for SIGINFO 2515 o use $TMPDIR for temp files. 2516 o child of vfork should be careful about modifying parent's state. 2517 2518 25192009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2520 2521 * Appy some patches for MiNT from David Brownlee 2522 25232009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 2524 2525 * Makefile.in (BMAKE_VERSION): bump version to 20090222 2526 * Merge with NetBSD make, pick up: 2527 o Possible null pointer de-ref in Var_Set. 2528 25292009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 2530 2531 * Makefile.in (BMAKE_VERSION): bump version to 20090204 2532 * Merge with NetBSD make, pick up: 2533 o bmake_malloc et al moved to their own .c 2534 o Count both () and {} when looking for the end of a :M pattern 2535 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 2536 o strlist.c - functions for processing extendable arrays of pointers to strings. 2537 o ClientData replaced with void *, so const void * can be used. 2538 o New debug flag C for DEBUG_CWD 2539 25402008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2541 2542 * Makefile.in (BMAKE_VERSION): bump version to 20081111 2543 Apply patch from Joerg Sonnenberge to 2544 configure.in: 2545 o remove some redundant checks 2546 o check for emlloc etc only in libutil and require the whole family. 2547 util.c: 2548 o remove [v]asprintf which is no longer used. 2549 25502008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2551 2552 * Makefile.in (BMAKE_VERSION): bump version to 20081101 2553 * Merge with NetBSD make, pick up: 2554 o util.c: avoid use of putenv() - christos 2555 25562008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2557 2558 * Makefile.in (BMAKE_VERSION): bump version to 20081030 2559 pick up man page tweaks. 2560 25612008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 2562 2563 * Makefile.in: move processing of LIBOBJS to after is definition! 2564 thus we'll have getenv.c in SRCS only if needed. 2565 2566 * make.1: add examples of how to use :? 2567 2568 * Makefile.in (BMAKE_VERSION): bump version to 20081029 2569 * Merge with NetBSD make, pick up: 2570 o fix for .END processing with -j 2571 o segfault from Parse_Error when no makefile is open 2572 o handle numeric expressions in any variable expansion 2573 o debug output now defaults to stderr, -dF to change it - apb 2574 o make now uses bmake_malloc etc so that it can build natively 2575 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 2576 25772008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 2578 2579 * Makefile.in (BMAKE_VERSION): bump version to 20080808 2580 * Merge with NetBSD make, pick up: 2581 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 2582 long lines in Makefiles 2583 o optimizations for VarQuote by joerg 2584 o fix for PR/38756: dominik: make dumps core on invalid makefile 2585 25862008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 2587 2588 * Makefile.in (BMAKE_VERSION): bump version to 20080515 2589 * Merge with NetBSD make, pick up: 2590 o fix skip setting vars in VAR_GLOBAL context, to handle 2591 cases where VAR_CMD is used for other than command line vars. 2592 25932008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 2594 2595 * boot-strap (make_version): we may need to look in 2596 $prefix/share/mk for sys.mk 2597 2598 * Makefile.in (BMAKE_VERSION): bump version to 20080514 2599 * Merge with NetBSD make, pick up: 2600 o skip setting vars in VAR_GLOBAL context, when already set in 2601 VAR_CMD which takes precedence. 2602 26032008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 2604 2605 * Makefile.in (BMAKE_VERSION): bump version to 20080330 2606 * Merge with NetBSD make, pick up: 2607 o fix for ?= when LHS contains variable reference. 2608 26092008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2610 2611 * merge some patches from NetBSD pkgsrc. 2612 2613 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 2614 the MAKSYSPATH used during bootstrap. 2615 2616 * Makefile.in (BMAKE_VERSION): bump version to 20080215 2617 * Merge with NetBSD make, pick up: 2618 o warn if non-space chars follow 'empty' in a conditional. 2619 26202008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 2621 2622 * Makefile.in (BMAKE_VERSION): bump version to 20080118 2623 * Merge with NetBSD make, pick up: 2624 o consider dependencies read from .depend as optional - dsl 2625 o remember when buffer for reading makefile grows - dsl 2626 o add -dl (aka LOUD) - David O'Brien 2627 26282007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 2629 2630 * Makefile.in (BMAKE_VERSION): bump version to 20071022 2631 * Merge with NetBSD make, pick up: 2632 o Allow .PATH<suffix> to be used for .include "" 2633 2634 * boot-strap: source default settings from .bmake-boot-strap.rc 2635 26362007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 2637 2638 * Makefile.in: fix maninstall on various systems 2639 provided that our man.mk is used. 2640 For non-BSD systems we install the preformatted page 2641 into $MANDIR/cat1 2642 26432007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 2644 2645 * boot-strap: make bmake.1 too, so maninstall works. 2646 26472007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 2648 2649 * Makefile.in (BMAKE_VERSION): bump version to 20071014 2650 * Merge with NetBSD make, pick up: 2651 o revamped handling of defshell - configure no longer needs to 2652 know the content of the shells array - apb 2653 o stop Var_Subst modifying its input - apb 2654 o avoid calling ParseTrackInput too often - dsl 2655 26562007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 2657 2658 * Makefile.in (BMAKE_VERSION): bump version to 20071011 2659 * Merge with NetBSD make, pick up: 2660 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 2661 2662 * sigcompat.c: some tweaks for HP-UX 11.x based on 2663 patch from Tobias Nygren 2664 2665 * configure.in: update handling of --with-defshell to match 2666 new make behavior. --with-defshell=/usr/xpg4/bin/sh 2667 will now do what one might hope - provided the chosen shell 2668 behaves enough like sh. 2669 26702007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 2671 2672 * Makefile.in (BMAKE_VERSION): bump to 20071008 2673 * Merge with NetBSD make, pick up: 2674 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 2675 o .export/.MAKE.EXPORTED - export of variables - sjg 2676 o .MAKE.MAKEFILES - track all makefiles read - sjg 2677 o performance improvements - dsl 2678 o revamp parallel job scheduling - dsl 2679 26802006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2681 2682 * Makefile.in (BMAKE_VERSION): bump to 20060728 2683 * Merge with NetBSD make, pick up: 2684 o extra debug info during variable and cond processing - sjg 2685 o shell definition now covers newline - rillig 2686 o minor mem leak in PrintOnError - sjg 2687 26882006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 2689 2690 * Makefile.in (BMAKE_VERSION): bump to 20060511 2691 * Merge with NetBSD make, pick up: 2692 o more memory leaks - coverity 2693 o possible overflow in ArchFindMember - coverity 2694 o extract variable modifier code out of Var_Parse() 2695 so it can be called recursively - sjg 2696 o unit-tests/moderrs - sjg 2697 26982006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 2699 2700 * Makefile.in (BMAKE_VERSION): bump to 20060412 2701 * Merge with NetBSD make, pick up: 2702 o fixes for some memory leaks - coverity 2703 o only read first sys.mk etc when searching sysIncPath - sjg 2704 2705 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 2706 setting ${MAKEFILE} - OBATA Akio 2707 27082006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2709 2710 * Makefile.in (BMAKE_VERSION): bump to 20060318 2711 * Merge with NetBSD make, pick up: 2712 o cleanup of job.c to remove remote handling, distcc is more 2713 useful and this code was likely bit-rotting - dsl 2714 o fix for :P modifier - sjg 2715 * boot-strap: set default prefix to something reasonable 2716 (for me anyway). 2717 27182006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2719 2720 * Makefile.in (BMAKE_VERSION): bump to 20060301 2721 * Merge with NetBSD make, pick up: 2722 o make .WAIT apply recursively, document and test case - apb 2723 o allow variable modifiers in a variable appear anywhere in 2724 modifier list, document and test case - sjg 2725 27262006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 2727 2728 * Makefile.in (BMAKE_VERSION): bump to 20060222 2729 * Merge with NetBSD make, pick up: 2730 o improved job token handling - dsl 2731 o SIG_DFL the correct signal before exec - dsl 2732 o more debug info during parsing - dsl 2733 o allow variable modifiers to be specified via variable - sjg 2734 * boot-strap: explain why we died if no mksrc 2735 27362005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 2737 2738 * Makefile.in (BMAKE_VERSION): bump to 20051105 2739 * configure.in: always set default_sys_path 2740 default is ${prefix}/share/mk 2741 - remove prefix_sys_path, anyone wanting more than above 2742 needs to set it manually. 2743 27442005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2745 2746 * boot-strap: make this a bit easier for pkgsrc folk. 2747 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 2748 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 2749 27502005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 2751 2752 * Makefile.in (BMAKE_VERSION): bump to 20051102 2753 * job.c (JobFinish): fix likely ancient merge lossage 2754 fix from Todd Vierling. 2755 * boot-strap (srcdir): allow setting mksrc=none 2756 27572005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 2758 2759 * Makefile.in (BMAKE_VERSION): bump to 20051031 2760 * ranlib.h: skip on OSF too. 2761 (NetBSD PR 31864) 2762 27632005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 2764 2765 * Makefile.in (BMAKE_VERSION): bump to 20051002 2766 fix a silly typo 2767 27682005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2769 2770 * Makefile.in (BMAKE_VERSION): bump to 20051001 2771 support for UnixWare and some other systems, 2772 based on patches from pkgsrc/bootstrap 2773 27742005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 2775 2776 * Makefile.in (BMAKE_VERSION): bump to 20050901 2777 * Merge with NetBSD make, pick up: 2778 o possible parse error causing us to wander off. 2779 27802005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 2781 2782 * Makefile.in (BMAKE_VERSION): bump to 20050606 2783 * Merge with NetBSD make, pick up: 2784 o :0x modifier for randomizing a list 2785 o fixes for a number of -Wuninitialized issues. 2786 27872005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 2788 2789 * Makefile.in (BMAKE_VERSION): bump to 20050530 2790 * Merge with NetBSD make, pick up: 2791 o Handle dependencies for .BEGIN, .END and .INTERRUPT 2792 2793 * README: was seriously out of date. 2794 27952005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2796 2797 * Important to use .MAKE rather than MAKE. 2798 27992005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 2800 2801 * Makefile.in (BMAKE_VERSION): bump to 20050315 2802 * Merge with NetBSD make, pick up: 2803 o don't mistake .elsefoo for .else 2804 o use suffix-specific search path correctly 2805 o bunch of style nits 2806 28072004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 2808 2809 * boot-strap: 2810 o ensure that args to --src and --with-mksrc 2811 are resolved before giving them to configure. 2812 o add -o "objdir" so that builder can control it, 2813 default is $OS as determined by os.sh 2814 o add -q to suppress all the install instructions. 2815 28162004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 2817 2818 * Remove __IDSTRING() 2819 2820 * Makefile.in (BMAKE_VERSION): bump to 20040508 2821 * Merge with NetBSD make, pick up: 2822 o posix fixes 2823 - remove '-e' from compat mode 2824 - add support for '+' command-line prefix. 2825 o fix for handling '--' on command-line. 2826 o fix include in lst.lib/lstInt.h to simplify '-I's 2827 o we also picked up replacement of MAKE_BOOTSTRAP 2828 with !MAKE_NATIVE which is a noop, but possibly confusing. 2829 28302004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 2831 2832 * Makefile.in (BMAKE_VERSION): bump to 20040414 2833 * Merge with NetBSD make, pick up: 2834 o allow quoted strings on lhs of conditionals 2835 o issue warning when extra .else is seen 2836 o print line numer when errors encountered during parsing from 2837 string. 2838 28392004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 2840 2841 * Makefile.in (BMAKE_VERSION): bump to 20040220 2842 * Merge with NetBSD make, pick up: 2843 o fix for old :M parsing bug. 2844 o re-jigged unit-tests 2845 28462004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2847 2848 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 2849 so that './bmake -f Makefile test' works. 2850 28512004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2852 2853 * Makefile.in: (BMAKE_VERSION): bump to 20040214 2854 * Merge with NetBSD make, pick up: 2855 o search upwards for *.mk 2856 o fix for double free of var substitution buffers 2857 o use of getopt replaced with custom code, since the usage 2858 (re-scanning) isn't posix compatible. 2859 28602004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 2861 2862 * arch.c: don't include ranlib.h on ELF systems 2863 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 2864 28652004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 2866 2867 * Makefile.in (BMAKE_VERSION): bump to 20040118 2868 2869 * boot-strap (while): export vars we assign to on cmdline 2870 * unit-test/Makefile.in: ternary is .PHONY 2871 28722004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 2873 2874 * Makefile.in (BMAKE_VERSION): bump version to 20040108 2875 * Merge with NetBSD make, pick up: 2876 o fix for ternary modifier 2877 28782004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 2879 2880 * Makefile.in (BMAKE_VERSION): bump version to 20040105 2881 * Merge with NetBSD make, pick up: 2882 o fix for cond.c to handle compound expressions better 2883 o variable expansion within sysV style replacements 2884 28852003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 2886 2887 * Make portable snprintf safer - output to /dev/null first to 2888 check space needed. 2889 2890 * Makefile.in (BMAKE_VERSION): bump version to 20031222 2891 * Merge with NetBSD make, pick up: 2892 o -dg3 to show input graph when things go wrong. 2893 o explicitly look for makefiles in objdir if not found in curdir so 2894 that errors in .depend etc will be reported accurarely. 2895 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 2896 instead as it more accurately reflects the expected behavior and 2897 is more consistently implemented. 2898 o avoid use of asprintf. 2899 29002003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2901 2902 * util.c: Add asprintf and vasprintf. 2903 2904 * Makefile.in (BMAKE_VERSION): bump version to 20030928 2905 * Merge with NetBSD make, pick up: 2906 :[] modifier - allows picking words from a variable. 2907 :tW modifier - allows treating value as one big word. 2908 W flag for :C and :S - allows treating value as one big word. 2909 29102003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 2911 2912 * Merge with NetBSD make 2913 pick up -de flag to enable printing failed command. 2914 don't skip 1st two dir entries (normally . and ..) since 2915 coda does not have them. 2916 29172003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 2918 2919 * Makefile.in (BMAKE_VERSION): bump version to 20030909 2920 * Merge with NetBSD make, pick up: 2921 - changes for -V '${VAR}' to print fully expanded value 2922 cf. -V VAR 2923 - CompatRunCommand now prints the command that failed. 2924 - several files got updated 3 clause Berkeley license. 2925 29262003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 2927 2928 * boot-strap: Allow setting configure args on command line. 2929 29302003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 2931 2932 * configure.in: add --with-defshell to allow sh or ksh 2933 to be selected as default shell. 2934 2935 * Makefile.in: bump version to 20030731 2936 2937 * Merge with NetBSD make 2938 Pick up .SHELL spec for ksh and associate man page changes. 2939 Also compat mode now uses the same shell specs. 2940 29412003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 2942 2943 * var.c (Var_Parse): ensure delim is initialized. 2944 2945 * unit-tests/Makefile.in: use single quotes to avoid problems from 2946 some shells. 2947 2948 * makefile.boot.in: 2949 Run the unit-tests as part of the bootstrap procedure. 2950 29512003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2952 2953 * unit-tests/Makefile.in: always force complaints from 2954 ${TEST_MAKE} to be from 'make'. 2955 2956 * configure.in: add check for 'diff -u' 2957 also fix some old autoconf'isms 2958 2959 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 2960 if using GCC add -Wno-cast-qual to CFLAGS for var.o 2961 2962 * Merge with NetBSD make 2963 Pick up fix for :ts parsing error in some cases. 2964 Pick unit-tests. 2965 29662003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 2967 2968 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 2969 2970 * var.c (Var_Parse): fix bug in :ts modifier, after const 2971 correctness fixes, must pass nstr to VarModify. 2972 29732003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 2974 2975 * Makefile.in: BMAKE_VERSION switch to a date based version. 2976 We'll generally use the date of last import from NetBSD. 2977 2978 * Merge with NetBSD make 2979 Pick up fixes for const-correctness, now passes WARNS=3 on 2980 NetBSD. 2981 Pick up :ts modifier, allows controlling the separator used 2982 between words in variable expansion. 2983 29842003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 2985 2986 * FILES: include boot-strap and os.sh 2987 2988 * Makefile.in: only set WARNS if we are NetBSD, the effect on 2989 FreeBSD is known to be bad. 2990 2991 * makefile.boot.in (bootstrap): make this the default target. 2992 2993 * Makefile.in: bump version to 3.1.19 2994 2995 * machine.sh: avoid A-Z with tr as it is bound to lose. 2996 29972003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 2998 2999 * Merge with NetBSD make 3000 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3001 Plus some doc fixes. 3002 30032003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3004 3005 * Merge with NetBSD make 3006 Pick up fix for PR/1523 - don't count a library as built, if there 3007 is no way to build it 3008 3009 * Bump version to 3.1.18 3010 30112003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3012 3013 * Merge with NetBSD make 3014 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3015 appears in src list. 3016 30172003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3018 3019 * Merge with NetBSD make (mmm 10th anniversary!) 3020 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3021 pick up -X which tells us to not export VAR=val via setenv if 3022 we are already doing so via MAKEFLAGS. This saves valuable env 3023 space on systems like Darwin. 3024 set MAKE_VERSION to 3.1.17 3025 3026 * parse.c: pix up fix for suffix rules 3027 30282003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3029 3030 * Merge with NetBSD make. 3031 pick up fix for propagating -B via MAKEFLAGS. 3032 set MAKE_VERSION to 3.1.16 3033 3034 * Apply some patches from pkgsrc-bootstrap/bmake 3035 Originally by Grant Beattie <grant@netbsd.org> 3036 I may have missed some - since they are based on bmake-3.1.12 3037 30382002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3039 3040 * makefile.boot.in (bmake): update install targets for those that 3041 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3042 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3043 3044 * bmake.cat1: update the pre-formatted man page! 3045 30462002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3047 3048 * Merge with NetBSD make. 3049 pick up fix for premature free of pointer used in call 3050 to Dir_InitCur(). 3051 set MAKE_VERSION to 3.1.15 3052 30532002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3054 3055 * configure.in: determine suitable value for MKSRC. 3056 override using --with-mksrc=PATH. 3057 3058 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3059 configs(8) will use 'sun4' as an alias for 'sparc'. 3060 30612002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3062 3063 * Merge with NetBSD make. 3064 pick up ${.PATH} 3065 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3066 set MAKE_VERSION to 3.1.14 3067 add configure checks for killpg and sys/socket.h 3068 30692002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3070 3071 * tag bmake-3-1-13 3072 3073 * makefile.boot.in (bmake): use install-mk 3074 Also setup ./mk before trying to invoke bmake.boot incase we 3075 needed install-mk to create a sys.mk for us. 3076 3077 * configure.in: If we need to add -I${srcdir}/missing, make it an 3078 absolute path so that it works for lst.lib too. 3079 3080 * make.h: always include sys/cdefs.h since we provide one if the 3081 host does not. 3082 3083 * Makefile.in (install-mk): 3084 use MKSRC/install-mk which will do the right thing. 3085 use uname -p for ARCH if possible. 3086 since install-mk will setup links bsd.prog.mk -> prog.mk if 3087 needed, just .include bsd.prog.mk 3088 3089 * Merge with NetBSD make (NetBSD-1.6) 3090 Code is ansi-C only now. 3091 Bug in handling of dotLast is fixed. 3092 Can now assign .OBJDIR and make will reset its notions of life. 3093 New modifiers :tu :tl for toUpper and toLower. 3094 3095Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3096 3097 * Merge with NetBSD make 3098 pick up fix for .END failure in compat mode. 3099 pick up fix for extra va_end() in ParseVErrorInternal. 3100 3101Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3102 3103 * configure.in: for systems that have sys/cdefs.h check if it is 3104 compatible. If not, include the one under missing, but tell it to 3105 include the native one too - necessary on Linux. 3106 3107 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 3108 include_next (for gcc) to get the native sys/cdefs.h 3109 3110Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3111 3112 * job.c (JobFinish): Fix an earlier merge bug that resulted in 3113 leaking descriptors when using -jN. 3114 3115 * job.c (JobPrintCommand): See if "curdir" exists before 3116 attempting to chdir(). Doing the chdir directly in make (when in 3117 compat mode) fails silently, so let the -jN version do the same. 3118 This can happen when building kernels in an object tree and 3119 playing clever games to reset .CURDIR. 3120 3121 * Merged with NetBSD make 3122 pick up .USEBEFORE 3123 3124Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3125 3126 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 3127 3128Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3129 3130 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 3131 us not to export the iterator variable when using VAR_CMD context. 3132 3133Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3134 3135 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 3136 its the wrong "fix". 3137 3138Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3139 3140 * Redesigned export of VAR_CMD's via MAKEFLAGS. 3141 We now simply append the variable names to .MAKEOVERRIDES, and 3142 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 3143 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 3144 Apart from fixing quoting bugs in previous version, this allows us 3145 to export vars to the environment by simply doing: 3146 .MAKEOVERRIDES+= PATH 3147 Merged again with NetBSD make, but the above is the only change. 3148 3149 * configure.in: added 3150 --disable-pwd-override disable $PWD overriding getcwd() 3151 --disable-check-make-chdir disable make trying to guess 3152 when it should automatically cd ${.CURDIR} 3153 3154 * Merge with NetBSD make, changes include: 3155 parse.c (ParseDoDependency): Spot that the syntax error is 3156 caused by an unresolved cvs/rcs conflict and say so. 3157 var.c: most of Var* functions now take a ctxt as 1st arg. 3158 now does variable substituion on rhs of sysv style modifiers. 3159 3160 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 3161 is now done here. We append the name='value' to .MAKEOVERRIDES 3162 rather than directly into MAKEFLAGS as this allows a Makefile to 3163 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 3164 very similar mechanism. Note that in adding name='value' to 3165 .MAKEOVERRIDES we do the moral equivalent of: 3166 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 3167 3168Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3169 3170 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 3171 3172 * Merged with NetBSD make 3173 make -dx can now be used to run commands via sh -x 3174 better error messages on exec failures. 3175 3176Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3177 3178 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 3179 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 3180 MACHINE etc otherwise they propagate from the previous bmake. 3181 3182 * configure.in (machine): allow --with-machine=generic to make 3183 configure use machine.sh to set MACHINE. 3184 3185 * job.c (JobInterrupt): convert to using WAIT_T and friends. 3186 3187 * Makefile.in: mention in bmake.1 that we use autoconf. 3188 3189 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 3190 3191Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3192 3193 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 3194 as that rather defeats the usefulness of ${MAKEFILE}. 3195 3196 * main.c (MainParseArgs): append command line variable assignments 3197 to MAKEFLAGS so that they get propagated to child make's. 3198 Apparently this is required POSIX behaviour? Its useful anyway. 3199 3200Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3201 3202 * compat.c (CompatRunCommand): don't use perror() since stdio may 3203 cause problems in child of vfork(). 3204 3205 * compat.c, main.c: Call PrintOnError() when we are going to bail. 3206 This routine prints out the .curdir where we stopped and will also 3207 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 3208 3209 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 3210 :@ expansion. 3211 3212 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 3213 3214 * Added RCSid's for the files we've touched. 3215 3216Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3217 3218 * configure.in: Thanks to some clues from mdb@juniper.net, 3219 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 3220 as well as what ends up in _PATH_DEFSYSPATH. We now have: 3221 3222 --with-machine=MACHINE explicitly set MACHINE 3223 --with-force-machine=MACHINE set FORCE_MACHINE 3224 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 3225 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 3226 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 3227 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 3228 3229 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 3230 3231 * makefile: added a pathetically simple makefile to drive 3232 bootstrapping. Running configure by hand is more useful. 3233 3234 * Makefile.in: added MAKE_VERSION, and reworked things to be less 3235 dependent on NetBSD bsd.*.mk 3236 3237 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 3238 _PATH_OBJDIRPREFIX for those that don't want a default. 3239 construct _PATH_DEFSYSPATH from the info we get from configure. 3240 3241 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 3242 if MAKE_VERSION is defined. 3243 3244 * compat.c: when we bail, print out the .CURDIR we were in. 3245 3246Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3247 3248 * Merged with NetBSD make 3249 3250 * var.c: fixed a bug in the handling of the modifier :P 3251 if the node as found but the path was null, we segfault trying to 3252 duplicate it. 3253 3254Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3255 3256 * Merged with NetBSD make 3257 3258 * make.c: Make_OODate's test for a library out of date was using 3259 cmtime where it should have used mtime (my bug). 3260 3261 * compat.c: Use perror() to tell us what really went wrong when we 3262 cannot exec a command. 3263 3264Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3265 3266 * Merged with NetBSD make 3267 3268Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3269 3270 * Merged with NetBSD make 3271 3272Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3273 3274 * Merged with NetBSD make 3275 3276Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3277 3278 * Merged with NetBSD make 3279 3280Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3281 3282 * util.c: don't provide signal() since we use sigcompat.c 3283 3284 * Makefile.in: added a build target. 3285 3286 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 3287 These allow some quite clever magic. 3288 3289 * main.c (main): added support for getenv(MAKESYSPATH). 3290 3291Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3292 3293 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 3294 This avoids objdir having a different value depending on how a 3295 directory was reached (via command line, or subdir.mk). 3296 3297 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 3298 3299Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3300 3301 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 3302 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 3303 I've been testing this in NetBSD's make for some weeks. 3304 3305 * Turn Makefile into Makefile.in and make it useful. 3306 3307Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3308 3309 * Imported NetBSD's -current make(1) and resolve conflicts. 3310 3311 * Applied autoconf patches from bmake v2 3312 3313 * Imported clean code base from NetBSD-1.0 3314