12021-02-06 Simon J Gerraty <sjg@beast.crufty.net> 2 3 * VERSION (_MAKE_VERSION): 20210206 4 Merge with NetBSD make, pick up 5 o unit-tests: use private TMPDIR to avoid errors from other users 6 72021-02-05 Simon J Gerraty <sjg@beast.crufty.net> 8 9 * VERSION (_MAKE_VERSION): 20210205 10 Merge with NetBSD make, pick up 11 o avoid strdup in mkTempFile 12 o always use vfork 13 o rename context and ctxt to scope 14 o rename some VAR constants to SCOPE 15 o Var_ functions, move the scope to the front 16 o use shortcut functions Global_Set and Global_Append 17 o add shortcut Global_Delete for deleting a global variable 18 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete 19 o compat.c: when exiting due to an error, print graph information 20 o enum.c: remove overengineered Enum_ValueToString 21 o make.c: remove unused INTERNAL flag 22 remove unused return type of MakeBuildParent 23 o parse.c: replace parse error "Need an operator" with better message 24 o var.c: improve documentation about variable scopes 25 rename Var_ValueDirect to GNode_ValueDirect 26 rename old Var_SetWithFlags to Var_SetExpandWithFlags 27 merge SetVar into Var_SetWithFlags 28 split Var_Exists into plain Var_Exists and Var_ExistsExpand 29 split Var_Append into Var_Append and Var_AppendExpand 30 replace enum bit-set with bit-field 31 o unit-tests/var-op-shell: use kill rather than kill -14 32 which broke on darwin with recent update. 33 342021-02-01 Simon J Gerraty <sjg@beast.crufty.net> 35 36 * configure.in: check for sig_atomic_t and define it as 'int' 37 if missing. 38 39 * VERSION (_MAKE_VERSION): 20210201 40 Merge with NetBSD make, pick up 41 o use sig_atomic_t for caught_sigchld 42 432021-01-30 Simon J Gerraty <sjg@beast.crufty.net> 44 45 * VERSION (_MAKE_VERSION): 20210130 46 Merge with NetBSD make, pick up 47 o more unit tests 48 o convert SearchPath to struct 49 o split Buf_Destroy into Buf_Done and Buf_DoneData 50 o for.c: split For_Eval into separate functions 51 rename struct For to struct ForLoop 52 o job.c: do not create empty shell files in jobs mode 53 rename JobOpenTmpFile to JobWriteShellCommands 54 reduce unnecessary calls to waitpid 55 o parse.c: in -dp mode, print stack trace with each diagnostic 56 572021-01-23 Simon J Gerraty <sjg@beast.crufty.net> 58 59 * VERSION (_MAKE_VERSION): 20210123 60 Merge with NetBSD make, pick up 61 o rename Dir_Expand to SearchPath_Expand 62 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags 63 o cond.c: fix debug output for comparison operators in conditionals 64 o dir.c: split Dir_FindFile into separate functions 65 662021-01-20 Simon J Gerraty <sjg@beast.crufty.net> 67 68 * VERSION (_MAKE_VERSION): 20210120 69 Merge with NetBSD make, pick up 70 o fix some more lint nits 71 o refine some unit tests for portability 72 o cond.c: rework parsing 73 742021-01-10 Simon J Gerraty <sjg@beast.crufty.net> 75 76 * VERSION (_MAKE_VERSION): 20210110 77 Merge with NetBSD make, pick up 78 o fix lint warnings 79 o consistently use boolean expressions in conditions 80 812021-01-08 Simon J Gerraty <sjg@beast.crufty.net> 82 83 * VERSION (_MAKE_VERSION): 20210108 84 Merge with NetBSD make, pick up 85 o job.c: back to polling token pipe if we want a token 86 o main.c: always print 'stopped in' on first call 87 The execption is if we bail because of an abort token 88 in which case just exit 6. 89 902021-01-01 Simon J Gerraty <sjg@beast.crufty.net> 91 92 * VERSION (_MAKE_VERSION): 20210101 93 Merge with NetBSD make, pick up 94 o Happy New Year! 95 o rename CmdOpts.lint to strict 96 o exit 2 on technical errors 97 o replace pointers in controlling conditions with booleans 98 o replace global preserveUndefined with VARE_KEEP_UNDEF 99 o compat.c: re-export variables from the actual make process 100 if using vfork this is the effect anyway 101 o cond.c: clean up VarParseResult constants 102 o for.c: fix undefined behavior in SubstVarLong 103 make control flow in SubstVarLong of .for loops more obvious 104 clean up SubstVarShort in .for loops 105 extract ForSubstBody from ForReadMore 106 clean up ForReadMore 107 simplify termination condition for .for loop 108 add error handling for .for loop items 109 job.c: re-export variables from the actual make process 110 parse.c: remove mmap for loading files, only allow files < 1 GiB 111 fix edge case in := with undefined in variable name 112 skip variable expansion in ParseDependencyTargetWord 113 var.c: split ExportVar into separate functions 114 clean up code in extracted ExportVar functions 115 remove dead code from ApplyModifiersIndirect 116 split Var_Subst into easily understandable functions 117 clean up VarParseResult constants 118 1192020-12-25 Simon J Gerraty <sjg@beast.crufty.net> 120 121 * main.c: use .MAKE.DEPENDFILE as set by makefiles 122 1232020-12-22 Simon J Gerraty <sjg@beast.crufty.net> 124 125 * VERSION (_MAKE_VERSION): 20201222 126 Merge with NetBSD make, pick up 127 o make DEBUG macro return boolean 128 o parse.c: fix assertion failure for files without trailing newline 129 o var.c: allow .undef to undefine multiple variables at once 130 remove excess newline from parse errors 131 1322020-12-21 Simon J Gerraty <sjg@beast.crufty.net> 133 134 * VERSION (_MAKE_VERSION): 20201221 135 Merge with NetBSD make, pick up 136 o some unit-test updates 137 1382020-12-20 Simon J Gerraty <sjg@beast.crufty.net> 139 140 * VERSION (_MAKE_VERSION): 20201220 141 Merge with NetBSD make, pick up 142 o more unit tests 143 o return FStr from Var_Parse and Var_Value 144 o spell nonexistent consistently 145 o add str_basename to reduce duplicate code 146 o compat.c: fix .ERROR_TARGET in compat -k mode 147 extract InitSignals from Compat_Run 148 extract UseShell from Compat_RunCommand 149 o cond.c: error out if an '.endif' or '.else' contain extraneous text 150 o for.c: rename ForIterate to ForReadMore 151 o hash.c: clean up hash function for HashTable 152 o lst.c: rename Vector.priv_cap to cap 153 o main.c: remove constant parameter from MakeMode 154 o make.c: use symbolic time for 0 in Make_Recheck 155 extract MakeChildren from MakeStartJobs 156 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar 157 fix error message for .info/.warning/.error without argument 158 extract Var_Undef from ParseDirective 159 extract ParseSkippedBranches, ParseForLoop from ParseReadLine 160 rename mode constants for ParseGetLine to be more expressive 161 reduce debugging details in Parse_SetInput 162 fix line numbers in .for loops 163 split ParseGetLine into separate functions 164 fix garbled output for failed shell command 165 var.c: remove redundant assignment in ApplyModifier_SysV 166 error out on unknown variable modifiers at parse time 167 remove wrong error message for indirect modifier in lint mode 168 extract ApplySingleModifier from ApplyModifiers 169 use FStr for memory management in Var_SetWithFlags 170 extract SetVar from Var_SetWithFlags 171 use FStr in VarNew 172 extract string functions from ApplyModifier_To 173 error out if .undef has not exactly 1 argument 174 extract Var_DeleteVar from Var_Delete 175 extract Var_Undef from ParseDirective 176 clean up memory management for expanding variable expressions 177 1782020-12-12 Simon J Gerraty <sjg@beast.crufty.net> 179 180 * avoid %zu 181 182 * lst.c: avoid anonymous union 183 184 * VERSION (_MAKE_VERSION): 20201212 185 Merge with NetBSD make, pick up 186 o more unit tests 187 o inline Targ_Ignore and Targ_Silent 188 o split JobFlags into separate fields 189 o remove const from function parameters (left overs from refactoring) 190 o eliminate boolean argument of Var_Export 191 o make API of Buf_Init simpler 192 o rename ParseRunOptions to ParseCommandFlags 193 o replace *line with line[0] 194 o compat.c: fix wrong exit status for multiple failed main targets 195 refactor Compat_Run to show the error condition more clearly 196 don't make .END if the main targets already failed (-k mode) 197 fix exit status in -k mode if a dependency fails 198 o for.c: clean up Buf_AddEscaped in .for loops 199 o job.c: extract ShellWriter_ErrOn from JobPrintCommand 200 make Job_Touch simpler 201 refactor JobFinish 202 rename Shell.exitFlag to errFlag 203 move Job.xtraced to ShellWriter 204 make printing of shell commands independent from the job 205 rename shell flags in struct Shell 206 extract JobOpenTmpFile from JobStart 207 rename RunFlags to CommandFlags 208 split various Job.* into separate fields 209 rename commandShell to shell 210 extract InitShellNameAndPath from Shell_Init 211 replace signal handling macros with local functions 212 replace macro MESSAGE with local function 213 parse.c: error out on null bytes in makefiles 214 error out on misspelled directives 215 rename IFile.nextbuf to readMore 216 fix undefined behavior in ParseEOF 217 str.c: remove redundant call to strlen in Str_Words 218 var.c: error out on misspelled .unexport-env 219 error out on misspelled .export directives 220 extract ExportVars from Var_Export 221 extract ExportVarsExpand from Var_Export 222 eliminate boolean argument of Var_Export 223 fix undefined behavior when exporting ${:U } 224 rename Var_ExportVars to Var_ReexportVars 225 rename Var_Export1 to ExportVar 226 2272020-12-06 Simon J Gerraty <sjg@beast.crufty.net> 228 229 * VERSION (_MAKE_VERSION): 20201206 230 Merge with NetBSD make, pick up 231 o more unit tests 232 o inline macros for debug logging 233 o use consistent variable names for list nodes 234 o define constants for enum zero-values 235 o dir.c: use fixed format for debug output of the directory cache 236 remove Dir_InitDir 237 o lst.c: inline Lst_Enqueue, Vector_Done 238 o meta.c: remove unused parameter from meta_needed 239 o parse.c: rename parse functions 240 o suff.c: extract ExpandChildrenRegular from ExpandChildren 241 o targ.c: don't concatenate identifiers in Targ_PrintType 242 o var.c: remove comment decoration 243 extract UnexportVars from Var_UnExport 244 extract GetVarnamesToUnexport from Var_UnExport 245 extract UnexportEnv from Var_UnExport 246 extract UnexportVar from Var_UnExport 247 move CleanEnv to UnexportVars 248 replace pointer comparisons with enum 249 add FStr to var.c to make memory handling simpler 250 use FStr in Var_UnExport 251 move type definitions in var.c to the top 252 extract FreeEnvVar from Var_Parse 253 extract ShuffleStrings from ApplyModifier_Order 254 2552020-11-30 Simon J Gerraty <sjg@beast.crufty.net> 256 257 * VERSION (_MAKE_VERSION): 20201130 258 Merge with NetBSD make, pick up 259 o add unit tests for META MODE 260 o reduce memory allocation for dirSearchPath, GNode.parents, 261 GNode.children, OpenDirs 262 o reduce pointer indirection for GNode.cohorts and 263 GNode.implicitParents 264 o remove pointer indirection from GNode.commands 265 o inline Lst_ForEachUntil in meta mode 266 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode 267 clean up memory management for CachedDirs 268 fix the reference count of dotLast going negative 269 add debug logging for OpenDirs_Done 270 extract CacheNewDir from Dir_AddDir 271 add debug logging for reference counting of CachedDir 272 rename some Dir functions to SearchPath 273 o job.c: rename some global variables 274 o main.c: reduce memory allocation in ReadBuiltinRules 275 reduce memory allocation in CmdOpts.create, CmdOpts.variables, 276 CmdOpts.makefiles 277 Add .MAKE.UID and .MAKE.GID 278 o make.c: reduce memory allocation for/in toBeMade, 279 Make_ProcessWait, Make_ExpandUse 280 o meta.c: reduce memory allocation in meta_oodate 281 o parse.c: reduce memory allocations for parsing dependencies and 282 targets 283 o suff.c: reduce memory allocation in suffix handling 284 2852020-11-24 Simon J Gerraty <sjg@beast.crufty.net> 286 287 * VERSION (_MAKE_VERSION): 20201124 288 Merge with NetBSD make, pick up 289 o .MAKE.{UID,GID} represent uid and gid running make. 290 o fix error handling for .BEGIN and .END dependency in -k mode 291 o fix missing "Stop." after failed .END node in -k mode 292 o use properly typed comparisons in boolean contexts 293 o replace a few HashTable_CreateEntry with HashTable_Set 294 o add HashSet type 295 o compat.c: split Compat_Make into smaller functions 296 extract DebugFailedTarget from Compat_RunCommand 297 o dir.c: refactor Dir_UpdateMTime 298 migrate CachedDir.files from HashTable to HashSet 299 o make.c: add high-level API for GNode.made 300 3012020-11-22 Simon J Gerraty <sjg@beast.crufty.net> 302 303 * VERSION (_MAKE_VERSION): 20201122 304 Merge with NetBSD make, pick up 305 o rename GNode.context to vars 306 o suff.c: cleanup and refactor 307 rename some functions and vars to better reflect usage 308 add high-level API for CandidateSearcher 309 o targ.c: add more debug logging for suffix handling 310 o more unit tests 311 o add debug logging for setting and resetting the main target 312 3132020-11-17 Simon J Gerraty <sjg@beast.crufty.net> 314 315 * VERSION (_MAKE_VERSION): 20201117 316 Merge with NetBSD make, pick up 317 o fix some unit-tests when .SHELL is dash 318 o rename Targ_NewGN to GNode_New 319 o make some GNode functions const 320 o main.c: call Targ_Init before Var_Init 321 cleanup PrintOnError, getTmpdir and ParseBoolean 322 o var.c: fix error message of failed :!cmd! modifier 323 3242020-11-14 Simon J Gerraty <sjg@beast.crufty.net> 325 326 * VERSION (_MAKE_VERSION): 20201114 327 Merge with NetBSD make, pick up 328 o replace a few HashTable_CreateEntry with HashTable_Set 329 o clean up cached_stats 330 o rename DEFAULT to defaultNode 331 o remove redundant struct make_stat 332 o cond.c: in lint mode, check for ".else <cond>" 333 use bitset for IfState 334 replace large switch with if-else in Cond_EvalLine 335 o job.c: clean up JobExec, JobStart, JobDoOutput 336 use stderr for error message about failed touch 337 clean up Job_Touch 338 replace macro DBPRINTF with JobPrintln 339 rename JobState to JobStatus 340 main.c: switch cache for realpath from GNode to HashTable 341 clean up Fatal 342 clean up InitDefSysIncPath 343 use progname instead of hard-coded 'make' in warning 344 rename Main_SetVarObjdir to SetVarObjdir 345 make.1: document the -S option 346 make.c: fix debug output for GNode details 347 use symbolic names in debug output of GNodes 348 3492020-11-12 Simon J Gerraty <sjg@beast.crufty.net> 350 351 * configure.in: fix --with-force-machine-arch 352 353 * VERSION (_MAKE_VERSION): 20201112 354 Merge with NetBSD make, pick up 355 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable 356 checks in InitObjdir. Explicit .OBJDIR target always allows 357 read-only directory. 358 o cond.c: clean up Cond_EvalLine 359 3602020-11-11 Simon J Gerraty <sjg@beast.crufty.net> 361 362 * VERSION (_MAKE_VERSION): 20201111 363 Merge with NetBSD make, pick up 364 o more unit-tests 365 o style cleanup 366 remove redundant parentheses from sizeof operator 367 replace character literal 0 with '\0'. 368 replace pointer literal 0 with NULL. 369 remove redundant parentheses. 370 replace (expr & mask) == 0 with !(expr & mask). 371 use strict typing in conditions of the form !var 372 o rename Make_OODate to GNode_IsOODate 373 o rename Make_TimeStamp to GNode_UpdateYoungestChild 374 o rename Var_Set_with_flags to Var_SetWithFlags 375 o rename dieQuietly to shouldDieQuietly 376 o buf.c: make API of Buf_Init simpler 377 o compat.c: clean up Compat_Make, Compat_RunCommand, 378 CompatDeleteTarget and CompatInterrupt 379 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|' 380 clean up CondParser_Comparison 381 o main.c: rename getBoolean and s2Boolean 382 rename MAKEFILE_PREFERENCE for consistency 383 o parse.c: replace strstr in ParseMaybeSubMake with optimized code 384 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR 385 replace emptyString with allocated empty string 386 error out on unclosed expressions after the colon 387 3882020-11-01 Simon J Gerraty <sjg@beast.crufty.net> 389 390 * VERSION (_MAKE_VERSION): 20201101 391 Merge with NetBSD make, pick up 392 o negate NoExecute to GNode_ShouldExecute 393 o job.c: rename JobMatchShell to FindShellByName 394 extract EscapeShellDblQuot from JobPrintCommand 395 extract ParseRunOptions from JobPrintCommand 396 o var.c: extract ApplyModifiersIndirect from ApplyModifiers 397 treat malformed :range, :ts and :[...] as errors 398 add tests for the variable modifiers :[words] and :range 399 4002020-10-31 Simon J Gerraty <sjg@beast.crufty.net> 401 402 * VERSION (_MAKE_VERSION): 20201031 403 Merge with NetBSD make, pick up 404 o format #include directives consistently 405 o do not look up local variables like .TARGET anywhere else 406 o main.c: Main_SetObjdir is first called for curdir which may be 407 readonly 408 reduce the scope where recursive expressions are detected 409 remove redundant :tl from getBoolean 410 clean up mkTempFile 411 o meta.c: simplify memory allocation in meta_create and meta_oodate 412 o parse.c: extract loadedfile_mmap from loadfile 413 o trace.c: document possible undefined behavior with .CURDIR 414 o var.c: make parsing of the :gmtime and :localtime modifiers stricter 415 rename ismeta to is_shell_metachar 416 remove debug logging for the :Q variable modifier 417 rename VarIsDynamic to VarnameIsDynamic 418 use consistent parameter order in varname parsing functions 419 extract ParseVarnameLong from Var_Parse 420 extract ParseVarnameShort from Var_Parse 421 fix type of ParseModifierPart parameter delim 422 extract IsEscapedModifierPart from ParseModifierPart 423 clean up ModifyWords 424 add test for combining the :@ and :? variable modifiers 425 4262020-10-30 Simon J Gerraty <sjg@beast.crufty.net> 427 428 * VERSION (_MAKE_VERSION): 20201030 429 Merge with NetBSD make, pick up 430 o change char * to void * in Var_Value 431 o make iterating over HashTable simpler 432 o rename VAR_CMD to VAR_CMDLINE 433 o cond.c: clean up is_separator 434 fix parse error in string literal in conditional 435 o main.c: do not use objdir that is not writable 436 in lint mode, exit with error status on errors 437 o parse.c: clean up StrContainsWord 438 fix out-of-bounds pointer in ParseTrackInput 439 o var.c: rename Str_SYSVMatch and its parameters 440 remove unsatisfiable conditions in Var_Set_with_flags 441 document where the variable name is expanded 442 fix documentation for VARP_SUB_ONE 443 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME 444 document VAR_READONLY 445 prevent appending to read-only variables 446 extract MayExport from Var_Export1 447 remove redundant evaluations in VarFind 448 replace VarFindFlags with a simple Boolean 449 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE 450 4512020-10-28 Simon J Gerraty <sjg@beast.crufty.net> 452 453 * VERSION (_MAKE_VERSION): 20201028 454 Merge with NetBSD make, pick up 455 o rename defIncPath to defSysIncPath 456 o initialize all CmdOpts fields 457 o lst.c: inline Vector_Get 458 o main.c: refactor main extract 459 InitMaxJobs,InitObjdir,InitVarMake,InitRandom, 460 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules, 461 InitDefIncPath,CmdOpts_Init,UnlimitFiles 462 o parse.c: merge curFile into includes 463 rename predecessor to order_pred 464 sort ParseSpecial alphabetically 465 remove unused, undocumented .NOEXPORT 466 rename ParseSpecial enum values consistently 467 rename some fields of struct IFile 468 4692020-10-26 Simon J Gerraty <sjg@beast.crufty.net> 470 471 * VERSION (_MAKE_VERSION): 20201026 472 Merge with NetBSD make, pick up 473 o group the command line options and arguments into a struct 474 o rename GNode.cmgn to youngestChild 475 o rename hash functions to identify the type name 476 o negate OP_NOP and rename it to GNode_IsTarget 477 o add GNode_Path to access the path of a GNode 478 o remove macros MIN and MAX 479 o remove unused Lst_Find and Lst_FindFrom 480 o arch.c: and make Arch_FindLib simpler 481 clean up code layout 482 make Arch_ParseArchive simpler 483 o cond.c: inline CondFindStrMatch into FuncMake 484 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath 485 omit trailing space in debug output for expanding file patterns 486 refactor DirMatchFiles 487 document that the SearchPath of Dir_FindFile may be NULL 488 remove UNCONST from Dir_Expand 489 inline DirFindName 490 o for.c: clean up code for handling .for loops 491 o hash.c: print hash in debug log with fixed width 492 clean up hash table functions 493 reduce amount of string hashing 494 o job.c: refactor JobDeleteTarget 495 use proper enum constants for aborting 496 convert result of JobStart from macros to enum 497 convert abort reason macros to enum 498 rework Job_CheckCommands to reduce indentation 499 rename Shell fields 500 add field names in declaration of DEFSHELL_CUSTOM 501 convert JobState and JobFlags to enum types 502 move handling of the "..." command to JobPrintCommands 503 o lst.c: clean up 504 refactor LstNodeNew 505 remove Lst_Open, Lst_Next, Lst_Close 506 remove code for circular lists from Lst_Next 507 o main.c: do not attempt to read .MAKE.DEPENFILE if set to 508 /dev/null or anything starting with "no" 509 convert macros for debug flags into enum 510 o make.c: inline Lst_Copy in Make_ExpandUse 511 o meta.c: inline Lst_Find in meta_oodate 512 make Lst_RemoveIf simpler in meta_oodate 513 o parse.c: convert error level for Parse_Error to an enum 514 o suff.c: properly terminate debug output with newline 515 add more details to DEBUG_SRC log 516 replace Dir_CopyDir with Dir_CopyDirSearchPath 517 don't modify GNode name while rebuilding the suffix graph 518 o var.c: reduce duplicate code in VarFind 519 5202020-10-22 Simon J Gerraty <sjg@beast.crufty.net> 521 522 * VERSION (_MAKE_VERSION): 20201022 523 Merge with NetBSD make, pick up 524 o more refactoring and simplification to reduce code size 525 o var.c: extract CanonicalVarname from VarFind 526 o make.c: extract UpdateImplicitParentsVars from Make_Update 527 o main.c: extract PrintVar from doPrintVars 528 extract HandlePWD from main 529 o lst.c: inline simple Lst getters 530 remove unused Lst_ForEach 531 o job.c: move struct Shell from job.h to job.c 532 o more unit tests 533 5342020-10-19 Simon J Gerraty <sjg@beast.crufty.net> 535 536 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT 537 5382020-10-18 Simon J Gerraty <sjg@beast.crufty.net> 539 540 * VERSION (_MAKE_VERSION): 20201018 541 Merge with NetBSD make, pick up 542 o remove USE_IOVEC 543 o rename some Hash_* apis to Hash* 544 o replace execError with execDie 545 o rename Lst_Init to Lst_New 546 o add tags to enum types 547 o rename Stack to Vector 548 o parse.c: more refactoring 549 o unit-tests: make some tests use line buffered stdout 550 o unit-tests/Makefile: in meta mode do not make all tests depend on 551 Makefile, it isn't necessary. 552 5532020-10-10 Simon J Gerraty <sjg@beast.crufty.net> 554 555 * main.c: check for CTL_HW being defined. 556 * unit-tests/Makefile: ensure export tests output are POSIX compliant 557 disable opt-debug-jobs test until it works on ubuntu 558 559 * VERSION (_MAKE_VERSION): 20201010 560 Merge with NetBSD make, pick up 561 o dir.c: remove pathname limit for Dir_FindHereOrAbove 562 o hash.c: replace strcpy with memcpy in Hash_CreateEntry 563 o main.c: extract init_machine and init_machine_arch from main 564 allow to disable debug logging options 565 o parse.c: enable format string truncation warnings 566 extract parsing of sources from ParseDoDependency 567 split ParseDoSrc into smaller functions 568 hide implementation details from Parse_DoVar 569 clean up parsing of variable assignments 570 split Parse_DoVar into manageable pieces 571 don't modify the given line during Parse_DoVar 572 fix out-of-bounds memory access in Parse_DoVar 573 fix parsing of the :sh assignment modifier 574 o var.c: rework memory allocation for the name of variables 575 extract ApplyModifier_Literal into separate function 576 in lint mode, reject modifiers without delimiter 577 do not export variable names starting with '-' 578 o fix double-free bug in -DCLEANUP mode 579 o more cleanup to enable higher warnings level 580 o more unit tests 581 5822020-10-02 Simon J Gerraty <sjg@beast.crufty.net> 583 584 * VERSION (_MAKE_VERSION): 20201002 585 Merge with NetBSD make, pick up 586 o dir.c: use hash table for looking up open directories by name 587 o main.c: clean up option handling 588 o parse.c: add missing const for Parse_AddIncludeDir 589 o var.c: ApplyModifier_To, update pp in each branch 590 o remove redundant function prototypes 591 o more unit tests 592 5932020-10-01 Simon J Gerraty <sjg@beast.crufty.net> 594 595 * VERSION (_MAKE_VERSION): 20201001 596 Merge with NetBSD make, pick up 597 o compat.c: comment about "..." 598 5992020-09-30 Simon J Gerraty <sjg@beast.crufty.net> 600 601 * VERSION (_MAKE_VERSION): 20200930 602 Merge with NetBSD make, pick up 603 o job.c: split Job.jobPipe into 2 separate fields 604 replace Lst_Open with direct iteration 605 o lst.c: remove redundant assertions 606 o targ.c: replace Lst_Open with direct iteration 607 o var.c: fix bug in evaluation of indirect variable modifiers 608 extract ApplyModifier_Quote into separate function 609 o make debug logging simpler 610 6112020-09-27 Simon J Gerraty <sjg@beast.crufty.net> 612 613 * VERSION (_MAKE_VERSION): 20200927 614 Merge with NetBSD make, pick up 615 o parse.c: ensure parse errors result in 'stopped in' message. 616 o compat.c: make parameter of Compat_RunCommand const 617 o main.c: extract InitVarTarget from main 618 o parse.c: rename ParseFinishLine to FinishDependencyGroup 619 refactor ParseDoDependency 620 o var.c: Var_Subst no longer returns string result 621 rename Var_ParsePP back to Var_Parse 622 in lint mode, improve error handling for undefined variables 623 extract ParseVarname from Var_Parse 624 o rename Lst_ForEach to Lst_ForEachUntil 625 o inline Lst_ForEachUntil in several cases 626 o clean up API for finding and creating GNodes 627 o fix assertion failure in -j mode with .END node 628 o inline and remove LstNode_Prev and LstNode_Next 629 o use fine-grained type names for lists and their nodes 630 o more unit tests 631 6322020-09-11 Simon J Gerraty <sjg@beast.crufty.net> 633 634 * VERSION (_MAKE_VERSION): 20200911 635 Merge with NetBSD make, pick up 636 o cond.c: split EvalComparison into smaller functions 637 reorder parameters of condition parsing functions 638 reduce code size in CondParser_Eval 639 rename CondGetString to CondParser_String 640 add CondLexer_SkipWhitespace 641 group the condition parsing state into a struct 642 in CondGetString, replace repeated Buf_Add with Buf_AddStr 643 o migrate Var_Parse to Var_ParsePP 644 o add wrappers around ctype.h functions 645 o lst.c: use a stack instead of a list for the nested include path 646 o more unit tests 647 6482020-09-04 Simon J Gerraty <sjg@beast.crufty.net> 649 650 * make-bootstrap.sh.in: adjust object list 651 6522020-09-02 Simon J Gerraty <sjg@beast.crufty.net> 653 654 * VERSION (_MAKE_VERSION): 20200902 655 Merge with NetBSD make, pick up 656 o use make_stat to ensure no confusion over valid fields 657 returned by cached_stat 658 o var.c: make VarQuote const-correct 659 o add unit tests for .for 660 6612020-09-01 Simon J Gerraty <sjg@beast.crufty.net> 662 663 * VERSION (_MAKE_VERSION): 20200901 664 Merge with NetBSD make, pick up 665 o rename Hash_Table fields 666 o make data types in Dir_HasWildcards more precise 667 6682020-08-31 Simon J Gerraty <sjg@beast.crufty.net> 669 670 * VERSION (_MAKE_VERSION): 20200831 671 Merge with NetBSD make, pick up 672 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds 673 o lst.c: Lst_Open renable assert that list isn't open 674 o unit test for .TARGET dependent flags 675 o var.c: fix aliasing bug in VarUniq 676 o more unit tests for :u 677 6782020-08-30 Simon J Gerraty <sjg@beast.crufty.net> 679 680 * VERSION (_MAKE_VERSION): 20200830 681 Merge with NetBSD make, pick up 682 o allow for strict type checking for Boolean 683 o Var_Parse never returns NULL 684 o Var_Subst never returns NULL 685 o Lst_Find now takes boolean match function 686 o rename Lst_Memeber to Lst_FindDatum 687 o rename LstNode functions to match their type 688 o rename GNode.iParents to implicitParents 689 o fix assertion failure for .SUFFIXES in archives 690 o compat.c: clean up documentation for CompatInterrupt and Compat_Run 691 remove unreachable code from CompatRunCommand 692 o main.c: simplify getBoolean 693 o stc.c: replace brk_string with simpler Str_Words 694 o suff.c: add debug macros 695 6962020-08-28 Simon J Gerraty <sjg@beast.crufty.net> 697 698 * VERSION (_MAKE_VERSION): 20200828 699 Merge with NetBSD make, pick up 700 o lst.c: inline LstIsValid and LstNodeIsValid 701 o remove trailing S from Lst function names after migration complete 702 o more comment cleanup/clarification 703 o suff.c: clean up suffix handling 704 o more unit tests 705 7062020-08-26 Simon J Gerraty <sjg@beast.crufty.net> 707 708 * VERSION (_MAKE_VERSION): 20200826 709 Merge with NetBSD make, pick up 710 o enum.c: distinguish between bitsets containing flags and 711 ordinary enums 712 o var.c: fix error message for ::!= modifier with shell error 713 o fix bugs in -DCLEANUP mode 714 7152020-08-24 Simon J Gerraty <sjg@beast.crufty.net> 716 717 * VERSION (_MAKE_VERSION): 20200824 718 Merge with NetBSD make, pick up 719 o in debug mode, print GNode details in symbols 720 7212020-08-23 Simon J Gerraty <sjg@beast.crufty.net> 722 723 * VERSION (_MAKE_VERSION): 20200823 724 Merge with NetBSD make, pick up 725 o lst.c: more asserts, 726 make args to Lst_Find match others. 727 o var.c: pass flags to VarAdd 728 o arch.c: use Buffer 729 o str.c: brk_string return size_t for nwords 730 o more unit tests 731 7322020-08-22 Simon J Gerraty <sjg@beast.crufty.net> 733 734 * VERSION (_MAKE_VERSION): 735 Merge with NetBSD make, pick up 736 o var.c: support for read-only variables eg .SHELL 737 being the shell used to run scripts. 738 o lst.c: more simplification 739 o more documentation and style cleanup 740 o more unit tests 741 o ensure unit-test/Makefile is run by TEST_MAKE 742 o reduce duplication of header inclusion 743 7442020-08-21 Simon J Gerraty <sjg@beast.crufty.net> 745 746 * VERSION (_MAKE_VERSION): 20200821 747 Merge with NetBSD make, pick up 748 o lst.c: revert invalid assertion - but document it 749 o dir.c: split Dir_Init into two functions 750 7512020-08-20 Simon J Gerraty <sjg@beast.crufty.net> 752 753 * lst.c: needs inttypes.h on Linux 754 755 * VERSION (_MAKE_VERSION): 20200820 756 Merge with NetBSD make, pick up 757 o make.1: clarify some passages 758 o var.c: more cleanup, clarify comments 759 o make_malloc.c: remove unreachable code 760 o cond.c: make CondGetString easier to debug 761 o simplify list usage 762 o unit-tests: more 763 7642020-08-16 Simon J Gerraty <sjg@beast.crufty.net> 765 766 * VERSION (_MAKE_VERSION): 20200816 767 Merge with NetBSD make, pick up 768 o refactor unit-tests to be more fine grained 769 not all tests moved yet 770 7712020-08-14 Simon J Gerraty <sjg@beast.crufty.net> 772 773 * VERSION (_MAKE_VERSION): 20200814 774 Merge with NetBSD make, pick up 775 o more str_concat variants 776 o more enums for flags 777 o var.c: cleanup for higher warnings level 778 7792020-08-10 Simon J Gerraty <sjg@beast.crufty.net> 780 781 * VERSION (_MAKE_VERSION): 20200810 782 Merge with NetBSD make, pick up 783 o more unit tests 784 o general comment and style cleanup 785 7862020-08-08 Simon J Gerraty <sjg@beast.crufty.net> 787 788 * VERSION (_MAKE_VERSION): 20200808 789 Merge with NetBSD make, pick up 790 o enum.[ch]: streamline, enums for use in flags and debug output 791 o cond.c: cleanup 792 o var.c: reduce duplicate code for modifiers 793 debug logging for Var_Parse 794 more detailed debug output 795 o more unit tests 796 7972020-08-06 Simon J Gerraty <sjg@beast.crufty.net> 798 799 * unit-tests/Makefile: -r for recursive and include Makefile.inc 800 so I can run tests in meta mode 801 supress extra noise if in meta mode 802 803 * VERSION (_MAKE_VERSION): 20200806 804 Merge with NetBSD make, pick up 805 o parse.c: remove VARE_WANTRES for LINT 806 we just want to check parsing (for now). 807 8082020-08-05 Simon J Gerraty <sjg@beast.crufty.net> 809 810 * VERSION (_MAKE_VERSION): 20200805 811 Merge with NetBSD make, pick up 812 o make.1: Rework the description of dependence operators 813 8142020-08-03 Simon J Gerraty <sjg@beast.crufty.net> 815 816 * VERSION (_MAKE_VERSION): 20200803 817 Merge with NetBSD make, pick up 818 o revert some C99 usage, for max portability 819 o unit-tests/lint 820 8212020-08-02 Simon J Gerraty <sjg@beast.crufty.net> 822 823 * VERSION (_MAKE_VERSION): 20200802 824 Merge with NetBSD make, pick up 825 o more unit tests 826 8272020-08-01 Simon J Gerraty <sjg@beast.crufty.net> 828 829 * Remove NetBSD specific plumbing from unit-tests/Makefile 830 831 * VERSION (_MAKE_VERSION): 20200801 832 Merge with NetBSD make, pick up 833 o make Var_Value return const 834 o size_t for buf sizes 835 o optimize some buffer operations - avoid strlen 836 8372020-07-31 Simon J Gerraty <sjg@beast.crufty.net> 838 839 * VERSION (_MAKE_VERSION): 20200731 840 Merge with NetBSD make, pick up 841 o var.c: fix undefinded behavior for incomplete :t modifier 842 fixes unit-test/moderrs on Ubuntu 843 o parse.c: When parsing variable assignments other than := 844 if DEBUG(LINT) test substition of value, so we get a file and 845 line number in the resulting error. 846 o dir.c: fix parsing of nested braces in dependency lines 847 add unit-tests 848 8492020-07-30 Simon J Gerraty <sjg@beast.crufty.net> 850 851 * VERSION (_MAKE_VERSION): 20200730 852 Merge with NetBSD make, pick up 853 o var.c: minor cleanup 854 o unit-tests: more tests to improve code coverage 855 8562020-07-28 Simon J Gerraty <sjg@beast.crufty.net> 857 858 * VERSION (_MAKE_VERSION): 20200728 859 Merge with NetBSD make, pick up 860 o var.c: more optimizations 861 8622020-07-26 Simon J Gerraty <sjg@beast.crufty.net> 863 864 * VERSION (_MAKE_VERSION): 20200726 865 Merge with NetBSD make, pick up 866 o collapse lsd.lib into lst.c - reduce code size and allow inlining 867 o lots of function comment updates 868 o var.c: more optimizations 869 o make return of Var_Parse const 870 8712020-07-20 Simon J Gerraty <sjg@beast.crufty.net> 872 873 * VERSION (_MAKE_VERSION): 20200720 874 Merge with NetBSD make, pick up 875 o DEBUG_HASH report stats at end and tone down the noise 876 o var.c: each flag type gets its own prefix. 877 move SysV string matching to var.c 878 make ampersand in ${VAR:from=to&} an ordinary character 879 cleanup and simplify implementation of modifiers 880 o make.1: move documentation for assignment modifiers 881 8822020-07-18 Simon J Gerraty <sjg@beast.crufty.net> 883 884 * VERSION (_MAKE_VERSION): 20200718 885 Merge with NetBSD make, pick up 886 o DEBUG_HASH to see how well the hash tables are working 887 8882020-07-11 Simon J Gerraty <sjg@beast.crufty.net> 889 890 * bsd.after-import.mk: make sure we update unit-tests/Makefile 891 8922020-07-10 Simon J Gerraty <sjg@beast.crufty.net> 893 894 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC 895 896 * VERSION (_MAKE_VERSION): 20200710 897 Merge with NetBSD make, pick up 898 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall 899 o meta.c: target flagged .META is out-of-date if meta file missing 900 9012020-07-09 Simon J Gerraty <sjg@beast.crufty.net> 902 903 * VERSION (_MAKE_VERSION): 20200709 904 Merge with NetBSD make, pick up 905 o cond.c: fix for compare_expression when doEval=0 906 o unit-tests/Makefile: rework 907 o filemon/filemon_dev.c: ensure filemon fd is closed on exec. 908 9092020-07-04 Simon J Gerraty <sjg@beast.crufty.net> 910 911 * VERSION (_MAKE_VERSION): 20200704 912 Merge with NetBSD make, pick up 913 (most of this by rillig@) 914 o lots of style and white-space cleanup 915 o lots more unit tests for variable modifiers 916 o simplified description of some functions 917 o str.c: refactor Str_Match 918 o var.c: debugging output for :@ 919 constify VarModify parameter 920 fix :hash modifier on 16-bit platforms 921 remove unnecessary forward declarations 922 refactor ApplyModifier_SysV to have less indentation 923 simplify code for :E and :R 924 clean up code for :H and :T 925 refactor ApplyModifiers 926 927 * var.c: we need stdint.h on some platforms to get uint32_t 928 * unit-test/Makefile: we need to supress the specific error 929 for RE substitution error in modmisc, since it varies accross 930 different OS. 931 9322020-07-02 Simon J Gerraty <sjg@beast.crufty.net> 933 934 * VERSION (_MAKE_VERSION): 20200702 935 Merge with NetBSD make, pick up 936 o var.c: more improvements to avoiding unnecessary evaluation 937 use enums for flags 938 o remove flags arg to Var_Set which outside of var.c is always 0 939 9402020-07-01 Simon J Gerraty <sjg@beast.crufty.net> 941 942 * VERSION (_MAKE_VERSION): 20200701 943 Merge with NetBSD make, pick up 944 o var.c: with change to cond.c; ensure that nested variables 945 within a variable name are expanded. 946 o unit-tests/varmisc.mk: test for nested varname 947 9482020-06-29 Simon J Gerraty <sjg@beast.crufty.net> 949 950 * VERSION (_MAKE_VERSION): 20200629 951 Merge with NetBSD make, pick up 952 o cond.c: do not eval unnecessary terms of conditionals. 953 9542020-06-25 Simon J Gerraty <sjg@beast.crufty.net> 955 956 * VERSION (_MAKE_VERSION): 20200625 957 Merge with NetBSD make, pick up 958 o meta.c: report error if lseek in filemon_read fails 959 9602020-06-22 Simon J Gerraty <sjg@beast.crufty.net> 961 962 * VERSION (_MAKE_VERSION): 20200622 963 Merge with NetBSD make, pick up 964 o dieQuietly: ignore OP_SUBMAKE as too aggressive 965 9662020-06-19 Simon J Gerraty <sjg@beast.crufty.net> 967 968 * VERSION (_MAKE_VERSION): 20200619 969 Merge with NetBSD make, pick up 970 o str.c: performance improvement for Str_Match for multiple '*' 971 o dieQuietly: supress the failure output from make 972 when failing node is a sub-make or a sibling failed. 973 This cuts down greatly on unhelpful noise at the end of 974 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no 975 9762020-06-10 Simon J Gerraty <sjg@beast.crufty.net> 977 978 * FILES: add LICENSE to appease some packagers. 979 This is an attempt to fairly represent the license on almost 980 200 files, which are almost all BSD-3-Clause 981 The few exceptions being more liberal. 982 983 * VERSION (_MAKE_VERSION): 20200610 984 Merge with NetBSD make, pick up 985 o unit test for :Or 986 9872020-06-06 Simon J Gerraty <sjg@beast.crufty.net> 988 989 * VERSION (_MAKE_VERSION): 20200606 990 Merge with NetBSD make, pick up 991 o make.1: cleanup 992 993 * Makefile: fix depends for main.o which broke MAKE_VERSION 994 9952020-06-05 Simon J Gerraty <sjg@beast.crufty.net> 996 997 * VERSION (_MAKE_VERSION): 20200605 998 Merge with NetBSD make, pick up 999 o dir.c: cached_stats - don't confuse stat and lstat results. 1000 o var.c: add :Or for reverse sort. 1001 10022020-05-24 Simon J Gerraty <sjg@beast.crufty.net> 1003 1004 * configure.in: add AC_PROG_CC_C99 for mipspro compiler 1005 also if --with-filemon= specifies path to filemon.h 1006 set use_filemon=dev 1007 * dirname.c: remove include of namespace.h 1008 10092020-05-17 Simon J Gerraty <sjg@beast.crufty.net> 1010 1011 * VERSION (_MAKE_VERSION): 20200517 1012 Merge with NetBSD make, pick up 1013 o modified dollar tests to avoid shell dependencies 1014 o new tests for .INCLUDEFROM 1015 10162020-05-16 Simon J Gerraty <sjg@beast.crufty.net> 1017 1018 * unit-tests/dollar.mk: tweak '1 dollar literal' test 1019 to not depend so much on shell behavior 1020 10212020-05-10 Simon J Gerraty <sjg@beast.crufty.net> 1022 1023 * VERSION (_MAKE_VERSION): 20200510 1024 Merge with NetBSD make, pick up 1025 o unit test for dollar handling 1026 10272020-05-06 Simon J Gerraty <sjg@beast.crufty.net> 1028 1029 * VERSION (_MAKE_VERSION): 20200506 1030 Merge with NetBSD make, pick up 1031 o str.c: empty string does not match % pattern 1032 plus unit-test changes 1033 10342020-05-04 Simon J Gerraty <sjg@beast.crufty.net> 1035 1036 * VERSION (_MAKE_VERSION): 20200504 1037 May the 4th be with you 1038 Merge with NetBSD make, pick up 1039 o var.c: import handling of old sysV style modifier using '%' 1040 o str.c: refactor brk_string 1041 o unit-tests: add test case for lazy conditions 1042 10432020-04-18 Simon J Gerraty <sjg@beast.crufty.net> 1044 1045 * VERSION (_MAKE_VERSION): 20200418 1046 1047 * configure.in: use_makefile=no for cygwin et al. 1048 case insensitive filesystems just don't work if both 1049 makefile and Makefile exist. 1050 NOTE: bmake does not support cygwin and likely never will, 1051 but if brave souls want to try it - help them out. 1052 10532020-04-02 Simon J Gerraty <sjg@beast.crufty.net> 1054 1055 * VERSION (_MAKE_VERSION): 20200402 1056 Merge with NetBSD make, pick up 1057 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD 1058 a blank command is perfectly valid. 1059 10602020-03-30 Simon J Gerraty <sjg@beast.crufty.net> 1061 1062 * VERSION (_MAKE_VERSION): 20200330 1063 Merge with NetBSD make, pick up 1064 o make.h: extern debug_file 1065 10662020-03-18 Simon J Gerraty <sjg@beast.crufty.net> 1067 1068 * VERSION (_MAKE_VERSION): 20200318 1069 Merge with NetBSD make, pick up 1070 o meta.c: meta_oodate, check for corrupted meta file 1071 earlier and more often. 1072 10732020-02-20 Simon J Gerraty <sjg@beast.crufty.net> 1074 1075 * VERSION (_MAKE_VERSION): 20200220 1076 10772020-02-19 Simon J Gerraty <sjg@beast.crufty.net> 1078 1079 * boot-strap: unset MAKEFLAGS 1080 10812020-02-12 Simon J Gerraty <sjg@beast.crufty.net> 1082 1083 * VERSION (_MAKE_VERSION): 20200212 1084 * meta.c: meta_compat_parent check for USE_FILEMON 1085 patch from Soeren Tempel 1086 10872020-02-05 Simon J Gerraty <sjg@beast.crufty.net> 1088 1089 * VERSION: 20200205 1090 Merge with NetBSD make, pick up 1091 o meta.c: fix compat mode, need to call meta_job_output() 1092 o job.c: extra fds for meta mode not needed if using filemon_dev 1093 10942020-01-22 Simon J Gerraty <sjg@beast.crufty.net> 1095 1096 * VERSION: 20200122 1097 Merge with NetBSD make, pick up 1098 o meta.c: avoid passing NULL to filemon_*() when meta_needed() 1099 returns FALSE. 1100 11012020-01-21 Simon J Gerraty <sjg@beast.crufty.net> 1102 1103 * VERSION: 20200121 1104 Merge with NetBSD make, pick up 1105 o filemon/filemon_{dev,ktrace}.c: allow selection of 1106 filemon implementation. filemon_dev.c uses the kernel module 1107 while filemon_ktrace.c leverages the fktrace api available in 1108 NetBSD. filemon_ktrace.c can hopefully form the basis for 1109 adding support for other tracing mechanisms such as strace on 1110 Linux. 1111 o meta.c: when target is out-of-date per normal make rules 1112 record value of .OODATE in meta file. 1113 11142019-09-26 Simon J Gerraty <sjg@beast.crufty.net> 1115 1116 * VERSION: 20190926 1117 Merge with NetBSD make, pick up 1118 o parse.c: don't pass NULL to realpath(3) 1119 some versions cannot handle it. 1120 11212019-04-09 Simon J Gerraty <sjg@beast.crufty.net> 1122 1123 * VERSION: 20190409 1124 Merge with NetBSD make, pick up 1125 o parse.c: ParseDoDependency: free paths rather than assert 1126 11272018-12-22 Simon J Gerraty <sjg@beast.crufty.net> 1128 1129 * VERSION: 20181222 1130 1131 * configure.in: add --without-makefile to avoid generating 1132 makefile and make-bootstrap.sh 1133 1134 * include Makefile.inc if it exists 1135 1136 * Use Makefile and Makefile.config.in in unit-tests 1137 so we can use just: make obj && make && make test 1138 when bmake is already available. 1139 We add --without-makefile to CONFIGURE_ARGS in this case. 1140 1141 * tweak bsd.after-import.mk (captures Makefile.config etc 1142 after import to FreeBSD for example) to cope with all the above. 1143 11442018-12-21 Simon J Gerraty <sjg@beast.crufty.net> 1145 1146 * VERSION: 20181221 1147 Merge with NetBSD make, pick up 1148 o parse.c: ParseVErrorInternal use .PARSEDIR 1149 and apply if relative, and then use .PARSEFILE 1150 for consistent result. 1151 11522018-12-20 Simon J Gerraty <sjg@beast.crufty.net> 1153 1154 * VERSION: 20181220 1155 Merge with NetBSD make, pick up 1156 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR 1157 is relative 1158 o var.c: avoid SEGFAULT in .unexport-env 1159 when MAKELEVEL is not set 1160 11612018-12-16 Simon J Gerraty <sjg@beast.crufty.net> 1162 1163 * VERSION: 20181216 1164 Merge with NetBSD make, pick up 1165 o fix for unit-tests/varquote.mk on Debian 1166 11672018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> 1168 1169 * VERSION: 20180919 1170 Merge with NetBSD make, pick up 1171 o var.c: add :q 1172 o dir.c: cleanup caching of stats 1173 11742018-09-21 Simon J Gerraty <sjg@beast.crufty.net> 1175 1176 * Makefile.config.in: use += where it makes sense. 1177 11782018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1179 1180 * VERSION: 20180512 1181 Merge with NetBSD make, pick up 1182 o job.c: skip polling job token pipe 1183 11842018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1185 1186 * VERSION: 20180405 1187 Merge with NetBSD make, pick up 1188 o parse.c: be more cautious about detecting depenency line 1189 rather than sysV style include. 1190 11912018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> 1192 1193 * VERSION: 20180222 1194 Merge with NetBSD make, pick up 1195 o parse.c: avoid calling sysconf for every call to loadfile 1196 11972018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1198 1199 * VERSION: 20180218 1200 Merge with NetBSD make, pick up 1201 o var.c: Var_Set handle NULL value anytime. 1202 12032018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> 1204 1205 * VERSION: 20180212 1206 Merge with NetBSD make, pick up 1207 o parse.c: do not treat .info as warning with -W 1208 12092017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> 1210 1211 * VERSION: 20171207 1212 Merge with NetBSD make, pick up 1213 o var.c: Var_Append use Var_Set if var not previously set 1214 so that VAR_CMD is handled correctly. 1215 Add a suitable unit-test. 1216 12172017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1218 1219 * VERSION (_MAKE_VERSION): 20171126 1220 1221 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ 1222 since AC_TRY_COMPILE puts input inside main() 1223 which upsets modern compilers. 1224 12252017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> 1226 1227 * VERSION: 20171118 1228 Merge with NetBSD make, pick up 1229 o var.c: do not append to variable set on command line 1230 add unit-test to catch this. 1231 12322017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> 1233 1234 * VERSION: 20171028 1235 Merge with NetBSD make, pick up 1236 o main.c: ignore empty MAKEOBJDIR 1237 1238 * Makefile.config.in: 1239 make @prefix@ @machine*@ and @default_sys_path@ defaults. 1240 12412017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> 1242 1243 * VERSION: 20171005 1244 1245 * unit-tests/dotwait.mk: redirect stderr through pipe for more 1246 consistent result on some platforms. 1247 12482017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> 1249 1250 * machine.sh: entry for AIX 1251 12522017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1253 1254 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION 1255 to a file that can be included by configure as well as make. 1256 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 1257 12582017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> 1259 1260 * Makefile (_MAKE_VERSION): 20170810 1261 Merge with NetBSD make, pick up 1262 o meta.c: if target is in subdir we only need subdir name in 1263 meta_name. 1264 12652017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> 1266 1267 * Makefile (_MAKE_VERSION): 20170720 1268 Merge with NetBSD make, pick up 1269 o compat.c: pass SIGINT etc onto child and wait for it to exit 1270 before we self-terminate. 1271 12722017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> 1273 1274 * Makefile (_MAKE_VERSION): 20170711 1275 forgot to update after merge on 20170708 ;-) 1276 o main.c: refactor to reduce size of main function. 1277 add -v option to always fully expand values. 1278 o meta.c: ensure command output in meta file has ending newline 1279 even when filemon not being used. 1280 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use 1281 pathname via ':L' since any ':' in pathname breaks that. 1282 Instead set a '${.p.}' to pathname in the target context and 1283 use that. 1284 12852017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 1286 1287 * Makefile (_MAKE_VERSION): 20170510 1288 Merge with NetBSD make, pick up 1289 o main.c: Main_SetObjdir: ensure buf2 is in scope 1290 12912017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> 1292 1293 * Makefile (_MAKE_VERSION): 20170505 1294 see mk/ChangeLog 1295 12962017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1297 1298 * parse.c: not everyone has stdint.h 1299 13002017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> 1301 1302 * Makefile (_MAKE_VERSION): 20170501 1303 see mk/ChangeLog 1304 13052017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 1306 1307 * Makefile (_MAKE_VERSION): 20170421 1308 Merge with NetBSD make, pick up 1309 o str.c: Str_Match: fix closure tests for [^] and add unit-test. 1310 13112017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 1312 1313 * Makefile (_MAKE_VERSION): 20170420 1314 Merge with NetBSD make, pick up 1315 o main.c: only use -C arg "as is" if it contains no 1316 relative component. 1317 13182017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1319 1320 * Makefile (_MAKE_VERSION): 20170418 1321 Merge with NetBSD make, pick up 1322 o main.c: fix Main_SetObjdir() for relative paths (eg obj). 1323 13242017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> 1325 1326 * Makefile (_MAKE_VERSION): 20170417 1327 Merge with NetBSD make, pick up 1328 o fixes a number of coverity complaints 1329 - check return value of fseek, fcntl 1330 - plug memory leak in Dir_FindFile, Var_LoopExpand, 1331 JobPrintCommand, ParseTraditionalInclude 1332 - use bmake_malloc() where NULL is not tollerated 1333 - use MAKE_ATTR_UNUSED rather that kludges like 1334 return(unused ? 0 : 0) 1335 - use purge_cached_realpaths() rather than abuse cached_realpath() 1336 13372017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> 1338 1339 * Makefile (_MAKE_VERSION): 20170413 1340 Merge with NetBSD make, pick up 1341 o main.c: when setting .OBJDIR ignore '$' in paths. 1342 1343 * job.c: use MALLOC_OPTIONS to set malloc_options. 1344 13452017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1346 1347 * Makefile (_MAKE_VERSION): 20170411 1348 Merge with NetBSD make, pick up 1349 o str.c: Str_Match: allow [^a-z] to behave as expected. 1350 13512017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1352 1353 * Makefile (_MAKE_VERSION): 20170326 1354 Merge with NetBSD make, pick up 1355 o main.c: purge relative paths from realpath cache when .OBJDIR 1356 is changed. 1357 13582017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> 1359 1360 * Makefile (_MAKE_VERSION): 20170311 1361 Merge with NetBSD make, pick up 1362 o main.c: only use -C arg "as is" if it starts with '/'. 1363 13642017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> 1365 1366 * Makefile (_MAKE_VERSION): 20170301 1367 Merge with NetBSD make, pick up 1368 o main.c: use -C arg "as is" rather than getcwd() 1369 if they identify the same directory. 1370 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 1371 13722017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> 1373 1374 * Makefile (_MAKE_VERSION): 20170201 1375 Merge with NetBSD make, pick up 1376 o var.c: allow :_=var and avoid use of special context. 1377 13782017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> 1379 1380 * Makefile (_MAKE_VERSION): 20170130 1381 Merge with NetBSD make, pick up 1382 o var.c: add :range and :_ 1383 o main.c: partially initialize Dir_* before MainParseArgs() 1384 can be called. 1385 If -V, skip Main_ExportMAKEFLAGS() 1386 13872017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> 1388 1389 * Makefile (_MAKE_VERSION): 20170114 1390 Merge with NetBSD make, pick up 1391 o var.c: allow specifying the utc value used by :{gm,local}time 1392 13932016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1394 1395 * Makefile (_MAKE_VERSION): 20161212 1396 Merge with NetBSD make, pick up 1397 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 1398 13992016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> 1400 1401 * Makefile (_MAKE_VERSION): 20161209 1402 Merge with NetBSD make, pick up 1403 o main.c: cleanup setting of .OBJDIR 1404 o parse.c: avoid coredump from (var)=val 1405 14062016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1407 1408 * Makefile (_MAKE_VERSION): 20161126 1409 Merge with NetBSD make, pick up 1410 o make.c: Make_OODate: report src node name if path not set 1411 14122016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1413 1414 * Makefile (_MAKE_VERSION): 20160926 1415 Merge with NetBSD make, pick up 1416 o support for .DELETE_ON_ERROR: (remove targets that fail) 1417 14182016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> 1419 1420 * Makefile MAN: tweak .Dt to match ${PROG} 1421 14222016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 1423 1424 * Makefile (_MAKE_VERSION): 20160818 1425 its a neater number; pick up whitespace fixes to man page. 1426 14272016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> 1428 1429 * Makefile (_MAKE_VERSION): 20160817 1430 Merge with NetBSD make, pick up 1431 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() 1432 so we can call it before adding entries to missingFiles. 1433 Thus we do not track files we have been told to ignore. 1434 14352016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> 1436 1437 * Makefile (_MAKE_VERSION): 20160815 1438 Merge with NetBSD make, pick up 1439 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to 1440 pathnames, and skip if the expansion is empty. 1441 Useful for dirdeps.mk when checking DIRDEPS_CACHE. 1442 14432016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> 1444 1445 * Makefile (_MAKE_VERSION): 20160812 1446 Merge with NetBSD make, pick up 1447 o meta.c: remove all missingFiles entries that match a deleted 1448 dir. 1449 o main.c: set .ERROR_CMD if possible. 1450 14512016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1452 1453 * Makefile (_MAKE_VERSION): 20160606 1454 Merge with NetBSD make, pick up 1455 o dir.c: extend mtimes cache to others via cached_stat() 1456 14572016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1458 1459 * Makefile (_MAKE_VERSION): 20160604 1460 Merge with NetBSD make, pick up 1461 o meta.c: missing filemon data is only relevant if we read a 1462 meta file. 1463 Also do not return oodate for a missing metafile if gn->path 1464 points to .CURDIR 1465 14662016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 1467 1468 * Makefile (_MAKE_VERSION): 20160602 1469 Merge with NetBSD make, pick up 1470 o cached_realpath(): avoid hitting filesystem more than necessary. 1471 o meta.c: refactor need_meta decision, add knobs for 1472 missing meta file and filemon data wrt out-of-datedness. 1473 14742016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 1475 1476 * Makefile (_MAKE_VERSION): 20160528 1477 1478 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 1479 14802016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> 1481 1482 * Makefile (_MAKE_VERSION): 20160512 1483 Merge with NetBSD make, pick up 1484 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS 1485 this is useful for gcov builds. 1486 o propagate errors from filemon(4). 1487 14882016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> 1489 1490 * Makefile (_MAKE_VERSION): 20160509 1491 Merge with NetBSD make, pick up 1492 o remove use of non-standard types u_int etc. 1493 o meta.c: apply realpath() before matching against metaIgnorePaths 1494 14952016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> 1496 1497 * Makefile (_MAKE_VERSION): 20160404 1498 Merge with NetBSD make, pick up 1499 o allow makefile to set .MAKE.JOBS 1500 1501 * Makefile (PROG_NAME): use ${_MAKE_VERSION} 1502 15032016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> 1504 1505 * Makefile (_MAKE_VERSION): 20160315 1506 Merge with NetBSD make, pick up 1507 o fix handling of archive members 1508 15092016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 1510 1511 * Makefile (_MAKE_VERSION): rename variable to avoid interference 1512 with checks for ${MAKE_VERSION} 1513 15142016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> 1515 1516 * Makefile (MAKE_VERSION): 20160310 1517 Merge with NetBSD make, pick up 1518 o meta.c: treat missing Read file same as Write, incase we Delete it. 1519 15202016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> 1521 1522 * Makefile (MAKE_VERSION): 20160307 1523 Merge with NetBSD make, pick up 1524 o var.c: fix :ts\nnn to be octal by default. 1525 o meta.c: meta_finish() to cleanup memory. 1526 15272016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> 1528 1529 * Makefile (MAKE_VERSION): 20160226 1530 Merge with NetBSD make, pick up 1531 o meta.c: allow meta file for makeDepend if makefiles want it. 1532 15332016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> 1534 1535 * var.c: default .MAKE.SAVE_DOLLARS to FALSE 1536 for backwards compatability. 1537 1538 * Makefile (MAKE_VERSION): 20160220 1539 Merge with NetBSD make, pick up 1540 o var.c: add knob to control handling of '$$' in := 1541 15422016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> 1543 1544 * Makefile (MAKE_VERSION): 20160218 1545 Merge with NetBSD make, pick up 1546 o var.c: add .export-literal allows us to fix sys.clean-env.mk 1547 post the changes to Var_Subst. 1548 Var_Subst now takes flags, and does not consume '$$' in := 1549 15502016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> 1551 1552 * Makefile (MAKE_VERSION): 20160217 1553 Merge with NetBSD make, pick up 1554 o var.c: preserve '$$' in := 1555 o parse.c: add .dinclude for handling included 1556 makefile like .depend 1557 15582015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> 1559 1560 * Makefile (MAKE_VERSION): 20151220 1561 Merge with NetBSD make, pick up 1562 o suff.c: re-initialize suffNull when clearing suffixes. 1563 15642015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> 1565 1566 * Makefile (MAKE_VERSION): 20151201 1567 Merge with NetBSD make, pick up 1568 o cond.c: CondCvtArg: avoid access beyond end of empty buffer. 1569 o meta.c: meta_oodate: use lstat(2) for checking link target 1570 in case it is a symlink. 1571 o var.c: avoid calling brk_string and Var_Export1 with empty 1572 strings. 1573 15742015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 1575 1576 * Makefile (MAKE_VERSION): 20151126 1577 Merge with NetBSD make, pick up 1578 o parse.c: ParseTrackInput don't access beyond 1579 end of old value. 1580 15812015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> 1582 1583 * Makefile (MAKE_VERSION): 20151022 1584 1585 * Add support for BSD/OS which lacks inttypes.h 1586 and really needs sys/param.h for sys/sysctl.h 1587 also 'type' is not a shell builtin. 1588 1589 * var.c: eliminate uint32_t and need for inttypes.h 1590 1591 * main.c: PrintOnError flush stdout before run .ERROR 1592 1593 * parse.c: cope with _SC_PAGESIZE not being defined. 1594 1595 15962015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> 1597 1598 * Makefile (MAKE_VERSION): 20151020 1599 Merge with NetBSD make, pick up 1600 o var.c: fix uninitialized var 1601 16022015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> 1603 1604 * var.c: the conditional expressions used with ':?' can be 1605 expensive, if already discarding do not evaluate or expand 1606 anything. 1607 16082015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1609 1610 * Makefile (MAKE_VERSION): 20151010 1611 Merge with NetBSD make, pick up 1612 o Add Boolean wantit flag to Var_Subst and Var_Parse 1613 when FALSE we know we are discarding the result and can 1614 skip operations like Cmd_Exec. 1615 16162015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 1617 1618 * Makefile (MAKE_VERSION): 20151009 1619 Merge with NetBSD make, pick up 1620 o var.c: don't check for NULL before free() 1621 o meta.c: meta_oodate, do not hard code ignore of makeDependfile 1622 16232015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 1624 1625 * Makefile (MAKE_VERSION): 20150910 1626 Merge with NetBSD make, pick up 1627 o main.c: with -w print Enter/Leaving messages for objdir too 1628 if necessary. 1629 o centralize shell metachar handling 1630 1631 * FILES: add metachar.[ch] 1632 16332015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 1634 1635 * Makefile (MAKE_VERSION): 20150606 1636 Merge with NetBSD make, pick up 1637 o make.1: document .OBJDIR target 1638 16392015-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 1640 1641 * Makefile (MAKE_VERSION): 20150505 1642 Merge with NetBSD make, pick up 1643 o cond.c: be strict about lhs of comparison when evaluating .if 1644 but less so when called from variable expansion. 1645 o unit-tests/cond2.mk: test various error conditions 1646 16472015-05-04 Simon J. Gerraty <sjg@bad.crufty.net> 1648 1649 * machine.sh (MACHINE): Add Bitrig 1650 patch from joerg@netbsd.org 1651 16522015-04-18 Simon J. Gerraty <sjg@bad.crufty.net> 1653 1654 * Makefile (MAKE_VERSION): 20150418 1655 Merge with NetBSD make, pick up 1656 o job.c: use memmove() rather than memcpy() 1657 1658 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL 1659 case, so skip it. 1660 16612015-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 1662 1663 * Makefile (MAKE_VERSION): 20150411 1664 bump version - only mk/ changes. 1665 16662015-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 1667 1668 * Makefile (MAKE_VERSION): 20150410 1669 Merge with NetBSD make, pick up 1670 o document different handling of '-' in jobs mode vs compat 1671 o fix jobs mode so that '-' only applies to whole job 1672 when shell lacks hasErrCtl 1673 o meta.c: use separate vars to track lcwd and latestdir (read) 1674 per process 1675 16762015-04-01 Simon J. Gerraty <sjg@bad.crufty.net> 1677 1678 * Makefile (MAKE_VERSION): 20150401 1679 Merge with NetBSD make, pick up 1680 o meta.c: close meta file in child 1681 1682 * Makefile: use BINDIR.bmake if set. 1683 Same for MANDIR and SHAREDIR 1684 Handy for testing release candidates 1685 in various environments. 1686 16872015-03-26 Simon J. Gerraty <sjg@bad.crufty.net> 1688 1689 * move initialization of savederr to block where it is used 1690 to avoid spurious warning from gcc5 1691 16922014-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1693 1694 * Makefile (MAKE_VERSION): 20141111 1695 just a cooler number 1696 16972014-11-05 Simon J. Gerraty <sjg@bad.crufty.net> 1698 1699 * Makefile (MAKE_VERSION): 20141105 1700 Merge with NetBSD make, pick up 1701 o revert major overhaul of suffix handling 1702 and POSIX compliance - too much breakage 1703 and impossible to make backwards compatible. 1704 o we still have the new unit test structure which is ok. 1705 o meta.c ensure "-- filemon" is at start of line. 1706 17072014-09-17 Simon J. Gerraty <sjg@bad.crufty.net> 1708 1709 * configure.in: test that result of getconf PATH_MAX is numeric 1710 and discard if not. Apparently needed for Hurd. 1711 17122014-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 1713 1714 * Makefile (MAKE_VERSION): 20140830 1715 Merge with NetBSD make, pick up 1716 o major overhaul of suffix handling 1717 o improved POSIX compliance 1718 o overhauled unit-tests 1719 17202014-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 1721 1722 * Makefile (MAKE_VERSION): 20140620 1723 Merge with NetBSD make, pick up 1724 o var.c return varNoError rather than var_Error for ::= modifiers. 1725 17262014-05-22 Simon J. Gerraty <sjg@bad.crufty.net> 1727 1728 * Makefile (MAKE_VERSION): 20140522 1729 Merge with NetBSD make, pick up 1730 o var.c detect some parse errors. 1731 17322014-04-05 Simon J. Gerraty <sjg@bad.crufty.net> 1733 1734 * Fix spelling errors - patch from Pedro Giffuni 1735 17362014-02-14 Simon J. Gerraty <sjg@bad.crufty.net> 1737 1738 * Makefile (MAKE_VERSION): 20140214 1739 Merge with NetBSD make, pick up 1740 o .INCLUDEFROM* 1741 o use Var_Value to get MAKEOBJDIR[PREFIX] 1742 o reduced realloc'ign in brk_string. 1743 * configure.in: add a check for compiler supporting __func__ 1744 17452014-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 1746 1747 * boot-strap: ignore mksrc=none 1748 17492014-01-02 Simon J. Gerraty <sjg@bad.crufty.net> 1750 1751 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk 1752 17532014-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 1754 1755 * Makefile (MAKE_VERSION): 20140101 1756 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024) 1757 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max 1758 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for 1759 Hurd) 1760 * configure.in: Add AC_PREREQ and check for 1761 sysctl; patch from Andrew Shadura andrewsh at debian.org 1762 17632013-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 1764 1765 * Makefile (MAKE_VERSION): 20131010 1766 * lose the const from arg to systcl to avoid problems on older BSDs. 1767 17682013-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 1769 1770 * Makefile (MAKE_VERSION): 20131001 1771 Merge with NetBSD make, pick up 1772 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from 1773 hw.machine_arch if necessary. 1774 o meta.c: meta_oodate - need to look at src of Link and target 1775 of Move as well. 1776 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist. 1777 provide __arraycount() if needed. 1778 17792013-09-04 Simon J. Gerraty <sjg@bad.crufty.net> 1780 1781 * Makefile (MAKE_VERSION): 20130904 1782 Merge with NetBSD make, pick up 1783 o Add VAR_INTERNAL context, so that internal setting of 1784 MAKEFILE does not override value set by makefiles. 1785 17862013-09-02 Simon J. Gerraty <sjg@bad.crufty.net> 1787 1788 * Makefile (MAKE_VERSION): 20130902 1789 Merge with NetBSD make, pick up 1790 o CompatRunCommand: only apply shellErrFlag when errCheck is true 1791 17922013-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 1793 1794 * Makefile (MAKE_VERSION): 20130828 1795 Merge with NetBSD make, pick up 1796 o Fix VAR :sh = syntax from Will Andrews at freebsd.org 1797 o Call Job_SetPrefix() from Job_Init() so makefiles have 1798 opportunity to set .MAKE.JOB.PREFIX 1799 18002013-07-30 Simon J. Gerraty <sjg@bad.crufty.net> 1801 1802 * Makefile (MAKE_VERSION): 20130730 1803 Merge with NetBSD make, pick up 1804 o Allow suppression of --- job -- tokens by setting 1805 .MAKE.JOB.PREFIX empty. 1806 18072013-07-16 Simon J. Gerraty <sjg@bad.crufty.net> 1808 1809 * Makefile (MAKE_VERSION): 20130716 1810 Merge with NetBSD make, pick up 1811 o number of gmake compatibility tweaks 1812 -w for gmake style entering/leaving messages 1813 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc. 1814 handle MAKEFLAGS containing only letters. 1815 o when overriding a GLOBAL variable on the command line, 1816 delete it from GLOBAL context so -V doesn't show the wrong 1817 value. 1818 18192013-07-06 Simon J. Gerraty <sjg@bad.crufty.net> 1820 1821 * configure.in: We don't need MAKE_LEVEL_SAFE anymore. 1822 1823 * Makefile (MAKE_VERSION): 20130706 1824 Merge with NetBSD make, pick up 1825 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is 1826 true so that CompatRunCommand() can use it, to ensure 1827 consistent behavior with jobs mode. 1828 o use MAKE_LEVEL_ENV to define the variable to propagate 1829 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake). 1830 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of 1831 paths to ignore. 1832 18332013-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 1834 1835 * Makefile (MAKE_VERSION): 20130604 1836 Merge with NetBSD make, pick up 1837 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's 1838 to avoid leaking descriptors. 1839 18402013-05-28 Simon J. Gerraty <sjg@bad.crufty.net> 1841 1842 * Makefile (MAKE_VERSION): 20130528 1843 Merge with NetBSD make, pick up 1844 o var.c: cleanup some left-overs in VarHash() 1845 18462013-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 1847 1848 * Makefile (MAKE_VERSION): 20130520 1849 generate manifest from component FILES rather than have to 1850 update FILES when mk/FILES changes. 1851 18522013-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 1853 1854 * Makefile (MAKE_VERSION): 20130518 1855 Merge with NetBSD make, pick up 1856 o suff.c: don't skip all processsing for .PHONY targets 1857 else wildcard srcs do not get expanded. 1858 o var.c: expand name of variable to delete if necessary. 1859 18602013-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 1861 1862 * Makefile (MAKE_VERSION): 20130330 1863 Merge with NetBSD make, pick up 1864 o meta.c: refine the handling of .OODATE in commands. 1865 Rather than suppress command comparison for the entire script 1866 as though .NOMETA_CMP had been used, only suppress it for the 1867 one command line. 1868 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to 1869 suppress comparison of a command without otherwise affecting it. 1870 o make.1: document that 1871 18722013-03-22 Simon J. Gerraty <sjg@bad.crufty.net> 1873 1874 * Makefile (MAKE_VERSION): 20130321 1875 yes, not quite right but its a cooler number. 1876 Merge with NetBSD make, pick up 1877 o parse.c: fix ParseGmakeExport to be portable 1878 and add a unit-test. 1879 * meta.c: call meta_init() before makefiles are read and if built 1880 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON 1881 this let's makefiles test for support. 1882 Call meta_mode_init() to process .MAKE.MODE. 1883 18842013-03-13 Simon J. Gerraty <sjg@bad.crufty.net> 1885 1886 * Makefile (MAKE_VERSION): 20130305 1887 Merge with NetBSD make, pick up 1888 o run .STALE: target when a dependency from .depend is missing. 1889 o job.c: add Job_RunTarget() for the above and .BEGIN 1890 18912013-03-03 Simon J. Gerraty <sjg@bad.crufty.net> 1892 1893 * Makefile (MAKE_VERSION): 20130303 1894 Merge with NetBSD make, pick up 1895 o main.c: set .MAKE.OS to utsname.sysname 1896 o job.c: more checks for read and poll errors 1897 o var.c: lose VarChangeCase() saves 4% time 1898 18992013-03-02 Simon J. Gerraty <sjg@bad.crufty.net> 1900 1901 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we 1902 want to use MAKEOBJDIR 1903 19042013-01-27 Simon J. Gerraty <sjg@bad.crufty.net> 1905 1906 * Merge with NetBSD make, pick up 1907 o make.1: more info on how shell commands are handled. 1908 o job.c,main.c: detect write errors to job pipes. 1909 19102013-01-25 Simon J. Gerraty <sjg@bad.crufty.net> 1911 1912 * Makefile (MAKE_VERSION): 20130123 1913 Merge with NetBSD make, pick up 1914 o meta.c: if script uses .OODATE and meta_oodate() decides 1915 rebuild is needed, .OODATE will be empty - set it to .ALLSRC. 1916 o var.c: in debug output indicate which variabale modifiers 1917 apply to. 1918 o remove Check_Cwd logic the makefiles have been fixed. 1919 19202012-12-12 Simon J. Gerraty <sjg@bad.crufty.net> 1921 1922 * makefile.in: add a simple makefile for folk who insist on 1923 ./configure; make; make install 1924 it just runs boot-strap 1925 * include mk/* to accommodate the above 1926 * boot-strap: re-work to accommodate the above 1927 mksrc defaults to $Mydir/mk 1928 allow op={configure,build,install,clean,all} 1929 add options to facilitate install 1930 * Makefile.config.in: just the bits set by configure 1931 * Makefile: bump version to 20121212 1932 abandon Makefile.in (NetBSD Makefile) 1933 leverage mk/* instead 1934 * configure.in: ensure srcdir is absolute 1935 19362012-11-11 Simon J. Gerraty <sjg@bad.crufty.net> 1937 1938 * Makefile.in (MAKE_VERSION): 20121111 1939 fix generation of bmake.cat1 1940 19412012-11-09 Simon J. Gerraty <sjg@bad.crufty.net> 1942 1943 * Makefile.in (MAKE_VERSION): 20121109 1944 Merge with NetBSD make, pick up 1945 o make.c: MakeBuildChild: return 0 so search continues if a 1946 .ORDER dependency is detected. 1947 o unit-tests/order: test the above 1948 19492012-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 1950 1951 * Makefile.in (MAKE_VERSION): 20121102 1952 Merge with NetBSD make, pick up 1953 o cond.c: allow cond_state[] to grow. 1954 In meta mode with a very large tree, we can hit the limit 1955 while processing dirdeps. 1956 19572012-10-25 Simon J. Gerraty <sjg@bad.crufty.net> 1958 1959 * Makefile.in: we need to use ${srcdir} not ${.CURDIR} 1960 19612012-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 1962 1963 * Makefile.in (MAKE_VERSION): 20121010 1964 o protect syntax that only bmake parses correctly. 1965 o remove auto setting of FORCE_MACHINE, use configure's 1966 --with-force-machine=whatever if that is desired. 1967 19682012-10-08 Simon J. Gerraty <sjg@bad.crufty.net> 1969 1970 * Makefile.in: do not lose history from make.1 when generating bmake.1 1971 19722012-10-07 Simon J. Gerraty <sjg@bad.crufty.net> 1973 1974 * Makefile.in (MAKE_VERSION): 20121007 1975 Merge with NetBSD make, pick up 1976 o compat.c: ignore empty commands - same as jobs mode. 1977 o make.1: document meta chars that cause use of shell 1978 19792012-09-11 Simon J. Gerraty <sjg@bad.crufty.net> 1980 1981 * Makefile.in (MAKE_VERSION): bump version to 20120911 1982 * bsd.after-import.mk: include Makefile.inc early and allow it to 1983 override PROG 1984 19852012-08-31 Simon J. Gerraty <sjg@bad.crufty.net> 1986 1987 * Makefile.in (MAKE_VERSION): bump version to 20120831 1988 Merge with NetBSD make, pick up 1989 o cast sizeof() to int for comparison 1990 o minor make.1 tweak 1991 19922012-08-30 Simon J. Gerraty <sjg@bad.crufty.net> 1993 1994 * Makefile.in (MAKE_VERSION): bump version to 20120830 1995 Merge with NetBSD make, pick up 1996 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V 1997 o debug flag -dV causes -V to show raw value regardless. 1998 19992012-07-05 Simon J. Gerraty <sjg@bad.crufty.net> 2000 2001 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile 2002 gets SRCTOP set. 2003 20042012-07-04 Simon J. Gerraty <sjg@bad.crufty.net> 2005 2006 * Makefile.in (MAKE_VERSION): bump version to 20120704 2007 Merge with NetBSD make, pick up 2008 o Job_ParseShell should call Shell_Init if it has been 2009 previously called. 2010 * Makefile.in: set USE_META based on configure result. 2011 also .PARSEDIR is safer indicator of bmake. 2012 20132012-06-26 Simon J. Gerraty <sjg@bad.crufty.net> 2014 2015 * Makefile.in: bump version to 20120626 2016 ensure CPPFLAGS is in CFLAGS 2017 * meta.c: avoid nested externs 2018 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target 2019 20202012-06-20 Simon J. Gerraty <sjg@bad.crufty.net> 2021 2022 * Makefile.in (MAKE_VERSION): bump version to 20120620 2023 Merge with NetBSD make, pick up 2024 o make_malloc.c: avoid including make_malloc.h again 2025 2026 * Makefile.in: avoid bmake only syntax or protect with 2027 .if defined(.MAKE.LEVEL) 2028 * bsd.after-import.mk: replace .-include with .sinclude 2029 ensure? SRCTOP gets a value 2030 * configure.in: look for filemon.h in /usr/include/dev/filemon first. 2031 20322012-06-19 Simon J. Gerraty <sjg@bad.crufty.net> 2033 2034 * Makefile.in (MAKE_VERSION): bump version to 20120612 2035 Merge with NetBSD make, pick up 2036 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler 2037 for greater portability. 2038 o unit-tests/forloop: check that .for works as expected wrt 2039 number of times and with "quoted strings". 2040 20412012-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2042 2043 * Makefile.in (MAKE_VERSION): bump version to 20120606 2044 Merge with NetBSD make, pick up 2045 o compat.c: use kill(2) rather than raise(3). 2046 * configure.in: look for sys/dev/filemon 2047 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile 2048 and pass BOOTSTRAP_XTRAS to boot-strap. 2049 20502012-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2051 2052 * Makefile.in (MAKE_VERSION): bump version to 20120604 2053 Merge with NetBSD make, pick up 2054 o util.c and var.c share same var for tracking if environ 2055 has been reallocated. 2056 o util.c provide getenv with setenv. 2057 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL 2058 when the shell actively strips .MAKE.* from the environment. 2059 We still refer to the variable always as .MAKE.LEVEL 2060 * util.c fix bug in findenv() was finding prefix of name. 2061 * compat.c: re-raising SIGINT etc after running .INTERRUPT 2062 results in more reliable termination of all activity on many 2063 platforms. 2064 20652012-06-02 Simon J. Gerraty <sjg@bad.crufty.net> 2066 2067 * Makefile.in (MAKE_VERSION): bump version to 20120602 2068 Merge with NetBSD make, pick up 2069 o for.c: handle quoted items in .for list 2070 20712012-05-30 Simon J. Gerraty <sjg@bad.crufty.net> 2072 2073 * Makefile.in (MAKE_VERSION): bump version to 20120530 2074 Merge with NetBSD make, pick up 2075 o compat.c: ignore empty command. 2076 20772012-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2078 2079 * Makefile.in (MAKE_VERSION): bump version to 20120524 2080 * FILES: add bsd.after-import.mk: 2081 A simple means of integrating bmake into a BSD build system. 2082 20832012-05-20 Simon J. Gerraty <sjg@bad.crufty.net> 2084 2085 * Makefile.in (MAKE_VERSION): bump version to 20120520 2086 Merge with NetBSD make, pick up 2087 o increased limit for nested conditionals. 2088 20892012-05-18 Simon J. Gerraty <sjg@bad.crufty.net> 2090 2091 * Makefile.in (MAKE_VERSION): bump version to 20120518 2092 Merge with NetBSD make, pick up 2093 o use _exit(2) in signal hanlder 2094 o Don't use the [dir] cache when building nodes that might have 2095 changed since the last exec. 2096 o Avoid nested extern declaration warnings. 2097 20982012-04-27 Simon J. Gerraty <sjg@bad.crufty.net> 2099 2100 * meta.c (fgetLine): avoid %z - not portable. 2101 * parse.c: Since we moved include of sys/mman.h 2102 and def's of MAP_COPY etc. we got dups from a merge. 2103 21042012-04-24 Simon J. Gerraty <sjg@bad.crufty.net> 2105 2106 * Makefile.in (MAKE_VERSION): bump version to 20120420 2107 Merge with NetBSD make, pick up 2108 o restore duplicate supression in .MAKE.MAKEFILES 2109 runtime saving can be significant. 2110 o Var_Subst() uses Buf_DestroyCompact() to reduce memory 2111 consumption up to 20%. 2112 21132012-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2114 2115 * Makefile.in (MAKE_VERSION): bump version to 20120420 2116 Merge with NetBSD make, pick up 2117 o remove duplicate supression in .MAKE.MAKEFILES 2118 o improved dir cache behavior 2119 o gmake'ish export command 2120 21212012-03-25 Simon J. Gerraty <sjg@bad.crufty.net> 2122 2123 * Makefile.in (MAKE_VERSION): bump version to 20120325 2124 Merge with NetBSD make, pick up 2125 o fix parsing of :[#] in conditionals. 2126 21272012-02-10 Simon J. Gerraty <sjg@bad.crufty.net> 2128 2129 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD 2130 since some systems cannot cope with .Nx <version> 2131 21322011-11-14 Simon J. Gerraty <sjg@bad.crufty.net> 2133 2134 * Makefile.in (MAKE_VERSION): bump version to 20111111 2135 Merge with NetBSD make, pick up 2136 o debug output for .PARSEDIR and .PARSEFILE 2137 21382011-10-10 Simon J. Gerraty <sjg@bad.crufty.net> 2139 2140 * Makefile.in (MAKE_VERSION): bump version to 20111010 2141 21422011-10-09 Simon J. Gerraty <sjg@bad.crufty.net> 2143 2144 * boot-strap: check for an expected file in the dirs we look for. 2145 * make-bootstrap.sh: pass on LDSTATIC 2146 21472011-10-01 Simon J. Gerraty <sjg@bad.crufty.net> 2148 2149 * Makefile.in (MAKE_VERSION): bump version to 20111001 2150 Merge with NetBSD make, pick up 2151 o ensure .PREFIX is set for .PHONY 2152 and .TARGET set for .PHONY run via .END 2153 o __dead used consistently 2154 21552011-09-10 Simon J. Gerraty <sjg@bad.crufty.net> 2156 2157 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-) 2158 21592011-09-05 Simon J. Gerraty <sjg@bad.crufty.net> 2160 2161 * Makefile.in (MAKE_VERSION): bump version to 20110905 2162 Merge with NetBSD make, pick up 2163 o meta_oodate: ignore makeDependfile 2164 21652011-08-28 Simon J. Gerraty <sjg@bad.crufty.net> 2166 2167 * Makefile.in (MAKE_VERSION): bump version to 20110828 2168 Merge with NetBSD make, pick up 2169 o silent=yes in .MAKE.MODE causes meta mode to mark targets 2170 as SILENT if a .meta file is created 2171 21722011-08-18 Simon J. Gerraty <sjg@bad.crufty.net> 2173 2174 * Makefile.in (MAKE_VERSION): bump version to 20110818 2175 Merge with NetBSD make, pick up 2176 o in meta mode, if target flagged .META a missing .meta file 2177 means target is out-of-date 2178 o fixes for gcc 4.5 warnings 2179 o simplify job printing code 2180 21812011-08-09 Simon J. Gerraty <sjg@bad.crufty.net> 2182 2183 * Makefile.in (MAKE_VERSION): bump version to 20110808 2184 Merge with NetBSD make, pick up 2185 o do not touch OP_SPECIAL targets when doing make -t 2186 21872011-06-22 Simon J. Gerraty <sjg@bad.crufty.net> 2188 2189 * Makefile.in (MAKE_VERSION): bump version to 20110622 2190 Merge with NetBSD make, pick up 2191 o meta_oodate detect corrupted .meta file and declare oodate. 2192 * configure.in: add check for setsid 2193 21942011-06-07 Simon J. Gerraty <sjg@bad.crufty.net> 2195 2196 * Merge with NetBSD make, pick up 2197 o unit-tests/modts now works on MirBSD 2198 21992011-06-04 Simon J. Gerraty <sjg@bad.crufty.net> 2200 2201 * Makefile.in (MAKE_VERSION): bump version to 20110606 2202 Merge with NetBSD make, pick up 2203 o ApplyModifiers: when we parse a variable which is not 2204 the entire modifier string, or not followed by ':', do not 2205 consider it as containing modifiers. 2206 o loadfile: ensure newline at end of mapped file. 2207 22082011-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2209 2210 * Makefile.in (MAKE_VERSION): bump version to 20110505 2211 Merge with NetBSD make, pick up 2212 o .MAKE.META.BAILIWICK - list of prefixes which define the scope 2213 of make's control. In meta mode, any generated file within 2214 said bailiwick, which is found to be missing, causes current 2215 target to be out-of-date. 2216 22172011-04-11 Simon J. Gerraty <sjg@bad.crufty.net> 2218 2219 * Makefile.in (MAKE_VERSION): bump version to 20110411 2220 Merge with NetBSD make, pick up 2221 o when long modifiers fail to match, check sysV style. 2222 - add a test case 2223 22242011-04-10 Simon J. Gerraty <sjg@bad.crufty.net> 2225 2226 * Makefile.in (MAKE_VERSION): bump version to 20110410 2227 Merge with NetBSD make, pick up 2228 o :hash - cheap 32bit hash of value 2229 o :localtime, :gmtime - use value as format string for strftime. 2230 22312011-03-30 Simon J. Gerraty <sjg@bad.crufty.net> 2232 2233 * Makefile.in (MAKE_VERSION): bump version to 20110330 2234 mostly because its a cooler version. 2235 Merge with NetBSD make, pick up 2236 o NetBSD tags for meta.[ch] 2237 o job.c call meta_job_finish() after meta_job_error(). 2238 o meta_job_error() should call meta_job_finish() to ensure 2239 .meta file is closed, and safe to copy - if .ERROR target wants. 2240 meta_job_finish() is safe to call repeatedly. 2241 22422011-03-29 Simon J. Gerraty <sjg@bad.crufty.net> 2243 2244 * unit-tests/modts: use printf if it is a builtin, 2245 to save us from MirBSD 2246 2247 * Makefile.in (MAKE_VERSION): bump version to 20110329 2248 Merge with NetBSD make, pick up 2249 o fix for use after free() in CondDoExists(). 2250 o meta_oodate() report extra commands and return earlier. 2251 22522011-03-27 Simon J. Gerraty <sjg@bad.crufty.net> 2253 2254 * Makefile.in (MAKE_VERSION): bump version to 20110327 2255 Merge with NetBSD make, pick up 2256 o meta.c, if .MAKE.MODE contains curdirOk=yes 2257 allow creating .meta files in .CURDIR 2258 * boot-strap (TOOL_DIFF): aparently at least on linux distro 2259 formats the output of 'type' differently - so eat any "()" 2260 22612011-03-06 Simon J. Gerraty <sjg@bad.crufty.net> 2262 2263 * Makefile.in (MAKE_VERSION): bump version to 20110306 2264 Merge with NetBSD make, pick up 2265 o meta.c, only do getcwd() once 2266 22672011-03-05 Simon J. Gerraty <sjg@bad.crufty.net> 2268 2269 * Makefile.in (MAKE_VERSION): bump version to 20110305 2270 Merge with NetBSD make, pick up 2271 o correct sysV substitution handling of empty lhs and variable 2272 o correct exists() check for dir with trailing / 2273 o correct handling of modifiers for non-existant variables 2274 during evaluation of conditionals. 2275 o ensure MAP_FILE is defined. 2276 o meta.c use curdir[] now exported by main.c 2277 22782011-02-25 Simon J. Gerraty <sjg@bad.crufty.net> 2279 2280 * Makefile.in (MAKE_VERSION): bump version to 20110225 2281 Merge with NetBSD make, pick up 2282 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after 2283 makefiles have been read. 2284 o fix example of :? modifier in man page. 2285 22862011-02-13 Simon J. Gerraty <sjg@bad.crufty.net> 2287 2288 * Makefile.in (MAKE_VERSION): bump version to 20110214 2289 Merge with NetBSD make, pick up 2290 o meta.c handle realpath() failing when generating meta file 2291 name. 2292 2293 * sigcompat.c: convert to ansi so we can use higher warning levels. 2294 2295 22962011-02-07 Simon J. Gerraty <sjg@bad.crufty.net> 2297 2298 * Makefile.in (MAKE_VERSION): bump version to 20110207 2299 Merge with NetBSD make, pick up 2300 o fix for bug in meta mode. 2301 23022011-01-03 Simon J. Gerraty <sjg@bad.crufty.net> 2303 2304 * parse.c: SunOS 5.8 at least does not have MAP_FILE 2305 23062011-01-01 Simon J. Gerraty <sjg@bad.crufty.net> 2307 2308 * Makefile.in (MAKE_VERSION): bump version to 20110101 2309 Merge with NetBSD make, pick up 2310 o use mmap(2) if available, for reading makefiles 2311 23122010-12-15 Simon J. Gerraty <sjg@bad.crufty.net> 2313 2314 * Makefile.in (MAKE_VERSION): bump version to 20101215 2315 Merge with NetBSD make, pick up 2316 o ensure meta_job_error() does not report a previous .meta file 2317 as being culprit. 2318 23192010-12-10 Simon J. Gerraty <sjg@bad.crufty.net> 2320 2321 * Makefile.in (MAKE_VERSION): bump version to 20101210 2322 Merge with NetBSD make, pick up 2323 o meta_oodate: track cwd per process, and only consider target 2324 out-of-date if missing file is outside make's CWD. 2325 Ignore files in /tmp/ etc. 2326 o to ensure unit-tests results match, need to control LC_ALL 2327 as well as LANG. 2328 o fix for parsing bug in var.c 2329 23302010-11-26 Simon J. Gerraty <sjg@bad.crufty.net> 2331 2332 * Makefile.in (MAKE_VERSION): bump version to 20101126 2333 Merge with NetBSD make, pick up 2334 o if stale dependency is an IMPSRC, search via .PATH 2335 o meta_oodate: if a referenced file is missing, target is 2336 out-of-date. 2337 o meta_oodate: if a target uses .OODATE in its commands, 2338 it (.OODATE) needs to be recomputed. 2339 o keep a pointer to youngest child node, rather than just its 2340 mtime. 2341 23422010-11-02 Simon J. Gerraty <sjg@bad.crufty.net> 2343 2344 * Makefile.in (MAKE_VERSION): bump version to 20101101 2345 23462010-10-16 Simon J. Gerraty <sjg@bad.crufty.net> 2347 2348 * machine.sh: like os.sh, 2349 allow for uname -p producing useless drivel 2350 23512010-09-13 Simon J. Gerraty <sjg@bad.crufty.net> 2352 2353 * boot-strap: document configure knobs for meta and filemon. 2354 2355 * Makefile.in (MAKE_VERSION): bump version to 20100911 2356 Merge with NetBSD make, pick up 2357 o meta.c - meta mode 2358 2359 * make-bootstrap.sh.in: handle meta.c 2360 * configure.in: add knobs for use_meta and filemon_h 2361 also, look for dirname, str[e]sep and strlcpy 2362 * util.c: add simple err[x] and warn[x] 2363 23642010-08-08 Simon J. Gerraty <sjg@bad.crufty.net> 2365 2366 * boot-strap (TOOL_DIFF): set this to ensure tests use 2367 the same version of diff that configure tested 2368 2369 * Makefile.in (MAKE_VERSION): bump version to 20100808 2370 Merge with NetBSD make, pick up 2371 o in jobs mode, when we discover we cannot make something, 2372 call PrintOnError before exit. 2373 23742010-08-06 Simon J. Gerraty <sjg@bad.crufty.net> 2375 2376 * Makefile.in (MAKE_VERSION): bump version to 20100806 2377 Merge with NetBSD make, pick up 2378 o formatting fixes for ignored errors 2379 o ensure jobs are cleaned up regardless of where wait() was called. 2380 23812010-06-28 Simon J. Gerraty <sjg@bad.crufty.net> 2382 2383 * Makefile.in (MAKE_VERSION): bump version to 20100618 2384 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p 2385 23862010-06-16 Simon J. Gerraty <sjg@bad.crufty.net> 2387 2388 * Makefile.in (MAKE_VERSION): bump version to 20100616 2389 Merge with NetBSD make, pick up 2390 o man page update 2391 o call PrintOnError from JobFinish when we detect an error we 2392 are not ignoring. 2393 23942010-06-06 Simon J. Gerraty <sjg@bad.crufty.net> 2395 2396 * Makefile.in (MAKE_VERSION): bump version to 20100606 2397 Merge with NetBSD make, pick up 2398 o man page update 2399 24002010-06-05 Simon J. Gerraty <sjg@bad.crufty.net> 2401 2402 * Makefile.in (MAKE_VERSION): bump version to 20100605 2403 Merge with NetBSD make, pick up 2404 o use bmake_signal() which is a wrapper around sigaction() 2405 in place of signal() 2406 o add .export-env to allow exporting variables to environment 2407 without tracking (so no re-export when the internal value is 2408 changed). 2409 24102010-05-24 Simon J. Gerraty <sjg@bad.crufty.net> 2411 2412 * Makefile.in (MAKE_VERSION): bump version to 20100524 2413 Merge with NetBSD make, pick up 2414 o fix for .info et al being greedy. 2415 24162010-05-23 Simon J. Gerraty <sjg@bad.crufty.net> 2417 2418 * Makefile.in (MAKE_VERSION): bump version to 20100520 2419 Merge with NetBSD make, pick up 2420 o back to using realpath on argv[0] 2421 but only if contains '/' and does not start with '/'. 2422 24232010-05-10 Simon J. Gerraty <sjg@bad.crufty.net> 2424 2425 * boot-strap: use absolute path for bmake when running tests. 2426 2427 * Makefile.in (MAKE_VERSION): bump version to 20100510 2428 Merge with NetBSD make, pick up 2429 o revert use of realpath on argv[0] 2430 too many corner cases. 2431 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target. 2432 24332010-05-05 Simon J. Gerraty <sjg@bad.crufty.net> 2434 2435 * Makefile.in (MAKE_VERSION): bump version to 20100505 2436 Merge with NetBSD make, pick up 2437 o fix for missed SIGCHLD when compiled with SunPRO 2438 actually for bmake, defining FORCE_POSIX_SIGNALS would have 2439 done the job. 2440 24412010-04-30 Simon J. Gerraty <sjg@bad.crufty.net> 2442 2443 * Makefile.in (MAKE_VERSION): bump version to 20100430 2444 Merge with NetBSD make, pick up 2445 o fflush stdout before writing to stdout 2446 24472010-04-23 Simon J. Gerraty <sjg@bad.crufty.net> 2448 2449 * Makefile.in (MAKE_VERSION): bump version to 20100423 2450 Merge with NetBSD make, pick up 2451 o updated unit tests for Haiku (this time for sure). 2452 * boot-strap: based on patch from joerg 2453 honor --with-default-sys-path better. 2454 * boot-strap: remove mention of --with-prefix-sys-path 2455 24562010-04-22 Simon J. Gerraty <sjg@bad.crufty.net> 2457 2458 * Makefile.in (MAKE_VERSION): bump version to 20100422 2459 * Merge with NetBSD make, pick up 2460 o fix for vfork() on Darwin. 2461 o fix for bogus $TMPDIR. 2462 o set .MAKE.MODE=compat for -B 2463 o set .MAKE.JOBS=max_jobs for -j max_jobs 2464 o allow unit-tests to run without any *.mk 2465 o unit-tests/modmisc be more conservative in dirs presumed to exist. 2466 * boot-strap: ignore /usr/share/mk except on NetBSD. 2467 * unit-tests/Makefile.in: set LANG=C when running unit-tests to 2468 ensure sort(1) behaves as expected. 2469 24702010-04-21 Simon J. Gerraty <sjg@bad.crufty.net> 2471 2472 * boot-strap: add FindHereOrAbove so we can use -m .../mk 2473 24742010-04-20 Simon J. Gerraty <sjg@bad.crufty.net> 2475 2476 * Makefile.in (MAKE_VERSION): bump version to 20100420 2477 * Merge with NetBSD make, pick up 2478 o fix for variable realpath() behavior. 2479 we have to stat(2) the result to be sure. 2480 o fix for .export (all) when nested vars use :sh 2481 24822010-04-14 Simon J. Gerraty <sjg@bad.crufty.net> 2483 2484 * Makefile.in (MAKE_VERSION): bump version to 20100414 2485 * Merge with NetBSD make, pick up 2486 o use realpath to resolve argv[0] (for .MAKE) if needed. 2487 o add realpath from libc. 2488 o add :tA to resolve variable via realpath(3) if possible. 2489 24902010-04-08 Simon J. Gerraty <sjg@bad.crufty.net> 2491 2492 * Makefile.in (MAKE_VERSION): bump version to 20100408 2493 * Merge with NetBSD make, pick up 2494 o unit tests for .ERROR, .error 2495 o fix for .ERROR to ensure it cannot be default target. 2496 24972010-04-06 Simon J. Gerraty <sjg@bad.crufty.net> 2498 2499 * Makefile.in (MAKE_VERSION): bump version to 20100406 2500 * Merge with NetBSD make, pick up 2501 o fix for compat mode "Error code" going to debug_file. 2502 o fix for .ALLSRC being populated twice. 2503 o support for .info, .warning and .error directives 2504 o .MAKE.MODE to control make's operational mode 2505 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile 2506 name(s). 2507 o .MAKE.DEPENDFILE to control the name of the depend file 2508 o .ERROR target - run on failure. 2509 25102010-03-18 Simon J. Gerraty <sjg@bad.crufty.net> 2511 2512 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile 2513 2514 * os.sh,arch.c: patch for Haiku from joerg at netbsd 2515 25162010-03-17 Simon J. Gerraty <sjg@bad.crufty.net> 2517 2518 * Makefile.in (MAKE_VERSION): bump version to 20100222 2519 * Merge with NetBSD make, pick up 2520 o better error msg for .for with mutiple inter vars 2521 2522 * boot-strap: 2523 o use make-bootstrap.sh from joerg at netbsd 2524 to avoid the need for a native make when bootstrapping. 2525 o add "" everywhere ;-) 2526 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1 2527 otherwise the pre-formated version. 2528 25292010-01-04 Simon J. Gerraty <sjg@bad.crufty.net> 2530 2531 * Makefile.in (MAKE_VERSION): bump version to 20100102 2532 * Merge with NetBSD make, pick up: 2533 o fix for -m .../ 2534 25352009-11-18 Simon J. Gerraty <sjg@void.crufty.net> 2536 2537 * Makefile.in (MAKE_VERSION): bump version to 20091118 2538 * Merge with NetBSD make, pick up: 2539 o .unexport 2540 o report lines that start with '.' and should have ':' 2541 (catch typo's of .el*if). 2542 25432009-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2544 2545 * configure.in: Ensure that srcdir and mksrc are absolute paths. 2546 25472009-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2548 2549 * Makefile.in (MAKE_VERSION): fix version to 20091007 2550 25512009-10-07 Simon J. Gerraty <sjg@void.crufty.net> 2552 2553 * Makefile.in (MAKE_VERSION): bump version to 200910007 2554 * Merge with NetBSD make, pick up: 2555 o fix for parsing of :S;...;...; applied to .for loop iterator 2556 appearing in a dependency line. 2557 25582009-09-09 Simon J. Gerraty <sjg@void.crufty.net> 2559 2560 * Makefile.in (MAKE_VERSION): bump version to 20090909 2561 * Merge with NetBSD make, pick up: 2562 o fix for -C, .CURDIR and .OBJDIR 2563 * boot-strap: 2564 o allow share_dir to be set independent of prefix. 2565 o select default share_dir better when prefix ends in $HOST_TARGET 2566 o if FORCE_BSD_MK etc were set, include them in the suggested 2567 install-mk command. 2568 25692009-09-08 Simon J. Gerraty <sjg@void.crufty.net> 2570 2571 * Makefile.in (MAKE_VERSION): bump version to 20090908 2572 * Merge with NetBSD make, pick up: 2573 o .MAKE.LEVEL for recursion tracking 2574 o fix for :M scanning \: 2575 25762009-09-03 Simon J. Gerraty <sjg@void.crufty.net> 2577 2578 * configure.in: Don't -D__EXTENSIONS__ if 2579 AC_USE_SYSTEM_EXTENSIONS says "no". 2580 25812009-08-26 Simon J. Gerraty <sjg@void.crufty.net> 2582 2583 * Makefile.in (MAKE_VERSION): bump version to 20090826 2584 Simplify MAKE_VERSION to just the bare date. 2585 * Merge with NetBSD make, pick up: 2586 o -C directory support. 2587 o support for SIGINFO 2588 o use $TMPDIR for temp files. 2589 o child of vfork should be careful about modifying parent's state. 2590 2591 25922009-03-26 Simon J. Gerraty <sjg@void.crufty.net> 2593 2594 * Appy some patches for MiNT from David Brownlee 2595 25962009-02-26 Simon J. Gerraty <sjg@void.crufty.net> 2597 2598 * Makefile.in (BMAKE_VERSION): bump version to 20090222 2599 * Merge with NetBSD make, pick up: 2600 o Possible null pointer de-ref in Var_Set. 2601 26022009-02-08 Simon J. Gerraty <sjg@void.crufty.net> 2603 2604 * Makefile.in (BMAKE_VERSION): bump version to 20090204 2605 * Merge with NetBSD make, pick up: 2606 o bmake_malloc et al moved to their own .c 2607 o Count both () and {} when looking for the end of a :M pattern 2608 o Change 'Buffer' so that it is the actual struct, not a pointer to it. 2609 o strlist.c - functions for processing extendable arrays of pointers to strings. 2610 o ClientData replaced with void *, so const void * can be used. 2611 o New debug flag C for DEBUG_CWD 2612 26132008-11-11 Simon J. Gerraty <sjg@void.crufty.net> 2614 2615 * Makefile.in (BMAKE_VERSION): bump version to 20081111 2616 Apply patch from Joerg Sonnenberge to 2617 configure.in: 2618 o remove some redundant checks 2619 o check for emlloc etc only in libutil and require the whole family. 2620 util.c: 2621 o remove [v]asprintf which is no longer used. 2622 26232008-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2624 2625 * Makefile.in (BMAKE_VERSION): bump version to 20081101 2626 * Merge with NetBSD make, pick up: 2627 o util.c: avoid use of putenv() - christos 2628 26292008-10-30 Simon J. Gerraty <sjg@void.crufty.net> 2630 2631 * Makefile.in (BMAKE_VERSION): bump version to 20081030 2632 pick up man page tweaks. 2633 26342008-10-29 Simon J. Gerraty <sjg@void.crufty.net> 2635 2636 * Makefile.in: move processing of LIBOBJS to after is definition! 2637 thus we'll have getenv.c in SRCS only if needed. 2638 2639 * make.1: add examples of how to use :? 2640 2641 * Makefile.in (BMAKE_VERSION): bump version to 20081029 2642 * Merge with NetBSD make, pick up: 2643 o fix for .END processing with -j 2644 o segfault from Parse_Error when no makefile is open 2645 o handle numeric expressions in any variable expansion 2646 o debug output now defaults to stderr, -dF to change it - apb 2647 o make now uses bmake_malloc etc so that it can build natively 2648 on A/UX - wasn't an issue for bmake, but we want to keep in sync. 2649 26502008-09-27 Simon J. Gerraty <sjg@void.crufty.net> 2651 2652 * Makefile.in (BMAKE_VERSION): bump version to 20080808 2653 * Merge with NetBSD make, pick up: 2654 o fix for PR/38840: Pierre Pronchery: make crashes while parsing 2655 long lines in Makefiles 2656 o optimizations for VarQuote by joerg 2657 o fix for PR/38756: dominik: make dumps core on invalid makefile 2658 26592008-05-15 Simon J. Gerraty <sjg@void.crufty.net> 2660 2661 * Makefile.in (BMAKE_VERSION): bump version to 20080515 2662 * Merge with NetBSD make, pick up: 2663 o fix skip setting vars in VAR_GLOBAL context, to handle 2664 cases where VAR_CMD is used for other than command line vars. 2665 26662008-05-14 Simon J. Gerraty <sjg@void.crufty.net> 2667 2668 * boot-strap (make_version): we may need to look in 2669 $prefix/share/mk for sys.mk 2670 2671 * Makefile.in (BMAKE_VERSION): bump version to 20080514 2672 * Merge with NetBSD make, pick up: 2673 o skip setting vars in VAR_GLOBAL context, when already set in 2674 VAR_CMD which takes precedence. 2675 26762008-03-30 Simon J. Gerraty <sjg@void.crufty.net> 2677 2678 * Makefile.in (BMAKE_VERSION): bump version to 20080330 2679 * Merge with NetBSD make, pick up: 2680 o fix for ?= when LHS contains variable reference. 2681 26822008-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2683 2684 * merge some patches from NetBSD pkgsrc. 2685 2686 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of 2687 the MAKSYSPATH used during bootstrap. 2688 2689 * Makefile.in (BMAKE_VERSION): bump version to 20080215 2690 * Merge with NetBSD make, pick up: 2691 o warn if non-space chars follow 'empty' in a conditional. 2692 26932008-01-18 Simon J. Gerraty <sjg@void.crufty.net> 2694 2695 * Makefile.in (BMAKE_VERSION): bump version to 20080118 2696 * Merge with NetBSD make, pick up: 2697 o consider dependencies read from .depend as optional - dsl 2698 o remember when buffer for reading makefile grows - dsl 2699 o add -dl (aka LOUD) - David O'Brien 2700 27012007-10-22 Simon J. Gerraty <sjg@void.crufty.net> 2702 2703 * Makefile.in (BMAKE_VERSION): bump version to 20071022 2704 * Merge with NetBSD make, pick up: 2705 o Allow .PATH<suffix> to be used for .include "" 2706 2707 * boot-strap: source default settings from .bmake-boot-strap.rc 2708 27092007-10-16 Simon J. Gerraty <sjg@void.crufty.net> 2710 2711 * Makefile.in: fix maninstall on various systems 2712 provided that our man.mk is used. 2713 For non-BSD systems we install the preformatted page 2714 into $MANDIR/cat1 2715 27162007-10-15 Simon J. Gerraty <sjg@void.crufty.net> 2717 2718 * boot-strap: make bmake.1 too, so maninstall works. 2719 27202007-10-14 Simon J. Gerraty <sjg@void.crufty.net> 2721 2722 * Makefile.in (BMAKE_VERSION): bump version to 20071014 2723 * Merge with NetBSD make, pick up: 2724 o revamped handling of defshell - configure no longer needs to 2725 know the content of the shells array - apb 2726 o stop Var_Subst modifying its input - apb 2727 o avoid calling ParseTrackInput too often - dsl 2728 27292007-10-11 Simon J. Gerraty <sjg@void.crufty.net> 2730 2731 * Makefile.in (BMAKE_VERSION): bump version to 20071011 2732 * Merge with NetBSD make, pick up: 2733 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path. 2734 2735 * sigcompat.c: some tweaks for HP-UX 11.x based on 2736 patch from Tobias Nygren 2737 2738 * configure.in: update handling of --with-defshell to match 2739 new make behavior. --with-defshell=/usr/xpg4/bin/sh 2740 will now do what one might hope - provided the chosen shell 2741 behaves enough like sh. 2742 27432007-10-08 Simon J. Gerraty <sjg@void.crufty.net> 2744 2745 * Makefile.in (BMAKE_VERSION): bump to 20071008 2746 * Merge with NetBSD make, pick up: 2747 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg 2748 o .export/.MAKE.EXPORTED - export of variables - sjg 2749 o .MAKE.MAKEFILES - track all makefiles read - sjg 2750 o performance improvements - dsl 2751 o revamp parallel job scheduling - dsl 2752 27532006-07-28 Simon J. Gerraty <sjg@void.crufty.net> 2754 2755 * Makefile.in (BMAKE_VERSION): bump to 20060728 2756 * Merge with NetBSD make, pick up: 2757 o extra debug info during variable and cond processing - sjg 2758 o shell definition now covers newline - rillig 2759 o minor mem leak in PrintOnError - sjg 2760 27612006-05-11 Simon J. Gerraty <sjg@void.crufty.net> 2762 2763 * Makefile.in (BMAKE_VERSION): bump to 20060511 2764 * Merge with NetBSD make, pick up: 2765 o more memory leaks - coverity 2766 o possible overflow in ArchFindMember - coverity 2767 o extract variable modifier code out of Var_Parse() 2768 so it can be called recursively - sjg 2769 o unit-tests/moderrs - sjg 2770 27712006-04-12 Simon J. Gerraty <sjg@void.crufty.net> 2772 2773 * Makefile.in (BMAKE_VERSION): bump to 20060412 2774 * Merge with NetBSD make, pick up: 2775 o fixes for some memory leaks - coverity 2776 o only read first sys.mk etc when searching sysIncPath - sjg 2777 2778 * main.c (ReadMakefile): remove hack for __INTERIX that prevented 2779 setting ${MAKEFILE} - OBATA Akio 2780 27812006-03-18 Simon J. Gerraty <sjg@void.crufty.net> 2782 2783 * Makefile.in (BMAKE_VERSION): bump to 20060318 2784 * Merge with NetBSD make, pick up: 2785 o cleanup of job.c to remove remote handling, distcc is more 2786 useful and this code was likely bit-rotting - dsl 2787 o fix for :P modifier - sjg 2788 * boot-strap: set default prefix to something reasonable 2789 (for me anyway). 2790 27912006-03-01 Simon J. Gerraty <sjg@void.crufty.net> 2792 2793 * Makefile.in (BMAKE_VERSION): bump to 20060301 2794 * Merge with NetBSD make, pick up: 2795 o make .WAIT apply recursively, document and test case - apb 2796 o allow variable modifiers in a variable appear anywhere in 2797 modifier list, document and test case - sjg 2798 27992006-02-22 Simon J. Gerraty <sjg@void.crufty.net> 2800 2801 * Makefile.in (BMAKE_VERSION): bump to 20060222 2802 * Merge with NetBSD make, pick up: 2803 o improved job token handling - dsl 2804 o SIG_DFL the correct signal before exec - dsl 2805 o more debug info during parsing - dsl 2806 o allow variable modifiers to be specified via variable - sjg 2807 * boot-strap: explain why we died if no mksrc 2808 28092005-11-05 Simon J. Gerraty <sjg@void.crufty.net> 2810 2811 * Makefile.in (BMAKE_VERSION): bump to 20051105 2812 * configure.in: always set default_sys_path 2813 default is ${prefix}/share/mk 2814 - remove prefix_sys_path, anyone wanting more than above 2815 needs to set it manually. 2816 28172005-11-04 Simon J. Gerraty <sjg@void.crufty.net> 2818 2819 * boot-strap: make this a bit easier for pkgsrc folk. 2820 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to 2821 'mips' while pkgsrc wants 'mipseb' or 'mipsel' 2822 28232005-11-02 Simon J. Gerraty <sjg@void.crufty.net> 2824 2825 * Makefile.in (BMAKE_VERSION): bump to 20051102 2826 * job.c (JobFinish): fix likely ancient merge lossage 2827 fix from Todd Vierling. 2828 * boot-strap (srcdir): allow setting mksrc=none 2829 28302005-10-31 Simon J. Gerraty <sjg@void.crufty.net> 2831 2832 * Makefile.in (BMAKE_VERSION): bump to 20051031 2833 * ranlib.h: skip on OSF too. 2834 (NetBSD PR 31864) 2835 28362005-10-10 Simon J. Gerraty <sjg@void.crufty.net> 2837 2838 * Makefile.in (BMAKE_VERSION): bump to 20051002 2839 fix a silly typo 2840 28412005-10-09 Simon J. Gerraty <sjg@void.crufty.net> 2842 2843 * Makefile.in (BMAKE_VERSION): bump to 20051001 2844 support for UnixWare and some other systems, 2845 based on patches from pkgsrc/bootstrap 2846 28472005-09-03 Simon J. Gerraty <sjg@void.crufty.net> 2848 2849 * Makefile.in (BMAKE_VERSION): bump to 20050901 2850 * Merge with NetBSD make, pick up: 2851 o possible parse error causing us to wander off. 2852 28532005-06-06 Simon J. Gerraty <sjg@void.crufty.net> 2854 2855 * Makefile.in (BMAKE_VERSION): bump to 20050606 2856 * Merge with NetBSD make, pick up: 2857 o :0x modifier for randomizing a list 2858 o fixes for a number of -Wuninitialized issues. 2859 28602005-05-30 Simon J. Gerraty <sjg@void.crufty.net> 2861 2862 * Makefile.in (BMAKE_VERSION): bump to 20050530 2863 * Merge with NetBSD make, pick up: 2864 o Handle dependencies for .BEGIN, .END and .INTERRUPT 2865 2866 * README: was seriously out of date. 2867 28682005-03-22 Simon J. Gerraty <sjg@void.crufty.net> 2869 2870 * Important to use .MAKE rather than MAKE. 2871 28722005-03-15 Simon J. Gerraty <sjg@void.crufty.net> 2873 2874 * Makefile.in (BMAKE_VERSION): bump to 20050315 2875 * Merge with NetBSD make, pick up: 2876 o don't mistake .elsefoo for .else 2877 o use suffix-specific search path correctly 2878 o bunch of style nits 2879 28802004-05-11 Simon J. Gerraty <sjg@void.crufty.net> 2881 2882 * boot-strap: 2883 o ensure that args to --src and --with-mksrc 2884 are resolved before giving them to configure. 2885 o add -o "objdir" so that builder can control it, 2886 default is $OS as determined by os.sh 2887 o add -q to suppress all the install instructions. 2888 28892004-05-08 Simon J. Gerraty <sjg@void.crufty.net> 2890 2891 * Remove __IDSTRING() 2892 2893 * Makefile.in (BMAKE_VERSION): bump to 20040508 2894 * Merge with NetBSD make, pick up: 2895 o posix fixes 2896 - remove '-e' from compat mode 2897 - add support for '+' command-line prefix. 2898 o fix for handling '--' on command-line. 2899 o fix include in lst.lib/lstInt.h to simplify '-I's 2900 o we also picked up replacement of MAKE_BOOTSTRAP 2901 with !MAKE_NATIVE which is a noop, but possibly confusing. 2902 29032004-04-14 Simon J. Gerraty <sjg@void.crufty.net> 2904 2905 * Makefile.in (BMAKE_VERSION): bump to 20040414 2906 * Merge with NetBSD make, pick up: 2907 o allow quoted strings on lhs of conditionals 2908 o issue warning when extra .else is seen 2909 o print line numer when errors encountered during parsing from 2910 string. 2911 29122004-02-20 Simon J. Gerraty <sjg@void.crufty.net> 2913 2914 * Makefile.in (BMAKE_VERSION): bump to 20040220 2915 * Merge with NetBSD make, pick up: 2916 o fix for old :M parsing bug. 2917 o re-jigged unit-tests 2918 29192004-02-15 Simon J. Gerraty <sjg@void.crufty.net> 2920 2921 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,} 2922 so that './bmake -f Makefile test' works. 2923 29242004-02-14 Simon J. Gerraty <sjg@void.crufty.net> 2925 2926 * Makefile.in: (BMAKE_VERSION): bump to 20040214 2927 * Merge with NetBSD make, pick up: 2928 o search upwards for *.mk 2929 o fix for double free of var substitution buffers 2930 o use of getopt replaced with custom code, since the usage 2931 (re-scanning) isn't posix compatible. 2932 29332004-02-12 Simon J. Gerraty <sjg@void.crufty.net> 2934 2935 * arch.c: don't include ranlib.h on ELF systems 2936 (thanks to Chuck Cranor <chuck@ece.cmu.edu>). 2937 29382004-01-18 Simon J. Gerraty <sjg@void.crufty.net> 2939 2940 * Makefile.in (BMAKE_VERSION): bump to 20040118 2941 2942 * boot-strap (while): export vars we assign to on cmdline 2943 * unit-test/Makefile.in: ternary is .PHONY 2944 29452004-01-08 Simon J. Gerraty <sjg@void.crufty.net> 2946 2947 * Makefile.in (BMAKE_VERSION): bump version to 20040108 2948 * Merge with NetBSD make, pick up: 2949 o fix for ternary modifier 2950 29512004-01-06 Simon J. Gerraty <sjg@void.crufty.net> 2952 2953 * Makefile.in (BMAKE_VERSION): bump version to 20040105 2954 * Merge with NetBSD make, pick up: 2955 o fix for cond.c to handle compound expressions better 2956 o variable expansion within sysV style replacements 2957 29582003-12-22 Simon J. Gerraty <sjg@void.crufty.net> 2959 2960 * Make portable snprintf safer - output to /dev/null first to 2961 check space needed. 2962 2963 * Makefile.in (BMAKE_VERSION): bump version to 20031222 2964 * Merge with NetBSD make, pick up: 2965 o -dg3 to show input graph when things go wrong. 2966 o explicitly look for makefiles in objdir if not found in curdir so 2967 that errors in .depend etc will be reported accurarely. 2968 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?' 2969 instead as it more accurately reflects the expected behavior and 2970 is more consistently implemented. 2971 o avoid use of asprintf. 2972 29732003-09-28 Simon J. Gerraty <sjg@void.crufty.net> 2974 2975 * util.c: Add asprintf and vasprintf. 2976 2977 * Makefile.in (BMAKE_VERSION): bump version to 20030928 2978 * Merge with NetBSD make, pick up: 2979 :[] modifier - allows picking words from a variable. 2980 :tW modifier - allows treating value as one big word. 2981 W flag for :C and :S - allows treating value as one big word. 2982 29832003-09-12 Simon J. Gerraty <sjg@void.crufty.net> 2984 2985 * Merge with NetBSD make 2986 pick up -de flag to enable printing failed command. 2987 don't skip 1st two dir entries (normally . and ..) since 2988 coda does not have them. 2989 29902003-09-09 Simon J. Gerraty <sjg@void.crufty.net> 2991 2992 * Makefile.in (BMAKE_VERSION): bump version to 20030909 2993 * Merge with NetBSD make, pick up: 2994 - changes for -V '${VAR}' to print fully expanded value 2995 cf. -V VAR 2996 - CompatRunCommand now prints the command that failed. 2997 - several files got updated 3 clause Berkeley license. 2998 29992003-08-02 Simon J. Gerraty <sjg@void.crufty.net> 3000 3001 * boot-strap: Allow setting configure args on command line. 3002 30032003-07-31 Simon J. Gerraty <sjg@void.crufty.net> 3004 3005 * configure.in: add --with-defshell to allow sh or ksh 3006 to be selected as default shell. 3007 3008 * Makefile.in: bump version to 20030731 3009 3010 * Merge with NetBSD make 3011 Pick up .SHELL spec for ksh and associate man page changes. 3012 Also compat mode now uses the same shell specs. 3013 30142003-07-29 Simon J. Gerraty <sjg@void.crufty.net> 3015 3016 * var.c (Var_Parse): ensure delim is initialized. 3017 3018 * unit-tests/Makefile.in: use single quotes to avoid problems from 3019 some shells. 3020 3021 * makefile.boot.in: 3022 Run the unit-tests as part of the bootstrap procedure. 3023 30242003-07-28 Simon J. Gerraty <sjg@void.crufty.net> 3025 3026 * unit-tests/Makefile.in: always force complaints from 3027 ${TEST_MAKE} to be from 'make'. 3028 3029 * configure.in: add check for 'diff -u' 3030 also fix some old autoconf'isms 3031 3032 * Makefile.in (BMAKE_VERSION): bump version to 20030728. 3033 if using GCC add -Wno-cast-qual to CFLAGS for var.o 3034 3035 * Merge with NetBSD make 3036 Pick up fix for :ts parsing error in some cases. 3037 Pick unit-tests. 3038 30392003-07-23 Simon J. Gerraty <sjg@void.crufty.net> 3040 3041 * Makefile.in (BMAKE_VERSION): bump version to 20030723. 3042 3043 * var.c (Var_Parse): fix bug in :ts modifier, after const 3044 correctness fixes, must pass nstr to VarModify. 3045 30462003-07-14 Simon J. Gerraty <sjg@void.crufty.net> 3047 3048 * Makefile.in: BMAKE_VERSION switch to a date based version. 3049 We'll generally use the date of last import from NetBSD. 3050 3051 * Merge with NetBSD make 3052 Pick up fixes for const-correctness, now passes WARNS=3 on 3053 NetBSD. 3054 Pick up :ts modifier, allows controlling the separator used 3055 between words in variable expansion. 3056 30572003-07-11 Simon J. Gerraty <sjg@void.crufty.net> 3058 3059 * FILES: include boot-strap and os.sh 3060 3061 * Makefile.in: only set WARNS if we are NetBSD, the effect on 3062 FreeBSD is known to be bad. 3063 3064 * makefile.boot.in (bootstrap): make this the default target. 3065 3066 * Makefile.in: bump version to 3.1.19 3067 3068 * machine.sh: avoid A-Z with tr as it is bound to lose. 3069 30702003-07-10 Simon J. Gerraty <sjg@void.crufty.net> 3071 3072 * Merge with NetBSD make 3073 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo 3074 Plus some doc fixes. 3075 30762003-04-27 Simon J. Gerraty <sjg@void.crufty.net> 3077 3078 * Merge with NetBSD make 3079 Pick up fix for PR/1523 - don't count a library as built, if there 3080 is no way to build it 3081 3082 * Bump version to 3.1.18 3083 30842003-03-23 Simon J. Gerraty <sjg@void.crufty.net> 3085 3086 * Merge with NetBSD make 3087 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT 3088 appears in src list. 3089 30902003-03-21 Simon J. Gerraty <sjg@void.crufty.net> 3091 3092 * Merge with NetBSD make (mmm 10th anniversary!) 3093 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828) 3094 pick up -X which tells us to not export VAR=val via setenv if 3095 we are already doing so via MAKEFLAGS. This saves valuable env 3096 space on systems like Darwin. 3097 set MAKE_VERSION to 3.1.17 3098 3099 * parse.c: pix up fix for suffix rules 3100 31012003-03-06 Simon J. Gerraty <sjg@void.crufty.net> 3102 3103 * Merge with NetBSD make. 3104 pick up fix for propagating -B via MAKEFLAGS. 3105 set MAKE_VERSION to 3.1.16 3106 3107 * Apply some patches from pkgsrc-bootstrap/bmake 3108 Originally by Grant Beattie <grant@netbsd.org> 3109 I may have missed some - since they are based on bmake-3.1.12 3110 31112002-12-03 Simon J. Gerraty <sjg@void.crufty.net> 3112 3113 * makefile.boot.in (bmake): update install targets for those that 3114 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid 3115 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>. 3116 3117 * bmake.cat1: update the pre-formatted man page! 3118 31192002-11-30 Simon J. Gerraty <sjg@void.crufty.net> 3120 3121 * Merge with NetBSD make. 3122 pick up fix for premature free of pointer used in call 3123 to Dir_InitCur(). 3124 set MAKE_VERSION to 3.1.15 3125 31262002-11-26 Simon J. Gerraty <sjg@void.crufty.net> 3127 3128 * configure.in: determine suitable value for MKSRC. 3129 override using --with-mksrc=PATH. 3130 3131 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems. 3132 configs(8) will use 'sun4' as an alias for 'sparc'. 3133 31342002-11-25 Simon J. Gerraty <sjg@void.crufty.net> 3135 3136 * Merge with NetBSD make. 3137 pick up ${.PATH} 3138 pick up fix for finding ../cat.c via .PATH when .CURDIR=.. 3139 set MAKE_VERSION to 3.1.14 3140 add configure checks for killpg and sys/socket.h 3141 31422002-09-16 Simon J. Gerraty <sjg@void.crufty.net> 3143 3144 * tag bmake-3-1-13 3145 3146 * makefile.boot.in (bmake): use install-mk 3147 Also setup ./mk before trying to invoke bmake.boot incase we 3148 needed install-mk to create a sys.mk for us. 3149 3150 * configure.in: If we need to add -I${srcdir}/missing, make it an 3151 absolute path so that it works for lst.lib too. 3152 3153 * make.h: always include sys/cdefs.h since we provide one if the 3154 host does not. 3155 3156 * Makefile.in (install-mk): 3157 use MKSRC/install-mk which will do the right thing. 3158 use uname -p for ARCH if possible. 3159 since install-mk will setup links bsd.prog.mk -> prog.mk if 3160 needed, just .include bsd.prog.mk 3161 3162 * Merge with NetBSD make (NetBSD-1.6) 3163 Code is ansi-C only now. 3164 Bug in handling of dotLast is fixed. 3165 Can now assign .OBJDIR and make will reset its notions of life. 3166 New modifiers :tu :tl for toUpper and toLower. 3167 3168Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3169 3170 * Merge with NetBSD make 3171 pick up fix for .END failure in compat mode. 3172 pick up fix for extra va_end() in ParseVErrorInternal. 3173 3174Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net> 3175 3176 * configure.in: for systems that have sys/cdefs.h check if it is 3177 compatible. If not, include the one under missing, but tell it to 3178 include the native one too - necessary on Linux. 3179 3180 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use 3181 include_next (for gcc) to get the native sys/cdefs.h 3182 3183Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3184 3185 * job.c (JobFinish): Fix an earlier merge bug that resulted in 3186 leaking descriptors when using -jN. 3187 3188 * job.c (JobPrintCommand): See if "curdir" exists before 3189 attempting to chdir(). Doing the chdir directly in make (when in 3190 compat mode) fails silently, so let the -jN version do the same. 3191 This can happen when building kernels in an object tree and 3192 playing clever games to reset .CURDIR. 3193 3194 * Merged with NetBSD make 3195 pick up .USEBEFORE 3196 3197Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3198 3199 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work. 3200 3201Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3202 3203 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell 3204 us not to export the iterator variable when using VAR_CMD context. 3205 3206Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3207 3208 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here, 3209 its the wrong "fix". 3210 3211Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3212 3213 * Redesigned export of VAR_CMD's via MAKEFLAGS. 3214 We now simply append the variable names to .MAKEOVERRIDES, and 3215 handle duplicate suppression and quoting in ExportMAKEFLAGS using: 3216 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@} 3217 Apart from fixing quoting bugs in previous version, this allows us 3218 to export vars to the environment by simply doing: 3219 .MAKEOVERRIDES+= PATH 3220 Merged again with NetBSD make, but the above is the only change. 3221 3222 * configure.in: added 3223 --disable-pwd-override disable $PWD overriding getcwd() 3224 --disable-check-make-chdir disable make trying to guess 3225 when it should automatically cd ${.CURDIR} 3226 3227 * Merge with NetBSD make, changes include: 3228 parse.c (ParseDoDependency): Spot that the syntax error is 3229 caused by an unresolved cvs/rcs conflict and say so. 3230 var.c: most of Var* functions now take a ctxt as 1st arg. 3231 now does variable substituion on rhs of sysv style modifiers. 3232 3233 * var.c (Var_Set): exporting of command line variables (VAR_CMD) 3234 is now done here. We append the name='value' to .MAKEOVERRIDES 3235 rather than directly into MAKEFLAGS as this allows a Makefile to 3236 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a 3237 very similar mechanism. Note that in adding name='value' to 3238 .MAKEOVERRIDES we do the moral equivalent of: 3239 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val' 3240 3241Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3242 3243 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H 3244 3245 * Merged with NetBSD make 3246 make -dx can now be used to run commands via sh -x 3247 better error messages on exec failures. 3248 3249Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3250 3251 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that 3252 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION, 3253 MACHINE etc otherwise they propagate from the previous bmake. 3254 3255 * configure.in (machine): allow --with-machine=generic to make 3256 configure use machine.sh to set MACHINE. 3257 3258 * job.c (JobInterrupt): convert to using WAIT_T and friends. 3259 3260 * Makefile.in: mention in bmake.1 that we use autoconf. 3261 3262 * make.1: mention MAKE_PRINT_VAR_ON_ERROR. 3263 3264Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3265 3266 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend" 3267 as that rather defeats the usefulness of ${MAKEFILE}. 3268 3269 * main.c (MainParseArgs): append command line variable assignments 3270 to MAKEFLAGS so that they get propagated to child make's. 3271 Apparently this is required POSIX behaviour? Its useful anyway. 3272 3273Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3274 3275 * compat.c (CompatRunCommand): don't use perror() since stdio may 3276 cause problems in child of vfork(). 3277 3278 * compat.c, main.c: Call PrintOnError() when we are going to bail. 3279 This routine prints out the .curdir where we stopped and will also 3280 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}. 3281 3282 * main.c: add ${.newline} to hold a "\n" - sometimes handy in 3283 :@ expansion. 3284 3285 * var.c: VarLoopExpand: ignore addSpace if a \n is present. 3286 3287 * Added RCSid's for the files we've touched. 3288 3289Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3290 3291 * configure.in: Thanks to some clues from mdb@juniper.net, 3292 added autoconf magic to control setting of MACHINE, MACHINE_ARCH 3293 as well as what ends up in _PATH_DEFSYSPATH. We now have: 3294 3295 --with-machine=MACHINE explicitly set MACHINE 3296 --with-force-machine=MACHINE set FORCE_MACHINE 3297 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH 3298 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH 3299 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH 3300 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX 3301 3302 If _PATH_OBJDIRPREFIX is set to "no" we won't define it. 3303 3304 * makefile: added a pathetically simple makefile to drive 3305 bootstrapping. Running configure by hand is more useful. 3306 3307 * Makefile.in: added MAKE_VERSION, and reworked things to be less 3308 dependent on NetBSD bsd.*.mk 3309 3310 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining 3311 _PATH_OBJDIRPREFIX for those that don't want a default. 3312 construct _PATH_DEFSYSPATH from the info we get from configure. 3313 3314 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION} 3315 if MAKE_VERSION is defined. 3316 3317 * compat.c: when we bail, print out the .CURDIR we were in. 3318 3319Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3320 3321 * Merged with NetBSD make 3322 3323 * var.c: fixed a bug in the handling of the modifier :P 3324 if the node as found but the path was null, we segfault trying to 3325 duplicate it. 3326 3327Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au> 3328 3329 * Merged with NetBSD make 3330 3331 * make.c: Make_OODate's test for a library out of date was using 3332 cmtime where it should have used mtime (my bug). 3333 3334 * compat.c: Use perror() to tell us what really went wrong when we 3335 cannot exec a command. 3336 3337Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3338 3339 * Merged with NetBSD make 3340 3341Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3342 3343 * Merged with NetBSD make 3344 3345Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3346 3347 * Merged with NetBSD make 3348 3349Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3350 3351 * Merged with NetBSD make 3352 3353Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3354 3355 * util.c: don't provide signal() since we use sigcompat.c 3356 3357 * Makefile.in: added a build target. 3358 3359 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :! 3360 These allow some quite clever magic. 3361 3362 * main.c (main): added support for getenv(MAKESYSPATH). 3363 3364Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3365 3366 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set. 3367 This avoids objdir having a different value depending on how a 3368 directory was reached (via command line, or subdir.mk). 3369 3370 * If FORCE_MACHINE is defined, ignore getenv("MACHINE"). 3371 3372Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3373 3374 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if 3375 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not. 3376 I've been testing this in NetBSD's make for some weeks. 3377 3378 * Turn Makefile into Makefile.in and make it useful. 3379 3380Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au> 3381 3382 * Imported NetBSD's -current make(1) and resolve conflicts. 3383 3384 * Applied autoconf patches from bmake v2 3385 3386 * Imported clean code base from NetBSD-1.0 3387