1 2021-02-06 Simon J Gerraty <sjg@beast.crufty.net>
3 * VERSION (_MAKE_VERSION): 20210206
4 Merge with NetBSD make, pick up
5 o unit-tests: use private TMPDIR to avoid errors from other users
7 2021-02-05 Simon J Gerraty <sjg@beast.crufty.net>
9 * VERSION (_MAKE_VERSION): 20210205
10 Merge with NetBSD make, pick up
11 o avoid strdup in mkTempFile
13 o rename context and ctxt to scope
14 o rename some VAR constants to SCOPE
15 o Var_ functions, move the scope to the front
16 o use shortcut functions Global_Set and Global_Append
17 o add shortcut Global_Delete for deleting a global variable
18 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
19 o compat.c: when exiting due to an error, print graph information
20 o enum.c: remove overengineered Enum_ValueToString
21 o make.c: remove unused INTERNAL flag
22 remove unused return type of MakeBuildParent
23 o parse.c: replace parse error "Need an operator" with better message
24 o var.c: improve documentation about variable scopes
25 rename Var_ValueDirect to GNode_ValueDirect
26 rename old Var_SetWithFlags to Var_SetExpandWithFlags
27 merge SetVar into Var_SetWithFlags
28 split Var_Exists into plain Var_Exists and Var_ExistsExpand
29 split Var_Append into Var_Append and Var_AppendExpand
30 replace enum bit-set with bit-field
31 o unit-tests/var-op-shell: use kill rather than kill -14
32 which broke on darwin with recent update.
34 2021-02-01 Simon J Gerraty <sjg@beast.crufty.net>
36 * configure.in: check for sig_atomic_t and define it as 'int'
39 * VERSION (_MAKE_VERSION): 20210201
40 Merge with NetBSD make, pick up
41 o use sig_atomic_t for caught_sigchld
43 2021-01-30 Simon J Gerraty <sjg@beast.crufty.net>
45 * VERSION (_MAKE_VERSION): 20210130
46 Merge with NetBSD make, pick up
48 o convert SearchPath to struct
49 o split Buf_Destroy into Buf_Done and Buf_DoneData
50 o for.c: split For_Eval into separate functions
51 rename struct For to struct ForLoop
52 o job.c: do not create empty shell files in jobs mode
53 rename JobOpenTmpFile to JobWriteShellCommands
54 reduce unnecessary calls to waitpid
55 o parse.c: in -dp mode, print stack trace with each diagnostic
57 2021-01-23 Simon J Gerraty <sjg@beast.crufty.net>
59 * VERSION (_MAKE_VERSION): 20210123
60 Merge with NetBSD make, pick up
61 o rename Dir_Expand to SearchPath_Expand
62 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
63 o cond.c: fix debug output for comparison operators in conditionals
64 o dir.c: split Dir_FindFile into separate functions
66 2021-01-20 Simon J Gerraty <sjg@beast.crufty.net>
68 * VERSION (_MAKE_VERSION): 20210120
69 Merge with NetBSD make, pick up
70 o fix some more lint nits
71 o refine some unit tests for portability
72 o cond.c: rework parsing
74 2021-01-10 Simon J Gerraty <sjg@beast.crufty.net>
76 * VERSION (_MAKE_VERSION): 20210110
77 Merge with NetBSD make, pick up
79 o consistently use boolean expressions in conditions
81 2021-01-08 Simon J Gerraty <sjg@beast.crufty.net>
83 * VERSION (_MAKE_VERSION): 20210108
84 Merge with NetBSD make, pick up
85 o job.c: back to polling token pipe if we want a token
86 o main.c: always print 'stopped in' on first call
87 The execption is if we bail because of an abort token
88 in which case just exit 6.
90 2021-01-01 Simon J Gerraty <sjg@beast.crufty.net>
92 * VERSION (_MAKE_VERSION): 20210101
93 Merge with NetBSD make, pick up
95 o rename CmdOpts.lint to strict
96 o exit 2 on technical errors
97 o replace pointers in controlling conditions with booleans
98 o replace global preserveUndefined with VARE_KEEP_UNDEF
99 o compat.c: re-export variables from the actual make process
100 if using vfork this is the effect anyway
101 o cond.c: clean up VarParseResult constants
102 o for.c: fix undefined behavior in SubstVarLong
103 make control flow in SubstVarLong of .for loops more obvious
104 clean up SubstVarShort in .for loops
105 extract ForSubstBody from ForReadMore
107 simplify termination condition for .for loop
108 add error handling for .for loop items
109 job.c: re-export variables from the actual make process
110 parse.c: remove mmap for loading files, only allow files < 1 GiB
111 fix edge case in := with undefined in variable name
112 skip variable expansion in ParseDependencyTargetWord
113 var.c: split ExportVar into separate functions
114 clean up code in extracted ExportVar functions
115 remove dead code from ApplyModifiersIndirect
116 split Var_Subst into easily understandable functions
117 clean up VarParseResult constants
119 2020-12-25 Simon J Gerraty <sjg@beast.crufty.net>
121 * main.c: use .MAKE.DEPENDFILE as set by makefiles
123 2020-12-22 Simon J Gerraty <sjg@beast.crufty.net>
125 * VERSION (_MAKE_VERSION): 20201222
126 Merge with NetBSD make, pick up
127 o make DEBUG macro return boolean
128 o parse.c: fix assertion failure for files without trailing newline
129 o var.c: allow .undef to undefine multiple variables at once
130 remove excess newline from parse errors
132 2020-12-21 Simon J Gerraty <sjg@beast.crufty.net>
134 * VERSION (_MAKE_VERSION): 20201221
135 Merge with NetBSD make, pick up
136 o some unit-test updates
138 2020-12-20 Simon J Gerraty <sjg@beast.crufty.net>
140 * VERSION (_MAKE_VERSION): 20201220
141 Merge with NetBSD make, pick up
143 o return FStr from Var_Parse and Var_Value
144 o spell nonexistent consistently
145 o add str_basename to reduce duplicate code
146 o compat.c: fix .ERROR_TARGET in compat -k mode
147 extract InitSignals from Compat_Run
148 extract UseShell from Compat_RunCommand
149 o cond.c: error out if an '.endif' or '.else' contain extraneous text
150 o for.c: rename ForIterate to ForReadMore
151 o hash.c: clean up hash function for HashTable
152 o lst.c: rename Vector.priv_cap to cap
153 o main.c: remove constant parameter from MakeMode
154 o make.c: use symbolic time for 0 in Make_Recheck
155 extract MakeChildren from MakeStartJobs
156 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
157 fix error message for .info/.warning/.error without argument
158 extract Var_Undef from ParseDirective
159 extract ParseSkippedBranches, ParseForLoop from ParseReadLine
160 rename mode constants for ParseGetLine to be more expressive
161 reduce debugging details in Parse_SetInput
162 fix line numbers in .for loops
163 split ParseGetLine into separate functions
164 fix garbled output for failed shell command
165 var.c: remove redundant assignment in ApplyModifier_SysV
166 error out on unknown variable modifiers at parse time
167 remove wrong error message for indirect modifier in lint mode
168 extract ApplySingleModifier from ApplyModifiers
169 use FStr for memory management in Var_SetWithFlags
170 extract SetVar from Var_SetWithFlags
172 extract string functions from ApplyModifier_To
173 error out if .undef has not exactly 1 argument
174 extract Var_DeleteVar from Var_Delete
175 extract Var_Undef from ParseDirective
176 clean up memory management for expanding variable expressions
178 2020-12-12 Simon J Gerraty <sjg@beast.crufty.net>
182 * lst.c: avoid anonymous union
184 * VERSION (_MAKE_VERSION): 20201212
185 Merge with NetBSD make, pick up
187 o inline Targ_Ignore and Targ_Silent
188 o split JobFlags into separate fields
189 o remove const from function parameters (left overs from refactoring)
190 o eliminate boolean argument of Var_Export
191 o make API of Buf_Init simpler
192 o rename ParseRunOptions to ParseCommandFlags
193 o replace *line with line[0]
194 o compat.c: fix wrong exit status for multiple failed main targets
195 refactor Compat_Run to show the error condition more clearly
196 don't make .END if the main targets already failed (-k mode)
197 fix exit status in -k mode if a dependency fails
198 o for.c: clean up Buf_AddEscaped in .for loops
199 o job.c: extract ShellWriter_ErrOn from JobPrintCommand
200 make Job_Touch simpler
202 rename Shell.exitFlag to errFlag
203 move Job.xtraced to ShellWriter
204 make printing of shell commands independent from the job
205 rename shell flags in struct Shell
206 extract JobOpenTmpFile from JobStart
207 rename RunFlags to CommandFlags
208 split various Job.* into separate fields
209 rename commandShell to shell
210 extract InitShellNameAndPath from Shell_Init
211 replace signal handling macros with local functions
212 replace macro MESSAGE with local function
213 parse.c: error out on null bytes in makefiles
214 error out on misspelled directives
215 rename IFile.nextbuf to readMore
216 fix undefined behavior in ParseEOF
217 str.c: remove redundant call to strlen in Str_Words
218 var.c: error out on misspelled .unexport-env
219 error out on misspelled .export directives
220 extract ExportVars from Var_Export
221 extract ExportVarsExpand from Var_Export
222 eliminate boolean argument of Var_Export
223 fix undefined behavior when exporting ${:U }
224 rename Var_ExportVars to Var_ReexportVars
225 rename Var_Export1 to ExportVar
227 2020-12-06 Simon J Gerraty <sjg@beast.crufty.net>
229 * VERSION (_MAKE_VERSION): 20201206
230 Merge with NetBSD make, pick up
232 o inline macros for debug logging
233 o use consistent variable names for list nodes
234 o define constants for enum zero-values
235 o dir.c: use fixed format for debug output of the directory cache
237 o lst.c: inline Lst_Enqueue, Vector_Done
238 o meta.c: remove unused parameter from meta_needed
239 o parse.c: rename parse functions
240 o suff.c: extract ExpandChildrenRegular from ExpandChildren
241 o targ.c: don't concatenate identifiers in Targ_PrintType
242 o var.c: remove comment decoration
243 extract UnexportVars from Var_UnExport
244 extract GetVarnamesToUnexport from Var_UnExport
245 extract UnexportEnv from Var_UnExport
246 extract UnexportVar from Var_UnExport
247 move CleanEnv to UnexportVars
248 replace pointer comparisons with enum
249 add FStr to var.c to make memory handling simpler
250 use FStr in Var_UnExport
251 move type definitions in var.c to the top
252 extract FreeEnvVar from Var_Parse
253 extract ShuffleStrings from ApplyModifier_Order
255 2020-11-30 Simon J Gerraty <sjg@beast.crufty.net>
257 * VERSION (_MAKE_VERSION): 20201130
258 Merge with NetBSD make, pick up
259 o add unit tests for META MODE
260 o reduce memory allocation for dirSearchPath, GNode.parents,
261 GNode.children, OpenDirs
262 o reduce pointer indirection for GNode.cohorts and
263 GNode.implicitParents
264 o remove pointer indirection from GNode.commands
265 o inline Lst_ForEachUntil in meta mode
266 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
267 clean up memory management for CachedDirs
268 fix the reference count of dotLast going negative
269 add debug logging for OpenDirs_Done
270 extract CacheNewDir from Dir_AddDir
271 add debug logging for reference counting of CachedDir
272 rename some Dir functions to SearchPath
273 o job.c: rename some global variables
274 o main.c: reduce memory allocation in ReadBuiltinRules
275 reduce memory allocation in CmdOpts.create, CmdOpts.variables,
277 Add .MAKE.UID and .MAKE.GID
278 o make.c: reduce memory allocation for/in toBeMade,
279 Make_ProcessWait, Make_ExpandUse
280 o meta.c: reduce memory allocation in meta_oodate
281 o parse.c: reduce memory allocations for parsing dependencies and
283 o suff.c: reduce memory allocation in suffix handling
285 2020-11-24 Simon J Gerraty <sjg@beast.crufty.net>
287 * VERSION (_MAKE_VERSION): 20201124
288 Merge with NetBSD make, pick up
289 o .MAKE.{UID,GID} represent uid and gid running make.
290 o fix error handling for .BEGIN and .END dependency in -k mode
291 o fix missing "Stop." after failed .END node in -k mode
292 o use properly typed comparisons in boolean contexts
293 o replace a few HashTable_CreateEntry with HashTable_Set
295 o compat.c: split Compat_Make into smaller functions
296 extract DebugFailedTarget from Compat_RunCommand
297 o dir.c: refactor Dir_UpdateMTime
298 migrate CachedDir.files from HashTable to HashSet
299 o make.c: add high-level API for GNode.made
301 2020-11-22 Simon J Gerraty <sjg@beast.crufty.net>
303 * VERSION (_MAKE_VERSION): 20201122
304 Merge with NetBSD make, pick up
305 o rename GNode.context to vars
306 o suff.c: cleanup and refactor
307 rename some functions and vars to better reflect usage
308 add high-level API for CandidateSearcher
309 o targ.c: add more debug logging for suffix handling
311 o add debug logging for setting and resetting the main target
313 2020-11-17 Simon J Gerraty <sjg@beast.crufty.net>
315 * VERSION (_MAKE_VERSION): 20201117
316 Merge with NetBSD make, pick up
317 o fix some unit-tests when .SHELL is dash
318 o rename Targ_NewGN to GNode_New
319 o make some GNode functions const
320 o main.c: call Targ_Init before Var_Init
321 cleanup PrintOnError, getTmpdir and ParseBoolean
322 o var.c: fix error message of failed :!cmd! modifier
324 2020-11-14 Simon J Gerraty <sjg@beast.crufty.net>
326 * VERSION (_MAKE_VERSION): 20201114
327 Merge with NetBSD make, pick up
328 o replace a few HashTable_CreateEntry with HashTable_Set
329 o clean up cached_stats
330 o rename DEFAULT to defaultNode
331 o remove redundant struct make_stat
332 o cond.c: in lint mode, check for ".else <cond>"
333 use bitset for IfState
334 replace large switch with if-else in Cond_EvalLine
335 o job.c: clean up JobExec, JobStart, JobDoOutput
336 use stderr for error message about failed touch
338 replace macro DBPRINTF with JobPrintln
339 rename JobState to JobStatus
340 main.c: switch cache for realpath from GNode to HashTable
342 clean up InitDefSysIncPath
343 use progname instead of hard-coded 'make' in warning
344 rename Main_SetVarObjdir to SetVarObjdir
345 make.1: document the -S option
346 make.c: fix debug output for GNode details
347 use symbolic names in debug output of GNodes
349 2020-11-12 Simon J Gerraty <sjg@beast.crufty.net>
351 * configure.in: fix --with-force-machine-arch
353 * VERSION (_MAKE_VERSION): 20201112
354 Merge with NetBSD make, pick up
355 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
356 checks in InitObjdir. Explicit .OBJDIR target always allows
358 o cond.c: clean up Cond_EvalLine
360 2020-11-11 Simon J Gerraty <sjg@beast.crufty.net>
362 * VERSION (_MAKE_VERSION): 20201111
363 Merge with NetBSD make, pick up
366 remove redundant parentheses from sizeof operator
367 replace character literal 0 with '\0'.
368 replace pointer literal 0 with NULL.
369 remove redundant parentheses.
370 replace (expr & mask) == 0 with !(expr & mask).
371 use strict typing in conditions of the form !var
372 o rename Make_OODate to GNode_IsOODate
373 o rename Make_TimeStamp to GNode_UpdateYoungestChild
374 o rename Var_Set_with_flags to Var_SetWithFlags
375 o rename dieQuietly to shouldDieQuietly
376 o buf.c: make API of Buf_Init simpler
377 o compat.c: clean up Compat_Make, Compat_RunCommand,
378 CompatDeleteTarget and CompatInterrupt
379 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
380 clean up CondParser_Comparison
381 o main.c: rename getBoolean and s2Boolean
382 rename MAKEFILE_PREFERENCE for consistency
383 o parse.c: replace strstr in ParseMaybeSubMake with optimized code
384 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
385 replace emptyString with allocated empty string
386 error out on unclosed expressions after the colon
388 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
390 * VERSION (_MAKE_VERSION): 20201101
391 Merge with NetBSD make, pick up
392 o negate NoExecute to GNode_ShouldExecute
393 o job.c: rename JobMatchShell to FindShellByName
394 extract EscapeShellDblQuot from JobPrintCommand
395 extract ParseRunOptions from JobPrintCommand
396 o var.c: extract ApplyModifiersIndirect from ApplyModifiers
397 treat malformed :range, :ts and :[...] as errors
398 add tests for the variable modifiers :[words] and :range
400 2020-10-31 Simon J Gerraty <sjg@beast.crufty.net>
402 * VERSION (_MAKE_VERSION): 20201031
403 Merge with NetBSD make, pick up
404 o format #include directives consistently
405 o do not look up local variables like .TARGET anywhere else
406 o main.c: Main_SetObjdir is first called for curdir which may be
408 reduce the scope where recursive expressions are detected
409 remove redundant :tl from getBoolean
411 o meta.c: simplify memory allocation in meta_create and meta_oodate
412 o parse.c: extract loadedfile_mmap from loadfile
413 o trace.c: document possible undefined behavior with .CURDIR
414 o var.c: make parsing of the :gmtime and :localtime modifiers stricter
415 rename ismeta to is_shell_metachar
416 remove debug logging for the :Q variable modifier
417 rename VarIsDynamic to VarnameIsDynamic
418 use consistent parameter order in varname parsing functions
419 extract ParseVarnameLong from Var_Parse
420 extract ParseVarnameShort from Var_Parse
421 fix type of ParseModifierPart parameter delim
422 extract IsEscapedModifierPart from ParseModifierPart
424 add test for combining the :@ and :? variable modifiers
426 2020-10-30 Simon J Gerraty <sjg@beast.crufty.net>
428 * VERSION (_MAKE_VERSION): 20201030
429 Merge with NetBSD make, pick up
430 o change char * to void * in Var_Value
431 o make iterating over HashTable simpler
432 o rename VAR_CMD to VAR_CMDLINE
433 o cond.c: clean up is_separator
434 fix parse error in string literal in conditional
435 o main.c: do not use objdir that is not writable
436 in lint mode, exit with error status on errors
437 o parse.c: clean up StrContainsWord
438 fix out-of-bounds pointer in ParseTrackInput
439 o var.c: rename Str_SYSVMatch and its parameters
440 remove unsatisfiable conditions in Var_Set_with_flags
441 document where the variable name is expanded
442 fix documentation for VARP_SUB_ONE
443 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
444 document VAR_READONLY
445 prevent appending to read-only variables
446 extract MayExport from Var_Export1
447 remove redundant evaluations in VarFind
448 replace VarFindFlags with a simple Boolean
449 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
451 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
453 * VERSION (_MAKE_VERSION): 20201028
454 Merge with NetBSD make, pick up
455 o rename defIncPath to defSysIncPath
456 o initialize all CmdOpts fields
457 o lst.c: inline Vector_Get
458 o main.c: refactor main extract
459 InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
460 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
461 InitDefIncPath,CmdOpts_Init,UnlimitFiles
462 o parse.c: merge curFile into includes
463 rename predecessor to order_pred
464 sort ParseSpecial alphabetically
465 remove unused, undocumented .NOEXPORT
466 rename ParseSpecial enum values consistently
467 rename some fields of struct IFile
469 2020-10-26 Simon J Gerraty <sjg@beast.crufty.net>
471 * VERSION (_MAKE_VERSION): 20201026
472 Merge with NetBSD make, pick up
473 o group the command line options and arguments into a struct
474 o rename GNode.cmgn to youngestChild
475 o rename hash functions to identify the type name
476 o negate OP_NOP and rename it to GNode_IsTarget
477 o add GNode_Path to access the path of a GNode
478 o remove macros MIN and MAX
479 o remove unused Lst_Find and Lst_FindFrom
480 o arch.c: and make Arch_FindLib simpler
482 make Arch_ParseArchive simpler
483 o cond.c: inline CondFindStrMatch into FuncMake
484 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
485 omit trailing space in debug output for expanding file patterns
486 refactor DirMatchFiles
487 document that the SearchPath of Dir_FindFile may be NULL
488 remove UNCONST from Dir_Expand
490 o for.c: clean up code for handling .for loops
491 o hash.c: print hash in debug log with fixed width
492 clean up hash table functions
493 reduce amount of string hashing
494 o job.c: refactor JobDeleteTarget
495 use proper enum constants for aborting
496 convert result of JobStart from macros to enum
497 convert abort reason macros to enum
498 rework Job_CheckCommands to reduce indentation
500 add field names in declaration of DEFSHELL_CUSTOM
501 convert JobState and JobFlags to enum types
502 move handling of the "..." command to JobPrintCommands
505 remove Lst_Open, Lst_Next, Lst_Close
506 remove code for circular lists from Lst_Next
507 o main.c: do not attempt to read .MAKE.DEPENFILE if set to
508 /dev/null or anything starting with "no"
509 convert macros for debug flags into enum
510 o make.c: inline Lst_Copy in Make_ExpandUse
511 o meta.c: inline Lst_Find in meta_oodate
512 make Lst_RemoveIf simpler in meta_oodate
513 o parse.c: convert error level for Parse_Error to an enum
514 o suff.c: properly terminate debug output with newline
515 add more details to DEBUG_SRC log
516 replace Dir_CopyDir with Dir_CopyDirSearchPath
517 don't modify GNode name while rebuilding the suffix graph
518 o var.c: reduce duplicate code in VarFind
520 2020-10-22 Simon J Gerraty <sjg@beast.crufty.net>
522 * VERSION (_MAKE_VERSION): 20201022
523 Merge with NetBSD make, pick up
524 o more refactoring and simplification to reduce code size
525 o var.c: extract CanonicalVarname from VarFind
526 o make.c: extract UpdateImplicitParentsVars from Make_Update
527 o main.c: extract PrintVar from doPrintVars
528 extract HandlePWD from main
529 o lst.c: inline simple Lst getters
530 remove unused Lst_ForEach
531 o job.c: move struct Shell from job.h to job.c
534 2020-10-19 Simon J Gerraty <sjg@beast.crufty.net>
536 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
538 2020-10-18 Simon J Gerraty <sjg@beast.crufty.net>
540 * VERSION (_MAKE_VERSION): 20201018
541 Merge with NetBSD make, pick up
543 o rename some Hash_* apis to Hash*
544 o replace execError with execDie
545 o rename Lst_Init to Lst_New
546 o add tags to enum types
547 o rename Stack to Vector
548 o parse.c: more refactoring
549 o unit-tests: make some tests use line buffered stdout
550 o unit-tests/Makefile: in meta mode do not make all tests depend on
551 Makefile, it isn't necessary.
553 2020-10-10 Simon J Gerraty <sjg@beast.crufty.net>
555 * main.c: check for CTL_HW being defined.
556 * unit-tests/Makefile: ensure export tests output are POSIX compliant
557 disable opt-debug-jobs test until it works on ubuntu
559 * VERSION (_MAKE_VERSION): 20201010
560 Merge with NetBSD make, pick up
561 o dir.c: remove pathname limit for Dir_FindHereOrAbove
562 o hash.c: replace strcpy with memcpy in Hash_CreateEntry
563 o main.c: extract init_machine and init_machine_arch from main
564 allow to disable debug logging options
565 o parse.c: enable format string truncation warnings
566 extract parsing of sources from ParseDoDependency
567 split ParseDoSrc into smaller functions
568 hide implementation details from Parse_DoVar
569 clean up parsing of variable assignments
570 split Parse_DoVar into manageable pieces
571 don't modify the given line during Parse_DoVar
572 fix out-of-bounds memory access in Parse_DoVar
573 fix parsing of the :sh assignment modifier
574 o var.c: rework memory allocation for the name of variables
575 extract ApplyModifier_Literal into separate function
576 in lint mode, reject modifiers without delimiter
577 do not export variable names starting with '-'
578 o fix double-free bug in -DCLEANUP mode
579 o more cleanup to enable higher warnings level
582 2020-10-02 Simon J Gerraty <sjg@beast.crufty.net>
584 * VERSION (_MAKE_VERSION): 20201002
585 Merge with NetBSD make, pick up
586 o dir.c: use hash table for looking up open directories by name
587 o main.c: clean up option handling
588 o parse.c: add missing const for Parse_AddIncludeDir
589 o var.c: ApplyModifier_To, update pp in each branch
590 o remove redundant function prototypes
593 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
595 * VERSION (_MAKE_VERSION): 20201001
596 Merge with NetBSD make, pick up
597 o compat.c: comment about "..."
599 2020-09-30 Simon J Gerraty <sjg@beast.crufty.net>
601 * VERSION (_MAKE_VERSION): 20200930
602 Merge with NetBSD make, pick up
603 o job.c: split Job.jobPipe into 2 separate fields
604 replace Lst_Open with direct iteration
605 o lst.c: remove redundant assertions
606 o targ.c: replace Lst_Open with direct iteration
607 o var.c: fix bug in evaluation of indirect variable modifiers
608 extract ApplyModifier_Quote into separate function
609 o make debug logging simpler
611 2020-09-27 Simon J Gerraty <sjg@beast.crufty.net>
613 * VERSION (_MAKE_VERSION): 20200927
614 Merge with NetBSD make, pick up
615 o parse.c: ensure parse errors result in 'stopped in' message.
616 o compat.c: make parameter of Compat_RunCommand const
617 o main.c: extract InitVarTarget from main
618 o parse.c: rename ParseFinishLine to FinishDependencyGroup
619 refactor ParseDoDependency
620 o var.c: Var_Subst no longer returns string result
621 rename Var_ParsePP back to Var_Parse
622 in lint mode, improve error handling for undefined variables
623 extract ParseVarname from Var_Parse
624 o rename Lst_ForEach to Lst_ForEachUntil
625 o inline Lst_ForEachUntil in several cases
626 o clean up API for finding and creating GNodes
627 o fix assertion failure in -j mode with .END node
628 o inline and remove LstNode_Prev and LstNode_Next
629 o use fine-grained type names for lists and their nodes
632 2020-09-11 Simon J Gerraty <sjg@beast.crufty.net>
634 * VERSION (_MAKE_VERSION): 20200911
635 Merge with NetBSD make, pick up
636 o cond.c: split EvalComparison into smaller functions
637 reorder parameters of condition parsing functions
638 reduce code size in CondParser_Eval
639 rename CondGetString to CondParser_String
640 add CondLexer_SkipWhitespace
641 group the condition parsing state into a struct
642 in CondGetString, replace repeated Buf_Add with Buf_AddStr
643 o migrate Var_Parse to Var_ParsePP
644 o add wrappers around ctype.h functions
645 o lst.c: use a stack instead of a list for the nested include path
648 2020-09-04 Simon J Gerraty <sjg@beast.crufty.net>
650 * make-bootstrap.sh.in: adjust object list
652 2020-09-02 Simon J Gerraty <sjg@beast.crufty.net>
654 * VERSION (_MAKE_VERSION): 20200902
655 Merge with NetBSD make, pick up
656 o use make_stat to ensure no confusion over valid fields
657 returned by cached_stat
658 o var.c: make VarQuote const-correct
659 o add unit tests for .for
661 2020-09-01 Simon J Gerraty <sjg@beast.crufty.net>
663 * VERSION (_MAKE_VERSION): 20200901
664 Merge with NetBSD make, pick up
665 o rename Hash_Table fields
666 o make data types in Dir_HasWildcards more precise
668 2020-08-31 Simon J Gerraty <sjg@beast.crufty.net>
670 * VERSION (_MAKE_VERSION): 20200831
671 Merge with NetBSD make, pick up
672 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
673 o lst.c: Lst_Open renable assert that list isn't open
674 o unit test for .TARGET dependent flags
675 o var.c: fix aliasing bug in VarUniq
676 o more unit tests for :u
678 2020-08-30 Simon J Gerraty <sjg@beast.crufty.net>
680 * VERSION (_MAKE_VERSION): 20200830
681 Merge with NetBSD make, pick up
682 o allow for strict type checking for Boolean
683 o Var_Parse never returns NULL
684 o Var_Subst never returns NULL
685 o Lst_Find now takes boolean match function
686 o rename Lst_Memeber to Lst_FindDatum
687 o rename LstNode functions to match their type
688 o rename GNode.iParents to implicitParents
689 o fix assertion failure for .SUFFIXES in archives
690 o compat.c: clean up documentation for CompatInterrupt and Compat_Run
691 remove unreachable code from CompatRunCommand
692 o main.c: simplify getBoolean
693 o stc.c: replace brk_string with simpler Str_Words
694 o suff.c: add debug macros
696 2020-08-28 Simon J Gerraty <sjg@beast.crufty.net>
698 * VERSION (_MAKE_VERSION): 20200828
699 Merge with NetBSD make, pick up
700 o lst.c: inline LstIsValid and LstNodeIsValid
701 o remove trailing S from Lst function names after migration complete
702 o more comment cleanup/clarification
703 o suff.c: clean up suffix handling
706 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
708 * VERSION (_MAKE_VERSION): 20200826
709 Merge with NetBSD make, pick up
710 o enum.c: distinguish between bitsets containing flags and
712 o var.c: fix error message for ::!= modifier with shell error
713 o fix bugs in -DCLEANUP mode
715 2020-08-24 Simon J Gerraty <sjg@beast.crufty.net>
717 * VERSION (_MAKE_VERSION): 20200824
718 Merge with NetBSD make, pick up
719 o in debug mode, print GNode details in symbols
721 2020-08-23 Simon J Gerraty <sjg@beast.crufty.net>
723 * VERSION (_MAKE_VERSION): 20200823
724 Merge with NetBSD make, pick up
725 o lst.c: more asserts,
726 make args to Lst_Find match others.
727 o var.c: pass flags to VarAdd
729 o str.c: brk_string return size_t for nwords
732 2020-08-22 Simon J Gerraty <sjg@beast.crufty.net>
734 * VERSION (_MAKE_VERSION):
735 Merge with NetBSD make, pick up
736 o var.c: support for read-only variables eg .SHELL
737 being the shell used to run scripts.
738 o lst.c: more simplification
739 o more documentation and style cleanup
741 o ensure unit-test/Makefile is run by TEST_MAKE
742 o reduce duplication of header inclusion
744 2020-08-21 Simon J Gerraty <sjg@beast.crufty.net>
746 * VERSION (_MAKE_VERSION): 20200821
747 Merge with NetBSD make, pick up
748 o lst.c: revert invalid assertion - but document it
749 o dir.c: split Dir_Init into two functions
751 2020-08-20 Simon J Gerraty <sjg@beast.crufty.net>
753 * lst.c: needs inttypes.h on Linux
755 * VERSION (_MAKE_VERSION): 20200820
756 Merge with NetBSD make, pick up
757 o make.1: clarify some passages
758 o var.c: more cleanup, clarify comments
759 o make_malloc.c: remove unreachable code
760 o cond.c: make CondGetString easier to debug
761 o simplify list usage
764 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
766 * VERSION (_MAKE_VERSION): 20200816
767 Merge with NetBSD make, pick up
768 o refactor unit-tests to be more fine grained
769 not all tests moved yet
771 2020-08-14 Simon J Gerraty <sjg@beast.crufty.net>
773 * VERSION (_MAKE_VERSION): 20200814
774 Merge with NetBSD make, pick up
775 o more str_concat variants
776 o more enums for flags
777 o var.c: cleanup for higher warnings level
779 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
781 * VERSION (_MAKE_VERSION): 20200810
782 Merge with NetBSD make, pick up
784 o general comment and style cleanup
786 2020-08-08 Simon J Gerraty <sjg@beast.crufty.net>
788 * VERSION (_MAKE_VERSION): 20200808
789 Merge with NetBSD make, pick up
790 o enum.[ch]: streamline, enums for use in flags and debug output
792 o var.c: reduce duplicate code for modifiers
793 debug logging for Var_Parse
794 more detailed debug output
797 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
799 * unit-tests/Makefile: -r for recursive and include Makefile.inc
800 so I can run tests in meta mode
801 supress extra noise if in meta mode
803 * VERSION (_MAKE_VERSION): 20200806
804 Merge with NetBSD make, pick up
805 o parse.c: remove VARE_WANTRES for LINT
806 we just want to check parsing (for now).
808 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
810 * VERSION (_MAKE_VERSION): 20200805
811 Merge with NetBSD make, pick up
812 o make.1: Rework the description of dependence operators
814 2020-08-03 Simon J Gerraty <sjg@beast.crufty.net>
816 * VERSION (_MAKE_VERSION): 20200803
817 Merge with NetBSD make, pick up
818 o revert some C99 usage, for max portability
821 2020-08-02 Simon J Gerraty <sjg@beast.crufty.net>
823 * VERSION (_MAKE_VERSION): 20200802
824 Merge with NetBSD make, pick up
827 2020-08-01 Simon J Gerraty <sjg@beast.crufty.net>
829 * Remove NetBSD specific plumbing from unit-tests/Makefile
831 * VERSION (_MAKE_VERSION): 20200801
832 Merge with NetBSD make, pick up
833 o make Var_Value return const
834 o size_t for buf sizes
835 o optimize some buffer operations - avoid strlen
837 2020-07-31 Simon J Gerraty <sjg@beast.crufty.net>
839 * VERSION (_MAKE_VERSION): 20200731
840 Merge with NetBSD make, pick up
841 o var.c: fix undefinded behavior for incomplete :t modifier
842 fixes unit-test/moderrs on Ubuntu
843 o parse.c: When parsing variable assignments other than :=
844 if DEBUG(LINT) test substition of value, so we get a file and
845 line number in the resulting error.
846 o dir.c: fix parsing of nested braces in dependency lines
849 2020-07-30 Simon J Gerraty <sjg@beast.crufty.net>
851 * VERSION (_MAKE_VERSION): 20200730
852 Merge with NetBSD make, pick up
853 o var.c: minor cleanup
854 o unit-tests: more tests to improve code coverage
856 2020-07-28 Simon J Gerraty <sjg@beast.crufty.net>
858 * VERSION (_MAKE_VERSION): 20200728
859 Merge with NetBSD make, pick up
860 o var.c: more optimizations
862 2020-07-26 Simon J Gerraty <sjg@beast.crufty.net>
864 * VERSION (_MAKE_VERSION): 20200726
865 Merge with NetBSD make, pick up
866 o collapse lsd.lib into lst.c - reduce code size and allow inlining
867 o lots of function comment updates
868 o var.c: more optimizations
869 o make return of Var_Parse const
871 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
873 * VERSION (_MAKE_VERSION): 20200720
874 Merge with NetBSD make, pick up
875 o DEBUG_HASH report stats at end and tone down the noise
876 o var.c: each flag type gets its own prefix.
877 move SysV string matching to var.c
878 make ampersand in ${VAR:from=to&} an ordinary character
879 cleanup and simplify implementation of modifiers
880 o make.1: move documentation for assignment modifiers
882 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
884 * VERSION (_MAKE_VERSION): 20200718
885 Merge with NetBSD make, pick up
886 o DEBUG_HASH to see how well the hash tables are working
888 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
890 * bsd.after-import.mk: make sure we update unit-tests/Makefile
892 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
894 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
896 * VERSION (_MAKE_VERSION): 20200710
897 Merge with NetBSD make, pick up
898 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
899 o meta.c: target flagged .META is out-of-date if meta file missing
901 2020-07-09 Simon J Gerraty <sjg@beast.crufty.net>
903 * VERSION (_MAKE_VERSION): 20200709
904 Merge with NetBSD make, pick up
905 o cond.c: fix for compare_expression when doEval=0
906 o unit-tests/Makefile: rework
907 o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
909 2020-07-04 Simon J Gerraty <sjg@beast.crufty.net>
911 * VERSION (_MAKE_VERSION): 20200704
912 Merge with NetBSD make, pick up
913 (most of this by rillig@)
914 o lots of style and white-space cleanup
915 o lots more unit tests for variable modifiers
916 o simplified description of some functions
917 o str.c: refactor Str_Match
918 o var.c: debugging output for :@
919 constify VarModify parameter
920 fix :hash modifier on 16-bit platforms
921 remove unnecessary forward declarations
922 refactor ApplyModifier_SysV to have less indentation
923 simplify code for :E and :R
924 clean up code for :H and :T
925 refactor ApplyModifiers
927 * var.c: we need stdint.h on some platforms to get uint32_t
928 * unit-test/Makefile: we need to supress the specific error
929 for RE substitution error in modmisc, since it varies accross
932 2020-07-02 Simon J Gerraty <sjg@beast.crufty.net>
934 * VERSION (_MAKE_VERSION): 20200702
935 Merge with NetBSD make, pick up
936 o var.c: more improvements to avoiding unnecessary evaluation
938 o remove flags arg to Var_Set which outside of var.c is always 0
940 2020-07-01 Simon J Gerraty <sjg@beast.crufty.net>
942 * VERSION (_MAKE_VERSION): 20200701
943 Merge with NetBSD make, pick up
944 o var.c: with change to cond.c; ensure that nested variables
945 within a variable name are expanded.
946 o unit-tests/varmisc.mk: test for nested varname
948 2020-06-29 Simon J Gerraty <sjg@beast.crufty.net>
950 * VERSION (_MAKE_VERSION): 20200629
951 Merge with NetBSD make, pick up
952 o cond.c: do not eval unnecessary terms of conditionals.
954 2020-06-25 Simon J Gerraty <sjg@beast.crufty.net>
956 * VERSION (_MAKE_VERSION): 20200625
957 Merge with NetBSD make, pick up
958 o meta.c: report error if lseek in filemon_read fails
960 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
962 * VERSION (_MAKE_VERSION): 20200622
963 Merge with NetBSD make, pick up
964 o dieQuietly: ignore OP_SUBMAKE as too aggressive
966 2020-06-19 Simon J Gerraty <sjg@beast.crufty.net>
968 * VERSION (_MAKE_VERSION): 20200619
969 Merge with NetBSD make, pick up
970 o str.c: performance improvement for Str_Match for multiple '*'
971 o dieQuietly: supress the failure output from make
972 when failing node is a sub-make or a sibling failed.
973 This cuts down greatly on unhelpful noise at the end of
974 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no
976 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
978 * FILES: add LICENSE to appease some packagers.
979 This is an attempt to fairly represent the license on almost
980 200 files, which are almost all BSD-3-Clause
981 The few exceptions being more liberal.
983 * VERSION (_MAKE_VERSION): 20200610
984 Merge with NetBSD make, pick up
987 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
989 * VERSION (_MAKE_VERSION): 20200606
990 Merge with NetBSD make, pick up
993 * Makefile: fix depends for main.o which broke MAKE_VERSION
995 2020-06-05 Simon J Gerraty <sjg@beast.crufty.net>
997 * VERSION (_MAKE_VERSION): 20200605
998 Merge with NetBSD make, pick up
999 o dir.c: cached_stats - don't confuse stat and lstat results.
1000 o var.c: add :Or for reverse sort.
1002 2020-05-24 Simon J Gerraty <sjg@beast.crufty.net>
1004 * configure.in: add AC_PROG_CC_C99 for mipspro compiler
1005 also if --with-filemon= specifies path to filemon.h
1007 * dirname.c: remove include of namespace.h
1009 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
1011 * VERSION (_MAKE_VERSION): 20200517
1012 Merge with NetBSD make, pick up
1013 o modified dollar tests to avoid shell dependencies
1014 o new tests for .INCLUDEFROM
1016 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
1018 * unit-tests/dollar.mk: tweak '1 dollar literal' test
1019 to not depend so much on shell behavior
1021 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
1023 * VERSION (_MAKE_VERSION): 20200510
1024 Merge with NetBSD make, pick up
1025 o unit test for dollar handling
1027 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
1029 * VERSION (_MAKE_VERSION): 20200506
1030 Merge with NetBSD make, pick up
1031 o str.c: empty string does not match % pattern
1032 plus unit-test changes
1034 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
1036 * VERSION (_MAKE_VERSION): 20200504
1037 May the 4th be with you
1038 Merge with NetBSD make, pick up
1039 o var.c: import handling of old sysV style modifier using '%'
1040 o str.c: refactor brk_string
1041 o unit-tests: add test case for lazy conditions
1043 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
1045 * VERSION (_MAKE_VERSION): 20200418
1047 * configure.in: use_makefile=no for cygwin et al.
1048 case insensitive filesystems just don't work if both
1049 makefile and Makefile exist.
1050 NOTE: bmake does not support cygwin and likely never will,
1051 but if brave souls want to try it - help them out.
1053 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
1055 * VERSION (_MAKE_VERSION): 20200402
1056 Merge with NetBSD make, pick up
1057 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
1058 a blank command is perfectly valid.
1060 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
1062 * VERSION (_MAKE_VERSION): 20200330
1063 Merge with NetBSD make, pick up
1064 o make.h: extern debug_file
1066 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
1068 * VERSION (_MAKE_VERSION): 20200318
1069 Merge with NetBSD make, pick up
1070 o meta.c: meta_oodate, check for corrupted meta file
1071 earlier and more often.
1073 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
1075 * VERSION (_MAKE_VERSION): 20200220
1077 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
1079 * boot-strap: unset MAKEFLAGS
1081 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
1083 * VERSION (_MAKE_VERSION): 20200212
1084 * meta.c: meta_compat_parent check for USE_FILEMON
1085 patch from Soeren Tempel
1087 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
1090 Merge with NetBSD make, pick up
1091 o meta.c: fix compat mode, need to call meta_job_output()
1092 o job.c: extra fds for meta mode not needed if using filemon_dev
1094 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
1097 Merge with NetBSD make, pick up
1098 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1101 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
1104 Merge with NetBSD make, pick up
1105 o filemon/filemon_{dev,ktrace}.c: allow selection of
1106 filemon implementation. filemon_dev.c uses the kernel module
1107 while filemon_ktrace.c leverages the fktrace api available in
1108 NetBSD. filemon_ktrace.c can hopefully form the basis for
1109 adding support for other tracing mechanisms such as strace on
1111 o meta.c: when target is out-of-date per normal make rules
1112 record value of .OODATE in meta file.
1114 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
1117 Merge with NetBSD make, pick up
1118 o parse.c: don't pass NULL to realpath(3)
1119 some versions cannot handle it.
1121 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
1124 Merge with NetBSD make, pick up
1125 o parse.c: ParseDoDependency: free paths rather than assert
1127 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
1131 * configure.in: add --without-makefile to avoid generating
1132 makefile and make-bootstrap.sh
1134 * include Makefile.inc if it exists
1136 * Use Makefile and Makefile.config.in in unit-tests
1137 so we can use just: make obj && make && make test
1138 when bmake is already available.
1139 We add --without-makefile to CONFIGURE_ARGS in this case.
1141 * tweak bsd.after-import.mk (captures Makefile.config etc
1142 after import to FreeBSD for example) to cope with all the above.
1144 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
1147 Merge with NetBSD make, pick up
1148 o parse.c: ParseVErrorInternal use .PARSEDIR
1149 and apply if relative, and then use .PARSEFILE
1150 for consistent result.
1152 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
1155 Merge with NetBSD make, pick up
1156 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1158 o var.c: avoid SEGFAULT in .unexport-env
1159 when MAKELEVEL is not set
1161 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
1164 Merge with NetBSD make, pick up
1165 o fix for unit-tests/varquote.mk on Debian
1167 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
1170 Merge with NetBSD make, pick up
1172 o dir.c: cleanup caching of stats
1174 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
1176 * Makefile.config.in: use += where it makes sense.
1178 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1181 Merge with NetBSD make, pick up
1182 o job.c: skip polling job token pipe
1184 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1187 Merge with NetBSD make, pick up
1188 o parse.c: be more cautious about detecting depenency line
1189 rather than sysV style include.
1191 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
1194 Merge with NetBSD make, pick up
1195 o parse.c: avoid calling sysconf for every call to loadfile
1197 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1200 Merge with NetBSD make, pick up
1201 o var.c: Var_Set handle NULL value anytime.
1203 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
1206 Merge with NetBSD make, pick up
1207 o parse.c: do not treat .info as warning with -W
1209 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
1212 Merge with NetBSD make, pick up
1213 o var.c: Var_Append use Var_Set if var not previously set
1214 so that VAR_CMD is handled correctly.
1215 Add a suitable unit-test.
1217 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1219 * VERSION (_MAKE_VERSION): 20171126
1221 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1222 since AC_TRY_COMPILE puts input inside main()
1223 which upsets modern compilers.
1225 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
1228 Merge with NetBSD make, pick up
1229 o var.c: do not append to variable set on command line
1230 add unit-test to catch this.
1232 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1235 Merge with NetBSD make, pick up
1236 o main.c: ignore empty MAKEOBJDIR
1238 * Makefile.config.in:
1239 make @prefix@ @machine*@ and @default_sys_path@ defaults.
1241 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
1245 * unit-tests/dotwait.mk: redirect stderr through pipe for more
1246 consistent result on some platforms.
1248 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
1250 * machine.sh: entry for AIX
1252 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1254 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1255 to a file that can be included by configure as well as make.
1256 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1258 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
1260 * Makefile (_MAKE_VERSION): 20170810
1261 Merge with NetBSD make, pick up
1262 o meta.c: if target is in subdir we only need subdir name in
1265 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
1267 * Makefile (_MAKE_VERSION): 20170720
1268 Merge with NetBSD make, pick up
1269 o compat.c: pass SIGINT etc onto child and wait for it to exit
1270 before we self-terminate.
1272 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1274 * Makefile (_MAKE_VERSION): 20170711
1275 forgot to update after merge on 20170708 ;-)
1276 o main.c: refactor to reduce size of main function.
1277 add -v option to always fully expand values.
1278 o meta.c: ensure command output in meta file has ending newline
1279 even when filemon not being used.
1280 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1281 pathname via ':L' since any ':' in pathname breaks that.
1282 Instead set a '${.p.}' to pathname in the target context and
1285 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
1287 * Makefile (_MAKE_VERSION): 20170510
1288 Merge with NetBSD make, pick up
1289 o main.c: Main_SetObjdir: ensure buf2 is in scope
1291 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
1293 * Makefile (_MAKE_VERSION): 20170505
1296 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1298 * parse.c: not everyone has stdint.h
1300 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1302 * Makefile (_MAKE_VERSION): 20170501
1305 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1307 * Makefile (_MAKE_VERSION): 20170421
1308 Merge with NetBSD make, pick up
1309 o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1311 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1313 * Makefile (_MAKE_VERSION): 20170420
1314 Merge with NetBSD make, pick up
1315 o main.c: only use -C arg "as is" if it contains no
1318 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1320 * Makefile (_MAKE_VERSION): 20170418
1321 Merge with NetBSD make, pick up
1322 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1324 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
1326 * Makefile (_MAKE_VERSION): 20170417
1327 Merge with NetBSD make, pick up
1328 o fixes a number of coverity complaints
1329 - check return value of fseek, fcntl
1330 - plug memory leak in Dir_FindFile, Var_LoopExpand,
1331 JobPrintCommand, ParseTraditionalInclude
1332 - use bmake_malloc() where NULL is not tollerated
1333 - use MAKE_ATTR_UNUSED rather that kludges like
1334 return(unused ? 0 : 0)
1335 - use purge_cached_realpaths() rather than abuse cached_realpath()
1337 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1339 * Makefile (_MAKE_VERSION): 20170413
1340 Merge with NetBSD make, pick up
1341 o main.c: when setting .OBJDIR ignore '$' in paths.
1343 * job.c: use MALLOC_OPTIONS to set malloc_options.
1345 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1347 * Makefile (_MAKE_VERSION): 20170411
1348 Merge with NetBSD make, pick up
1349 o str.c: Str_Match: allow [^a-z] to behave as expected.
1351 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1353 * Makefile (_MAKE_VERSION): 20170326
1354 Merge with NetBSD make, pick up
1355 o main.c: purge relative paths from realpath cache when .OBJDIR
1358 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1360 * Makefile (_MAKE_VERSION): 20170311
1361 Merge with NetBSD make, pick up
1362 o main.c: only use -C arg "as is" if it starts with '/'.
1364 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1366 * Makefile (_MAKE_VERSION): 20170301
1367 Merge with NetBSD make, pick up
1368 o main.c: use -C arg "as is" rather than getcwd()
1369 if they identify the same directory.
1370 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1372 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
1374 * Makefile (_MAKE_VERSION): 20170201
1375 Merge with NetBSD make, pick up
1376 o var.c: allow :_=var and avoid use of special context.
1378 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
1380 * Makefile (_MAKE_VERSION): 20170130
1381 Merge with NetBSD make, pick up
1382 o var.c: add :range and :_
1383 o main.c: partially initialize Dir_* before MainParseArgs()
1385 If -V, skip Main_ExportMAKEFLAGS()
1387 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
1389 * Makefile (_MAKE_VERSION): 20170114
1390 Merge with NetBSD make, pick up
1391 o var.c: allow specifying the utc value used by :{gm,local}time
1393 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1395 * Makefile (_MAKE_VERSION): 20161212
1396 Merge with NetBSD make, pick up
1397 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1399 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
1401 * Makefile (_MAKE_VERSION): 20161209
1402 Merge with NetBSD make, pick up
1403 o main.c: cleanup setting of .OBJDIR
1404 o parse.c: avoid coredump from (var)=val
1406 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1408 * Makefile (_MAKE_VERSION): 20161126
1409 Merge with NetBSD make, pick up
1410 o make.c: Make_OODate: report src node name if path not set
1412 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1414 * Makefile (_MAKE_VERSION): 20160926
1415 Merge with NetBSD make, pick up
1416 o support for .DELETE_ON_ERROR: (remove targets that fail)
1418 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1420 * Makefile MAN: tweak .Dt to match ${PROG}
1422 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
1424 * Makefile (_MAKE_VERSION): 20160818
1425 its a neater number; pick up whitespace fixes to man page.
1427 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
1429 * Makefile (_MAKE_VERSION): 20160817
1430 Merge with NetBSD make, pick up
1431 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1432 so we can call it before adding entries to missingFiles.
1433 Thus we do not track files we have been told to ignore.
1435 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
1437 * Makefile (_MAKE_VERSION): 20160815
1438 Merge with NetBSD make, pick up
1439 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1440 pathnames, and skip if the expansion is empty.
1441 Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1443 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1445 * Makefile (_MAKE_VERSION): 20160812
1446 Merge with NetBSD make, pick up
1447 o meta.c: remove all missingFiles entries that match a deleted
1449 o main.c: set .ERROR_CMD if possible.
1451 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1453 * Makefile (_MAKE_VERSION): 20160606
1454 Merge with NetBSD make, pick up
1455 o dir.c: extend mtimes cache to others via cached_stat()
1457 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1459 * Makefile (_MAKE_VERSION): 20160604
1460 Merge with NetBSD make, pick up
1461 o meta.c: missing filemon data is only relevant if we read a
1463 Also do not return oodate for a missing metafile if gn->path
1466 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1468 * Makefile (_MAKE_VERSION): 20160602
1469 Merge with NetBSD make, pick up
1470 o cached_realpath(): avoid hitting filesystem more than necessary.
1471 o meta.c: refactor need_meta decision, add knobs for
1472 missing meta file and filemon data wrt out-of-datedness.
1474 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1476 * Makefile (_MAKE_VERSION): 20160528
1478 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1480 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1482 * Makefile (_MAKE_VERSION): 20160512
1483 Merge with NetBSD make, pick up
1484 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1485 this is useful for gcov builds.
1486 o propagate errors from filemon(4).
1488 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
1490 * Makefile (_MAKE_VERSION): 20160509
1491 Merge with NetBSD make, pick up
1492 o remove use of non-standard types u_int etc.
1493 o meta.c: apply realpath() before matching against metaIgnorePaths
1495 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
1497 * Makefile (_MAKE_VERSION): 20160404
1498 Merge with NetBSD make, pick up
1499 o allow makefile to set .MAKE.JOBS
1501 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
1503 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1505 * Makefile (_MAKE_VERSION): 20160315
1506 Merge with NetBSD make, pick up
1507 o fix handling of archive members
1509 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1511 * Makefile (_MAKE_VERSION): rename variable to avoid interference
1512 with checks for ${MAKE_VERSION}
1514 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1516 * Makefile (MAKE_VERSION): 20160310
1517 Merge with NetBSD make, pick up
1518 o meta.c: treat missing Read file same as Write, incase we Delete it.
1520 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1522 * Makefile (MAKE_VERSION): 20160307
1523 Merge with NetBSD make, pick up
1524 o var.c: fix :ts\nnn to be octal by default.
1525 o meta.c: meta_finish() to cleanup memory.
1527 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1529 * Makefile (MAKE_VERSION): 20160226
1530 Merge with NetBSD make, pick up
1531 o meta.c: allow meta file for makeDepend if makefiles want it.
1533 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
1535 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
1536 for backwards compatability.
1538 * Makefile (MAKE_VERSION): 20160220
1539 Merge with NetBSD make, pick up
1540 o var.c: add knob to control handling of '$$' in :=
1542 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1544 * Makefile (MAKE_VERSION): 20160218
1545 Merge with NetBSD make, pick up
1546 o var.c: add .export-literal allows us to fix sys.clean-env.mk
1547 post the changes to Var_Subst.
1548 Var_Subst now takes flags, and does not consume '$$' in :=
1550 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
1552 * Makefile (MAKE_VERSION): 20160217
1553 Merge with NetBSD make, pick up
1554 o var.c: preserve '$$' in :=
1555 o parse.c: add .dinclude for handling included
1556 makefile like .depend
1558 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
1560 * Makefile (MAKE_VERSION): 20151220
1561 Merge with NetBSD make, pick up
1562 o suff.c: re-initialize suffNull when clearing suffixes.
1564 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
1566 * Makefile (MAKE_VERSION): 20151201
1567 Merge with NetBSD make, pick up
1568 o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1569 o meta.c: meta_oodate: use lstat(2) for checking link target
1570 in case it is a symlink.
1571 o var.c: avoid calling brk_string and Var_Export1 with empty
1574 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1576 * Makefile (MAKE_VERSION): 20151126
1577 Merge with NetBSD make, pick up
1578 o parse.c: ParseTrackInput don't access beyond
1581 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
1583 * Makefile (MAKE_VERSION): 20151022
1585 * Add support for BSD/OS which lacks inttypes.h
1586 and really needs sys/param.h for sys/sysctl.h
1587 also 'type' is not a shell builtin.
1589 * var.c: eliminate uint32_t and need for inttypes.h
1591 * main.c: PrintOnError flush stdout before run .ERROR
1593 * parse.c: cope with _SC_PAGESIZE not being defined.
1596 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
1598 * Makefile (MAKE_VERSION): 20151020
1599 Merge with NetBSD make, pick up
1600 o var.c: fix uninitialized var
1602 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1604 * var.c: the conditional expressions used with ':?' can be
1605 expensive, if already discarding do not evaluate or expand
1608 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1610 * Makefile (MAKE_VERSION): 20151010
1611 Merge with NetBSD make, pick up
1612 o Add Boolean wantit flag to Var_Subst and Var_Parse
1613 when FALSE we know we are discarding the result and can
1614 skip operations like Cmd_Exec.
1616 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
1618 * Makefile (MAKE_VERSION): 20151009
1619 Merge with NetBSD make, pick up
1620 o var.c: don't check for NULL before free()
1621 o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1623 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
1625 * Makefile (MAKE_VERSION): 20150910
1626 Merge with NetBSD make, pick up
1627 o main.c: with -w print Enter/Leaving messages for objdir too
1629 o centralize shell metachar handling
1631 * FILES: add metachar.[ch]
1633 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1635 * Makefile (MAKE_VERSION): 20150606
1636 Merge with NetBSD make, pick up
1637 o make.1: document .OBJDIR target
1639 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1641 * Makefile (MAKE_VERSION): 20150505
1642 Merge with NetBSD make, pick up
1643 o cond.c: be strict about lhs of comparison when evaluating .if
1644 but less so when called from variable expansion.
1645 o unit-tests/cond2.mk: test various error conditions
1647 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1649 * machine.sh (MACHINE): Add Bitrig
1650 patch from joerg@netbsd.org
1652 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1654 * Makefile (MAKE_VERSION): 20150418
1655 Merge with NetBSD make, pick up
1656 o job.c: use memmove() rather than memcpy()
1658 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
1661 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1663 * Makefile (MAKE_VERSION): 20150411
1664 bump version - only mk/ changes.
1666 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
1668 * Makefile (MAKE_VERSION): 20150410
1669 Merge with NetBSD make, pick up
1670 o document different handling of '-' in jobs mode vs compat
1671 o fix jobs mode so that '-' only applies to whole job
1672 when shell lacks hasErrCtl
1673 o meta.c: use separate vars to track lcwd and latestdir (read)
1676 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
1678 * Makefile (MAKE_VERSION): 20150401
1679 Merge with NetBSD make, pick up
1680 o meta.c: close meta file in child
1682 * Makefile: use BINDIR.bmake if set.
1683 Same for MANDIR and SHAREDIR
1684 Handy for testing release candidates
1685 in various environments.
1687 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1689 * move initialization of savederr to block where it is used
1690 to avoid spurious warning from gcc5
1692 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1694 * Makefile (MAKE_VERSION): 20141111
1695 just a cooler number
1697 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1699 * Makefile (MAKE_VERSION): 20141105
1700 Merge with NetBSD make, pick up
1701 o revert major overhaul of suffix handling
1702 and POSIX compliance - too much breakage
1703 and impossible to make backwards compatible.
1704 o we still have the new unit test structure which is ok.
1705 o meta.c ensure "-- filemon" is at start of line.
1707 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
1709 * configure.in: test that result of getconf PATH_MAX is numeric
1710 and discard if not. Apparently needed for Hurd.
1712 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1714 * Makefile (MAKE_VERSION): 20140830
1715 Merge with NetBSD make, pick up
1716 o major overhaul of suffix handling
1717 o improved POSIX compliance
1718 o overhauled unit-tests
1720 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1722 * Makefile (MAKE_VERSION): 20140620
1723 Merge with NetBSD make, pick up
1724 o var.c return varNoError rather than var_Error for ::= modifiers.
1726 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
1728 * Makefile (MAKE_VERSION): 20140522
1729 Merge with NetBSD make, pick up
1730 o var.c detect some parse errors.
1732 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1734 * Fix spelling errors - patch from Pedro Giffuni
1736 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1738 * Makefile (MAKE_VERSION): 20140214
1739 Merge with NetBSD make, pick up
1741 o use Var_Value to get MAKEOBJDIR[PREFIX]
1742 o reduced realloc'ign in brk_string.
1743 * configure.in: add a check for compiler supporting __func__
1745 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
1747 * boot-strap: ignore mksrc=none
1749 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
1751 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1753 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
1755 * Makefile (MAKE_VERSION): 20140101
1756 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
1757 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
1758 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
1760 * configure.in: Add AC_PREREQ and check for
1761 sysctl; patch from Andrew Shadura andrewsh at debian.org
1763 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
1765 * Makefile (MAKE_VERSION): 20131010
1766 * lose the const from arg to systcl to avoid problems on older BSDs.
1768 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1770 * Makefile (MAKE_VERSION): 20131001
1771 Merge with NetBSD make, pick up
1772 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
1773 hw.machine_arch if necessary.
1774 o meta.c: meta_oodate - need to look at src of Link and target
1776 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
1777 provide __arraycount() if needed.
1779 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
1781 * Makefile (MAKE_VERSION): 20130904
1782 Merge with NetBSD make, pick up
1783 o Add VAR_INTERNAL context, so that internal setting of
1784 MAKEFILE does not override value set by makefiles.
1786 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
1788 * Makefile (MAKE_VERSION): 20130902
1789 Merge with NetBSD make, pick up
1790 o CompatRunCommand: only apply shellErrFlag when errCheck is true
1792 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
1794 * Makefile (MAKE_VERSION): 20130828
1795 Merge with NetBSD make, pick up
1796 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
1797 o Call Job_SetPrefix() from Job_Init() so makefiles have
1798 opportunity to set .MAKE.JOB.PREFIX
1800 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
1802 * Makefile (MAKE_VERSION): 20130730
1803 Merge with NetBSD make, pick up
1804 o Allow suppression of --- job -- tokens by setting
1805 .MAKE.JOB.PREFIX empty.
1807 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
1809 * Makefile (MAKE_VERSION): 20130716
1810 Merge with NetBSD make, pick up
1811 o number of gmake compatibility tweaks
1812 -w for gmake style entering/leaving messages
1813 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
1814 handle MAKEFLAGS containing only letters.
1815 o when overriding a GLOBAL variable on the command line,
1816 delete it from GLOBAL context so -V doesn't show the wrong
1819 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
1821 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
1823 * Makefile (MAKE_VERSION): 20130706
1824 Merge with NetBSD make, pick up
1825 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
1826 true so that CompatRunCommand() can use it, to ensure
1827 consistent behavior with jobs mode.
1828 o use MAKE_LEVEL_ENV to define the variable to propagate
1829 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
1830 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
1833 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1835 * Makefile (MAKE_VERSION): 20130604
1836 Merge with NetBSD make, pick up
1837 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
1838 to avoid leaking descriptors.
1840 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1842 * Makefile (MAKE_VERSION): 20130528
1843 Merge with NetBSD make, pick up
1844 o var.c: cleanup some left-overs in VarHash()
1846 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
1848 * Makefile (MAKE_VERSION): 20130520
1849 generate manifest from component FILES rather than have to
1850 update FILES when mk/FILES changes.
1852 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
1854 * Makefile (MAKE_VERSION): 20130518
1855 Merge with NetBSD make, pick up
1856 o suff.c: don't skip all processsing for .PHONY targets
1857 else wildcard srcs do not get expanded.
1858 o var.c: expand name of variable to delete if necessary.
1860 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1862 * Makefile (MAKE_VERSION): 20130330
1863 Merge with NetBSD make, pick up
1864 o meta.c: refine the handling of .OODATE in commands.
1865 Rather than suppress command comparison for the entire script
1866 as though .NOMETA_CMP had been used, only suppress it for the
1868 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
1869 suppress comparison of a command without otherwise affecting it.
1870 o make.1: document that
1872 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
1874 * Makefile (MAKE_VERSION): 20130321
1875 yes, not quite right but its a cooler number.
1876 Merge with NetBSD make, pick up
1877 o parse.c: fix ParseGmakeExport to be portable
1878 and add a unit-test.
1879 * meta.c: call meta_init() before makefiles are read and if built
1880 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
1881 this let's makefiles test for support.
1882 Call meta_mode_init() to process .MAKE.MODE.
1884 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1886 * Makefile (MAKE_VERSION): 20130305
1887 Merge with NetBSD make, pick up
1888 o run .STALE: target when a dependency from .depend is missing.
1889 o job.c: add Job_RunTarget() for the above and .BEGIN
1891 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1893 * Makefile (MAKE_VERSION): 20130303
1894 Merge with NetBSD make, pick up
1895 o main.c: set .MAKE.OS to utsname.sysname
1896 o job.c: more checks for read and poll errors
1897 o var.c: lose VarChangeCase() saves 4% time
1899 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
1901 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
1902 want to use MAKEOBJDIR
1904 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
1906 * Merge with NetBSD make, pick up
1907 o make.1: more info on how shell commands are handled.
1908 o job.c,main.c: detect write errors to job pipes.
1910 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
1912 * Makefile (MAKE_VERSION): 20130123
1913 Merge with NetBSD make, pick up
1914 o meta.c: if script uses .OODATE and meta_oodate() decides
1915 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
1916 o var.c: in debug output indicate which variabale modifiers
1918 o remove Check_Cwd logic the makefiles have been fixed.
1920 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1922 * makefile.in: add a simple makefile for folk who insist on
1923 ./configure; make; make install
1924 it just runs boot-strap
1925 * include mk/* to accommodate the above
1926 * boot-strap: re-work to accommodate the above
1927 mksrc defaults to $Mydir/mk
1928 allow op={configure,build,install,clean,all}
1929 add options to facilitate install
1930 * Makefile.config.in: just the bits set by configure
1931 * Makefile: bump version to 20121212
1932 abandon Makefile.in (NetBSD Makefile)
1933 leverage mk/* instead
1934 * configure.in: ensure srcdir is absolute
1936 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1938 * Makefile.in (MAKE_VERSION): 20121111
1939 fix generation of bmake.cat1
1941 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
1943 * Makefile.in (MAKE_VERSION): 20121109
1944 Merge with NetBSD make, pick up
1945 o make.c: MakeBuildChild: return 0 so search continues if a
1946 .ORDER dependency is detected.
1947 o unit-tests/order: test the above
1949 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
1951 * Makefile.in (MAKE_VERSION): 20121102
1952 Merge with NetBSD make, pick up
1953 o cond.c: allow cond_state[] to grow.
1954 In meta mode with a very large tree, we can hit the limit
1955 while processing dirdeps.
1957 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
1959 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
1961 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1963 * Makefile.in (MAKE_VERSION): 20121010
1964 o protect syntax that only bmake parses correctly.
1965 o remove auto setting of FORCE_MACHINE, use configure's
1966 --with-force-machine=whatever if that is desired.
1968 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
1970 * Makefile.in: do not lose history from make.1 when generating bmake.1
1972 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
1974 * Makefile.in (MAKE_VERSION): 20121007
1975 Merge with NetBSD make, pick up
1976 o compat.c: ignore empty commands - same as jobs mode.
1977 o make.1: document meta chars that cause use of shell
1979 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
1981 * Makefile.in (MAKE_VERSION): bump version to 20120911
1982 * bsd.after-import.mk: include Makefile.inc early and allow it to
1985 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
1987 * Makefile.in (MAKE_VERSION): bump version to 20120831
1988 Merge with NetBSD make, pick up
1989 o cast sizeof() to int for comparison
1990 o minor make.1 tweak
1992 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1994 * Makefile.in (MAKE_VERSION): bump version to 20120830
1995 Merge with NetBSD make, pick up
1996 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
1997 o debug flag -dV causes -V to show raw value regardless.
1999 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
2001 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2004 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
2006 * Makefile.in (MAKE_VERSION): bump version to 20120704
2007 Merge with NetBSD make, pick up
2008 o Job_ParseShell should call Shell_Init if it has been
2010 * Makefile.in: set USE_META based on configure result.
2011 also .PARSEDIR is safer indicator of bmake.
2013 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
2015 * Makefile.in: bump version to 20120626
2016 ensure CPPFLAGS is in CFLAGS
2017 * meta.c: avoid nested externs
2018 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2020 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
2022 * Makefile.in (MAKE_VERSION): bump version to 20120620
2023 Merge with NetBSD make, pick up
2024 o make_malloc.c: avoid including make_malloc.h again
2026 * Makefile.in: avoid bmake only syntax or protect with
2027 .if defined(.MAKE.LEVEL)
2028 * bsd.after-import.mk: replace .-include with .sinclude
2029 ensure? SRCTOP gets a value
2030 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
2032 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
2034 * Makefile.in (MAKE_VERSION): bump version to 20120612
2035 Merge with NetBSD make, pick up
2036 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
2037 for greater portability.
2038 o unit-tests/forloop: check that .for works as expected wrt
2039 number of times and with "quoted strings".
2041 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2043 * Makefile.in (MAKE_VERSION): bump version to 20120606
2044 Merge with NetBSD make, pick up
2045 o compat.c: use kill(2) rather than raise(3).
2046 * configure.in: look for sys/dev/filemon
2047 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
2048 and pass BOOTSTRAP_XTRAS to boot-strap.
2050 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2052 * Makefile.in (MAKE_VERSION): bump version to 20120604
2053 Merge with NetBSD make, pick up
2054 o util.c and var.c share same var for tracking if environ
2055 has been reallocated.
2056 o util.c provide getenv with setenv.
2057 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
2058 when the shell actively strips .MAKE.* from the environment.
2059 We still refer to the variable always as .MAKE.LEVEL
2060 * util.c fix bug in findenv() was finding prefix of name.
2061 * compat.c: re-raising SIGINT etc after running .INTERRUPT
2062 results in more reliable termination of all activity on many
2065 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
2067 * Makefile.in (MAKE_VERSION): bump version to 20120602
2068 Merge with NetBSD make, pick up
2069 o for.c: handle quoted items in .for list
2071 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
2073 * Makefile.in (MAKE_VERSION): bump version to 20120530
2074 Merge with NetBSD make, pick up
2075 o compat.c: ignore empty command.
2077 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2079 * Makefile.in (MAKE_VERSION): bump version to 20120524
2080 * FILES: add bsd.after-import.mk:
2081 A simple means of integrating bmake into a BSD build system.
2083 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2085 * Makefile.in (MAKE_VERSION): bump version to 20120520
2086 Merge with NetBSD make, pick up
2087 o increased limit for nested conditionals.
2089 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
2091 * Makefile.in (MAKE_VERSION): bump version to 20120518
2092 Merge with NetBSD make, pick up
2093 o use _exit(2) in signal hanlder
2094 o Don't use the [dir] cache when building nodes that might have
2095 changed since the last exec.
2096 o Avoid nested extern declaration warnings.
2098 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
2100 * meta.c (fgetLine): avoid %z - not portable.
2101 * parse.c: Since we moved include of sys/mman.h
2102 and def's of MAP_COPY etc. we got dups from a merge.
2104 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
2106 * Makefile.in (MAKE_VERSION): bump version to 20120420
2107 Merge with NetBSD make, pick up
2108 o restore duplicate supression in .MAKE.MAKEFILES
2109 runtime saving can be significant.
2110 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2111 consumption up to 20%.
2113 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2115 * Makefile.in (MAKE_VERSION): bump version to 20120420
2116 Merge with NetBSD make, pick up
2117 o remove duplicate supression in .MAKE.MAKEFILES
2118 o improved dir cache behavior
2119 o gmake'ish export command
2121 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
2123 * Makefile.in (MAKE_VERSION): bump version to 20120325
2124 Merge with NetBSD make, pick up
2125 o fix parsing of :[#] in conditionals.
2127 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
2129 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2130 since some systems cannot cope with .Nx <version>
2132 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
2134 * Makefile.in (MAKE_VERSION): bump version to 20111111
2135 Merge with NetBSD make, pick up
2136 o debug output for .PARSEDIR and .PARSEFILE
2138 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2140 * Makefile.in (MAKE_VERSION): bump version to 20111010
2142 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
2144 * boot-strap: check for an expected file in the dirs we look for.
2145 * make-bootstrap.sh: pass on LDSTATIC
2147 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
2149 * Makefile.in (MAKE_VERSION): bump version to 20111001
2150 Merge with NetBSD make, pick up
2151 o ensure .PREFIX is set for .PHONY
2152 and .TARGET set for .PHONY run via .END
2153 o __dead used consistently
2155 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
2157 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2159 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
2161 * Makefile.in (MAKE_VERSION): bump version to 20110905
2162 Merge with NetBSD make, pick up
2163 o meta_oodate: ignore makeDependfile
2165 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
2167 * Makefile.in (MAKE_VERSION): bump version to 20110828
2168 Merge with NetBSD make, pick up
2169 o silent=yes in .MAKE.MODE causes meta mode to mark targets
2170 as SILENT if a .meta file is created
2172 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
2174 * Makefile.in (MAKE_VERSION): bump version to 20110818
2175 Merge with NetBSD make, pick up
2176 o in meta mode, if target flagged .META a missing .meta file
2177 means target is out-of-date
2178 o fixes for gcc 4.5 warnings
2179 o simplify job printing code
2181 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
2183 * Makefile.in (MAKE_VERSION): bump version to 20110808
2184 Merge with NetBSD make, pick up
2185 o do not touch OP_SPECIAL targets when doing make -t
2187 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
2189 * Makefile.in (MAKE_VERSION): bump version to 20110622
2190 Merge with NetBSD make, pick up
2191 o meta_oodate detect corrupted .meta file and declare oodate.
2192 * configure.in: add check for setsid
2194 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
2196 * Merge with NetBSD make, pick up
2197 o unit-tests/modts now works on MirBSD
2199 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2201 * Makefile.in (MAKE_VERSION): bump version to 20110606
2202 Merge with NetBSD make, pick up
2203 o ApplyModifiers: when we parse a variable which is not
2204 the entire modifier string, or not followed by ':', do not
2205 consider it as containing modifiers.
2206 o loadfile: ensure newline at end of mapped file.
2208 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2210 * Makefile.in (MAKE_VERSION): bump version to 20110505
2211 Merge with NetBSD make, pick up
2212 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2213 of make's control. In meta mode, any generated file within
2214 said bailiwick, which is found to be missing, causes current
2215 target to be out-of-date.
2217 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
2219 * Makefile.in (MAKE_VERSION): bump version to 20110411
2220 Merge with NetBSD make, pick up
2221 o when long modifiers fail to match, check sysV style.
2224 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
2226 * Makefile.in (MAKE_VERSION): bump version to 20110410
2227 Merge with NetBSD make, pick up
2228 o :hash - cheap 32bit hash of value
2229 o :localtime, :gmtime - use value as format string for strftime.
2231 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
2233 * Makefile.in (MAKE_VERSION): bump version to 20110330
2234 mostly because its a cooler version.
2235 Merge with NetBSD make, pick up
2236 o NetBSD tags for meta.[ch]
2237 o job.c call meta_job_finish() after meta_job_error().
2238 o meta_job_error() should call meta_job_finish() to ensure
2239 .meta file is closed, and safe to copy - if .ERROR target wants.
2240 meta_job_finish() is safe to call repeatedly.
2242 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
2244 * unit-tests/modts: use printf if it is a builtin,
2245 to save us from MirBSD
2247 * Makefile.in (MAKE_VERSION): bump version to 20110329
2248 Merge with NetBSD make, pick up
2249 o fix for use after free() in CondDoExists().
2250 o meta_oodate() report extra commands and return earlier.
2252 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
2254 * Makefile.in (MAKE_VERSION): bump version to 20110327
2255 Merge with NetBSD make, pick up
2256 o meta.c, if .MAKE.MODE contains curdirOk=yes
2257 allow creating .meta files in .CURDIR
2258 * boot-strap (TOOL_DIFF): aparently at least on linux distro
2259 formats the output of 'type' differently - so eat any "()"
2261 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
2263 * Makefile.in (MAKE_VERSION): bump version to 20110306
2264 Merge with NetBSD make, pick up
2265 o meta.c, only do getcwd() once
2267 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
2269 * Makefile.in (MAKE_VERSION): bump version to 20110305
2270 Merge with NetBSD make, pick up
2271 o correct sysV substitution handling of empty lhs and variable
2272 o correct exists() check for dir with trailing /
2273 o correct handling of modifiers for non-existant variables
2274 during evaluation of conditionals.
2275 o ensure MAP_FILE is defined.
2276 o meta.c use curdir[] now exported by main.c
2278 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
2280 * Makefile.in (MAKE_VERSION): bump version to 20110225
2281 Merge with NetBSD make, pick up
2282 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2283 makefiles have been read.
2284 o fix example of :? modifier in man page.
2286 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
2288 * Makefile.in (MAKE_VERSION): bump version to 20110214
2289 Merge with NetBSD make, pick up
2290 o meta.c handle realpath() failing when generating meta file
2293 * sigcompat.c: convert to ansi so we can use higher warning levels.
2296 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
2298 * Makefile.in (MAKE_VERSION): bump version to 20110207
2299 Merge with NetBSD make, pick up
2300 o fix for bug in meta mode.
2302 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
2304 * parse.c: SunOS 5.8 at least does not have MAP_FILE
2306 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
2308 * Makefile.in (MAKE_VERSION): bump version to 20110101
2309 Merge with NetBSD make, pick up
2310 o use mmap(2) if available, for reading makefiles
2312 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
2314 * Makefile.in (MAKE_VERSION): bump version to 20101215
2315 Merge with NetBSD make, pick up
2316 o ensure meta_job_error() does not report a previous .meta file
2319 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
2321 * Makefile.in (MAKE_VERSION): bump version to 20101210
2322 Merge with NetBSD make, pick up
2323 o meta_oodate: track cwd per process, and only consider target
2324 out-of-date if missing file is outside make's CWD.
2325 Ignore files in /tmp/ etc.
2326 o to ensure unit-tests results match, need to control LC_ALL
2328 o fix for parsing bug in var.c
2330 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2332 * Makefile.in (MAKE_VERSION): bump version to 20101126
2333 Merge with NetBSD make, pick up
2334 o if stale dependency is an IMPSRC, search via .PATH
2335 o meta_oodate: if a referenced file is missing, target is
2337 o meta_oodate: if a target uses .OODATE in its commands,
2338 it (.OODATE) needs to be recomputed.
2339 o keep a pointer to youngest child node, rather than just its
2342 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
2344 * Makefile.in (MAKE_VERSION): bump version to 20101101
2346 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
2348 * machine.sh: like os.sh,
2349 allow for uname -p producing useless drivel
2351 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
2353 * boot-strap: document configure knobs for meta and filemon.
2355 * Makefile.in (MAKE_VERSION): bump version to 20100911
2356 Merge with NetBSD make, pick up
2357 o meta.c - meta mode
2359 * make-bootstrap.sh.in: handle meta.c
2360 * configure.in: add knobs for use_meta and filemon_h
2361 also, look for dirname, str[e]sep and strlcpy
2362 * util.c: add simple err[x] and warn[x]
2364 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
2366 * boot-strap (TOOL_DIFF): set this to ensure tests use
2367 the same version of diff that configure tested
2369 * Makefile.in (MAKE_VERSION): bump version to 20100808
2370 Merge with NetBSD make, pick up
2371 o in jobs mode, when we discover we cannot make something,
2372 call PrintOnError before exit.
2374 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
2376 * Makefile.in (MAKE_VERSION): bump version to 20100806
2377 Merge with NetBSD make, pick up
2378 o formatting fixes for ignored errors
2379 o ensure jobs are cleaned up regardless of where wait() was called.
2381 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
2383 * Makefile.in (MAKE_VERSION): bump version to 20100618
2384 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2386 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
2388 * Makefile.in (MAKE_VERSION): bump version to 20100616
2389 Merge with NetBSD make, pick up
2391 o call PrintOnError from JobFinish when we detect an error we
2394 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2396 * Makefile.in (MAKE_VERSION): bump version to 20100606
2397 Merge with NetBSD make, pick up
2400 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
2402 * Makefile.in (MAKE_VERSION): bump version to 20100605
2403 Merge with NetBSD make, pick up
2404 o use bmake_signal() which is a wrapper around sigaction()
2405 in place of signal()
2406 o add .export-env to allow exporting variables to environment
2407 without tracking (so no re-export when the internal value is
2410 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2412 * Makefile.in (MAKE_VERSION): bump version to 20100524
2413 Merge with NetBSD make, pick up
2414 o fix for .info et al being greedy.
2416 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
2418 * Makefile.in (MAKE_VERSION): bump version to 20100520
2419 Merge with NetBSD make, pick up
2420 o back to using realpath on argv[0]
2421 but only if contains '/' and does not start with '/'.
2423 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
2425 * boot-strap: use absolute path for bmake when running tests.
2427 * Makefile.in (MAKE_VERSION): bump version to 20100510
2428 Merge with NetBSD make, pick up
2429 o revert use of realpath on argv[0]
2430 too many corner cases.
2431 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2433 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2435 * Makefile.in (MAKE_VERSION): bump version to 20100505
2436 Merge with NetBSD make, pick up
2437 o fix for missed SIGCHLD when compiled with SunPRO
2438 actually for bmake, defining FORCE_POSIX_SIGNALS would have
2441 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
2443 * Makefile.in (MAKE_VERSION): bump version to 20100430
2444 Merge with NetBSD make, pick up
2445 o fflush stdout before writing to stdout
2447 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
2449 * Makefile.in (MAKE_VERSION): bump version to 20100423
2450 Merge with NetBSD make, pick up
2451 o updated unit tests for Haiku (this time for sure).
2452 * boot-strap: based on patch from joerg
2453 honor --with-default-sys-path better.
2454 * boot-strap: remove mention of --with-prefix-sys-path
2456 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
2458 * Makefile.in (MAKE_VERSION): bump version to 20100422
2459 * Merge with NetBSD make, pick up
2460 o fix for vfork() on Darwin.
2461 o fix for bogus $TMPDIR.
2462 o set .MAKE.MODE=compat for -B
2463 o set .MAKE.JOBS=max_jobs for -j max_jobs
2464 o allow unit-tests to run without any *.mk
2465 o unit-tests/modmisc be more conservative in dirs presumed to exist.
2466 * boot-strap: ignore /usr/share/mk except on NetBSD.
2467 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
2468 ensure sort(1) behaves as expected.
2470 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
2472 * boot-strap: add FindHereOrAbove so we can use -m .../mk
2474 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2476 * Makefile.in (MAKE_VERSION): bump version to 20100420
2477 * Merge with NetBSD make, pick up
2478 o fix for variable realpath() behavior.
2479 we have to stat(2) the result to be sure.
2480 o fix for .export (all) when nested vars use :sh
2482 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
2484 * Makefile.in (MAKE_VERSION): bump version to 20100414
2485 * Merge with NetBSD make, pick up
2486 o use realpath to resolve argv[0] (for .MAKE) if needed.
2487 o add realpath from libc.
2488 o add :tA to resolve variable via realpath(3) if possible.
2490 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
2492 * Makefile.in (MAKE_VERSION): bump version to 20100408
2493 * Merge with NetBSD make, pick up
2494 o unit tests for .ERROR, .error
2495 o fix for .ERROR to ensure it cannot be default target.
2497 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
2499 * Makefile.in (MAKE_VERSION): bump version to 20100406
2500 * Merge with NetBSD make, pick up
2501 o fix for compat mode "Error code" going to debug_file.
2502 o fix for .ALLSRC being populated twice.
2503 o support for .info, .warning and .error directives
2504 o .MAKE.MODE to control make's operational mode
2505 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2507 o .MAKE.DEPENDFILE to control the name of the depend file
2508 o .ERROR target - run on failure.
2510 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
2512 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2514 * os.sh,arch.c: patch for Haiku from joerg at netbsd
2516 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
2518 * Makefile.in (MAKE_VERSION): bump version to 20100222
2519 * Merge with NetBSD make, pick up
2520 o better error msg for .for with mutiple inter vars
2523 o use make-bootstrap.sh from joerg at netbsd
2524 to avoid the need for a native make when bootstrapping.
2525 o add "" everywhere ;-)
2526 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2527 otherwise the pre-formated version.
2529 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
2531 * Makefile.in (MAKE_VERSION): bump version to 20100102
2532 * Merge with NetBSD make, pick up:
2535 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
2537 * Makefile.in (MAKE_VERSION): bump version to 20091118
2538 * Merge with NetBSD make, pick up:
2540 o report lines that start with '.' and should have ':'
2541 (catch typo's of .el*if).
2543 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2545 * configure.in: Ensure that srcdir and mksrc are absolute paths.
2547 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2549 * Makefile.in (MAKE_VERSION): fix version to 20091007
2551 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
2553 * Makefile.in (MAKE_VERSION): bump version to 200910007
2554 * Merge with NetBSD make, pick up:
2555 o fix for parsing of :S;...;...; applied to .for loop iterator
2556 appearing in a dependency line.
2558 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2560 * Makefile.in (MAKE_VERSION): bump version to 20090909
2561 * Merge with NetBSD make, pick up:
2562 o fix for -C, .CURDIR and .OBJDIR
2564 o allow share_dir to be set independent of prefix.
2565 o select default share_dir better when prefix ends in $HOST_TARGET
2566 o if FORCE_BSD_MK etc were set, include them in the suggested
2569 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
2571 * Makefile.in (MAKE_VERSION): bump version to 20090908
2572 * Merge with NetBSD make, pick up:
2573 o .MAKE.LEVEL for recursion tracking
2574 o fix for :M scanning \:
2576 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2578 * configure.in: Don't -D__EXTENSIONS__ if
2579 AC_USE_SYSTEM_EXTENSIONS says "no".
2581 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
2583 * Makefile.in (MAKE_VERSION): bump version to 20090826
2584 Simplify MAKE_VERSION to just the bare date.
2585 * Merge with NetBSD make, pick up:
2586 o -C directory support.
2587 o support for SIGINFO
2588 o use $TMPDIR for temp files.
2589 o child of vfork should be careful about modifying parent's state.
2592 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
2594 * Appy some patches for MiNT from David Brownlee
2596 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
2598 * Makefile.in (BMAKE_VERSION): bump version to 20090222
2599 * Merge with NetBSD make, pick up:
2600 o Possible null pointer de-ref in Var_Set.
2602 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
2604 * Makefile.in (BMAKE_VERSION): bump version to 20090204
2605 * Merge with NetBSD make, pick up:
2606 o bmake_malloc et al moved to their own .c
2607 o Count both () and {} when looking for the end of a :M pattern
2608 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2609 o strlist.c - functions for processing extendable arrays of pointers to strings.
2610 o ClientData replaced with void *, so const void * can be used.
2611 o New debug flag C for DEBUG_CWD
2613 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
2615 * Makefile.in (BMAKE_VERSION): bump version to 20081111
2616 Apply patch from Joerg Sonnenberge to
2618 o remove some redundant checks
2619 o check for emlloc etc only in libutil and require the whole family.
2621 o remove [v]asprintf which is no longer used.
2623 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2625 * Makefile.in (BMAKE_VERSION): bump version to 20081101
2626 * Merge with NetBSD make, pick up:
2627 o util.c: avoid use of putenv() - christos
2629 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2631 * Makefile.in (BMAKE_VERSION): bump version to 20081030
2632 pick up man page tweaks.
2634 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
2636 * Makefile.in: move processing of LIBOBJS to after is definition!
2637 thus we'll have getenv.c in SRCS only if needed.
2639 * make.1: add examples of how to use :?
2641 * Makefile.in (BMAKE_VERSION): bump version to 20081029
2642 * Merge with NetBSD make, pick up:
2643 o fix for .END processing with -j
2644 o segfault from Parse_Error when no makefile is open
2645 o handle numeric expressions in any variable expansion
2646 o debug output now defaults to stderr, -dF to change it - apb
2647 o make now uses bmake_malloc etc so that it can build natively
2648 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2650 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
2652 * Makefile.in (BMAKE_VERSION): bump version to 20080808
2653 * Merge with NetBSD make, pick up:
2654 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2655 long lines in Makefiles
2656 o optimizations for VarQuote by joerg
2657 o fix for PR/38756: dominik: make dumps core on invalid makefile
2659 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
2661 * Makefile.in (BMAKE_VERSION): bump version to 20080515
2662 * Merge with NetBSD make, pick up:
2663 o fix skip setting vars in VAR_GLOBAL context, to handle
2664 cases where VAR_CMD is used for other than command line vars.
2666 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
2668 * boot-strap (make_version): we may need to look in
2669 $prefix/share/mk for sys.mk
2671 * Makefile.in (BMAKE_VERSION): bump version to 20080514
2672 * Merge with NetBSD make, pick up:
2673 o skip setting vars in VAR_GLOBAL context, when already set in
2674 VAR_CMD which takes precedence.
2676 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
2678 * Makefile.in (BMAKE_VERSION): bump version to 20080330
2679 * Merge with NetBSD make, pick up:
2680 o fix for ?= when LHS contains variable reference.
2682 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2684 * merge some patches from NetBSD pkgsrc.
2686 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
2687 the MAKSYSPATH used during bootstrap.
2689 * Makefile.in (BMAKE_VERSION): bump version to 20080215
2690 * Merge with NetBSD make, pick up:
2691 o warn if non-space chars follow 'empty' in a conditional.
2693 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2695 * Makefile.in (BMAKE_VERSION): bump version to 20080118
2696 * Merge with NetBSD make, pick up:
2697 o consider dependencies read from .depend as optional - dsl
2698 o remember when buffer for reading makefile grows - dsl
2699 o add -dl (aka LOUD) - David O'Brien
2701 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
2703 * Makefile.in (BMAKE_VERSION): bump version to 20071022
2704 * Merge with NetBSD make, pick up:
2705 o Allow .PATH<suffix> to be used for .include ""
2707 * boot-strap: source default settings from .bmake-boot-strap.rc
2709 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
2711 * Makefile.in: fix maninstall on various systems
2712 provided that our man.mk is used.
2713 For non-BSD systems we install the preformatted page
2716 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
2718 * boot-strap: make bmake.1 too, so maninstall works.
2720 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
2722 * Makefile.in (BMAKE_VERSION): bump version to 20071014
2723 * Merge with NetBSD make, pick up:
2724 o revamped handling of defshell - configure no longer needs to
2725 know the content of the shells array - apb
2726 o stop Var_Subst modifying its input - apb
2727 o avoid calling ParseTrackInput too often - dsl
2729 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
2731 * Makefile.in (BMAKE_VERSION): bump version to 20071011
2732 * Merge with NetBSD make, pick up:
2733 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
2735 * sigcompat.c: some tweaks for HP-UX 11.x based on
2736 patch from Tobias Nygren
2738 * configure.in: update handling of --with-defshell to match
2739 new make behavior. --with-defshell=/usr/xpg4/bin/sh
2740 will now do what one might hope - provided the chosen shell
2741 behaves enough like sh.
2743 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
2745 * Makefile.in (BMAKE_VERSION): bump to 20071008
2746 * Merge with NetBSD make, pick up:
2747 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
2748 o .export/.MAKE.EXPORTED - export of variables - sjg
2749 o .MAKE.MAKEFILES - track all makefiles read - sjg
2750 o performance improvements - dsl
2751 o revamp parallel job scheduling - dsl
2753 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2755 * Makefile.in (BMAKE_VERSION): bump to 20060728
2756 * Merge with NetBSD make, pick up:
2757 o extra debug info during variable and cond processing - sjg
2758 o shell definition now covers newline - rillig
2759 o minor mem leak in PrintOnError - sjg
2761 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2763 * Makefile.in (BMAKE_VERSION): bump to 20060511
2764 * Merge with NetBSD make, pick up:
2765 o more memory leaks - coverity
2766 o possible overflow in ArchFindMember - coverity
2767 o extract variable modifier code out of Var_Parse()
2768 so it can be called recursively - sjg
2769 o unit-tests/moderrs - sjg
2771 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
2773 * Makefile.in (BMAKE_VERSION): bump to 20060412
2774 * Merge with NetBSD make, pick up:
2775 o fixes for some memory leaks - coverity
2776 o only read first sys.mk etc when searching sysIncPath - sjg
2778 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
2779 setting ${MAKEFILE} - OBATA Akio
2781 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
2783 * Makefile.in (BMAKE_VERSION): bump to 20060318
2784 * Merge with NetBSD make, pick up:
2785 o cleanup of job.c to remove remote handling, distcc is more
2786 useful and this code was likely bit-rotting - dsl
2787 o fix for :P modifier - sjg
2788 * boot-strap: set default prefix to something reasonable
2791 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
2793 * Makefile.in (BMAKE_VERSION): bump to 20060301
2794 * Merge with NetBSD make, pick up:
2795 o make .WAIT apply recursively, document and test case - apb
2796 o allow variable modifiers in a variable appear anywhere in
2797 modifier list, document and test case - sjg
2799 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
2801 * Makefile.in (BMAKE_VERSION): bump to 20060222
2802 * Merge with NetBSD make, pick up:
2803 o improved job token handling - dsl
2804 o SIG_DFL the correct signal before exec - dsl
2805 o more debug info during parsing - dsl
2806 o allow variable modifiers to be specified via variable - sjg
2807 * boot-strap: explain why we died if no mksrc
2809 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
2811 * Makefile.in (BMAKE_VERSION): bump to 20051105
2812 * configure.in: always set default_sys_path
2813 default is ${prefix}/share/mk
2814 - remove prefix_sys_path, anyone wanting more than above
2815 needs to set it manually.
2817 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2819 * boot-strap: make this a bit easier for pkgsrc folk.
2820 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
2821 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2823 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
2825 * Makefile.in (BMAKE_VERSION): bump to 20051102
2826 * job.c (JobFinish): fix likely ancient merge lossage
2827 fix from Todd Vierling.
2828 * boot-strap (srcdir): allow setting mksrc=none
2830 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
2832 * Makefile.in (BMAKE_VERSION): bump to 20051031
2833 * ranlib.h: skip on OSF too.
2836 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
2838 * Makefile.in (BMAKE_VERSION): bump to 20051002
2841 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2843 * Makefile.in (BMAKE_VERSION): bump to 20051001
2844 support for UnixWare and some other systems,
2845 based on patches from pkgsrc/bootstrap
2847 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2849 * Makefile.in (BMAKE_VERSION): bump to 20050901
2850 * Merge with NetBSD make, pick up:
2851 o possible parse error causing us to wander off.
2853 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
2855 * Makefile.in (BMAKE_VERSION): bump to 20050606
2856 * Merge with NetBSD make, pick up:
2857 o :0x modifier for randomizing a list
2858 o fixes for a number of -Wuninitialized issues.
2860 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
2862 * Makefile.in (BMAKE_VERSION): bump to 20050530
2863 * Merge with NetBSD make, pick up:
2864 o Handle dependencies for .BEGIN, .END and .INTERRUPT
2866 * README: was seriously out of date.
2868 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
2870 * Important to use .MAKE rather than MAKE.
2872 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
2874 * Makefile.in (BMAKE_VERSION): bump to 20050315
2875 * Merge with NetBSD make, pick up:
2876 o don't mistake .elsefoo for .else
2877 o use suffix-specific search path correctly
2878 o bunch of style nits
2880 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2883 o ensure that args to --src and --with-mksrc
2884 are resolved before giving them to configure.
2885 o add -o "objdir" so that builder can control it,
2886 default is $OS as determined by os.sh
2887 o add -q to suppress all the install instructions.
2889 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
2891 * Remove __IDSTRING()
2893 * Makefile.in (BMAKE_VERSION): bump to 20040508
2894 * Merge with NetBSD make, pick up:
2896 - remove '-e' from compat mode
2897 - add support for '+' command-line prefix.
2898 o fix for handling '--' on command-line.
2899 o fix include in lst.lib/lstInt.h to simplify '-I's
2900 o we also picked up replacement of MAKE_BOOTSTRAP
2901 with !MAKE_NATIVE which is a noop, but possibly confusing.
2903 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
2905 * Makefile.in (BMAKE_VERSION): bump to 20040414
2906 * Merge with NetBSD make, pick up:
2907 o allow quoted strings on lhs of conditionals
2908 o issue warning when extra .else is seen
2909 o print line numer when errors encountered during parsing from
2912 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
2914 * Makefile.in (BMAKE_VERSION): bump to 20040220
2915 * Merge with NetBSD make, pick up:
2916 o fix for old :M parsing bug.
2917 o re-jigged unit-tests
2919 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2921 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
2922 so that './bmake -f Makefile test' works.
2924 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
2926 * Makefile.in: (BMAKE_VERSION): bump to 20040214
2927 * Merge with NetBSD make, pick up:
2928 o search upwards for *.mk
2929 o fix for double free of var substitution buffers
2930 o use of getopt replaced with custom code, since the usage
2931 (re-scanning) isn't posix compatible.
2933 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
2935 * arch.c: don't include ranlib.h on ELF systems
2936 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
2938 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2940 * Makefile.in (BMAKE_VERSION): bump to 20040118
2942 * boot-strap (while): export vars we assign to on cmdline
2943 * unit-test/Makefile.in: ternary is .PHONY
2945 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
2947 * Makefile.in (BMAKE_VERSION): bump version to 20040108
2948 * Merge with NetBSD make, pick up:
2949 o fix for ternary modifier
2951 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
2953 * Makefile.in (BMAKE_VERSION): bump version to 20040105
2954 * Merge with NetBSD make, pick up:
2955 o fix for cond.c to handle compound expressions better
2956 o variable expansion within sysV style replacements
2958 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
2960 * Make portable snprintf safer - output to /dev/null first to
2963 * Makefile.in (BMAKE_VERSION): bump version to 20031222
2964 * Merge with NetBSD make, pick up:
2965 o -dg3 to show input graph when things go wrong.
2966 o explicitly look for makefiles in objdir if not found in curdir so
2967 that errors in .depend etc will be reported accurarely.
2968 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
2969 instead as it more accurately reflects the expected behavior and
2970 is more consistently implemented.
2971 o avoid use of asprintf.
2973 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
2975 * util.c: Add asprintf and vasprintf.
2977 * Makefile.in (BMAKE_VERSION): bump version to 20030928
2978 * Merge with NetBSD make, pick up:
2979 :[] modifier - allows picking words from a variable.
2980 :tW modifier - allows treating value as one big word.
2981 W flag for :C and :S - allows treating value as one big word.
2983 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
2985 * Merge with NetBSD make
2986 pick up -de flag to enable printing failed command.
2987 don't skip 1st two dir entries (normally . and ..) since
2988 coda does not have them.
2990 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2992 * Makefile.in (BMAKE_VERSION): bump version to 20030909
2993 * Merge with NetBSD make, pick up:
2994 - changes for -V '${VAR}' to print fully expanded value
2996 - CompatRunCommand now prints the command that failed.
2997 - several files got updated 3 clause Berkeley license.
2999 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
3001 * boot-strap: Allow setting configure args on command line.
3003 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
3005 * configure.in: add --with-defshell to allow sh or ksh
3006 to be selected as default shell.
3008 * Makefile.in: bump version to 20030731
3010 * Merge with NetBSD make
3011 Pick up .SHELL spec for ksh and associate man page changes.
3012 Also compat mode now uses the same shell specs.
3014 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
3016 * var.c (Var_Parse): ensure delim is initialized.
3018 * unit-tests/Makefile.in: use single quotes to avoid problems from
3022 Run the unit-tests as part of the bootstrap procedure.
3024 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
3026 * unit-tests/Makefile.in: always force complaints from
3027 ${TEST_MAKE} to be from 'make'.
3029 * configure.in: add check for 'diff -u'
3030 also fix some old autoconf'isms
3032 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
3033 if using GCC add -Wno-cast-qual to CFLAGS for var.o
3035 * Merge with NetBSD make
3036 Pick up fix for :ts parsing error in some cases.
3039 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
3041 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
3043 * var.c (Var_Parse): fix bug in :ts modifier, after const
3044 correctness fixes, must pass nstr to VarModify.
3046 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
3048 * Makefile.in: BMAKE_VERSION switch to a date based version.
3049 We'll generally use the date of last import from NetBSD.
3051 * Merge with NetBSD make
3052 Pick up fixes for const-correctness, now passes WARNS=3 on
3054 Pick up :ts modifier, allows controlling the separator used
3055 between words in variable expansion.
3057 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
3059 * FILES: include boot-strap and os.sh
3061 * Makefile.in: only set WARNS if we are NetBSD, the effect on
3062 FreeBSD is known to be bad.
3064 * makefile.boot.in (bootstrap): make this the default target.
3066 * Makefile.in: bump version to 3.1.19
3068 * machine.sh: avoid A-Z with tr as it is bound to lose.
3070 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
3072 * Merge with NetBSD make
3073 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3074 Plus some doc fixes.
3076 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
3078 * Merge with NetBSD make
3079 Pick up fix for PR/1523 - don't count a library as built, if there
3080 is no way to build it
3082 * Bump version to 3.1.18
3084 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
3086 * Merge with NetBSD make
3087 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3088 appears in src list.
3090 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
3092 * Merge with NetBSD make (mmm 10th anniversary!)
3093 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3094 pick up -X which tells us to not export VAR=val via setenv if
3095 we are already doing so via MAKEFLAGS. This saves valuable env
3096 space on systems like Darwin.
3097 set MAKE_VERSION to 3.1.17
3099 * parse.c: pix up fix for suffix rules
3101 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
3103 * Merge with NetBSD make.
3104 pick up fix for propagating -B via MAKEFLAGS.
3105 set MAKE_VERSION to 3.1.16
3107 * Apply some patches from pkgsrc-bootstrap/bmake
3108 Originally by Grant Beattie <grant@netbsd.org>
3109 I may have missed some - since they are based on bmake-3.1.12
3111 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
3113 * makefile.boot.in (bmake): update install targets for those that
3114 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3115 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
3117 * bmake.cat1: update the pre-formatted man page!
3119 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
3121 * Merge with NetBSD make.
3122 pick up fix for premature free of pointer used in call
3124 set MAKE_VERSION to 3.1.15
3126 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
3128 * configure.in: determine suitable value for MKSRC.
3129 override using --with-mksrc=PATH.
3131 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3132 configs(8) will use 'sun4' as an alias for 'sparc'.
3134 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
3136 * Merge with NetBSD make.
3138 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3139 set MAKE_VERSION to 3.1.14
3140 add configure checks for killpg and sys/socket.h
3142 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
3146 * makefile.boot.in (bmake): use install-mk
3147 Also setup ./mk before trying to invoke bmake.boot incase we
3148 needed install-mk to create a sys.mk for us.
3150 * configure.in: If we need to add -I${srcdir}/missing, make it an
3151 absolute path so that it works for lst.lib too.
3153 * make.h: always include sys/cdefs.h since we provide one if the
3156 * Makefile.in (install-mk):
3157 use MKSRC/install-mk which will do the right thing.
3158 use uname -p for ARCH if possible.
3159 since install-mk will setup links bsd.prog.mk -> prog.mk if
3160 needed, just .include bsd.prog.mk
3162 * Merge with NetBSD make (NetBSD-1.6)
3163 Code is ansi-C only now.
3164 Bug in handling of dotLast is fixed.
3165 Can now assign .OBJDIR and make will reset its notions of life.
3166 New modifiers :tu :tl for toUpper and toLower.
3168 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3170 * Merge with NetBSD make
3171 pick up fix for .END failure in compat mode.
3172 pick up fix for extra va_end() in ParseVErrorInternal.
3174 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3176 * configure.in: for systems that have sys/cdefs.h check if it is
3177 compatible. If not, include the one under missing, but tell it to
3178 include the native one too - necessary on Linux.
3180 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3181 include_next (for gcc) to get the native sys/cdefs.h
3183 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3185 * job.c (JobFinish): Fix an earlier merge bug that resulted in
3186 leaking descriptors when using -jN.
3188 * job.c (JobPrintCommand): See if "curdir" exists before
3189 attempting to chdir(). Doing the chdir directly in make (when in
3190 compat mode) fails silently, so let the -jN version do the same.
3191 This can happen when building kernels in an object tree and
3192 playing clever games to reset .CURDIR.
3194 * Merged with NetBSD make
3197 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3199 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3201 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3203 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3204 us not to export the iterator variable when using VAR_CMD context.
3206 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3208 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3209 its the wrong "fix".
3211 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3213 * Redesigned export of VAR_CMD's via MAKEFLAGS.
3214 We now simply append the variable names to .MAKEOVERRIDES, and
3215 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3216 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3217 Apart from fixing quoting bugs in previous version, this allows us
3218 to export vars to the environment by simply doing:
3219 .MAKEOVERRIDES+= PATH
3220 Merged again with NetBSD make, but the above is the only change.
3222 * configure.in: added
3223 --disable-pwd-override disable $PWD overriding getcwd()
3224 --disable-check-make-chdir disable make trying to guess
3225 when it should automatically cd ${.CURDIR}
3227 * Merge with NetBSD make, changes include:
3228 parse.c (ParseDoDependency): Spot that the syntax error is
3229 caused by an unresolved cvs/rcs conflict and say so.
3230 var.c: most of Var* functions now take a ctxt as 1st arg.
3231 now does variable substituion on rhs of sysv style modifiers.
3233 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
3234 is now done here. We append the name='value' to .MAKEOVERRIDES
3235 rather than directly into MAKEFLAGS as this allows a Makefile to
3236 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
3237 very similar mechanism. Note that in adding name='value' to
3238 .MAKEOVERRIDES we do the moral equivalent of:
3239 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3241 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3243 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3245 * Merged with NetBSD make
3246 make -dx can now be used to run commands via sh -x
3247 better error messages on exec failures.
3249 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3251 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3252 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
3253 MACHINE etc otherwise they propagate from the previous bmake.
3255 * configure.in (machine): allow --with-machine=generic to make
3256 configure use machine.sh to set MACHINE.
3258 * job.c (JobInterrupt): convert to using WAIT_T and friends.
3260 * Makefile.in: mention in bmake.1 that we use autoconf.
3262 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3264 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3266 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3267 as that rather defeats the usefulness of ${MAKEFILE}.
3269 * main.c (MainParseArgs): append command line variable assignments
3270 to MAKEFLAGS so that they get propagated to child make's.
3271 Apparently this is required POSIX behaviour? Its useful anyway.
3273 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3275 * compat.c (CompatRunCommand): don't use perror() since stdio may
3276 cause problems in child of vfork().
3278 * compat.c, main.c: Call PrintOnError() when we are going to bail.
3279 This routine prints out the .curdir where we stopped and will also
3280 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3282 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
3285 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
3287 * Added RCSid's for the files we've touched.
3289 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3291 * configure.in: Thanks to some clues from mdb@juniper.net,
3292 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3293 as well as what ends up in _PATH_DEFSYSPATH. We now have:
3295 --with-machine=MACHINE explicitly set MACHINE
3296 --with-force-machine=MACHINE set FORCE_MACHINE
3297 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
3298 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
3299 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
3300 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
3302 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3304 * makefile: added a pathetically simple makefile to drive
3305 bootstrapping. Running configure by hand is more useful.
3307 * Makefile.in: added MAKE_VERSION, and reworked things to be less
3308 dependent on NetBSD bsd.*.mk
3310 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3311 _PATH_OBJDIRPREFIX for those that don't want a default.
3312 construct _PATH_DEFSYSPATH from the info we get from configure.
3314 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3315 if MAKE_VERSION is defined.
3317 * compat.c: when we bail, print out the .CURDIR we were in.
3319 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3321 * Merged with NetBSD make
3323 * var.c: fixed a bug in the handling of the modifier :P
3324 if the node as found but the path was null, we segfault trying to
3327 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3329 * Merged with NetBSD make
3331 * make.c: Make_OODate's test for a library out of date was using
3332 cmtime where it should have used mtime (my bug).
3334 * compat.c: Use perror() to tell us what really went wrong when we
3335 cannot exec a command.
3337 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3339 * Merged with NetBSD make
3341 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3343 * Merged with NetBSD make
3345 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3347 * Merged with NetBSD make
3349 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3351 * Merged with NetBSD make
3353 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3355 * util.c: don't provide signal() since we use sigcompat.c
3357 * Makefile.in: added a build target.
3359 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3360 These allow some quite clever magic.
3362 * main.c (main): added support for getenv(MAKESYSPATH).
3364 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3366 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3367 This avoids objdir having a different value depending on how a
3368 directory was reached (via command line, or subdir.mk).
3370 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3372 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3374 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3375 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3376 I've been testing this in NetBSD's make for some weeks.
3378 * Turn Makefile into Makefile.in and make it useful.
3380 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3382 * Imported NetBSD's -current make(1) and resolve conflicts.
3384 * Applied autoconf patches from bmake v2
3386 * Imported clean code base from NetBSD-1.0