1 2021-01-10 Simon J Gerraty <sjg@beast.crufty.net>
3 * VERSION (_MAKE_VERSION): 20210110
4 Merge with NetBSD make, pick up
6 o consistently use boolean expressions in conditions
8 2021-01-08 Simon J Gerraty <sjg@beast.crufty.net>
10 * VERSION (_MAKE_VERSION): 20210108
11 Merge with NetBSD make, pick up
12 o job.c: back to polling token pipe if we want a token
13 o main.c: always print 'stopped in' on first call
14 The execption is if we bail because of an abort token
15 in which case just exit 6.
17 2021-01-01 Simon J Gerraty <sjg@beast.crufty.net>
19 * VERSION (_MAKE_VERSION): 20210101
20 Merge with NetBSD make, pick up
22 o rename CmdOpts.lint to strict
23 o exit 2 on technical errors
24 o replace pointers in controlling conditions with booleans
25 o replace global preserveUndefined with VARE_KEEP_UNDEF
26 o compat.c: re-export variables from the actual make process
27 if using vfork this is the effect anyway
28 o cond.c: clean up VarParseResult constants
29 o for.c: fix undefined behavior in SubstVarLong
30 make control flow in SubstVarLong of .for loops more obvious
31 clean up SubstVarShort in .for loops
32 extract ForSubstBody from ForReadMore
34 simplify termination condition for .for loop
35 add error handling for .for loop items
36 job.c: re-export variables from the actual make process
37 parse.c: remove mmap for loading files, only allow files < 1 GiB
38 fix edge case in := with undefined in variable name
39 skip variable expansion in ParseDependencyTargetWord
40 var.c: split ExportVar into separate functions
41 clean up code in extracted ExportVar functions
42 remove dead code from ApplyModifiersIndirect
43 split Var_Subst into easily understandable functions
44 clean up VarParseResult constants
46 2020-12-25 Simon J Gerraty <sjg@beast.crufty.net>
48 * main.c: use .MAKE.DEPENDFILE as set by makefiles
50 2020-12-22 Simon J Gerraty <sjg@beast.crufty.net>
52 * VERSION (_MAKE_VERSION): 20201222
53 Merge with NetBSD make, pick up
54 o make DEBUG macro return boolean
55 o parse.c: fix assertion failure for files without trailing newline
56 o var.c: allow .undef to undefine multiple variables at once
57 remove excess newline from parse errors
59 2020-12-21 Simon J Gerraty <sjg@beast.crufty.net>
61 * VERSION (_MAKE_VERSION): 20201221
62 Merge with NetBSD make, pick up
63 o some unit-test updates
65 2020-12-20 Simon J Gerraty <sjg@beast.crufty.net>
67 * VERSION (_MAKE_VERSION): 20201220
68 Merge with NetBSD make, pick up
70 o return FStr from Var_Parse and Var_Value
71 o spell nonexistent consistently
72 o add str_basename to reduce duplicate code
73 o compat.c: fix .ERROR_TARGET in compat -k mode
74 extract InitSignals from Compat_Run
75 extract UseShell from Compat_RunCommand
76 o cond.c: error out if an '.endif' or '.else' contain extraneous text
77 o for.c: rename ForIterate to ForReadMore
78 o hash.c: clean up hash function for HashTable
79 o lst.c: rename Vector.priv_cap to cap
80 o main.c: remove constant parameter from MakeMode
81 o make.c: use symbolic time for 0 in Make_Recheck
82 extract MakeChildren from MakeStartJobs
83 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
84 fix error message for .info/.warning/.error without argument
85 extract Var_Undef from ParseDirective
86 extract ParseSkippedBranches, ParseForLoop from ParseReadLine
87 rename mode constants for ParseGetLine to be more expressive
88 reduce debugging details in Parse_SetInput
89 fix line numbers in .for loops
90 split ParseGetLine into separate functions
91 fix garbled output for failed shell command
92 var.c: remove redundant assignment in ApplyModifier_SysV
93 error out on unknown variable modifiers at parse time
94 remove wrong error message for indirect modifier in lint mode
95 extract ApplySingleModifier from ApplyModifiers
96 use FStr for memory management in Var_SetWithFlags
97 extract SetVar from Var_SetWithFlags
99 extract string functions from ApplyModifier_To
100 error out if .undef has not exactly 1 argument
101 extract Var_DeleteVar from Var_Delete
102 extract Var_Undef from ParseDirective
103 clean up memory management for expanding variable expressions
105 2020-12-12 Simon J Gerraty <sjg@beast.crufty.net>
109 * lst.c: avoid anonymous union
111 * VERSION (_MAKE_VERSION): 20201212
112 Merge with NetBSD make, pick up
114 o inline Targ_Ignore and Targ_Silent
115 o split JobFlags into separate fields
116 o remove const from function parameters (left overs from refactoring)
117 o eliminate boolean argument of Var_Export
118 o make API of Buf_Init simpler
119 o rename ParseRunOptions to ParseCommandFlags
120 o replace *line with line[0]
121 o compat.c: fix wrong exit status for multiple failed main targets
122 refactor Compat_Run to show the error condition more clearly
123 don't make .END if the main targets already failed (-k mode)
124 fix exit status in -k mode if a dependency fails
125 o for.c: clean up Buf_AddEscaped in .for loops
126 o job.c: extract ShellWriter_ErrOn from JobPrintCommand
127 make Job_Touch simpler
129 rename Shell.exitFlag to errFlag
130 move Job.xtraced to ShellWriter
131 make printing of shell commands independent from the job
132 rename shell flags in struct Shell
133 extract JobOpenTmpFile from JobStart
134 rename RunFlags to CommandFlags
135 split various Job.* into separate fields
136 rename commandShell to shell
137 extract InitShellNameAndPath from Shell_Init
138 replace signal handling macros with local functions
139 replace macro MESSAGE with local function
140 parse.c: error out on null bytes in makefiles
141 error out on misspelled directives
142 rename IFile.nextbuf to readMore
143 fix undefined behavior in ParseEOF
144 str.c: remove redundant call to strlen in Str_Words
145 var.c: error out on misspelled .unexport-env
146 error out on misspelled .export directives
147 extract ExportVars from Var_Export
148 extract ExportVarsExpand from Var_Export
149 eliminate boolean argument of Var_Export
150 fix undefined behavior when exporting ${:U }
151 rename Var_ExportVars to Var_ReexportVars
152 rename Var_Export1 to ExportVar
154 2020-12-06 Simon J Gerraty <sjg@beast.crufty.net>
156 * VERSION (_MAKE_VERSION): 20201206
157 Merge with NetBSD make, pick up
159 o inline macros for debug logging
160 o use consistent variable names for list nodes
161 o define constants for enum zero-values
162 o dir.c: use fixed format for debug output of the directory cache
164 o lst.c: inline Lst_Enqueue, Vector_Done
165 o meta.c: remove unused parameter from meta_needed
166 o parse.c: rename parse functions
167 o suff.c: extract ExpandChildrenRegular from ExpandChildren
168 o targ.c: don't concatenate identifiers in Targ_PrintType
169 o var.c: remove comment decoration
170 extract UnexportVars from Var_UnExport
171 extract GetVarnamesToUnexport from Var_UnExport
172 extract UnexportEnv from Var_UnExport
173 extract UnexportVar from Var_UnExport
174 move CleanEnv to UnexportVars
175 replace pointer comparisons with enum
176 add FStr to var.c to make memory handling simpler
177 use FStr in Var_UnExport
178 move type definitions in var.c to the top
179 extract FreeEnvVar from Var_Parse
180 extract ShuffleStrings from ApplyModifier_Order
182 2020-11-30 Simon J Gerraty <sjg@beast.crufty.net>
184 * VERSION (_MAKE_VERSION): 20201130
185 Merge with NetBSD make, pick up
186 o add unit tests for META MODE
187 o reduce memory allocation for dirSearchPath, GNode.parents,
188 GNode.children, OpenDirs
189 o reduce pointer indirection for GNode.cohorts and
190 GNode.implicitParents
191 o remove pointer indirection from GNode.commands
192 o inline Lst_ForEachUntil in meta mode
193 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
194 clean up memory management for CachedDirs
195 fix the reference count of dotLast going negative
196 add debug logging for OpenDirs_Done
197 extract CacheNewDir from Dir_AddDir
198 add debug logging for reference counting of CachedDir
199 rename some Dir functions to SearchPath
200 o job.c: rename some global variables
201 o main.c: reduce memory allocation in ReadBuiltinRules
202 reduce memory allocation in CmdOpts.create, CmdOpts.variables,
204 Add .MAKE.UID and .MAKE.GID
205 o make.c: reduce memory allocation for/in toBeMade,
206 Make_ProcessWait, Make_ExpandUse
207 o meta.c: reduce memory allocation in meta_oodate
208 o parse.c: reduce memory allocations for parsing dependencies and
210 o suff.c: reduce memory allocation in suffix handling
212 2020-11-24 Simon J Gerraty <sjg@beast.crufty.net>
214 * VERSION (_MAKE_VERSION): 20201124
215 Merge with NetBSD make, pick up
216 o .MAKE.{UID,GID} represent uid and gid running make.
217 o fix error handling for .BEGIN and .END dependency in -k mode
218 o fix missing "Stop." after failed .END node in -k mode
219 o use properly typed comparisons in boolean contexts
220 o replace a few HashTable_CreateEntry with HashTable_Set
222 o compat.c: split Compat_Make into smaller functions
223 extract DebugFailedTarget from Compat_RunCommand
224 o dir.c: refactor Dir_UpdateMTime
225 migrate CachedDir.files from HashTable to HashSet
226 o make.c: add high-level API for GNode.made
228 2020-11-22 Simon J Gerraty <sjg@beast.crufty.net>
230 * VERSION (_MAKE_VERSION): 20201122
231 Merge with NetBSD make, pick up
232 o rename GNode.context to vars
233 o suff.c: cleanup and refactor
234 rename some functions and vars to better reflect usage
235 add high-level API for CandidateSearcher
236 o targ.c: add more debug logging for suffix handling
238 o add debug logging for setting and resetting the main target
240 2020-11-17 Simon J Gerraty <sjg@beast.crufty.net>
242 * VERSION (_MAKE_VERSION): 20201117
243 Merge with NetBSD make, pick up
244 o fix some unit-tests when .SHELL is dash
245 o rename Targ_NewGN to GNode_New
246 o make some GNode functions const
247 o main.c: call Targ_Init before Var_Init
248 cleanup PrintOnError, getTmpdir and ParseBoolean
249 o var.c: fix error message of failed :!cmd! modifier
251 2020-11-14 Simon J Gerraty <sjg@beast.crufty.net>
253 * VERSION (_MAKE_VERSION): 20201114
254 Merge with NetBSD make, pick up
255 o replace a few HashTable_CreateEntry with HashTable_Set
256 o clean up cached_stats
257 o rename DEFAULT to defaultNode
258 o remove redundant struct make_stat
259 o cond.c: in lint mode, check for ".else <cond>"
260 use bitset for IfState
261 replace large switch with if-else in Cond_EvalLine
262 o job.c: clean up JobExec, JobStart, JobDoOutput
263 use stderr for error message about failed touch
265 replace macro DBPRINTF with JobPrintln
266 rename JobState to JobStatus
267 main.c: switch cache for realpath from GNode to HashTable
269 clean up InitDefSysIncPath
270 use progname instead of hard-coded 'make' in warning
271 rename Main_SetVarObjdir to SetVarObjdir
272 make.1: document the -S option
273 make.c: fix debug output for GNode details
274 use symbolic names in debug output of GNodes
276 2020-11-12 Simon J Gerraty <sjg@beast.crufty.net>
278 * configure.in: fix --with-force-machine-arch
280 * VERSION (_MAKE_VERSION): 20201112
281 Merge with NetBSD make, pick up
282 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
283 checks in InitObjdir. Explicit .OBJDIR target always allows
285 o cond.c: clean up Cond_EvalLine
287 2020-11-11 Simon J Gerraty <sjg@beast.crufty.net>
289 * VERSION (_MAKE_VERSION): 20201111
290 Merge with NetBSD make, pick up
293 remove redundant parentheses from sizeof operator
294 replace character literal 0 with '\0'.
295 replace pointer literal 0 with NULL.
296 remove redundant parentheses.
297 replace (expr & mask) == 0 with !(expr & mask).
298 use strict typing in conditions of the form !var
299 o rename Make_OODate to GNode_IsOODate
300 o rename Make_TimeStamp to GNode_UpdateYoungestChild
301 o rename Var_Set_with_flags to Var_SetWithFlags
302 o rename dieQuietly to shouldDieQuietly
303 o buf.c: make API of Buf_Init simpler
304 o compat.c: clean up Compat_Make, Compat_RunCommand,
305 CompatDeleteTarget and CompatInterrupt
306 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
307 clean up CondParser_Comparison
308 o main.c: rename getBoolean and s2Boolean
309 rename MAKEFILE_PREFERENCE for consistency
310 o parse.c: replace strstr in ParseMaybeSubMake with optimized code
311 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
312 replace emptyString with allocated empty string
313 error out on unclosed expressions after the colon
315 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
317 * VERSION (_MAKE_VERSION): 20201101
318 Merge with NetBSD make, pick up
319 o negate NoExecute to GNode_ShouldExecute
320 o job.c: rename JobMatchShell to FindShellByName
321 extract EscapeShellDblQuot from JobPrintCommand
322 extract ParseRunOptions from JobPrintCommand
323 o var.c: extract ApplyModifiersIndirect from ApplyModifiers
324 treat malformed :range, :ts and :[...] as errors
325 add tests for the variable modifiers :[words] and :range
327 2020-10-31 Simon J Gerraty <sjg@beast.crufty.net>
329 * VERSION (_MAKE_VERSION): 20201031
330 Merge with NetBSD make, pick up
331 o format #include directives consistently
332 o do not look up local variables like .TARGET anywhere else
333 o main.c: Main_SetObjdir is first called for curdir which may be
335 reduce the scope where recursive expressions are detected
336 remove redundant :tl from getBoolean
338 o meta.c: simplify memory allocation in meta_create and meta_oodate
339 o parse.c: extract loadedfile_mmap from loadfile
340 o trace.c: document possible undefined behavior with .CURDIR
341 o var.c: make parsing of the :gmtime and :localtime modifiers stricter
342 rename ismeta to is_shell_metachar
343 remove debug logging for the :Q variable modifier
344 rename VarIsDynamic to VarnameIsDynamic
345 use consistent parameter order in varname parsing functions
346 extract ParseVarnameLong from Var_Parse
347 extract ParseVarnameShort from Var_Parse
348 fix type of ParseModifierPart parameter delim
349 extract IsEscapedModifierPart from ParseModifierPart
351 add test for combining the :@ and :? variable modifiers
353 2020-10-30 Simon J Gerraty <sjg@beast.crufty.net>
355 * VERSION (_MAKE_VERSION): 20201030
356 Merge with NetBSD make, pick up
357 o change char * to void * in Var_Value
358 o make iterating over HashTable simpler
359 o rename VAR_CMD to VAR_CMDLINE
360 o cond.c: clean up is_separator
361 fix parse error in string literal in conditional
362 o main.c: do not use objdir that is not writable
363 in lint mode, exit with error status on errors
364 o parse.c: clean up StrContainsWord
365 fix out-of-bounds pointer in ParseTrackInput
366 o var.c: rename Str_SYSVMatch and its parameters
367 remove unsatisfiable conditions in Var_Set_with_flags
368 document where the variable name is expanded
369 fix documentation for VARP_SUB_ONE
370 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
371 document VAR_READONLY
372 prevent appending to read-only variables
373 extract MayExport from Var_Export1
374 remove redundant evaluations in VarFind
375 replace VarFindFlags with a simple Boolean
376 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
378 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
380 * VERSION (_MAKE_VERSION): 20201028
381 Merge with NetBSD make, pick up
382 o rename defIncPath to defSysIncPath
383 o initialize all CmdOpts fields
384 o lst.c: inline Vector_Get
385 o main.c: refactor main extract
386 InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
387 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
388 InitDefIncPath,CmdOpts_Init,UnlimitFiles
389 o parse.c: merge curFile into includes
390 rename predecessor to order_pred
391 sort ParseSpecial alphabetically
392 remove unused, undocumented .NOEXPORT
393 rename ParseSpecial enum values consistently
394 rename some fields of struct IFile
396 2020-10-26 Simon J Gerraty <sjg@beast.crufty.net>
398 * VERSION (_MAKE_VERSION): 20201026
399 Merge with NetBSD make, pick up
400 o group the command line options and arguments into a struct
401 o rename GNode.cmgn to youngestChild
402 o rename hash functions to identify the type name
403 o negate OP_NOP and rename it to GNode_IsTarget
404 o add GNode_Path to access the path of a GNode
405 o remove macros MIN and MAX
406 o remove unused Lst_Find and Lst_FindFrom
407 o arch.c: and make Arch_FindLib simpler
409 make Arch_ParseArchive simpler
410 o cond.c: inline CondFindStrMatch into FuncMake
411 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
412 omit trailing space in debug output for expanding file patterns
413 refactor DirMatchFiles
414 document that the SearchPath of Dir_FindFile may be NULL
415 remove UNCONST from Dir_Expand
417 o for.c: clean up code for handling .for loops
418 o hash.c: print hash in debug log with fixed width
419 clean up hash table functions
420 reduce amount of string hashing
421 o job.c: refactor JobDeleteTarget
422 use proper enum constants for aborting
423 convert result of JobStart from macros to enum
424 convert abort reason macros to enum
425 rework Job_CheckCommands to reduce indentation
427 add field names in declaration of DEFSHELL_CUSTOM
428 convert JobState and JobFlags to enum types
429 move handling of the "..." command to JobPrintCommands
432 remove Lst_Open, Lst_Next, Lst_Close
433 remove code for circular lists from Lst_Next
434 o main.c: do not attempt to read .MAKE.DEPENFILE if set to
435 /dev/null or anything starting with "no"
436 convert macros for debug flags into enum
437 o make.c: inline Lst_Copy in Make_ExpandUse
438 o meta.c: inline Lst_Find in meta_oodate
439 make Lst_RemoveIf simpler in meta_oodate
440 o parse.c: convert error level for Parse_Error to an enum
441 o suff.c: properly terminate debug output with newline
442 add more details to DEBUG_SRC log
443 replace Dir_CopyDir with Dir_CopyDirSearchPath
444 don't modify GNode name while rebuilding the suffix graph
445 o var.c: reduce duplicate code in VarFind
447 2020-10-22 Simon J Gerraty <sjg@beast.crufty.net>
449 * VERSION (_MAKE_VERSION): 20201022
450 Merge with NetBSD make, pick up
451 o more refactoring and simplification to reduce code size
452 o var.c: extract CanonicalVarname from VarFind
453 o make.c: extract UpdateImplicitParentsVars from Make_Update
454 o main.c: extract PrintVar from doPrintVars
455 extract HandlePWD from main
456 o lst.c: inline simple Lst getters
457 remove unused Lst_ForEach
458 o job.c: move struct Shell from job.h to job.c
461 2020-10-19 Simon J Gerraty <sjg@beast.crufty.net>
463 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
465 2020-10-18 Simon J Gerraty <sjg@beast.crufty.net>
467 * VERSION (_MAKE_VERSION): 20201018
468 Merge with NetBSD make, pick up
470 o rename some Hash_* apis to Hash*
471 o replace execError with execDie
472 o rename Lst_Init to Lst_New
473 o add tags to enum types
474 o rename Stack to Vector
475 o parse.c: more refactoring
476 o unit-tests: make some tests use line buffered stdout
477 o unit-tests/Makefile: in meta mode do not make all tests depend on
478 Makefile, it isn't necessary.
480 2020-10-10 Simon J Gerraty <sjg@beast.crufty.net>
482 * main.c: check for CTL_HW being defined.
483 * unit-tests/Makefile: ensure export tests output are POSIX compliant
484 disable opt-debug-jobs test until it works on ubuntu
486 * VERSION (_MAKE_VERSION): 20201010
487 Merge with NetBSD make, pick up
488 o dir.c: remove pathname limit for Dir_FindHereOrAbove
489 o hash.c: replace strcpy with memcpy in Hash_CreateEntry
490 o main.c: extract init_machine and init_machine_arch from main
491 allow to disable debug logging options
492 o parse.c: enable format string truncation warnings
493 extract parsing of sources from ParseDoDependency
494 split ParseDoSrc into smaller functions
495 hide implementation details from Parse_DoVar
496 clean up parsing of variable assignments
497 split Parse_DoVar into manageable pieces
498 don't modify the given line during Parse_DoVar
499 fix out-of-bounds memory access in Parse_DoVar
500 fix parsing of the :sh assignment modifier
501 o var.c: rework memory allocation for the name of variables
502 extract ApplyModifier_Literal into separate function
503 in lint mode, reject modifiers without delimiter
504 do not export variable names starting with '-'
505 o fix double-free bug in -DCLEANUP mode
506 o more cleanup to enable higher warnings level
509 2020-10-02 Simon J Gerraty <sjg@beast.crufty.net>
511 * VERSION (_MAKE_VERSION): 20201002
512 Merge with NetBSD make, pick up
513 o dir.c: use hash table for looking up open directories by name
514 o main.c: clean up option handling
515 o parse.c: add missing const for Parse_AddIncludeDir
516 o var.c: ApplyModifier_To, update pp in each branch
517 o remove redundant function prototypes
520 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
522 * VERSION (_MAKE_VERSION): 20201001
523 Merge with NetBSD make, pick up
524 o compat.c: comment about "..."
526 2020-09-30 Simon J Gerraty <sjg@beast.crufty.net>
528 * VERSION (_MAKE_VERSION): 20200930
529 Merge with NetBSD make, pick up
530 o job.c: split Job.jobPipe into 2 separate fields
531 replace Lst_Open with direct iteration
532 o lst.c: remove redundant assertions
533 o targ.c: replace Lst_Open with direct iteration
534 o var.c: fix bug in evaluation of indirect variable modifiers
535 extract ApplyModifier_Quote into separate function
536 o make debug logging simpler
538 2020-09-27 Simon J Gerraty <sjg@beast.crufty.net>
540 * VERSION (_MAKE_VERSION): 20200927
541 Merge with NetBSD make, pick up
542 o parse.c: ensure parse errors result in 'stopped in' message.
543 o compat.c: make parameter of Compat_RunCommand const
544 o main.c: extract InitVarTarget from main
545 o parse.c: rename ParseFinishLine to FinishDependencyGroup
546 refactor ParseDoDependency
547 o var.c: Var_Subst no longer returns string result
548 rename Var_ParsePP back to Var_Parse
549 in lint mode, improve error handling for undefined variables
550 extract ParseVarname from Var_Parse
551 o rename Lst_ForEach to Lst_ForEachUntil
552 o inline Lst_ForEachUntil in several cases
553 o clean up API for finding and creating GNodes
554 o fix assertion failure in -j mode with .END node
555 o inline and remove LstNode_Prev and LstNode_Next
556 o use fine-grained type names for lists and their nodes
559 2020-09-11 Simon J Gerraty <sjg@beast.crufty.net>
561 * VERSION (_MAKE_VERSION): 20200911
562 Merge with NetBSD make, pick up
563 o cond.c: split EvalComparison into smaller functions
564 reorder parameters of condition parsing functions
565 reduce code size in CondParser_Eval
566 rename CondGetString to CondParser_String
567 add CondLexer_SkipWhitespace
568 group the condition parsing state into a struct
569 in CondGetString, replace repeated Buf_Add with Buf_AddStr
570 o migrate Var_Parse to Var_ParsePP
571 o add wrappers around ctype.h functions
572 o lst.c: use a stack instead of a list for the nested include path
575 2020-09-04 Simon J Gerraty <sjg@beast.crufty.net>
577 * make-bootstrap.sh.in: adjust object list
579 2020-09-02 Simon J Gerraty <sjg@beast.crufty.net>
581 * VERSION (_MAKE_VERSION): 20200902
582 Merge with NetBSD make, pick up
583 o use make_stat to ensure no confusion over valid fields
584 returned by cached_stat
585 o var.c: make VarQuote const-correct
586 o add unit tests for .for
588 2020-09-01 Simon J Gerraty <sjg@beast.crufty.net>
590 * VERSION (_MAKE_VERSION): 20200901
591 Merge with NetBSD make, pick up
592 o rename Hash_Table fields
593 o make data types in Dir_HasWildcards more precise
595 2020-08-31 Simon J Gerraty <sjg@beast.crufty.net>
597 * VERSION (_MAKE_VERSION): 20200831
598 Merge with NetBSD make, pick up
599 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
600 o lst.c: Lst_Open renable assert that list isn't open
601 o unit test for .TARGET dependent flags
602 o var.c: fix aliasing bug in VarUniq
603 o more unit tests for :u
605 2020-08-30 Simon J Gerraty <sjg@beast.crufty.net>
607 * VERSION (_MAKE_VERSION): 20200830
608 Merge with NetBSD make, pick up
609 o allow for strict type checking for Boolean
610 o Var_Parse never returns NULL
611 o Var_Subst never returns NULL
612 o Lst_Find now takes boolean match function
613 o rename Lst_Memeber to Lst_FindDatum
614 o rename LstNode functions to match their type
615 o rename GNode.iParents to implicitParents
616 o fix assertion failure for .SUFFIXES in archives
617 o compat.c: clean up documentation for CompatInterrupt and Compat_Run
618 remove unreachable code from CompatRunCommand
619 o main.c: simplify getBoolean
620 o stc.c: replace brk_string with simpler Str_Words
621 o suff.c: add debug macros
623 2020-08-28 Simon J Gerraty <sjg@beast.crufty.net>
625 * VERSION (_MAKE_VERSION): 20200828
626 Merge with NetBSD make, pick up
627 o lst.c: inline LstIsValid and LstNodeIsValid
628 o remove trailing S from Lst function names after migration complete
629 o more comment cleanup/clarification
630 o suff.c: clean up suffix handling
633 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
635 * VERSION (_MAKE_VERSION): 20200826
636 Merge with NetBSD make, pick up
637 o enum.c: distinguish between bitsets containing flags and
639 o var.c: fix error message for ::!= modifier with shell error
640 o fix bugs in -DCLEANUP mode
642 2020-08-24 Simon J Gerraty <sjg@beast.crufty.net>
644 * VERSION (_MAKE_VERSION): 20200824
645 Merge with NetBSD make, pick up
646 o in debug mode, print GNode details in symbols
648 2020-08-23 Simon J Gerraty <sjg@beast.crufty.net>
650 * VERSION (_MAKE_VERSION): 20200823
651 Merge with NetBSD make, pick up
652 o lst.c: more asserts,
653 make args to Lst_Find match others.
654 o var.c: pass flags to VarAdd
656 o str.c: brk_string return size_t for nwords
659 2020-08-22 Simon J Gerraty <sjg@beast.crufty.net>
661 * VERSION (_MAKE_VERSION):
662 Merge with NetBSD make, pick up
663 o var.c: support for read-only variables eg .SHELL
664 being the shell used to run scripts.
665 o lst.c: more simplification
666 o more documentation and style cleanup
668 o ensure unit-test/Makefile is run by TEST_MAKE
669 o reduce duplication of header inclusion
671 2020-08-21 Simon J Gerraty <sjg@beast.crufty.net>
673 * VERSION (_MAKE_VERSION): 20200821
674 Merge with NetBSD make, pick up
675 o lst.c: revert invalid assertion - but document it
676 o dir.c: split Dir_Init into two functions
678 2020-08-20 Simon J Gerraty <sjg@beast.crufty.net>
680 * lst.c: needs inttypes.h on Linux
682 * VERSION (_MAKE_VERSION): 20200820
683 Merge with NetBSD make, pick up
684 o make.1: clarify some passages
685 o var.c: more cleanup, clarify comments
686 o make_malloc.c: remove unreachable code
687 o cond.c: make CondGetString easier to debug
688 o simplify list usage
691 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
693 * VERSION (_MAKE_VERSION): 20200816
694 Merge with NetBSD make, pick up
695 o refactor unit-tests to be more fine grained
696 not all tests moved yet
698 2020-08-14 Simon J Gerraty <sjg@beast.crufty.net>
700 * VERSION (_MAKE_VERSION): 20200814
701 Merge with NetBSD make, pick up
702 o more str_concat variants
703 o more enums for flags
704 o var.c: cleanup for higher warnings level
706 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
708 * VERSION (_MAKE_VERSION): 20200810
709 Merge with NetBSD make, pick up
711 o general comment and style cleanup
713 2020-08-08 Simon J Gerraty <sjg@beast.crufty.net>
715 * VERSION (_MAKE_VERSION): 20200808
716 Merge with NetBSD make, pick up
717 o enum.[ch]: streamline, enums for use in flags and debug output
719 o var.c: reduce duplicate code for modifiers
720 debug logging for Var_Parse
721 more detailed debug output
724 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
726 * unit-tests/Makefile: -r for recursive and include Makefile.inc
727 so I can run tests in meta mode
728 supress extra noise if in meta mode
730 * VERSION (_MAKE_VERSION): 20200806
731 Merge with NetBSD make, pick up
732 o parse.c: remove VARE_WANTRES for LINT
733 we just want to check parsing (for now).
735 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
737 * VERSION (_MAKE_VERSION): 20200805
738 Merge with NetBSD make, pick up
739 o make.1: Rework the description of dependence operators
741 2020-08-03 Simon J Gerraty <sjg@beast.crufty.net>
743 * VERSION (_MAKE_VERSION): 20200803
744 Merge with NetBSD make, pick up
745 o revert some C99 usage, for max portability
748 2020-08-02 Simon J Gerraty <sjg@beast.crufty.net>
750 * VERSION (_MAKE_VERSION): 20200802
751 Merge with NetBSD make, pick up
754 2020-08-01 Simon J Gerraty <sjg@beast.crufty.net>
756 * Remove NetBSD specific plumbing from unit-tests/Makefile
758 * VERSION (_MAKE_VERSION): 20200801
759 Merge with NetBSD make, pick up
760 o make Var_Value return const
761 o size_t for buf sizes
762 o optimize some buffer operations - avoid strlen
764 2020-07-31 Simon J Gerraty <sjg@beast.crufty.net>
766 * VERSION (_MAKE_VERSION): 20200731
767 Merge with NetBSD make, pick up
768 o var.c: fix undefinded behavior for incomplete :t modifier
769 fixes unit-test/moderrs on Ubuntu
770 o parse.c: When parsing variable assignments other than :=
771 if DEBUG(LINT) test substition of value, so we get a file and
772 line number in the resulting error.
773 o dir.c: fix parsing of nested braces in dependency lines
776 2020-07-30 Simon J Gerraty <sjg@beast.crufty.net>
778 * VERSION (_MAKE_VERSION): 20200730
779 Merge with NetBSD make, pick up
780 o var.c: minor cleanup
781 o unit-tests: more tests to improve code coverage
783 2020-07-28 Simon J Gerraty <sjg@beast.crufty.net>
785 * VERSION (_MAKE_VERSION): 20200728
786 Merge with NetBSD make, pick up
787 o var.c: more optimizations
789 2020-07-26 Simon J Gerraty <sjg@beast.crufty.net>
791 * VERSION (_MAKE_VERSION): 20200726
792 Merge with NetBSD make, pick up
793 o collapse lsd.lib into lst.c - reduce code size and allow inlining
794 o lots of function comment updates
795 o var.c: more optimizations
796 o make return of Var_Parse const
798 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
800 * VERSION (_MAKE_VERSION): 20200720
801 Merge with NetBSD make, pick up
802 o DEBUG_HASH report stats at end and tone down the noise
803 o var.c: each flag type gets its own prefix.
804 move SysV string matching to var.c
805 make ampersand in ${VAR:from=to&} an ordinary character
806 cleanup and simplify implementation of modifiers
807 o make.1: move documentation for assignment modifiers
809 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
811 * VERSION (_MAKE_VERSION): 20200718
812 Merge with NetBSD make, pick up
813 o DEBUG_HASH to see how well the hash tables are working
815 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
817 * bsd.after-import.mk: make sure we update unit-tests/Makefile
819 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
821 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
823 * VERSION (_MAKE_VERSION): 20200710
824 Merge with NetBSD make, pick up
825 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
826 o meta.c: target flagged .META is out-of-date if meta file missing
828 2020-07-09 Simon J Gerraty <sjg@beast.crufty.net>
830 * VERSION (_MAKE_VERSION): 20200709
831 Merge with NetBSD make, pick up
832 o cond.c: fix for compare_expression when doEval=0
833 o unit-tests/Makefile: rework
834 o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
836 2020-07-04 Simon J Gerraty <sjg@beast.crufty.net>
838 * VERSION (_MAKE_VERSION): 20200704
839 Merge with NetBSD make, pick up
840 (most of this by rillig@)
841 o lots of style and white-space cleanup
842 o lots more unit tests for variable modifiers
843 o simplified description of some functions
844 o str.c: refactor Str_Match
845 o var.c: debugging output for :@
846 constify VarModify parameter
847 fix :hash modifier on 16-bit platforms
848 remove unnecessary forward declarations
849 refactor ApplyModifier_SysV to have less indentation
850 simplify code for :E and :R
851 clean up code for :H and :T
852 refactor ApplyModifiers
854 * var.c: we need stdint.h on some platforms to get uint32_t
855 * unit-test/Makefile: we need to supress the specific error
856 for RE substitution error in modmisc, since it varies accross
859 2020-07-02 Simon J Gerraty <sjg@beast.crufty.net>
861 * VERSION (_MAKE_VERSION): 20200702
862 Merge with NetBSD make, pick up
863 o var.c: more improvements to avoiding unnecessary evaluation
865 o remove flags arg to Var_Set which outside of var.c is always 0
867 2020-07-01 Simon J Gerraty <sjg@beast.crufty.net>
869 * VERSION (_MAKE_VERSION): 20200701
870 Merge with NetBSD make, pick up
871 o var.c: with change to cond.c; ensure that nested variables
872 within a variable name are expanded.
873 o unit-tests/varmisc.mk: test for nested varname
875 2020-06-29 Simon J Gerraty <sjg@beast.crufty.net>
877 * VERSION (_MAKE_VERSION): 20200629
878 Merge with NetBSD make, pick up
879 o cond.c: do not eval unnecessary terms of conditionals.
881 2020-06-25 Simon J Gerraty <sjg@beast.crufty.net>
883 * VERSION (_MAKE_VERSION): 20200625
884 Merge with NetBSD make, pick up
885 o meta.c: report error if lseek in filemon_read fails
887 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
889 * VERSION (_MAKE_VERSION): 20200622
890 Merge with NetBSD make, pick up
891 o dieQuietly: ignore OP_SUBMAKE as too aggressive
893 2020-06-19 Simon J Gerraty <sjg@beast.crufty.net>
895 * VERSION (_MAKE_VERSION): 20200619
896 Merge with NetBSD make, pick up
897 o str.c: performance improvement for Str_Match for multiple '*'
898 o dieQuietly: supress the failure output from make
899 when failing node is a sub-make or a sibling failed.
900 This cuts down greatly on unhelpful noise at the end of
901 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no
903 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
905 * FILES: add LICENSE to appease some packagers.
906 This is an attempt to fairly represent the license on almost
907 200 files, which are almost all BSD-3-Clause
908 The few exceptions being more liberal.
910 * VERSION (_MAKE_VERSION): 20200610
911 Merge with NetBSD make, pick up
914 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
916 * VERSION (_MAKE_VERSION): 20200606
917 Merge with NetBSD make, pick up
920 * Makefile: fix depends for main.o which broke MAKE_VERSION
922 2020-06-05 Simon J Gerraty <sjg@beast.crufty.net>
924 * VERSION (_MAKE_VERSION): 20200605
925 Merge with NetBSD make, pick up
926 o dir.c: cached_stats - don't confuse stat and lstat results.
927 o var.c: add :Or for reverse sort.
929 2020-05-24 Simon J Gerraty <sjg@beast.crufty.net>
931 * configure.in: add AC_PROG_CC_C99 for mipspro compiler
932 also if --with-filemon= specifies path to filemon.h
934 * dirname.c: remove include of namespace.h
936 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
938 * VERSION (_MAKE_VERSION): 20200517
939 Merge with NetBSD make, pick up
940 o modified dollar tests to avoid shell dependencies
941 o new tests for .INCLUDEFROM
943 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
945 * unit-tests/dollar.mk: tweak '1 dollar literal' test
946 to not depend so much on shell behavior
948 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
950 * VERSION (_MAKE_VERSION): 20200510
951 Merge with NetBSD make, pick up
952 o unit test for dollar handling
954 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
956 * VERSION (_MAKE_VERSION): 20200506
957 Merge with NetBSD make, pick up
958 o str.c: empty string does not match % pattern
959 plus unit-test changes
961 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
963 * VERSION (_MAKE_VERSION): 20200504
964 May the 4th be with you
965 Merge with NetBSD make, pick up
966 o var.c: import handling of old sysV style modifier using '%'
967 o str.c: refactor brk_string
968 o unit-tests: add test case for lazy conditions
970 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
972 * VERSION (_MAKE_VERSION): 20200418
974 * configure.in: use_makefile=no for cygwin et al.
975 case insensitive filesystems just don't work if both
976 makefile and Makefile exist.
977 NOTE: bmake does not support cygwin and likely never will,
978 but if brave souls want to try it - help them out.
980 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
982 * VERSION (_MAKE_VERSION): 20200402
983 Merge with NetBSD make, pick up
984 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
985 a blank command is perfectly valid.
987 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
989 * VERSION (_MAKE_VERSION): 20200330
990 Merge with NetBSD make, pick up
991 o make.h: extern debug_file
993 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
995 * VERSION (_MAKE_VERSION): 20200318
996 Merge with NetBSD make, pick up
997 o meta.c: meta_oodate, check for corrupted meta file
998 earlier and more often.
1000 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
1002 * VERSION (_MAKE_VERSION): 20200220
1004 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
1006 * boot-strap: unset MAKEFLAGS
1008 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
1010 * VERSION (_MAKE_VERSION): 20200212
1011 * meta.c: meta_compat_parent check for USE_FILEMON
1012 patch from Soeren Tempel
1014 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
1017 Merge with NetBSD make, pick up
1018 o meta.c: fix compat mode, need to call meta_job_output()
1019 o job.c: extra fds for meta mode not needed if using filemon_dev
1021 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
1024 Merge with NetBSD make, pick up
1025 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1028 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
1031 Merge with NetBSD make, pick up
1032 o filemon/filemon_{dev,ktrace}.c: allow selection of
1033 filemon implementation. filemon_dev.c uses the kernel module
1034 while filemon_ktrace.c leverages the fktrace api available in
1035 NetBSD. filemon_ktrace.c can hopefully form the basis for
1036 adding support for other tracing mechanisms such as strace on
1038 o meta.c: when target is out-of-date per normal make rules
1039 record value of .OODATE in meta file.
1041 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
1044 Merge with NetBSD make, pick up
1045 o parse.c: don't pass NULL to realpath(3)
1046 some versions cannot handle it.
1048 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
1051 Merge with NetBSD make, pick up
1052 o parse.c: ParseDoDependency: free paths rather than assert
1054 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
1058 * configure.in: add --without-makefile to avoid generating
1059 makefile and make-bootstrap.sh
1061 * include Makefile.inc if it exists
1063 * Use Makefile and Makefile.config.in in unit-tests
1064 so we can use just: make obj && make && make test
1065 when bmake is already available.
1066 We add --without-makefile to CONFIGURE_ARGS in this case.
1068 * tweak bsd.after-import.mk (captures Makefile.config etc
1069 after import to FreeBSD for example) to cope with all the above.
1071 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
1074 Merge with NetBSD make, pick up
1075 o parse.c: ParseVErrorInternal use .PARSEDIR
1076 and apply if relative, and then use .PARSEFILE
1077 for consistent result.
1079 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
1082 Merge with NetBSD make, pick up
1083 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1085 o var.c: avoid SEGFAULT in .unexport-env
1086 when MAKELEVEL is not set
1088 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
1091 Merge with NetBSD make, pick up
1092 o fix for unit-tests/varquote.mk on Debian
1094 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
1097 Merge with NetBSD make, pick up
1099 o dir.c: cleanup caching of stats
1101 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
1103 * Makefile.config.in: use += where it makes sense.
1105 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1108 Merge with NetBSD make, pick up
1109 o job.c: skip polling job token pipe
1111 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1114 Merge with NetBSD make, pick up
1115 o parse.c: be more cautious about detecting depenency line
1116 rather than sysV style include.
1118 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
1121 Merge with NetBSD make, pick up
1122 o parse.c: avoid calling sysconf for every call to loadfile
1124 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1127 Merge with NetBSD make, pick up
1128 o var.c: Var_Set handle NULL value anytime.
1130 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
1133 Merge with NetBSD make, pick up
1134 o parse.c: do not treat .info as warning with -W
1136 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
1139 Merge with NetBSD make, pick up
1140 o var.c: Var_Append use Var_Set if var not previously set
1141 so that VAR_CMD is handled correctly.
1142 Add a suitable unit-test.
1144 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1146 * VERSION (_MAKE_VERSION): 20171126
1148 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1149 since AC_TRY_COMPILE puts input inside main()
1150 which upsets modern compilers.
1152 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
1155 Merge with NetBSD make, pick up
1156 o var.c: do not append to variable set on command line
1157 add unit-test to catch this.
1159 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1162 Merge with NetBSD make, pick up
1163 o main.c: ignore empty MAKEOBJDIR
1165 * Makefile.config.in:
1166 make @prefix@ @machine*@ and @default_sys_path@ defaults.
1168 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
1172 * unit-tests/dotwait.mk: redirect stderr through pipe for more
1173 consistent result on some platforms.
1175 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
1177 * machine.sh: entry for AIX
1179 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1181 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1182 to a file that can be included by configure as well as make.
1183 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1185 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
1187 * Makefile (_MAKE_VERSION): 20170810
1188 Merge with NetBSD make, pick up
1189 o meta.c: if target is in subdir we only need subdir name in
1192 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
1194 * Makefile (_MAKE_VERSION): 20170720
1195 Merge with NetBSD make, pick up
1196 o compat.c: pass SIGINT etc onto child and wait for it to exit
1197 before we self-terminate.
1199 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1201 * Makefile (_MAKE_VERSION): 20170711
1202 forgot to update after merge on 20170708 ;-)
1203 o main.c: refactor to reduce size of main function.
1204 add -v option to always fully expand values.
1205 o meta.c: ensure command output in meta file has ending newline
1206 even when filemon not being used.
1207 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1208 pathname via ':L' since any ':' in pathname breaks that.
1209 Instead set a '${.p.}' to pathname in the target context and
1212 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
1214 * Makefile (_MAKE_VERSION): 20170510
1215 Merge with NetBSD make, pick up
1216 o main.c: Main_SetObjdir: ensure buf2 is in scope
1218 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
1220 * Makefile (_MAKE_VERSION): 20170505
1223 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1225 * parse.c: not everyone has stdint.h
1227 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1229 * Makefile (_MAKE_VERSION): 20170501
1232 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1234 * Makefile (_MAKE_VERSION): 20170421
1235 Merge with NetBSD make, pick up
1236 o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1238 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1240 * Makefile (_MAKE_VERSION): 20170420
1241 Merge with NetBSD make, pick up
1242 o main.c: only use -C arg "as is" if it contains no
1245 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1247 * Makefile (_MAKE_VERSION): 20170418
1248 Merge with NetBSD make, pick up
1249 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1251 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
1253 * Makefile (_MAKE_VERSION): 20170417
1254 Merge with NetBSD make, pick up
1255 o fixes a number of coverity complaints
1256 - check return value of fseek, fcntl
1257 - plug memory leak in Dir_FindFile, Var_LoopExpand,
1258 JobPrintCommand, ParseTraditionalInclude
1259 - use bmake_malloc() where NULL is not tollerated
1260 - use MAKE_ATTR_UNUSED rather that kludges like
1261 return(unused ? 0 : 0)
1262 - use purge_cached_realpaths() rather than abuse cached_realpath()
1264 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1266 * Makefile (_MAKE_VERSION): 20170413
1267 Merge with NetBSD make, pick up
1268 o main.c: when setting .OBJDIR ignore '$' in paths.
1270 * job.c: use MALLOC_OPTIONS to set malloc_options.
1272 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1274 * Makefile (_MAKE_VERSION): 20170411
1275 Merge with NetBSD make, pick up
1276 o str.c: Str_Match: allow [^a-z] to behave as expected.
1278 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1280 * Makefile (_MAKE_VERSION): 20170326
1281 Merge with NetBSD make, pick up
1282 o main.c: purge relative paths from realpath cache when .OBJDIR
1285 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1287 * Makefile (_MAKE_VERSION): 20170311
1288 Merge with NetBSD make, pick up
1289 o main.c: only use -C arg "as is" if it starts with '/'.
1291 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1293 * Makefile (_MAKE_VERSION): 20170301
1294 Merge with NetBSD make, pick up
1295 o main.c: use -C arg "as is" rather than getcwd()
1296 if they identify the same directory.
1297 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1299 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
1301 * Makefile (_MAKE_VERSION): 20170201
1302 Merge with NetBSD make, pick up
1303 o var.c: allow :_=var and avoid use of special context.
1305 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
1307 * Makefile (_MAKE_VERSION): 20170130
1308 Merge with NetBSD make, pick up
1309 o var.c: add :range and :_
1310 o main.c: partially initialize Dir_* before MainParseArgs()
1312 If -V, skip Main_ExportMAKEFLAGS()
1314 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
1316 * Makefile (_MAKE_VERSION): 20170114
1317 Merge with NetBSD make, pick up
1318 o var.c: allow specifying the utc value used by :{gm,local}time
1320 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1322 * Makefile (_MAKE_VERSION): 20161212
1323 Merge with NetBSD make, pick up
1324 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1326 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
1328 * Makefile (_MAKE_VERSION): 20161209
1329 Merge with NetBSD make, pick up
1330 o main.c: cleanup setting of .OBJDIR
1331 o parse.c: avoid coredump from (var)=val
1333 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1335 * Makefile (_MAKE_VERSION): 20161126
1336 Merge with NetBSD make, pick up
1337 o make.c: Make_OODate: report src node name if path not set
1339 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1341 * Makefile (_MAKE_VERSION): 20160926
1342 Merge with NetBSD make, pick up
1343 o support for .DELETE_ON_ERROR: (remove targets that fail)
1345 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1347 * Makefile MAN: tweak .Dt to match ${PROG}
1349 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
1351 * Makefile (_MAKE_VERSION): 20160818
1352 its a neater number; pick up whitespace fixes to man page.
1354 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
1356 * Makefile (_MAKE_VERSION): 20160817
1357 Merge with NetBSD make, pick up
1358 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1359 so we can call it before adding entries to missingFiles.
1360 Thus we do not track files we have been told to ignore.
1362 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
1364 * Makefile (_MAKE_VERSION): 20160815
1365 Merge with NetBSD make, pick up
1366 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1367 pathnames, and skip if the expansion is empty.
1368 Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1370 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1372 * Makefile (_MAKE_VERSION): 20160812
1373 Merge with NetBSD make, pick up
1374 o meta.c: remove all missingFiles entries that match a deleted
1376 o main.c: set .ERROR_CMD if possible.
1378 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1380 * Makefile (_MAKE_VERSION): 20160606
1381 Merge with NetBSD make, pick up
1382 o dir.c: extend mtimes cache to others via cached_stat()
1384 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1386 * Makefile (_MAKE_VERSION): 20160604
1387 Merge with NetBSD make, pick up
1388 o meta.c: missing filemon data is only relevant if we read a
1390 Also do not return oodate for a missing metafile if gn->path
1393 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1395 * Makefile (_MAKE_VERSION): 20160602
1396 Merge with NetBSD make, pick up
1397 o cached_realpath(): avoid hitting filesystem more than necessary.
1398 o meta.c: refactor need_meta decision, add knobs for
1399 missing meta file and filemon data wrt out-of-datedness.
1401 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1403 * Makefile (_MAKE_VERSION): 20160528
1405 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1407 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1409 * Makefile (_MAKE_VERSION): 20160512
1410 Merge with NetBSD make, pick up
1411 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1412 this is useful for gcov builds.
1413 o propagate errors from filemon(4).
1415 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
1417 * Makefile (_MAKE_VERSION): 20160509
1418 Merge with NetBSD make, pick up
1419 o remove use of non-standard types u_int etc.
1420 o meta.c: apply realpath() before matching against metaIgnorePaths
1422 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
1424 * Makefile (_MAKE_VERSION): 20160404
1425 Merge with NetBSD make, pick up
1426 o allow makefile to set .MAKE.JOBS
1428 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
1430 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1432 * Makefile (_MAKE_VERSION): 20160315
1433 Merge with NetBSD make, pick up
1434 o fix handling of archive members
1436 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1438 * Makefile (_MAKE_VERSION): rename variable to avoid interference
1439 with checks for ${MAKE_VERSION}
1441 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1443 * Makefile (MAKE_VERSION): 20160310
1444 Merge with NetBSD make, pick up
1445 o meta.c: treat missing Read file same as Write, incase we Delete it.
1447 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1449 * Makefile (MAKE_VERSION): 20160307
1450 Merge with NetBSD make, pick up
1451 o var.c: fix :ts\nnn to be octal by default.
1452 o meta.c: meta_finish() to cleanup memory.
1454 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1456 * Makefile (MAKE_VERSION): 20160226
1457 Merge with NetBSD make, pick up
1458 o meta.c: allow meta file for makeDepend if makefiles want it.
1460 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
1462 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
1463 for backwards compatability.
1465 * Makefile (MAKE_VERSION): 20160220
1466 Merge with NetBSD make, pick up
1467 o var.c: add knob to control handling of '$$' in :=
1469 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1471 * Makefile (MAKE_VERSION): 20160218
1472 Merge with NetBSD make, pick up
1473 o var.c: add .export-literal allows us to fix sys.clean-env.mk
1474 post the changes to Var_Subst.
1475 Var_Subst now takes flags, and does not consume '$$' in :=
1477 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
1479 * Makefile (MAKE_VERSION): 20160217
1480 Merge with NetBSD make, pick up
1481 o var.c: preserve '$$' in :=
1482 o parse.c: add .dinclude for handling included
1483 makefile like .depend
1485 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
1487 * Makefile (MAKE_VERSION): 20151220
1488 Merge with NetBSD make, pick up
1489 o suff.c: re-initialize suffNull when clearing suffixes.
1491 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
1493 * Makefile (MAKE_VERSION): 20151201
1494 Merge with NetBSD make, pick up
1495 o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1496 o meta.c: meta_oodate: use lstat(2) for checking link target
1497 in case it is a symlink.
1498 o var.c: avoid calling brk_string and Var_Export1 with empty
1501 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1503 * Makefile (MAKE_VERSION): 20151126
1504 Merge with NetBSD make, pick up
1505 o parse.c: ParseTrackInput don't access beyond
1508 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
1510 * Makefile (MAKE_VERSION): 20151022
1512 * Add support for BSD/OS which lacks inttypes.h
1513 and really needs sys/param.h for sys/sysctl.h
1514 also 'type' is not a shell builtin.
1516 * var.c: eliminate uint32_t and need for inttypes.h
1518 * main.c: PrintOnError flush stdout before run .ERROR
1520 * parse.c: cope with _SC_PAGESIZE not being defined.
1523 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
1525 * Makefile (MAKE_VERSION): 20151020
1526 Merge with NetBSD make, pick up
1527 o var.c: fix uninitialized var
1529 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1531 * var.c: the conditional expressions used with ':?' can be
1532 expensive, if already discarding do not evaluate or expand
1535 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1537 * Makefile (MAKE_VERSION): 20151010
1538 Merge with NetBSD make, pick up
1539 o Add Boolean wantit flag to Var_Subst and Var_Parse
1540 when FALSE we know we are discarding the result and can
1541 skip operations like Cmd_Exec.
1543 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
1545 * Makefile (MAKE_VERSION): 20151009
1546 Merge with NetBSD make, pick up
1547 o var.c: don't check for NULL before free()
1548 o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1550 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
1552 * Makefile (MAKE_VERSION): 20150910
1553 Merge with NetBSD make, pick up
1554 o main.c: with -w print Enter/Leaving messages for objdir too
1556 o centralize shell metachar handling
1558 * FILES: add metachar.[ch]
1560 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1562 * Makefile (MAKE_VERSION): 20150606
1563 Merge with NetBSD make, pick up
1564 o make.1: document .OBJDIR target
1566 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1568 * Makefile (MAKE_VERSION): 20150505
1569 Merge with NetBSD make, pick up
1570 o cond.c: be strict about lhs of comparison when evaluating .if
1571 but less so when called from variable expansion.
1572 o unit-tests/cond2.mk: test various error conditions
1574 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1576 * machine.sh (MACHINE): Add Bitrig
1577 patch from joerg@netbsd.org
1579 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1581 * Makefile (MAKE_VERSION): 20150418
1582 Merge with NetBSD make, pick up
1583 o job.c: use memmove() rather than memcpy()
1585 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
1588 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1590 * Makefile (MAKE_VERSION): 20150411
1591 bump version - only mk/ changes.
1593 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
1595 * Makefile (MAKE_VERSION): 20150410
1596 Merge with NetBSD make, pick up
1597 o document different handling of '-' in jobs mode vs compat
1598 o fix jobs mode so that '-' only applies to whole job
1599 when shell lacks hasErrCtl
1600 o meta.c: use separate vars to track lcwd and latestdir (read)
1603 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
1605 * Makefile (MAKE_VERSION): 20150401
1606 Merge with NetBSD make, pick up
1607 o meta.c: close meta file in child
1609 * Makefile: use BINDIR.bmake if set.
1610 Same for MANDIR and SHAREDIR
1611 Handy for testing release candidates
1612 in various environments.
1614 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1616 * move initialization of savederr to block where it is used
1617 to avoid spurious warning from gcc5
1619 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1621 * Makefile (MAKE_VERSION): 20141111
1622 just a cooler number
1624 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1626 * Makefile (MAKE_VERSION): 20141105
1627 Merge with NetBSD make, pick up
1628 o revert major overhaul of suffix handling
1629 and POSIX compliance - too much breakage
1630 and impossible to make backwards compatible.
1631 o we still have the new unit test structure which is ok.
1632 o meta.c ensure "-- filemon" is at start of line.
1634 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
1636 * configure.in: test that result of getconf PATH_MAX is numeric
1637 and discard if not. Apparently needed for Hurd.
1639 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1641 * Makefile (MAKE_VERSION): 20140830
1642 Merge with NetBSD make, pick up
1643 o major overhaul of suffix handling
1644 o improved POSIX compliance
1645 o overhauled unit-tests
1647 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1649 * Makefile (MAKE_VERSION): 20140620
1650 Merge with NetBSD make, pick up
1651 o var.c return varNoError rather than var_Error for ::= modifiers.
1653 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
1655 * Makefile (MAKE_VERSION): 20140522
1656 Merge with NetBSD make, pick up
1657 o var.c detect some parse errors.
1659 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1661 * Fix spelling errors - patch from Pedro Giffuni
1663 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1665 * Makefile (MAKE_VERSION): 20140214
1666 Merge with NetBSD make, pick up
1668 o use Var_Value to get MAKEOBJDIR[PREFIX]
1669 o reduced realloc'ign in brk_string.
1670 * configure.in: add a check for compiler supporting __func__
1672 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
1674 * boot-strap: ignore mksrc=none
1676 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
1678 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1680 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
1682 * Makefile (MAKE_VERSION): 20140101
1683 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
1684 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
1685 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
1687 * configure.in: Add AC_PREREQ and check for
1688 sysctl; patch from Andrew Shadura andrewsh at debian.org
1690 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
1692 * Makefile (MAKE_VERSION): 20131010
1693 * lose the const from arg to systcl to avoid problems on older BSDs.
1695 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1697 * Makefile (MAKE_VERSION): 20131001
1698 Merge with NetBSD make, pick up
1699 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
1700 hw.machine_arch if necessary.
1701 o meta.c: meta_oodate - need to look at src of Link and target
1703 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
1704 provide __arraycount() if needed.
1706 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
1708 * Makefile (MAKE_VERSION): 20130904
1709 Merge with NetBSD make, pick up
1710 o Add VAR_INTERNAL context, so that internal setting of
1711 MAKEFILE does not override value set by makefiles.
1713 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
1715 * Makefile (MAKE_VERSION): 20130902
1716 Merge with NetBSD make, pick up
1717 o CompatRunCommand: only apply shellErrFlag when errCheck is true
1719 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
1721 * Makefile (MAKE_VERSION): 20130828
1722 Merge with NetBSD make, pick up
1723 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
1724 o Call Job_SetPrefix() from Job_Init() so makefiles have
1725 opportunity to set .MAKE.JOB.PREFIX
1727 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
1729 * Makefile (MAKE_VERSION): 20130730
1730 Merge with NetBSD make, pick up
1731 o Allow suppression of --- job -- tokens by setting
1732 .MAKE.JOB.PREFIX empty.
1734 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
1736 * Makefile (MAKE_VERSION): 20130716
1737 Merge with NetBSD make, pick up
1738 o number of gmake compatibility tweaks
1739 -w for gmake style entering/leaving messages
1740 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
1741 handle MAKEFLAGS containing only letters.
1742 o when overriding a GLOBAL variable on the command line,
1743 delete it from GLOBAL context so -V doesn't show the wrong
1746 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
1748 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
1750 * Makefile (MAKE_VERSION): 20130706
1751 Merge with NetBSD make, pick up
1752 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
1753 true so that CompatRunCommand() can use it, to ensure
1754 consistent behavior with jobs mode.
1755 o use MAKE_LEVEL_ENV to define the variable to propagate
1756 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
1757 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
1760 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1762 * Makefile (MAKE_VERSION): 20130604
1763 Merge with NetBSD make, pick up
1764 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
1765 to avoid leaking descriptors.
1767 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1769 * Makefile (MAKE_VERSION): 20130528
1770 Merge with NetBSD make, pick up
1771 o var.c: cleanup some left-overs in VarHash()
1773 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
1775 * Makefile (MAKE_VERSION): 20130520
1776 generate manifest from component FILES rather than have to
1777 update FILES when mk/FILES changes.
1779 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
1781 * Makefile (MAKE_VERSION): 20130518
1782 Merge with NetBSD make, pick up
1783 o suff.c: don't skip all processsing for .PHONY targets
1784 else wildcard srcs do not get expanded.
1785 o var.c: expand name of variable to delete if necessary.
1787 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1789 * Makefile (MAKE_VERSION): 20130330
1790 Merge with NetBSD make, pick up
1791 o meta.c: refine the handling of .OODATE in commands.
1792 Rather than suppress command comparison for the entire script
1793 as though .NOMETA_CMP had been used, only suppress it for the
1795 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
1796 suppress comparison of a command without otherwise affecting it.
1797 o make.1: document that
1799 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
1801 * Makefile (MAKE_VERSION): 20130321
1802 yes, not quite right but its a cooler number.
1803 Merge with NetBSD make, pick up
1804 o parse.c: fix ParseGmakeExport to be portable
1805 and add a unit-test.
1806 * meta.c: call meta_init() before makefiles are read and if built
1807 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
1808 this let's makefiles test for support.
1809 Call meta_mode_init() to process .MAKE.MODE.
1811 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1813 * Makefile (MAKE_VERSION): 20130305
1814 Merge with NetBSD make, pick up
1815 o run .STALE: target when a dependency from .depend is missing.
1816 o job.c: add Job_RunTarget() for the above and .BEGIN
1818 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1820 * Makefile (MAKE_VERSION): 20130303
1821 Merge with NetBSD make, pick up
1822 o main.c: set .MAKE.OS to utsname.sysname
1823 o job.c: more checks for read and poll errors
1824 o var.c: lose VarChangeCase() saves 4% time
1826 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
1828 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
1829 want to use MAKEOBJDIR
1831 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
1833 * Merge with NetBSD make, pick up
1834 o make.1: more info on how shell commands are handled.
1835 o job.c,main.c: detect write errors to job pipes.
1837 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
1839 * Makefile (MAKE_VERSION): 20130123
1840 Merge with NetBSD make, pick up
1841 o meta.c: if script uses .OODATE and meta_oodate() decides
1842 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
1843 o var.c: in debug output indicate which variabale modifiers
1845 o remove Check_Cwd logic the makefiles have been fixed.
1847 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1849 * makefile.in: add a simple makefile for folk who insist on
1850 ./configure; make; make install
1851 it just runs boot-strap
1852 * include mk/* to accommodate the above
1853 * boot-strap: re-work to accommodate the above
1854 mksrc defaults to $Mydir/mk
1855 allow op={configure,build,install,clean,all}
1856 add options to facilitate install
1857 * Makefile.config.in: just the bits set by configure
1858 * Makefile: bump version to 20121212
1859 abandon Makefile.in (NetBSD Makefile)
1860 leverage mk/* instead
1861 * configure.in: ensure srcdir is absolute
1863 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1865 * Makefile.in (MAKE_VERSION): 20121111
1866 fix generation of bmake.cat1
1868 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
1870 * Makefile.in (MAKE_VERSION): 20121109
1871 Merge with NetBSD make, pick up
1872 o make.c: MakeBuildChild: return 0 so search continues if a
1873 .ORDER dependency is detected.
1874 o unit-tests/order: test the above
1876 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
1878 * Makefile.in (MAKE_VERSION): 20121102
1879 Merge with NetBSD make, pick up
1880 o cond.c: allow cond_state[] to grow.
1881 In meta mode with a very large tree, we can hit the limit
1882 while processing dirdeps.
1884 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
1886 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
1888 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1890 * Makefile.in (MAKE_VERSION): 20121010
1891 o protect syntax that only bmake parses correctly.
1892 o remove auto setting of FORCE_MACHINE, use configure's
1893 --with-force-machine=whatever if that is desired.
1895 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
1897 * Makefile.in: do not lose history from make.1 when generating bmake.1
1899 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
1901 * Makefile.in (MAKE_VERSION): 20121007
1902 Merge with NetBSD make, pick up
1903 o compat.c: ignore empty commands - same as jobs mode.
1904 o make.1: document meta chars that cause use of shell
1906 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
1908 * Makefile.in (MAKE_VERSION): bump version to 20120911
1909 * bsd.after-import.mk: include Makefile.inc early and allow it to
1912 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
1914 * Makefile.in (MAKE_VERSION): bump version to 20120831
1915 Merge with NetBSD make, pick up
1916 o cast sizeof() to int for comparison
1917 o minor make.1 tweak
1919 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1921 * Makefile.in (MAKE_VERSION): bump version to 20120830
1922 Merge with NetBSD make, pick up
1923 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
1924 o debug flag -dV causes -V to show raw value regardless.
1926 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
1928 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
1931 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
1933 * Makefile.in (MAKE_VERSION): bump version to 20120704
1934 Merge with NetBSD make, pick up
1935 o Job_ParseShell should call Shell_Init if it has been
1937 * Makefile.in: set USE_META based on configure result.
1938 also .PARSEDIR is safer indicator of bmake.
1940 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
1942 * Makefile.in: bump version to 20120626
1943 ensure CPPFLAGS is in CFLAGS
1944 * meta.c: avoid nested externs
1945 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
1947 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1949 * Makefile.in (MAKE_VERSION): bump version to 20120620
1950 Merge with NetBSD make, pick up
1951 o make_malloc.c: avoid including make_malloc.h again
1953 * Makefile.in: avoid bmake only syntax or protect with
1954 .if defined(.MAKE.LEVEL)
1955 * bsd.after-import.mk: replace .-include with .sinclude
1956 ensure? SRCTOP gets a value
1957 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
1959 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
1961 * Makefile.in (MAKE_VERSION): bump version to 20120612
1962 Merge with NetBSD make, pick up
1963 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
1964 for greater portability.
1965 o unit-tests/forloop: check that .for works as expected wrt
1966 number of times and with "quoted strings".
1968 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1970 * Makefile.in (MAKE_VERSION): bump version to 20120606
1971 Merge with NetBSD make, pick up
1972 o compat.c: use kill(2) rather than raise(3).
1973 * configure.in: look for sys/dev/filemon
1974 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
1975 and pass BOOTSTRAP_XTRAS to boot-strap.
1977 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1979 * Makefile.in (MAKE_VERSION): bump version to 20120604
1980 Merge with NetBSD make, pick up
1981 o util.c and var.c share same var for tracking if environ
1982 has been reallocated.
1983 o util.c provide getenv with setenv.
1984 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
1985 when the shell actively strips .MAKE.* from the environment.
1986 We still refer to the variable always as .MAKE.LEVEL
1987 * util.c fix bug in findenv() was finding prefix of name.
1988 * compat.c: re-raising SIGINT etc after running .INTERRUPT
1989 results in more reliable termination of all activity on many
1992 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1994 * Makefile.in (MAKE_VERSION): bump version to 20120602
1995 Merge with NetBSD make, pick up
1996 o for.c: handle quoted items in .for list
1998 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
2000 * Makefile.in (MAKE_VERSION): bump version to 20120530
2001 Merge with NetBSD make, pick up
2002 o compat.c: ignore empty command.
2004 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2006 * Makefile.in (MAKE_VERSION): bump version to 20120524
2007 * FILES: add bsd.after-import.mk:
2008 A simple means of integrating bmake into a BSD build system.
2010 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2012 * Makefile.in (MAKE_VERSION): bump version to 20120520
2013 Merge with NetBSD make, pick up
2014 o increased limit for nested conditionals.
2016 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
2018 * Makefile.in (MAKE_VERSION): bump version to 20120518
2019 Merge with NetBSD make, pick up
2020 o use _exit(2) in signal hanlder
2021 o Don't use the [dir] cache when building nodes that might have
2022 changed since the last exec.
2023 o Avoid nested extern declaration warnings.
2025 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
2027 * meta.c (fgetLine): avoid %z - not portable.
2028 * parse.c: Since we moved include of sys/mman.h
2029 and def's of MAP_COPY etc. we got dups from a merge.
2031 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
2033 * Makefile.in (MAKE_VERSION): bump version to 20120420
2034 Merge with NetBSD make, pick up
2035 o restore duplicate supression in .MAKE.MAKEFILES
2036 runtime saving can be significant.
2037 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2038 consumption up to 20%.
2040 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2042 * Makefile.in (MAKE_VERSION): bump version to 20120420
2043 Merge with NetBSD make, pick up
2044 o remove duplicate supression in .MAKE.MAKEFILES
2045 o improved dir cache behavior
2046 o gmake'ish export command
2048 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
2050 * Makefile.in (MAKE_VERSION): bump version to 20120325
2051 Merge with NetBSD make, pick up
2052 o fix parsing of :[#] in conditionals.
2054 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
2056 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2057 since some systems cannot cope with .Nx <version>
2059 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
2061 * Makefile.in (MAKE_VERSION): bump version to 20111111
2062 Merge with NetBSD make, pick up
2063 o debug output for .PARSEDIR and .PARSEFILE
2065 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2067 * Makefile.in (MAKE_VERSION): bump version to 20111010
2069 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
2071 * boot-strap: check for an expected file in the dirs we look for.
2072 * make-bootstrap.sh: pass on LDSTATIC
2074 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
2076 * Makefile.in (MAKE_VERSION): bump version to 20111001
2077 Merge with NetBSD make, pick up
2078 o ensure .PREFIX is set for .PHONY
2079 and .TARGET set for .PHONY run via .END
2080 o __dead used consistently
2082 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
2084 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2086 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
2088 * Makefile.in (MAKE_VERSION): bump version to 20110905
2089 Merge with NetBSD make, pick up
2090 o meta_oodate: ignore makeDependfile
2092 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
2094 * Makefile.in (MAKE_VERSION): bump version to 20110828
2095 Merge with NetBSD make, pick up
2096 o silent=yes in .MAKE.MODE causes meta mode to mark targets
2097 as SILENT if a .meta file is created
2099 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
2101 * Makefile.in (MAKE_VERSION): bump version to 20110818
2102 Merge with NetBSD make, pick up
2103 o in meta mode, if target flagged .META a missing .meta file
2104 means target is out-of-date
2105 o fixes for gcc 4.5 warnings
2106 o simplify job printing code
2108 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
2110 * Makefile.in (MAKE_VERSION): bump version to 20110808
2111 Merge with NetBSD make, pick up
2112 o do not touch OP_SPECIAL targets when doing make -t
2114 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
2116 * Makefile.in (MAKE_VERSION): bump version to 20110622
2117 Merge with NetBSD make, pick up
2118 o meta_oodate detect corrupted .meta file and declare oodate.
2119 * configure.in: add check for setsid
2121 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
2123 * Merge with NetBSD make, pick up
2124 o unit-tests/modts now works on MirBSD
2126 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2128 * Makefile.in (MAKE_VERSION): bump version to 20110606
2129 Merge with NetBSD make, pick up
2130 o ApplyModifiers: when we parse a variable which is not
2131 the entire modifier string, or not followed by ':', do not
2132 consider it as containing modifiers.
2133 o loadfile: ensure newline at end of mapped file.
2135 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2137 * Makefile.in (MAKE_VERSION): bump version to 20110505
2138 Merge with NetBSD make, pick up
2139 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2140 of make's control. In meta mode, any generated file within
2141 said bailiwick, which is found to be missing, causes current
2142 target to be out-of-date.
2144 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
2146 * Makefile.in (MAKE_VERSION): bump version to 20110411
2147 Merge with NetBSD make, pick up
2148 o when long modifiers fail to match, check sysV style.
2151 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
2153 * Makefile.in (MAKE_VERSION): bump version to 20110410
2154 Merge with NetBSD make, pick up
2155 o :hash - cheap 32bit hash of value
2156 o :localtime, :gmtime - use value as format string for strftime.
2158 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
2160 * Makefile.in (MAKE_VERSION): bump version to 20110330
2161 mostly because its a cooler version.
2162 Merge with NetBSD make, pick up
2163 o NetBSD tags for meta.[ch]
2164 o job.c call meta_job_finish() after meta_job_error().
2165 o meta_job_error() should call meta_job_finish() to ensure
2166 .meta file is closed, and safe to copy - if .ERROR target wants.
2167 meta_job_finish() is safe to call repeatedly.
2169 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
2171 * unit-tests/modts: use printf if it is a builtin,
2172 to save us from MirBSD
2174 * Makefile.in (MAKE_VERSION): bump version to 20110329
2175 Merge with NetBSD make, pick up
2176 o fix for use after free() in CondDoExists().
2177 o meta_oodate() report extra commands and return earlier.
2179 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
2181 * Makefile.in (MAKE_VERSION): bump version to 20110327
2182 Merge with NetBSD make, pick up
2183 o meta.c, if .MAKE.MODE contains curdirOk=yes
2184 allow creating .meta files in .CURDIR
2185 * boot-strap (TOOL_DIFF): aparently at least on linux distro
2186 formats the output of 'type' differently - so eat any "()"
2188 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
2190 * Makefile.in (MAKE_VERSION): bump version to 20110306
2191 Merge with NetBSD make, pick up
2192 o meta.c, only do getcwd() once
2194 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
2196 * Makefile.in (MAKE_VERSION): bump version to 20110305
2197 Merge with NetBSD make, pick up
2198 o correct sysV substitution handling of empty lhs and variable
2199 o correct exists() check for dir with trailing /
2200 o correct handling of modifiers for non-existant variables
2201 during evaluation of conditionals.
2202 o ensure MAP_FILE is defined.
2203 o meta.c use curdir[] now exported by main.c
2205 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
2207 * Makefile.in (MAKE_VERSION): bump version to 20110225
2208 Merge with NetBSD make, pick up
2209 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2210 makefiles have been read.
2211 o fix example of :? modifier in man page.
2213 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
2215 * Makefile.in (MAKE_VERSION): bump version to 20110214
2216 Merge with NetBSD make, pick up
2217 o meta.c handle realpath() failing when generating meta file
2220 * sigcompat.c: convert to ansi so we can use higher warning levels.
2223 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
2225 * Makefile.in (MAKE_VERSION): bump version to 20110207
2226 Merge with NetBSD make, pick up
2227 o fix for bug in meta mode.
2229 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
2231 * parse.c: SunOS 5.8 at least does not have MAP_FILE
2233 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
2235 * Makefile.in (MAKE_VERSION): bump version to 20110101
2236 Merge with NetBSD make, pick up
2237 o use mmap(2) if available, for reading makefiles
2239 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
2241 * Makefile.in (MAKE_VERSION): bump version to 20101215
2242 Merge with NetBSD make, pick up
2243 o ensure meta_job_error() does not report a previous .meta file
2246 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
2248 * Makefile.in (MAKE_VERSION): bump version to 20101210
2249 Merge with NetBSD make, pick up
2250 o meta_oodate: track cwd per process, and only consider target
2251 out-of-date if missing file is outside make's CWD.
2252 Ignore files in /tmp/ etc.
2253 o to ensure unit-tests results match, need to control LC_ALL
2255 o fix for parsing bug in var.c
2257 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2259 * Makefile.in (MAKE_VERSION): bump version to 20101126
2260 Merge with NetBSD make, pick up
2261 o if stale dependency is an IMPSRC, search via .PATH
2262 o meta_oodate: if a referenced file is missing, target is
2264 o meta_oodate: if a target uses .OODATE in its commands,
2265 it (.OODATE) needs to be recomputed.
2266 o keep a pointer to youngest child node, rather than just its
2269 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
2271 * Makefile.in (MAKE_VERSION): bump version to 20101101
2273 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
2275 * machine.sh: like os.sh,
2276 allow for uname -p producing useless drivel
2278 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
2280 * boot-strap: document configure knobs for meta and filemon.
2282 * Makefile.in (MAKE_VERSION): bump version to 20100911
2283 Merge with NetBSD make, pick up
2284 o meta.c - meta mode
2286 * make-bootstrap.sh.in: handle meta.c
2287 * configure.in: add knobs for use_meta and filemon_h
2288 also, look for dirname, str[e]sep and strlcpy
2289 * util.c: add simple err[x] and warn[x]
2291 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
2293 * boot-strap (TOOL_DIFF): set this to ensure tests use
2294 the same version of diff that configure tested
2296 * Makefile.in (MAKE_VERSION): bump version to 20100808
2297 Merge with NetBSD make, pick up
2298 o in jobs mode, when we discover we cannot make something,
2299 call PrintOnError before exit.
2301 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
2303 * Makefile.in (MAKE_VERSION): bump version to 20100806
2304 Merge with NetBSD make, pick up
2305 o formatting fixes for ignored errors
2306 o ensure jobs are cleaned up regardless of where wait() was called.
2308 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
2310 * Makefile.in (MAKE_VERSION): bump version to 20100618
2311 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2313 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
2315 * Makefile.in (MAKE_VERSION): bump version to 20100616
2316 Merge with NetBSD make, pick up
2318 o call PrintOnError from JobFinish when we detect an error we
2321 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2323 * Makefile.in (MAKE_VERSION): bump version to 20100606
2324 Merge with NetBSD make, pick up
2327 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
2329 * Makefile.in (MAKE_VERSION): bump version to 20100605
2330 Merge with NetBSD make, pick up
2331 o use bmake_signal() which is a wrapper around sigaction()
2332 in place of signal()
2333 o add .export-env to allow exporting variables to environment
2334 without tracking (so no re-export when the internal value is
2337 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2339 * Makefile.in (MAKE_VERSION): bump version to 20100524
2340 Merge with NetBSD make, pick up
2341 o fix for .info et al being greedy.
2343 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
2345 * Makefile.in (MAKE_VERSION): bump version to 20100520
2346 Merge with NetBSD make, pick up
2347 o back to using realpath on argv[0]
2348 but only if contains '/' and does not start with '/'.
2350 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
2352 * boot-strap: use absolute path for bmake when running tests.
2354 * Makefile.in (MAKE_VERSION): bump version to 20100510
2355 Merge with NetBSD make, pick up
2356 o revert use of realpath on argv[0]
2357 too many corner cases.
2358 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2360 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2362 * Makefile.in (MAKE_VERSION): bump version to 20100505
2363 Merge with NetBSD make, pick up
2364 o fix for missed SIGCHLD when compiled with SunPRO
2365 actually for bmake, defining FORCE_POSIX_SIGNALS would have
2368 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
2370 * Makefile.in (MAKE_VERSION): bump version to 20100430
2371 Merge with NetBSD make, pick up
2372 o fflush stdout before writing to stdout
2374 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
2376 * Makefile.in (MAKE_VERSION): bump version to 20100423
2377 Merge with NetBSD make, pick up
2378 o updated unit tests for Haiku (this time for sure).
2379 * boot-strap: based on patch from joerg
2380 honor --with-default-sys-path better.
2381 * boot-strap: remove mention of --with-prefix-sys-path
2383 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
2385 * Makefile.in (MAKE_VERSION): bump version to 20100422
2386 * Merge with NetBSD make, pick up
2387 o fix for vfork() on Darwin.
2388 o fix for bogus $TMPDIR.
2389 o set .MAKE.MODE=compat for -B
2390 o set .MAKE.JOBS=max_jobs for -j max_jobs
2391 o allow unit-tests to run without any *.mk
2392 o unit-tests/modmisc be more conservative in dirs presumed to exist.
2393 * boot-strap: ignore /usr/share/mk except on NetBSD.
2394 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
2395 ensure sort(1) behaves as expected.
2397 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
2399 * boot-strap: add FindHereOrAbove so we can use -m .../mk
2401 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2403 * Makefile.in (MAKE_VERSION): bump version to 20100420
2404 * Merge with NetBSD make, pick up
2405 o fix for variable realpath() behavior.
2406 we have to stat(2) the result to be sure.
2407 o fix for .export (all) when nested vars use :sh
2409 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
2411 * Makefile.in (MAKE_VERSION): bump version to 20100414
2412 * Merge with NetBSD make, pick up
2413 o use realpath to resolve argv[0] (for .MAKE) if needed.
2414 o add realpath from libc.
2415 o add :tA to resolve variable via realpath(3) if possible.
2417 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
2419 * Makefile.in (MAKE_VERSION): bump version to 20100408
2420 * Merge with NetBSD make, pick up
2421 o unit tests for .ERROR, .error
2422 o fix for .ERROR to ensure it cannot be default target.
2424 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
2426 * Makefile.in (MAKE_VERSION): bump version to 20100406
2427 * Merge with NetBSD make, pick up
2428 o fix for compat mode "Error code" going to debug_file.
2429 o fix for .ALLSRC being populated twice.
2430 o support for .info, .warning and .error directives
2431 o .MAKE.MODE to control make's operational mode
2432 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2434 o .MAKE.DEPENDFILE to control the name of the depend file
2435 o .ERROR target - run on failure.
2437 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
2439 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2441 * os.sh,arch.c: patch for Haiku from joerg at netbsd
2443 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
2445 * Makefile.in (MAKE_VERSION): bump version to 20100222
2446 * Merge with NetBSD make, pick up
2447 o better error msg for .for with mutiple inter vars
2450 o use make-bootstrap.sh from joerg at netbsd
2451 to avoid the need for a native make when bootstrapping.
2452 o add "" everywhere ;-)
2453 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2454 otherwise the pre-formated version.
2456 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
2458 * Makefile.in (MAKE_VERSION): bump version to 20100102
2459 * Merge with NetBSD make, pick up:
2462 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
2464 * Makefile.in (MAKE_VERSION): bump version to 20091118
2465 * Merge with NetBSD make, pick up:
2467 o report lines that start with '.' and should have ':'
2468 (catch typo's of .el*if).
2470 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2472 * configure.in: Ensure that srcdir and mksrc are absolute paths.
2474 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2476 * Makefile.in (MAKE_VERSION): fix version to 20091007
2478 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
2480 * Makefile.in (MAKE_VERSION): bump version to 200910007
2481 * Merge with NetBSD make, pick up:
2482 o fix for parsing of :S;...;...; applied to .for loop iterator
2483 appearing in a dependency line.
2485 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2487 * Makefile.in (MAKE_VERSION): bump version to 20090909
2488 * Merge with NetBSD make, pick up:
2489 o fix for -C, .CURDIR and .OBJDIR
2491 o allow share_dir to be set independent of prefix.
2492 o select default share_dir better when prefix ends in $HOST_TARGET
2493 o if FORCE_BSD_MK etc were set, include them in the suggested
2496 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
2498 * Makefile.in (MAKE_VERSION): bump version to 20090908
2499 * Merge with NetBSD make, pick up:
2500 o .MAKE.LEVEL for recursion tracking
2501 o fix for :M scanning \:
2503 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2505 * configure.in: Don't -D__EXTENSIONS__ if
2506 AC_USE_SYSTEM_EXTENSIONS says "no".
2508 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
2510 * Makefile.in (MAKE_VERSION): bump version to 20090826
2511 Simplify MAKE_VERSION to just the bare date.
2512 * Merge with NetBSD make, pick up:
2513 o -C directory support.
2514 o support for SIGINFO
2515 o use $TMPDIR for temp files.
2516 o child of vfork should be careful about modifying parent's state.
2519 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
2521 * Appy some patches for MiNT from David Brownlee
2523 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
2525 * Makefile.in (BMAKE_VERSION): bump version to 20090222
2526 * Merge with NetBSD make, pick up:
2527 o Possible null pointer de-ref in Var_Set.
2529 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
2531 * Makefile.in (BMAKE_VERSION): bump version to 20090204
2532 * Merge with NetBSD make, pick up:
2533 o bmake_malloc et al moved to their own .c
2534 o Count both () and {} when looking for the end of a :M pattern
2535 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2536 o strlist.c - functions for processing extendable arrays of pointers to strings.
2537 o ClientData replaced with void *, so const void * can be used.
2538 o New debug flag C for DEBUG_CWD
2540 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
2542 * Makefile.in (BMAKE_VERSION): bump version to 20081111
2543 Apply patch from Joerg Sonnenberge to
2545 o remove some redundant checks
2546 o check for emlloc etc only in libutil and require the whole family.
2548 o remove [v]asprintf which is no longer used.
2550 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2552 * Makefile.in (BMAKE_VERSION): bump version to 20081101
2553 * Merge with NetBSD make, pick up:
2554 o util.c: avoid use of putenv() - christos
2556 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2558 * Makefile.in (BMAKE_VERSION): bump version to 20081030
2559 pick up man page tweaks.
2561 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
2563 * Makefile.in: move processing of LIBOBJS to after is definition!
2564 thus we'll have getenv.c in SRCS only if needed.
2566 * make.1: add examples of how to use :?
2568 * Makefile.in (BMAKE_VERSION): bump version to 20081029
2569 * Merge with NetBSD make, pick up:
2570 o fix for .END processing with -j
2571 o segfault from Parse_Error when no makefile is open
2572 o handle numeric expressions in any variable expansion
2573 o debug output now defaults to stderr, -dF to change it - apb
2574 o make now uses bmake_malloc etc so that it can build natively
2575 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2577 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
2579 * Makefile.in (BMAKE_VERSION): bump version to 20080808
2580 * Merge with NetBSD make, pick up:
2581 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2582 long lines in Makefiles
2583 o optimizations for VarQuote by joerg
2584 o fix for PR/38756: dominik: make dumps core on invalid makefile
2586 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
2588 * Makefile.in (BMAKE_VERSION): bump version to 20080515
2589 * Merge with NetBSD make, pick up:
2590 o fix skip setting vars in VAR_GLOBAL context, to handle
2591 cases where VAR_CMD is used for other than command line vars.
2593 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
2595 * boot-strap (make_version): we may need to look in
2596 $prefix/share/mk for sys.mk
2598 * Makefile.in (BMAKE_VERSION): bump version to 20080514
2599 * Merge with NetBSD make, pick up:
2600 o skip setting vars in VAR_GLOBAL context, when already set in
2601 VAR_CMD which takes precedence.
2603 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
2605 * Makefile.in (BMAKE_VERSION): bump version to 20080330
2606 * Merge with NetBSD make, pick up:
2607 o fix for ?= when LHS contains variable reference.
2609 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2611 * merge some patches from NetBSD pkgsrc.
2613 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
2614 the MAKSYSPATH used during bootstrap.
2616 * Makefile.in (BMAKE_VERSION): bump version to 20080215
2617 * Merge with NetBSD make, pick up:
2618 o warn if non-space chars follow 'empty' in a conditional.
2620 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2622 * Makefile.in (BMAKE_VERSION): bump version to 20080118
2623 * Merge with NetBSD make, pick up:
2624 o consider dependencies read from .depend as optional - dsl
2625 o remember when buffer for reading makefile grows - dsl
2626 o add -dl (aka LOUD) - David O'Brien
2628 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
2630 * Makefile.in (BMAKE_VERSION): bump version to 20071022
2631 * Merge with NetBSD make, pick up:
2632 o Allow .PATH<suffix> to be used for .include ""
2634 * boot-strap: source default settings from .bmake-boot-strap.rc
2636 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
2638 * Makefile.in: fix maninstall on various systems
2639 provided that our man.mk is used.
2640 For non-BSD systems we install the preformatted page
2643 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
2645 * boot-strap: make bmake.1 too, so maninstall works.
2647 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
2649 * Makefile.in (BMAKE_VERSION): bump version to 20071014
2650 * Merge with NetBSD make, pick up:
2651 o revamped handling of defshell - configure no longer needs to
2652 know the content of the shells array - apb
2653 o stop Var_Subst modifying its input - apb
2654 o avoid calling ParseTrackInput too often - dsl
2656 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
2658 * Makefile.in (BMAKE_VERSION): bump version to 20071011
2659 * Merge with NetBSD make, pick up:
2660 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
2662 * sigcompat.c: some tweaks for HP-UX 11.x based on
2663 patch from Tobias Nygren
2665 * configure.in: update handling of --with-defshell to match
2666 new make behavior. --with-defshell=/usr/xpg4/bin/sh
2667 will now do what one might hope - provided the chosen shell
2668 behaves enough like sh.
2670 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
2672 * Makefile.in (BMAKE_VERSION): bump to 20071008
2673 * Merge with NetBSD make, pick up:
2674 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
2675 o .export/.MAKE.EXPORTED - export of variables - sjg
2676 o .MAKE.MAKEFILES - track all makefiles read - sjg
2677 o performance improvements - dsl
2678 o revamp parallel job scheduling - dsl
2680 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2682 * Makefile.in (BMAKE_VERSION): bump to 20060728
2683 * Merge with NetBSD make, pick up:
2684 o extra debug info during variable and cond processing - sjg
2685 o shell definition now covers newline - rillig
2686 o minor mem leak in PrintOnError - sjg
2688 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2690 * Makefile.in (BMAKE_VERSION): bump to 20060511
2691 * Merge with NetBSD make, pick up:
2692 o more memory leaks - coverity
2693 o possible overflow in ArchFindMember - coverity
2694 o extract variable modifier code out of Var_Parse()
2695 so it can be called recursively - sjg
2696 o unit-tests/moderrs - sjg
2698 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
2700 * Makefile.in (BMAKE_VERSION): bump to 20060412
2701 * Merge with NetBSD make, pick up:
2702 o fixes for some memory leaks - coverity
2703 o only read first sys.mk etc when searching sysIncPath - sjg
2705 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
2706 setting ${MAKEFILE} - OBATA Akio
2708 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
2710 * Makefile.in (BMAKE_VERSION): bump to 20060318
2711 * Merge with NetBSD make, pick up:
2712 o cleanup of job.c to remove remote handling, distcc is more
2713 useful and this code was likely bit-rotting - dsl
2714 o fix for :P modifier - sjg
2715 * boot-strap: set default prefix to something reasonable
2718 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
2720 * Makefile.in (BMAKE_VERSION): bump to 20060301
2721 * Merge with NetBSD make, pick up:
2722 o make .WAIT apply recursively, document and test case - apb
2723 o allow variable modifiers in a variable appear anywhere in
2724 modifier list, document and test case - sjg
2726 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
2728 * Makefile.in (BMAKE_VERSION): bump to 20060222
2729 * Merge with NetBSD make, pick up:
2730 o improved job token handling - dsl
2731 o SIG_DFL the correct signal before exec - dsl
2732 o more debug info during parsing - dsl
2733 o allow variable modifiers to be specified via variable - sjg
2734 * boot-strap: explain why we died if no mksrc
2736 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
2738 * Makefile.in (BMAKE_VERSION): bump to 20051105
2739 * configure.in: always set default_sys_path
2740 default is ${prefix}/share/mk
2741 - remove prefix_sys_path, anyone wanting more than above
2742 needs to set it manually.
2744 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2746 * boot-strap: make this a bit easier for pkgsrc folk.
2747 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
2748 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2750 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
2752 * Makefile.in (BMAKE_VERSION): bump to 20051102
2753 * job.c (JobFinish): fix likely ancient merge lossage
2754 fix from Todd Vierling.
2755 * boot-strap (srcdir): allow setting mksrc=none
2757 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
2759 * Makefile.in (BMAKE_VERSION): bump to 20051031
2760 * ranlib.h: skip on OSF too.
2763 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
2765 * Makefile.in (BMAKE_VERSION): bump to 20051002
2768 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2770 * Makefile.in (BMAKE_VERSION): bump to 20051001
2771 support for UnixWare and some other systems,
2772 based on patches from pkgsrc/bootstrap
2774 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2776 * Makefile.in (BMAKE_VERSION): bump to 20050901
2777 * Merge with NetBSD make, pick up:
2778 o possible parse error causing us to wander off.
2780 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
2782 * Makefile.in (BMAKE_VERSION): bump to 20050606
2783 * Merge with NetBSD make, pick up:
2784 o :0x modifier for randomizing a list
2785 o fixes for a number of -Wuninitialized issues.
2787 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
2789 * Makefile.in (BMAKE_VERSION): bump to 20050530
2790 * Merge with NetBSD make, pick up:
2791 o Handle dependencies for .BEGIN, .END and .INTERRUPT
2793 * README: was seriously out of date.
2795 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
2797 * Important to use .MAKE rather than MAKE.
2799 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
2801 * Makefile.in (BMAKE_VERSION): bump to 20050315
2802 * Merge with NetBSD make, pick up:
2803 o don't mistake .elsefoo for .else
2804 o use suffix-specific search path correctly
2805 o bunch of style nits
2807 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2810 o ensure that args to --src and --with-mksrc
2811 are resolved before giving them to configure.
2812 o add -o "objdir" so that builder can control it,
2813 default is $OS as determined by os.sh
2814 o add -q to suppress all the install instructions.
2816 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
2818 * Remove __IDSTRING()
2820 * Makefile.in (BMAKE_VERSION): bump to 20040508
2821 * Merge with NetBSD make, pick up:
2823 - remove '-e' from compat mode
2824 - add support for '+' command-line prefix.
2825 o fix for handling '--' on command-line.
2826 o fix include in lst.lib/lstInt.h to simplify '-I's
2827 o we also picked up replacement of MAKE_BOOTSTRAP
2828 with !MAKE_NATIVE which is a noop, but possibly confusing.
2830 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
2832 * Makefile.in (BMAKE_VERSION): bump to 20040414
2833 * Merge with NetBSD make, pick up:
2834 o allow quoted strings on lhs of conditionals
2835 o issue warning when extra .else is seen
2836 o print line numer when errors encountered during parsing from
2839 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
2841 * Makefile.in (BMAKE_VERSION): bump to 20040220
2842 * Merge with NetBSD make, pick up:
2843 o fix for old :M parsing bug.
2844 o re-jigged unit-tests
2846 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2848 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
2849 so that './bmake -f Makefile test' works.
2851 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
2853 * Makefile.in: (BMAKE_VERSION): bump to 20040214
2854 * Merge with NetBSD make, pick up:
2855 o search upwards for *.mk
2856 o fix for double free of var substitution buffers
2857 o use of getopt replaced with custom code, since the usage
2858 (re-scanning) isn't posix compatible.
2860 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
2862 * arch.c: don't include ranlib.h on ELF systems
2863 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
2865 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2867 * Makefile.in (BMAKE_VERSION): bump to 20040118
2869 * boot-strap (while): export vars we assign to on cmdline
2870 * unit-test/Makefile.in: ternary is .PHONY
2872 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
2874 * Makefile.in (BMAKE_VERSION): bump version to 20040108
2875 * Merge with NetBSD make, pick up:
2876 o fix for ternary modifier
2878 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
2880 * Makefile.in (BMAKE_VERSION): bump version to 20040105
2881 * Merge with NetBSD make, pick up:
2882 o fix for cond.c to handle compound expressions better
2883 o variable expansion within sysV style replacements
2885 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
2887 * Make portable snprintf safer - output to /dev/null first to
2890 * Makefile.in (BMAKE_VERSION): bump version to 20031222
2891 * Merge with NetBSD make, pick up:
2892 o -dg3 to show input graph when things go wrong.
2893 o explicitly look for makefiles in objdir if not found in curdir so
2894 that errors in .depend etc will be reported accurarely.
2895 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
2896 instead as it more accurately reflects the expected behavior and
2897 is more consistently implemented.
2898 o avoid use of asprintf.
2900 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
2902 * util.c: Add asprintf and vasprintf.
2904 * Makefile.in (BMAKE_VERSION): bump version to 20030928
2905 * Merge with NetBSD make, pick up:
2906 :[] modifier - allows picking words from a variable.
2907 :tW modifier - allows treating value as one big word.
2908 W flag for :C and :S - allows treating value as one big word.
2910 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
2912 * Merge with NetBSD make
2913 pick up -de flag to enable printing failed command.
2914 don't skip 1st two dir entries (normally . and ..) since
2915 coda does not have them.
2917 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2919 * Makefile.in (BMAKE_VERSION): bump version to 20030909
2920 * Merge with NetBSD make, pick up:
2921 - changes for -V '${VAR}' to print fully expanded value
2923 - CompatRunCommand now prints the command that failed.
2924 - several files got updated 3 clause Berkeley license.
2926 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
2928 * boot-strap: Allow setting configure args on command line.
2930 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
2932 * configure.in: add --with-defshell to allow sh or ksh
2933 to be selected as default shell.
2935 * Makefile.in: bump version to 20030731
2937 * Merge with NetBSD make
2938 Pick up .SHELL spec for ksh and associate man page changes.
2939 Also compat mode now uses the same shell specs.
2941 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
2943 * var.c (Var_Parse): ensure delim is initialized.
2945 * unit-tests/Makefile.in: use single quotes to avoid problems from
2949 Run the unit-tests as part of the bootstrap procedure.
2951 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2953 * unit-tests/Makefile.in: always force complaints from
2954 ${TEST_MAKE} to be from 'make'.
2956 * configure.in: add check for 'diff -u'
2957 also fix some old autoconf'isms
2959 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
2960 if using GCC add -Wno-cast-qual to CFLAGS for var.o
2962 * Merge with NetBSD make
2963 Pick up fix for :ts parsing error in some cases.
2966 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
2968 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
2970 * var.c (Var_Parse): fix bug in :ts modifier, after const
2971 correctness fixes, must pass nstr to VarModify.
2973 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
2975 * Makefile.in: BMAKE_VERSION switch to a date based version.
2976 We'll generally use the date of last import from NetBSD.
2978 * Merge with NetBSD make
2979 Pick up fixes for const-correctness, now passes WARNS=3 on
2981 Pick up :ts modifier, allows controlling the separator used
2982 between words in variable expansion.
2984 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
2986 * FILES: include boot-strap and os.sh
2988 * Makefile.in: only set WARNS if we are NetBSD, the effect on
2989 FreeBSD is known to be bad.
2991 * makefile.boot.in (bootstrap): make this the default target.
2993 * Makefile.in: bump version to 3.1.19
2995 * machine.sh: avoid A-Z with tr as it is bound to lose.
2997 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
2999 * Merge with NetBSD make
3000 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3001 Plus some doc fixes.
3003 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
3005 * Merge with NetBSD make
3006 Pick up fix for PR/1523 - don't count a library as built, if there
3007 is no way to build it
3009 * Bump version to 3.1.18
3011 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
3013 * Merge with NetBSD make
3014 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3015 appears in src list.
3017 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
3019 * Merge with NetBSD make (mmm 10th anniversary!)
3020 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3021 pick up -X which tells us to not export VAR=val via setenv if
3022 we are already doing so via MAKEFLAGS. This saves valuable env
3023 space on systems like Darwin.
3024 set MAKE_VERSION to 3.1.17
3026 * parse.c: pix up fix for suffix rules
3028 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
3030 * Merge with NetBSD make.
3031 pick up fix for propagating -B via MAKEFLAGS.
3032 set MAKE_VERSION to 3.1.16
3034 * Apply some patches from pkgsrc-bootstrap/bmake
3035 Originally by Grant Beattie <grant@netbsd.org>
3036 I may have missed some - since they are based on bmake-3.1.12
3038 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
3040 * makefile.boot.in (bmake): update install targets for those that
3041 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3042 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
3044 * bmake.cat1: update the pre-formatted man page!
3046 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
3048 * Merge with NetBSD make.
3049 pick up fix for premature free of pointer used in call
3051 set MAKE_VERSION to 3.1.15
3053 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
3055 * configure.in: determine suitable value for MKSRC.
3056 override using --with-mksrc=PATH.
3058 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3059 configs(8) will use 'sun4' as an alias for 'sparc'.
3061 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
3063 * Merge with NetBSD make.
3065 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3066 set MAKE_VERSION to 3.1.14
3067 add configure checks for killpg and sys/socket.h
3069 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
3073 * makefile.boot.in (bmake): use install-mk
3074 Also setup ./mk before trying to invoke bmake.boot incase we
3075 needed install-mk to create a sys.mk for us.
3077 * configure.in: If we need to add -I${srcdir}/missing, make it an
3078 absolute path so that it works for lst.lib too.
3080 * make.h: always include sys/cdefs.h since we provide one if the
3083 * Makefile.in (install-mk):
3084 use MKSRC/install-mk which will do the right thing.
3085 use uname -p for ARCH if possible.
3086 since install-mk will setup links bsd.prog.mk -> prog.mk if
3087 needed, just .include bsd.prog.mk
3089 * Merge with NetBSD make (NetBSD-1.6)
3090 Code is ansi-C only now.
3091 Bug in handling of dotLast is fixed.
3092 Can now assign .OBJDIR and make will reset its notions of life.
3093 New modifiers :tu :tl for toUpper and toLower.
3095 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3097 * Merge with NetBSD make
3098 pick up fix for .END failure in compat mode.
3099 pick up fix for extra va_end() in ParseVErrorInternal.
3101 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3103 * configure.in: for systems that have sys/cdefs.h check if it is
3104 compatible. If not, include the one under missing, but tell it to
3105 include the native one too - necessary on Linux.
3107 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3108 include_next (for gcc) to get the native sys/cdefs.h
3110 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3112 * job.c (JobFinish): Fix an earlier merge bug that resulted in
3113 leaking descriptors when using -jN.
3115 * job.c (JobPrintCommand): See if "curdir" exists before
3116 attempting to chdir(). Doing the chdir directly in make (when in
3117 compat mode) fails silently, so let the -jN version do the same.
3118 This can happen when building kernels in an object tree and
3119 playing clever games to reset .CURDIR.
3121 * Merged with NetBSD make
3124 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3126 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3128 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3130 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3131 us not to export the iterator variable when using VAR_CMD context.
3133 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3135 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3136 its the wrong "fix".
3138 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3140 * Redesigned export of VAR_CMD's via MAKEFLAGS.
3141 We now simply append the variable names to .MAKEOVERRIDES, and
3142 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3143 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3144 Apart from fixing quoting bugs in previous version, this allows us
3145 to export vars to the environment by simply doing:
3146 .MAKEOVERRIDES+= PATH
3147 Merged again with NetBSD make, but the above is the only change.
3149 * configure.in: added
3150 --disable-pwd-override disable $PWD overriding getcwd()
3151 --disable-check-make-chdir disable make trying to guess
3152 when it should automatically cd ${.CURDIR}
3154 * Merge with NetBSD make, changes include:
3155 parse.c (ParseDoDependency): Spot that the syntax error is
3156 caused by an unresolved cvs/rcs conflict and say so.
3157 var.c: most of Var* functions now take a ctxt as 1st arg.
3158 now does variable substituion on rhs of sysv style modifiers.
3160 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
3161 is now done here. We append the name='value' to .MAKEOVERRIDES
3162 rather than directly into MAKEFLAGS as this allows a Makefile to
3163 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
3164 very similar mechanism. Note that in adding name='value' to
3165 .MAKEOVERRIDES we do the moral equivalent of:
3166 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3168 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3170 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3172 * Merged with NetBSD make
3173 make -dx can now be used to run commands via sh -x
3174 better error messages on exec failures.
3176 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3178 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3179 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
3180 MACHINE etc otherwise they propagate from the previous bmake.
3182 * configure.in (machine): allow --with-machine=generic to make
3183 configure use machine.sh to set MACHINE.
3185 * job.c (JobInterrupt): convert to using WAIT_T and friends.
3187 * Makefile.in: mention in bmake.1 that we use autoconf.
3189 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3191 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3193 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3194 as that rather defeats the usefulness of ${MAKEFILE}.
3196 * main.c (MainParseArgs): append command line variable assignments
3197 to MAKEFLAGS so that they get propagated to child make's.
3198 Apparently this is required POSIX behaviour? Its useful anyway.
3200 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3202 * compat.c (CompatRunCommand): don't use perror() since stdio may
3203 cause problems in child of vfork().
3205 * compat.c, main.c: Call PrintOnError() when we are going to bail.
3206 This routine prints out the .curdir where we stopped and will also
3207 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3209 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
3212 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
3214 * Added RCSid's for the files we've touched.
3216 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3218 * configure.in: Thanks to some clues from mdb@juniper.net,
3219 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3220 as well as what ends up in _PATH_DEFSYSPATH. We now have:
3222 --with-machine=MACHINE explicitly set MACHINE
3223 --with-force-machine=MACHINE set FORCE_MACHINE
3224 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
3225 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
3226 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
3227 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
3229 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3231 * makefile: added a pathetically simple makefile to drive
3232 bootstrapping. Running configure by hand is more useful.
3234 * Makefile.in: added MAKE_VERSION, and reworked things to be less
3235 dependent on NetBSD bsd.*.mk
3237 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3238 _PATH_OBJDIRPREFIX for those that don't want a default.
3239 construct _PATH_DEFSYSPATH from the info we get from configure.
3241 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3242 if MAKE_VERSION is defined.
3244 * compat.c: when we bail, print out the .CURDIR we were in.
3246 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3248 * Merged with NetBSD make
3250 * var.c: fixed a bug in the handling of the modifier :P
3251 if the node as found but the path was null, we segfault trying to
3254 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3256 * Merged with NetBSD make
3258 * make.c: Make_OODate's test for a library out of date was using
3259 cmtime where it should have used mtime (my bug).
3261 * compat.c: Use perror() to tell us what really went wrong when we
3262 cannot exec a command.
3264 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3266 * Merged with NetBSD make
3268 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3270 * Merged with NetBSD make
3272 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3274 * Merged with NetBSD make
3276 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3278 * Merged with NetBSD make
3280 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3282 * util.c: don't provide signal() since we use sigcompat.c
3284 * Makefile.in: added a build target.
3286 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3287 These allow some quite clever magic.
3289 * main.c (main): added support for getenv(MAKESYSPATH).
3291 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3293 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3294 This avoids objdir having a different value depending on how a
3295 directory was reached (via command line, or subdir.mk).
3297 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3299 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3301 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3302 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3303 I've been testing this in NetBSD's make for some weeks.
3305 * Turn Makefile into Makefile.in and make it useful.
3307 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3309 * Imported NetBSD's -current make(1) and resolve conflicts.
3311 * Applied autoconf patches from bmake v2
3313 * Imported clean code base from NetBSD-1.0