1 2021-06-21 Simon J Gerraty <sjg@beast.crufty.net>
3 * VERSION (_MAKE_VERSION): 20210621
4 Merge with NetBSD make, pick up
5 o var.c: only report error for unmatched regex subexpression
6 when linting (-dL) since we cannot tell when an unmatched
7 subexpression is an expected result.
8 o move unmatched regex subexpression tests to
9 varmod-subst-regex.mk and enable strict (lint) mode
11 2021-06-16 Simon J Gerraty <sjg@beast.crufty.net>
13 * VERSION (_MAKE_VERSION): 20210616
14 Merge with NetBSD make, pick up
16 o cond.c: rename If_Eval to EvalBare
17 improve function names for parsing conditions
18 o job.c: fix error handling of targets that cannot be made
19 o var.c: uncompress code in ApplyModifier_Unique
21 2021-05-18 Simon J Gerraty <sjg@beast.crufty.net>
23 * VERSION (_MAKE_VERSION): 20210518
24 Merge with NetBSD make, pick up
25 o fix unit-tests/opt-chdir to cope with /nonexistent existing.
26 o job.c: Print -de error information when running multiple jobs
28 2021-04-20 Simon J Gerraty <sjg@beast.crufty.net>
30 * VERSION (_MAKE_VERSION): 20210420
31 Merge with NetBSD make, pick up
33 o convert VarEvalFlags back into an enum
34 o cond.c: do not complain when skipping the condition 'no >= 10'
35 o hash.c: avoid allocating memory for simple variable names
36 o job.c: use distinct wording for writing to the shell commands file
37 remove type name for the abort status in job handling
38 rename PrintOutput to PrintFilteredOutput to avoid confusion
39 o main.c: avoid double slash in name of temporary directory
40 o var.c: use straight quotes for error 'Bad conditional expression'
41 reduce memory allocations in the modifiers ':D' and ':U'
42 rename members of ModifyWord_LoopArgs
43 clean up pattern flags for the modifiers ':S' and ':C'
44 reduce memory allocation and strlen calls in modifier ':from=to'
45 in the ':Q' modifier, only allocate memory if necessary
46 improve performance for LazyBuf
47 remove redundant parameter from ParseVarnameLong
48 migrate ParseModifierPart to use Substring
49 avoid unnecessary calls to strlen when evaluating modifiers
50 migrate ModifyWord functions to use Substring
51 migrate handling of the modifier ':S,from,to,' to Substring
52 reduce debug logging and memory allocation for ${:U...}
53 reduce verbosity of the -dv debug logging for standard cases
54 clean up debug logging for ':M' and ':N'
55 disallow '$' in the variable name of the modifier ':@'
56 simplify access to the name of an expression during evaluation
58 2021-03-30 Simon J Gerraty <sjg@beast.crufty.net>
60 * VERSION (_MAKE_VERSION): 20210330
61 Merge with NetBSD make, pick up
62 o replace enum bit-field with struct bit-field for VarEvalFlags
63 o rename VARE_NONE to VARE_PARSE_ONLY
64 o var.c: rename ApplyModifiersState to ModChain
65 fix double varname expansion in the variable modifier '::='
66 change debug log for variable evaluation flags to lowercase
68 2021-03-14 Simon J Gerraty <sjg@beast.crufty.net>
70 * VERSION (_MAKE_VERSION): 20210314
71 Merge with NetBSD make, pick up
72 o var.c: avoid evaluating many modifiers in parse only mode
73 in strict mode (-dL) many variable references are parsed twice,
74 the first time just to report parse errors early, so we want to
75 avoid side effects and wasted effort to the extent possible.
77 2021-02-26 Simon J Gerraty <sjg@beast.crufty.net>
79 * VERSION (_MAKE_VERSION): 20210226
80 Merge with NetBSD make, pick up
81 o remove freestanding freeIt variables
83 o var.c: restructure code in ParseVarname to target human readers
84 improve error message for;
85 bad modifier in variable expression
88 remove redundant parameter of ApplySingleModifier
89 explain non-obvious code around indirect variable modifiers
90 quote ':S' in error message about missing delimiter
91 extract ParseModifier_Match into separate function
92 add context information to error message about ':range' modifier
93 add quotes around variable name in an error message
94 reorder code in ModifyWords
95 use more common parameter order for VarSelectWords
96 make ModifyWord_Subst a little easier to understand
97 do not expand variable name from the command line twice
98 extract ExistsInCmdline from Var_SetWithFlags
99 save a hash map lookup when defining a cmdline variable
100 clean up VarAdd, Var_Delete, Var_ReexportVars
101 use bit-shift expressions for VarFlags constants
102 rename constants for VarFlags
103 rename ExprDefined constants for debug logging
104 rename ExprStatus to ExprDefined
105 split parameters for evaluating variable expressions
106 reduce redundant code around ModifyWords
107 print error about failed shell command before overwriting variable
108 clean up ValidShortVarname, ParseVarnameShort
109 rename VarExprStatus to ExprStatus
110 add functions for assigning the value of an expression
111 rename ApplyModifiersState_Define to Expr_Define
112 condense the code for parsing :S and :C modifiers
114 2021-02-06 Simon J Gerraty <sjg@beast.crufty.net>
116 * VERSION (_MAKE_VERSION): 20210206
117 Merge with NetBSD make, pick up
118 o unit-tests: use private TMPDIR to avoid errors from other users
120 2021-02-05 Simon J Gerraty <sjg@beast.crufty.net>
122 * VERSION (_MAKE_VERSION): 20210205
123 Merge with NetBSD make, pick up
124 o avoid strdup in mkTempFile
126 o rename context and ctxt to scope
127 o rename some VAR constants to SCOPE
128 o Var_ functions, move the scope to the front
129 o use shortcut functions Global_Set and Global_Append
130 o add shortcut Global_Delete for deleting a global variable
131 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
132 o compat.c: when exiting due to an error, print graph information
133 o enum.c: remove overengineered Enum_ValueToString
134 o make.c: remove unused INTERNAL flag
135 remove unused return type of MakeBuildParent
136 o parse.c: replace parse error "Need an operator" with better message
137 o var.c: improve documentation about variable scopes
138 rename Var_ValueDirect to GNode_ValueDirect
139 rename old Var_SetWithFlags to Var_SetExpandWithFlags
140 merge SetVar into Var_SetWithFlags
141 split Var_Exists into plain Var_Exists and Var_ExistsExpand
142 split Var_Append into Var_Append and Var_AppendExpand
143 replace enum bit-set with bit-field
144 o unit-tests/var-op-shell: use kill rather than kill -14
145 which broke on darwin with recent update.
147 2021-02-01 Simon J Gerraty <sjg@beast.crufty.net>
149 * configure.in: check for sig_atomic_t and define it as 'int'
152 * VERSION (_MAKE_VERSION): 20210201
153 Merge with NetBSD make, pick up
154 o use sig_atomic_t for caught_sigchld
156 2021-01-30 Simon J Gerraty <sjg@beast.crufty.net>
158 * VERSION (_MAKE_VERSION): 20210130
159 Merge with NetBSD make, pick up
161 o convert SearchPath to struct
162 o split Buf_Destroy into Buf_Done and Buf_DoneData
163 o for.c: split For_Eval into separate functions
164 rename struct For to struct ForLoop
165 o job.c: do not create empty shell files in jobs mode
166 rename JobOpenTmpFile to JobWriteShellCommands
167 reduce unnecessary calls to waitpid
168 o parse.c: in -dp mode, print stack trace with each diagnostic
170 2021-01-23 Simon J Gerraty <sjg@beast.crufty.net>
172 * VERSION (_MAKE_VERSION): 20210123
173 Merge with NetBSD make, pick up
174 o rename Dir_Expand to SearchPath_Expand
175 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
176 o cond.c: fix debug output for comparison operators in conditionals
177 o dir.c: split Dir_FindFile into separate functions
179 2021-01-20 Simon J Gerraty <sjg@beast.crufty.net>
181 * VERSION (_MAKE_VERSION): 20210120
182 Merge with NetBSD make, pick up
183 o fix some more lint nits
184 o refine some unit tests for portability
185 o cond.c: rework parsing
187 2021-01-10 Simon J Gerraty <sjg@beast.crufty.net>
189 * VERSION (_MAKE_VERSION): 20210110
190 Merge with NetBSD make, pick up
192 o consistently use boolean expressions in conditions
194 2021-01-08 Simon J Gerraty <sjg@beast.crufty.net>
196 * VERSION (_MAKE_VERSION): 20210108
197 Merge with NetBSD make, pick up
198 o job.c: back to polling token pipe if we want a token
199 o main.c: always print 'stopped in' on first call
200 The execption is if we bail because of an abort token
201 in which case just exit 6.
203 2021-01-01 Simon J Gerraty <sjg@beast.crufty.net>
205 * VERSION (_MAKE_VERSION): 20210101
206 Merge with NetBSD make, pick up
208 o rename CmdOpts.lint to strict
209 o exit 2 on technical errors
210 o replace pointers in controlling conditions with booleans
211 o replace global preserveUndefined with VARE_KEEP_UNDEF
212 o compat.c: re-export variables from the actual make process
213 if using vfork this is the effect anyway
214 o cond.c: clean up VarParseResult constants
215 o for.c: fix undefined behavior in SubstVarLong
216 make control flow in SubstVarLong of .for loops more obvious
217 clean up SubstVarShort in .for loops
218 extract ForSubstBody from ForReadMore
220 simplify termination condition for .for loop
221 add error handling for .for loop items
222 job.c: re-export variables from the actual make process
223 parse.c: remove mmap for loading files, only allow files < 1 GiB
224 fix edge case in := with undefined in variable name
225 skip variable expansion in ParseDependencyTargetWord
226 var.c: split ExportVar into separate functions
227 clean up code in extracted ExportVar functions
228 remove dead code from ApplyModifiersIndirect
229 split Var_Subst into easily understandable functions
230 clean up VarParseResult constants
232 2020-12-25 Simon J Gerraty <sjg@beast.crufty.net>
234 * main.c: use .MAKE.DEPENDFILE as set by makefiles
236 2020-12-22 Simon J Gerraty <sjg@beast.crufty.net>
238 * VERSION (_MAKE_VERSION): 20201222
239 Merge with NetBSD make, pick up
240 o make DEBUG macro return boolean
241 o parse.c: fix assertion failure for files without trailing newline
242 o var.c: allow .undef to undefine multiple variables at once
243 remove excess newline from parse errors
245 2020-12-21 Simon J Gerraty <sjg@beast.crufty.net>
247 * VERSION (_MAKE_VERSION): 20201221
248 Merge with NetBSD make, pick up
249 o some unit-test updates
251 2020-12-20 Simon J Gerraty <sjg@beast.crufty.net>
253 * VERSION (_MAKE_VERSION): 20201220
254 Merge with NetBSD make, pick up
256 o return FStr from Var_Parse and Var_Value
257 o spell nonexistent consistently
258 o add str_basename to reduce duplicate code
259 o compat.c: fix .ERROR_TARGET in compat -k mode
260 extract InitSignals from Compat_Run
261 extract UseShell from Compat_RunCommand
262 o cond.c: error out if an '.endif' or '.else' contain extraneous text
263 o for.c: rename ForIterate to ForReadMore
264 o hash.c: clean up hash function for HashTable
265 o lst.c: rename Vector.priv_cap to cap
266 o main.c: remove constant parameter from MakeMode
267 o make.c: use symbolic time for 0 in Make_Recheck
268 extract MakeChildren from MakeStartJobs
269 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
270 fix error message for .info/.warning/.error without argument
271 extract Var_Undef from ParseDirective
272 extract ParseSkippedBranches, ParseForLoop from ParseReadLine
273 rename mode constants for ParseGetLine to be more expressive
274 reduce debugging details in Parse_SetInput
275 fix line numbers in .for loops
276 split ParseGetLine into separate functions
277 fix garbled output for failed shell command
278 var.c: remove redundant assignment in ApplyModifier_SysV
279 error out on unknown variable modifiers at parse time
280 remove wrong error message for indirect modifier in lint mode
281 extract ApplySingleModifier from ApplyModifiers
282 use FStr for memory management in Var_SetWithFlags
283 extract SetVar from Var_SetWithFlags
285 extract string functions from ApplyModifier_To
286 error out if .undef has not exactly 1 argument
287 extract Var_DeleteVar from Var_Delete
288 extract Var_Undef from ParseDirective
289 clean up memory management for expanding variable expressions
291 2020-12-12 Simon J Gerraty <sjg@beast.crufty.net>
295 * lst.c: avoid anonymous union
297 * VERSION (_MAKE_VERSION): 20201212
298 Merge with NetBSD make, pick up
300 o inline Targ_Ignore and Targ_Silent
301 o split JobFlags into separate fields
302 o remove const from function parameters (left overs from refactoring)
303 o eliminate boolean argument of Var_Export
304 o make API of Buf_Init simpler
305 o rename ParseRunOptions to ParseCommandFlags
306 o replace *line with line[0]
307 o compat.c: fix wrong exit status for multiple failed main targets
308 refactor Compat_Run to show the error condition more clearly
309 don't make .END if the main targets already failed (-k mode)
310 fix exit status in -k mode if a dependency fails
311 o for.c: clean up Buf_AddEscaped in .for loops
312 o job.c: extract ShellWriter_ErrOn from JobPrintCommand
313 make Job_Touch simpler
315 rename Shell.exitFlag to errFlag
316 move Job.xtraced to ShellWriter
317 make printing of shell commands independent from the job
318 rename shell flags in struct Shell
319 extract JobOpenTmpFile from JobStart
320 rename RunFlags to CommandFlags
321 split various Job.* into separate fields
322 rename commandShell to shell
323 extract InitShellNameAndPath from Shell_Init
324 replace signal handling macros with local functions
325 replace macro MESSAGE with local function
326 parse.c: error out on null bytes in makefiles
327 error out on misspelled directives
328 rename IFile.nextbuf to readMore
329 fix undefined behavior in ParseEOF
330 str.c: remove redundant call to strlen in Str_Words
331 var.c: error out on misspelled .unexport-env
332 error out on misspelled .export directives
333 extract ExportVars from Var_Export
334 extract ExportVarsExpand from Var_Export
335 eliminate boolean argument of Var_Export
336 fix undefined behavior when exporting ${:U }
337 rename Var_ExportVars to Var_ReexportVars
338 rename Var_Export1 to ExportVar
340 2020-12-06 Simon J Gerraty <sjg@beast.crufty.net>
342 * VERSION (_MAKE_VERSION): 20201206
343 Merge with NetBSD make, pick up
345 o inline macros for debug logging
346 o use consistent variable names for list nodes
347 o define constants for enum zero-values
348 o dir.c: use fixed format for debug output of the directory cache
350 o lst.c: inline Lst_Enqueue, Vector_Done
351 o meta.c: remove unused parameter from meta_needed
352 o parse.c: rename parse functions
353 o suff.c: extract ExpandChildrenRegular from ExpandChildren
354 o targ.c: don't concatenate identifiers in Targ_PrintType
355 o var.c: remove comment decoration
356 extract UnexportVars from Var_UnExport
357 extract GetVarnamesToUnexport from Var_UnExport
358 extract UnexportEnv from Var_UnExport
359 extract UnexportVar from Var_UnExport
360 move CleanEnv to UnexportVars
361 replace pointer comparisons with enum
362 add FStr to var.c to make memory handling simpler
363 use FStr in Var_UnExport
364 move type definitions in var.c to the top
365 extract FreeEnvVar from Var_Parse
366 extract ShuffleStrings from ApplyModifier_Order
368 2020-11-30 Simon J Gerraty <sjg@beast.crufty.net>
370 * VERSION (_MAKE_VERSION): 20201130
371 Merge with NetBSD make, pick up
372 o add unit tests for META MODE
373 o reduce memory allocation for dirSearchPath, GNode.parents,
374 GNode.children, OpenDirs
375 o reduce pointer indirection for GNode.cohorts and
376 GNode.implicitParents
377 o remove pointer indirection from GNode.commands
378 o inline Lst_ForEachUntil in meta mode
379 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
380 clean up memory management for CachedDirs
381 fix the reference count of dotLast going negative
382 add debug logging for OpenDirs_Done
383 extract CacheNewDir from Dir_AddDir
384 add debug logging for reference counting of CachedDir
385 rename some Dir functions to SearchPath
386 o job.c: rename some global variables
387 o main.c: reduce memory allocation in ReadBuiltinRules
388 reduce memory allocation in CmdOpts.create, CmdOpts.variables,
390 Add .MAKE.UID and .MAKE.GID
391 o make.c: reduce memory allocation for/in toBeMade,
392 Make_ProcessWait, Make_ExpandUse
393 o meta.c: reduce memory allocation in meta_oodate
394 o parse.c: reduce memory allocations for parsing dependencies and
396 o suff.c: reduce memory allocation in suffix handling
398 2020-11-24 Simon J Gerraty <sjg@beast.crufty.net>
400 * VERSION (_MAKE_VERSION): 20201124
401 Merge with NetBSD make, pick up
402 o .MAKE.{UID,GID} represent uid and gid running make.
403 o fix error handling for .BEGIN and .END dependency in -k mode
404 o fix missing "Stop." after failed .END node in -k mode
405 o use properly typed comparisons in boolean contexts
406 o replace a few HashTable_CreateEntry with HashTable_Set
408 o compat.c: split Compat_Make into smaller functions
409 extract DebugFailedTarget from Compat_RunCommand
410 o dir.c: refactor Dir_UpdateMTime
411 migrate CachedDir.files from HashTable to HashSet
412 o make.c: add high-level API for GNode.made
414 2020-11-22 Simon J Gerraty <sjg@beast.crufty.net>
416 * VERSION (_MAKE_VERSION): 20201122
417 Merge with NetBSD make, pick up
418 o rename GNode.context to vars
419 o suff.c: cleanup and refactor
420 rename some functions and vars to better reflect usage
421 add high-level API for CandidateSearcher
422 o targ.c: add more debug logging for suffix handling
424 o add debug logging for setting and resetting the main target
426 2020-11-17 Simon J Gerraty <sjg@beast.crufty.net>
428 * VERSION (_MAKE_VERSION): 20201117
429 Merge with NetBSD make, pick up
430 o fix some unit-tests when .SHELL is dash
431 o rename Targ_NewGN to GNode_New
432 o make some GNode functions const
433 o main.c: call Targ_Init before Var_Init
434 cleanup PrintOnError, getTmpdir and ParseBoolean
435 o var.c: fix error message of failed :!cmd! modifier
437 2020-11-14 Simon J Gerraty <sjg@beast.crufty.net>
439 * VERSION (_MAKE_VERSION): 20201114
440 Merge with NetBSD make, pick up
441 o replace a few HashTable_CreateEntry with HashTable_Set
442 o clean up cached_stats
443 o rename DEFAULT to defaultNode
444 o remove redundant struct make_stat
445 o cond.c: in lint mode, check for ".else <cond>"
446 use bitset for IfState
447 replace large switch with if-else in Cond_EvalLine
448 o job.c: clean up JobExec, JobStart, JobDoOutput
449 use stderr for error message about failed touch
451 replace macro DBPRINTF with JobPrintln
452 rename JobState to JobStatus
453 main.c: switch cache for realpath from GNode to HashTable
455 clean up InitDefSysIncPath
456 use progname instead of hard-coded 'make' in warning
457 rename Main_SetVarObjdir to SetVarObjdir
458 make.1: document the -S option
459 make.c: fix debug output for GNode details
460 use symbolic names in debug output of GNodes
462 2020-11-12 Simon J Gerraty <sjg@beast.crufty.net>
464 * configure.in: fix --with-force-machine-arch
466 * VERSION (_MAKE_VERSION): 20201112
467 Merge with NetBSD make, pick up
468 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
469 checks in InitObjdir. Explicit .OBJDIR target always allows
471 o cond.c: clean up Cond_EvalLine
473 2020-11-11 Simon J Gerraty <sjg@beast.crufty.net>
475 * VERSION (_MAKE_VERSION): 20201111
476 Merge with NetBSD make, pick up
479 remove redundant parentheses from sizeof operator
480 replace character literal 0 with '\0'.
481 replace pointer literal 0 with NULL.
482 remove redundant parentheses.
483 replace (expr & mask) == 0 with !(expr & mask).
484 use strict typing in conditions of the form !var
485 o rename Make_OODate to GNode_IsOODate
486 o rename Make_TimeStamp to GNode_UpdateYoungestChild
487 o rename Var_Set_with_flags to Var_SetWithFlags
488 o rename dieQuietly to shouldDieQuietly
489 o buf.c: make API of Buf_Init simpler
490 o compat.c: clean up Compat_Make, Compat_RunCommand,
491 CompatDeleteTarget and CompatInterrupt
492 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
493 clean up CondParser_Comparison
494 o main.c: rename getBoolean and s2Boolean
495 rename MAKEFILE_PREFERENCE for consistency
496 o parse.c: replace strstr in ParseMaybeSubMake with optimized code
497 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
498 replace emptyString with allocated empty string
499 error out on unclosed expressions after the colon
501 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
503 * VERSION (_MAKE_VERSION): 20201101
504 Merge with NetBSD make, pick up
505 o negate NoExecute to GNode_ShouldExecute
506 o job.c: rename JobMatchShell to FindShellByName
507 extract EscapeShellDblQuot from JobPrintCommand
508 extract ParseRunOptions from JobPrintCommand
509 o var.c: extract ApplyModifiersIndirect from ApplyModifiers
510 treat malformed :range, :ts and :[...] as errors
511 add tests for the variable modifiers :[words] and :range
513 2020-10-31 Simon J Gerraty <sjg@beast.crufty.net>
515 * VERSION (_MAKE_VERSION): 20201031
516 Merge with NetBSD make, pick up
517 o format #include directives consistently
518 o do not look up local variables like .TARGET anywhere else
519 o main.c: Main_SetObjdir is first called for curdir which may be
521 reduce the scope where recursive expressions are detected
522 remove redundant :tl from getBoolean
524 o meta.c: simplify memory allocation in meta_create and meta_oodate
525 o parse.c: extract loadedfile_mmap from loadfile
526 o trace.c: document possible undefined behavior with .CURDIR
527 o var.c: make parsing of the :gmtime and :localtime modifiers stricter
528 rename ismeta to is_shell_metachar
529 remove debug logging for the :Q variable modifier
530 rename VarIsDynamic to VarnameIsDynamic
531 use consistent parameter order in varname parsing functions
532 extract ParseVarnameLong from Var_Parse
533 extract ParseVarnameShort from Var_Parse
534 fix type of ParseModifierPart parameter delim
535 extract IsEscapedModifierPart from ParseModifierPart
537 add test for combining the :@ and :? variable modifiers
539 2020-10-30 Simon J Gerraty <sjg@beast.crufty.net>
541 * VERSION (_MAKE_VERSION): 20201030
542 Merge with NetBSD make, pick up
543 o change char * to void * in Var_Value
544 o make iterating over HashTable simpler
545 o rename VAR_CMD to VAR_CMDLINE
546 o cond.c: clean up is_separator
547 fix parse error in string literal in conditional
548 o main.c: do not use objdir that is not writable
549 in lint mode, exit with error status on errors
550 o parse.c: clean up StrContainsWord
551 fix out-of-bounds pointer in ParseTrackInput
552 o var.c: rename Str_SYSVMatch and its parameters
553 remove unsatisfiable conditions in Var_Set_with_flags
554 document where the variable name is expanded
555 fix documentation for VARP_SUB_ONE
556 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
557 document VAR_READONLY
558 prevent appending to read-only variables
559 extract MayExport from Var_Export1
560 remove redundant evaluations in VarFind
561 replace VarFindFlags with a simple Boolean
562 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
564 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
566 * VERSION (_MAKE_VERSION): 20201028
567 Merge with NetBSD make, pick up
568 o rename defIncPath to defSysIncPath
569 o initialize all CmdOpts fields
570 o lst.c: inline Vector_Get
571 o main.c: refactor main extract
572 InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
573 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
574 InitDefIncPath,CmdOpts_Init,UnlimitFiles
575 o parse.c: merge curFile into includes
576 rename predecessor to order_pred
577 sort ParseSpecial alphabetically
578 remove unused, undocumented .NOEXPORT
579 rename ParseSpecial enum values consistently
580 rename some fields of struct IFile
582 2020-10-26 Simon J Gerraty <sjg@beast.crufty.net>
584 * VERSION (_MAKE_VERSION): 20201026
585 Merge with NetBSD make, pick up
586 o group the command line options and arguments into a struct
587 o rename GNode.cmgn to youngestChild
588 o rename hash functions to identify the type name
589 o negate OP_NOP and rename it to GNode_IsTarget
590 o add GNode_Path to access the path of a GNode
591 o remove macros MIN and MAX
592 o remove unused Lst_Find and Lst_FindFrom
593 o arch.c: and make Arch_FindLib simpler
595 make Arch_ParseArchive simpler
596 o cond.c: inline CondFindStrMatch into FuncMake
597 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
598 omit trailing space in debug output for expanding file patterns
599 refactor DirMatchFiles
600 document that the SearchPath of Dir_FindFile may be NULL
601 remove UNCONST from Dir_Expand
603 o for.c: clean up code for handling .for loops
604 o hash.c: print hash in debug log with fixed width
605 clean up hash table functions
606 reduce amount of string hashing
607 o job.c: refactor JobDeleteTarget
608 use proper enum constants for aborting
609 convert result of JobStart from macros to enum
610 convert abort reason macros to enum
611 rework Job_CheckCommands to reduce indentation
613 add field names in declaration of DEFSHELL_CUSTOM
614 convert JobState and JobFlags to enum types
615 move handling of the "..." command to JobPrintCommands
618 remove Lst_Open, Lst_Next, Lst_Close
619 remove code for circular lists from Lst_Next
620 o main.c: do not attempt to read .MAKE.DEPENFILE if set to
621 /dev/null or anything starting with "no"
622 convert macros for debug flags into enum
623 o make.c: inline Lst_Copy in Make_ExpandUse
624 o meta.c: inline Lst_Find in meta_oodate
625 make Lst_RemoveIf simpler in meta_oodate
626 o parse.c: convert error level for Parse_Error to an enum
627 o suff.c: properly terminate debug output with newline
628 add more details to DEBUG_SRC log
629 replace Dir_CopyDir with Dir_CopyDirSearchPath
630 don't modify GNode name while rebuilding the suffix graph
631 o var.c: reduce duplicate code in VarFind
633 2020-10-22 Simon J Gerraty <sjg@beast.crufty.net>
635 * VERSION (_MAKE_VERSION): 20201022
636 Merge with NetBSD make, pick up
637 o more refactoring and simplification to reduce code size
638 o var.c: extract CanonicalVarname from VarFind
639 o make.c: extract UpdateImplicitParentsVars from Make_Update
640 o main.c: extract PrintVar from doPrintVars
641 extract HandlePWD from main
642 o lst.c: inline simple Lst getters
643 remove unused Lst_ForEach
644 o job.c: move struct Shell from job.h to job.c
647 2020-10-19 Simon J Gerraty <sjg@beast.crufty.net>
649 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
651 2020-10-18 Simon J Gerraty <sjg@beast.crufty.net>
653 * VERSION (_MAKE_VERSION): 20201018
654 Merge with NetBSD make, pick up
656 o rename some Hash_* apis to Hash*
657 o replace execError with execDie
658 o rename Lst_Init to Lst_New
659 o add tags to enum types
660 o rename Stack to Vector
661 o parse.c: more refactoring
662 o unit-tests: make some tests use line buffered stdout
663 o unit-tests/Makefile: in meta mode do not make all tests depend on
664 Makefile, it isn't necessary.
666 2020-10-10 Simon J Gerraty <sjg@beast.crufty.net>
668 * main.c: check for CTL_HW being defined.
669 * unit-tests/Makefile: ensure export tests output are POSIX compliant
670 disable opt-debug-jobs test until it works on ubuntu
672 * VERSION (_MAKE_VERSION): 20201010
673 Merge with NetBSD make, pick up
674 o dir.c: remove pathname limit for Dir_FindHereOrAbove
675 o hash.c: replace strcpy with memcpy in Hash_CreateEntry
676 o main.c: extract init_machine and init_machine_arch from main
677 allow to disable debug logging options
678 o parse.c: enable format string truncation warnings
679 extract parsing of sources from ParseDoDependency
680 split ParseDoSrc into smaller functions
681 hide implementation details from Parse_DoVar
682 clean up parsing of variable assignments
683 split Parse_DoVar into manageable pieces
684 don't modify the given line during Parse_DoVar
685 fix out-of-bounds memory access in Parse_DoVar
686 fix parsing of the :sh assignment modifier
687 o var.c: rework memory allocation for the name of variables
688 extract ApplyModifier_Literal into separate function
689 in lint mode, reject modifiers without delimiter
690 do not export variable names starting with '-'
691 o fix double-free bug in -DCLEANUP mode
692 o more cleanup to enable higher warnings level
695 2020-10-02 Simon J Gerraty <sjg@beast.crufty.net>
697 * VERSION (_MAKE_VERSION): 20201002
698 Merge with NetBSD make, pick up
699 o dir.c: use hash table for looking up open directories by name
700 o main.c: clean up option handling
701 o parse.c: add missing const for Parse_AddIncludeDir
702 o var.c: ApplyModifier_To, update pp in each branch
703 o remove redundant function prototypes
706 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
708 * VERSION (_MAKE_VERSION): 20201001
709 Merge with NetBSD make, pick up
710 o compat.c: comment about "..."
712 2020-09-30 Simon J Gerraty <sjg@beast.crufty.net>
714 * VERSION (_MAKE_VERSION): 20200930
715 Merge with NetBSD make, pick up
716 o job.c: split Job.jobPipe into 2 separate fields
717 replace Lst_Open with direct iteration
718 o lst.c: remove redundant assertions
719 o targ.c: replace Lst_Open with direct iteration
720 o var.c: fix bug in evaluation of indirect variable modifiers
721 extract ApplyModifier_Quote into separate function
722 o make debug logging simpler
724 2020-09-27 Simon J Gerraty <sjg@beast.crufty.net>
726 * VERSION (_MAKE_VERSION): 20200927
727 Merge with NetBSD make, pick up
728 o parse.c: ensure parse errors result in 'stopped in' message.
729 o compat.c: make parameter of Compat_RunCommand const
730 o main.c: extract InitVarTarget from main
731 o parse.c: rename ParseFinishLine to FinishDependencyGroup
732 refactor ParseDoDependency
733 o var.c: Var_Subst no longer returns string result
734 rename Var_ParsePP back to Var_Parse
735 in lint mode, improve error handling for undefined variables
736 extract ParseVarname from Var_Parse
737 o rename Lst_ForEach to Lst_ForEachUntil
738 o inline Lst_ForEachUntil in several cases
739 o clean up API for finding and creating GNodes
740 o fix assertion failure in -j mode with .END node
741 o inline and remove LstNode_Prev and LstNode_Next
742 o use fine-grained type names for lists and their nodes
745 2020-09-11 Simon J Gerraty <sjg@beast.crufty.net>
747 * VERSION (_MAKE_VERSION): 20200911
748 Merge with NetBSD make, pick up
749 o cond.c: split EvalComparison into smaller functions
750 reorder parameters of condition parsing functions
751 reduce code size in CondParser_Eval
752 rename CondGetString to CondParser_String
753 add CondLexer_SkipWhitespace
754 group the condition parsing state into a struct
755 in CondGetString, replace repeated Buf_Add with Buf_AddStr
756 o migrate Var_Parse to Var_ParsePP
757 o add wrappers around ctype.h functions
758 o lst.c: use a stack instead of a list for the nested include path
761 2020-09-04 Simon J Gerraty <sjg@beast.crufty.net>
763 * make-bootstrap.sh.in: adjust object list
765 2020-09-02 Simon J Gerraty <sjg@beast.crufty.net>
767 * VERSION (_MAKE_VERSION): 20200902
768 Merge with NetBSD make, pick up
769 o use make_stat to ensure no confusion over valid fields
770 returned by cached_stat
771 o var.c: make VarQuote const-correct
772 o add unit tests for .for
774 2020-09-01 Simon J Gerraty <sjg@beast.crufty.net>
776 * VERSION (_MAKE_VERSION): 20200901
777 Merge with NetBSD make, pick up
778 o rename Hash_Table fields
779 o make data types in Dir_HasWildcards more precise
781 2020-08-31 Simon J Gerraty <sjg@beast.crufty.net>
783 * VERSION (_MAKE_VERSION): 20200831
784 Merge with NetBSD make, pick up
785 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
786 o lst.c: Lst_Open renable assert that list isn't open
787 o unit test for .TARGET dependent flags
788 o var.c: fix aliasing bug in VarUniq
789 o more unit tests for :u
791 2020-08-30 Simon J Gerraty <sjg@beast.crufty.net>
793 * VERSION (_MAKE_VERSION): 20200830
794 Merge with NetBSD make, pick up
795 o allow for strict type checking for Boolean
796 o Var_Parse never returns NULL
797 o Var_Subst never returns NULL
798 o Lst_Find now takes boolean match function
799 o rename Lst_Memeber to Lst_FindDatum
800 o rename LstNode functions to match their type
801 o rename GNode.iParents to implicitParents
802 o fix assertion failure for .SUFFIXES in archives
803 o compat.c: clean up documentation for CompatInterrupt and Compat_Run
804 remove unreachable code from CompatRunCommand
805 o main.c: simplify getBoolean
806 o stc.c: replace brk_string with simpler Str_Words
807 o suff.c: add debug macros
809 2020-08-28 Simon J Gerraty <sjg@beast.crufty.net>
811 * VERSION (_MAKE_VERSION): 20200828
812 Merge with NetBSD make, pick up
813 o lst.c: inline LstIsValid and LstNodeIsValid
814 o remove trailing S from Lst function names after migration complete
815 o more comment cleanup/clarification
816 o suff.c: clean up suffix handling
819 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
821 * VERSION (_MAKE_VERSION): 20200826
822 Merge with NetBSD make, pick up
823 o enum.c: distinguish between bitsets containing flags and
825 o var.c: fix error message for ::!= modifier with shell error
826 o fix bugs in -DCLEANUP mode
828 2020-08-24 Simon J Gerraty <sjg@beast.crufty.net>
830 * VERSION (_MAKE_VERSION): 20200824
831 Merge with NetBSD make, pick up
832 o in debug mode, print GNode details in symbols
834 2020-08-23 Simon J Gerraty <sjg@beast.crufty.net>
836 * VERSION (_MAKE_VERSION): 20200823
837 Merge with NetBSD make, pick up
838 o lst.c: more asserts,
839 make args to Lst_Find match others.
840 o var.c: pass flags to VarAdd
842 o str.c: brk_string return size_t for nwords
845 2020-08-22 Simon J Gerraty <sjg@beast.crufty.net>
847 * VERSION (_MAKE_VERSION):
848 Merge with NetBSD make, pick up
849 o var.c: support for read-only variables eg .SHELL
850 being the shell used to run scripts.
851 o lst.c: more simplification
852 o more documentation and style cleanup
854 o ensure unit-test/Makefile is run by TEST_MAKE
855 o reduce duplication of header inclusion
857 2020-08-21 Simon J Gerraty <sjg@beast.crufty.net>
859 * VERSION (_MAKE_VERSION): 20200821
860 Merge with NetBSD make, pick up
861 o lst.c: revert invalid assertion - but document it
862 o dir.c: split Dir_Init into two functions
864 2020-08-20 Simon J Gerraty <sjg@beast.crufty.net>
866 * lst.c: needs inttypes.h on Linux
868 * VERSION (_MAKE_VERSION): 20200820
869 Merge with NetBSD make, pick up
870 o make.1: clarify some passages
871 o var.c: more cleanup, clarify comments
872 o make_malloc.c: remove unreachable code
873 o cond.c: make CondGetString easier to debug
874 o simplify list usage
877 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
879 * VERSION (_MAKE_VERSION): 20200816
880 Merge with NetBSD make, pick up
881 o refactor unit-tests to be more fine grained
882 not all tests moved yet
884 2020-08-14 Simon J Gerraty <sjg@beast.crufty.net>
886 * VERSION (_MAKE_VERSION): 20200814
887 Merge with NetBSD make, pick up
888 o more str_concat variants
889 o more enums for flags
890 o var.c: cleanup for higher warnings level
892 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
894 * VERSION (_MAKE_VERSION): 20200810
895 Merge with NetBSD make, pick up
897 o general comment and style cleanup
899 2020-08-08 Simon J Gerraty <sjg@beast.crufty.net>
901 * VERSION (_MAKE_VERSION): 20200808
902 Merge with NetBSD make, pick up
903 o enum.[ch]: streamline, enums for use in flags and debug output
905 o var.c: reduce duplicate code for modifiers
906 debug logging for Var_Parse
907 more detailed debug output
910 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
912 * unit-tests/Makefile: -r for recursive and include Makefile.inc
913 so I can run tests in meta mode
914 supress extra noise if in meta mode
916 * VERSION (_MAKE_VERSION): 20200806
917 Merge with NetBSD make, pick up
918 o parse.c: remove VARE_WANTRES for LINT
919 we just want to check parsing (for now).
921 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
923 * VERSION (_MAKE_VERSION): 20200805
924 Merge with NetBSD make, pick up
925 o make.1: Rework the description of dependence operators
927 2020-08-03 Simon J Gerraty <sjg@beast.crufty.net>
929 * VERSION (_MAKE_VERSION): 20200803
930 Merge with NetBSD make, pick up
931 o revert some C99 usage, for max portability
934 2020-08-02 Simon J Gerraty <sjg@beast.crufty.net>
936 * VERSION (_MAKE_VERSION): 20200802
937 Merge with NetBSD make, pick up
940 2020-08-01 Simon J Gerraty <sjg@beast.crufty.net>
942 * Remove NetBSD specific plumbing from unit-tests/Makefile
944 * VERSION (_MAKE_VERSION): 20200801
945 Merge with NetBSD make, pick up
946 o make Var_Value return const
947 o size_t for buf sizes
948 o optimize some buffer operations - avoid strlen
950 2020-07-31 Simon J Gerraty <sjg@beast.crufty.net>
952 * VERSION (_MAKE_VERSION): 20200731
953 Merge with NetBSD make, pick up
954 o var.c: fix undefinded behavior for incomplete :t modifier
955 fixes unit-test/moderrs on Ubuntu
956 o parse.c: When parsing variable assignments other than :=
957 if DEBUG(LINT) test substition of value, so we get a file and
958 line number in the resulting error.
959 o dir.c: fix parsing of nested braces in dependency lines
962 2020-07-30 Simon J Gerraty <sjg@beast.crufty.net>
964 * VERSION (_MAKE_VERSION): 20200730
965 Merge with NetBSD make, pick up
966 o var.c: minor cleanup
967 o unit-tests: more tests to improve code coverage
969 2020-07-28 Simon J Gerraty <sjg@beast.crufty.net>
971 * VERSION (_MAKE_VERSION): 20200728
972 Merge with NetBSD make, pick up
973 o var.c: more optimizations
975 2020-07-26 Simon J Gerraty <sjg@beast.crufty.net>
977 * VERSION (_MAKE_VERSION): 20200726
978 Merge with NetBSD make, pick up
979 o collapse lsd.lib into lst.c - reduce code size and allow inlining
980 o lots of function comment updates
981 o var.c: more optimizations
982 o make return of Var_Parse const
984 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
986 * VERSION (_MAKE_VERSION): 20200720
987 Merge with NetBSD make, pick up
988 o DEBUG_HASH report stats at end and tone down the noise
989 o var.c: each flag type gets its own prefix.
990 move SysV string matching to var.c
991 make ampersand in ${VAR:from=to&} an ordinary character
992 cleanup and simplify implementation of modifiers
993 o make.1: move documentation for assignment modifiers
995 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
997 * VERSION (_MAKE_VERSION): 20200718
998 Merge with NetBSD make, pick up
999 o DEBUG_HASH to see how well the hash tables are working
1001 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
1003 * bsd.after-import.mk: make sure we update unit-tests/Makefile
1005 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
1007 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
1009 * VERSION (_MAKE_VERSION): 20200710
1010 Merge with NetBSD make, pick up
1011 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
1012 o meta.c: target flagged .META is out-of-date if meta file missing
1014 2020-07-09 Simon J Gerraty <sjg@beast.crufty.net>
1016 * VERSION (_MAKE_VERSION): 20200709
1017 Merge with NetBSD make, pick up
1018 o cond.c: fix for compare_expression when doEval=0
1019 o unit-tests/Makefile: rework
1020 o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
1022 2020-07-04 Simon J Gerraty <sjg@beast.crufty.net>
1024 * VERSION (_MAKE_VERSION): 20200704
1025 Merge with NetBSD make, pick up
1026 (most of this by rillig@)
1027 o lots of style and white-space cleanup
1028 o lots more unit tests for variable modifiers
1029 o simplified description of some functions
1030 o str.c: refactor Str_Match
1031 o var.c: debugging output for :@
1032 constify VarModify parameter
1033 fix :hash modifier on 16-bit platforms
1034 remove unnecessary forward declarations
1035 refactor ApplyModifier_SysV to have less indentation
1036 simplify code for :E and :R
1037 clean up code for :H and :T
1038 refactor ApplyModifiers
1040 * var.c: we need stdint.h on some platforms to get uint32_t
1041 * unit-test/Makefile: we need to supress the specific error
1042 for RE substitution error in modmisc, since it varies accross
1045 2020-07-02 Simon J Gerraty <sjg@beast.crufty.net>
1047 * VERSION (_MAKE_VERSION): 20200702
1048 Merge with NetBSD make, pick up
1049 o var.c: more improvements to avoiding unnecessary evaluation
1051 o remove flags arg to Var_Set which outside of var.c is always 0
1053 2020-07-01 Simon J Gerraty <sjg@beast.crufty.net>
1055 * VERSION (_MAKE_VERSION): 20200701
1056 Merge with NetBSD make, pick up
1057 o var.c: with change to cond.c; ensure that nested variables
1058 within a variable name are expanded.
1059 o unit-tests/varmisc.mk: test for nested varname
1061 2020-06-29 Simon J Gerraty <sjg@beast.crufty.net>
1063 * VERSION (_MAKE_VERSION): 20200629
1064 Merge with NetBSD make, pick up
1065 o cond.c: do not eval unnecessary terms of conditionals.
1067 2020-06-25 Simon J Gerraty <sjg@beast.crufty.net>
1069 * VERSION (_MAKE_VERSION): 20200625
1070 Merge with NetBSD make, pick up
1071 o meta.c: report error if lseek in filemon_read fails
1073 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
1075 * VERSION (_MAKE_VERSION): 20200622
1076 Merge with NetBSD make, pick up
1077 o dieQuietly: ignore OP_SUBMAKE as too aggressive
1079 2020-06-19 Simon J Gerraty <sjg@beast.crufty.net>
1081 * VERSION (_MAKE_VERSION): 20200619
1082 Merge with NetBSD make, pick up
1083 o str.c: performance improvement for Str_Match for multiple '*'
1084 o dieQuietly: supress the failure output from make
1085 when failing node is a sub-make or a sibling failed.
1086 This cuts down greatly on unhelpful noise at the end of
1087 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no
1089 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
1091 * FILES: add LICENSE to appease some packagers.
1092 This is an attempt to fairly represent the license on almost
1093 200 files, which are almost all BSD-3-Clause
1094 The few exceptions being more liberal.
1096 * VERSION (_MAKE_VERSION): 20200610
1097 Merge with NetBSD make, pick up
1100 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
1102 * VERSION (_MAKE_VERSION): 20200606
1103 Merge with NetBSD make, pick up
1106 * Makefile: fix depends for main.o which broke MAKE_VERSION
1108 2020-06-05 Simon J Gerraty <sjg@beast.crufty.net>
1110 * VERSION (_MAKE_VERSION): 20200605
1111 Merge with NetBSD make, pick up
1112 o dir.c: cached_stats - don't confuse stat and lstat results.
1113 o var.c: add :Or for reverse sort.
1115 2020-05-24 Simon J Gerraty <sjg@beast.crufty.net>
1117 * configure.in: add AC_PROG_CC_C99 for mipspro compiler
1118 also if --with-filemon= specifies path to filemon.h
1120 * dirname.c: remove include of namespace.h
1122 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
1124 * VERSION (_MAKE_VERSION): 20200517
1125 Merge with NetBSD make, pick up
1126 o modified dollar tests to avoid shell dependencies
1127 o new tests for .INCLUDEFROM
1129 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
1131 * unit-tests/dollar.mk: tweak '1 dollar literal' test
1132 to not depend so much on shell behavior
1134 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
1136 * VERSION (_MAKE_VERSION): 20200510
1137 Merge with NetBSD make, pick up
1138 o unit test for dollar handling
1140 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
1142 * VERSION (_MAKE_VERSION): 20200506
1143 Merge with NetBSD make, pick up
1144 o str.c: empty string does not match % pattern
1145 plus unit-test changes
1147 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
1149 * VERSION (_MAKE_VERSION): 20200504
1150 May the 4th be with you
1151 Merge with NetBSD make, pick up
1152 o var.c: import handling of old sysV style modifier using '%'
1153 o str.c: refactor brk_string
1154 o unit-tests: add test case for lazy conditions
1156 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
1158 * VERSION (_MAKE_VERSION): 20200418
1160 * configure.in: use_makefile=no for cygwin et al.
1161 case insensitive filesystems just don't work if both
1162 makefile and Makefile exist.
1163 NOTE: bmake does not support cygwin and likely never will,
1164 but if brave souls want to try it - help them out.
1166 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
1168 * VERSION (_MAKE_VERSION): 20200402
1169 Merge with NetBSD make, pick up
1170 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
1171 a blank command is perfectly valid.
1173 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
1175 * VERSION (_MAKE_VERSION): 20200330
1176 Merge with NetBSD make, pick up
1177 o make.h: extern debug_file
1179 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
1181 * VERSION (_MAKE_VERSION): 20200318
1182 Merge with NetBSD make, pick up
1183 o meta.c: meta_oodate, check for corrupted meta file
1184 earlier and more often.
1186 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
1188 * VERSION (_MAKE_VERSION): 20200220
1190 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
1192 * boot-strap: unset MAKEFLAGS
1194 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
1196 * VERSION (_MAKE_VERSION): 20200212
1197 * meta.c: meta_compat_parent check for USE_FILEMON
1198 patch from Soeren Tempel
1200 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
1203 Merge with NetBSD make, pick up
1204 o meta.c: fix compat mode, need to call meta_job_output()
1205 o job.c: extra fds for meta mode not needed if using filemon_dev
1207 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
1210 Merge with NetBSD make, pick up
1211 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1214 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
1217 Merge with NetBSD make, pick up
1218 o filemon/filemon_{dev,ktrace}.c: allow selection of
1219 filemon implementation. filemon_dev.c uses the kernel module
1220 while filemon_ktrace.c leverages the fktrace api available in
1221 NetBSD. filemon_ktrace.c can hopefully form the basis for
1222 adding support for other tracing mechanisms such as strace on
1224 o meta.c: when target is out-of-date per normal make rules
1225 record value of .OODATE in meta file.
1227 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
1230 Merge with NetBSD make, pick up
1231 o parse.c: don't pass NULL to realpath(3)
1232 some versions cannot handle it.
1234 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
1237 Merge with NetBSD make, pick up
1238 o parse.c: ParseDoDependency: free paths rather than assert
1240 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
1244 * configure.in: add --without-makefile to avoid generating
1245 makefile and make-bootstrap.sh
1247 * include Makefile.inc if it exists
1249 * Use Makefile and Makefile.config.in in unit-tests
1250 so we can use just: make obj && make && make test
1251 when bmake is already available.
1252 We add --without-makefile to CONFIGURE_ARGS in this case.
1254 * tweak bsd.after-import.mk (captures Makefile.config etc
1255 after import to FreeBSD for example) to cope with all the above.
1257 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
1260 Merge with NetBSD make, pick up
1261 o parse.c: ParseVErrorInternal use .PARSEDIR
1262 and apply if relative, and then use .PARSEFILE
1263 for consistent result.
1265 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
1268 Merge with NetBSD make, pick up
1269 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1271 o var.c: avoid SEGFAULT in .unexport-env
1272 when MAKELEVEL is not set
1274 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
1277 Merge with NetBSD make, pick up
1278 o fix for unit-tests/varquote.mk on Debian
1280 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
1283 Merge with NetBSD make, pick up
1285 o dir.c: cleanup caching of stats
1287 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
1289 * Makefile.config.in: use += where it makes sense.
1291 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1294 Merge with NetBSD make, pick up
1295 o job.c: skip polling job token pipe
1297 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1300 Merge with NetBSD make, pick up
1301 o parse.c: be more cautious about detecting depenency line
1302 rather than sysV style include.
1304 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
1307 Merge with NetBSD make, pick up
1308 o parse.c: avoid calling sysconf for every call to loadfile
1310 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1313 Merge with NetBSD make, pick up
1314 o var.c: Var_Set handle NULL value anytime.
1316 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
1319 Merge with NetBSD make, pick up
1320 o parse.c: do not treat .info as warning with -W
1322 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
1325 Merge with NetBSD make, pick up
1326 o var.c: Var_Append use Var_Set if var not previously set
1327 so that VAR_CMD is handled correctly.
1328 Add a suitable unit-test.
1330 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1332 * VERSION (_MAKE_VERSION): 20171126
1334 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1335 since AC_TRY_COMPILE puts input inside main()
1336 which upsets modern compilers.
1338 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
1341 Merge with NetBSD make, pick up
1342 o var.c: do not append to variable set on command line
1343 add unit-test to catch this.
1345 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1348 Merge with NetBSD make, pick up
1349 o main.c: ignore empty MAKEOBJDIR
1351 * Makefile.config.in:
1352 make @prefix@ @machine*@ and @default_sys_path@ defaults.
1354 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
1358 * unit-tests/dotwait.mk: redirect stderr through pipe for more
1359 consistent result on some platforms.
1361 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
1363 * machine.sh: entry for AIX
1365 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1367 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1368 to a file that can be included by configure as well as make.
1369 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1371 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
1373 * Makefile (_MAKE_VERSION): 20170810
1374 Merge with NetBSD make, pick up
1375 o meta.c: if target is in subdir we only need subdir name in
1378 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
1380 * Makefile (_MAKE_VERSION): 20170720
1381 Merge with NetBSD make, pick up
1382 o compat.c: pass SIGINT etc onto child and wait for it to exit
1383 before we self-terminate.
1385 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1387 * Makefile (_MAKE_VERSION): 20170711
1388 forgot to update after merge on 20170708 ;-)
1389 o main.c: refactor to reduce size of main function.
1390 add -v option to always fully expand values.
1391 o meta.c: ensure command output in meta file has ending newline
1392 even when filemon not being used.
1393 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1394 pathname via ':L' since any ':' in pathname breaks that.
1395 Instead set a '${.p.}' to pathname in the target context and
1398 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
1400 * Makefile (_MAKE_VERSION): 20170510
1401 Merge with NetBSD make, pick up
1402 o main.c: Main_SetObjdir: ensure buf2 is in scope
1404 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
1406 * Makefile (_MAKE_VERSION): 20170505
1409 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1411 * parse.c: not everyone has stdint.h
1413 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1415 * Makefile (_MAKE_VERSION): 20170501
1418 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1420 * Makefile (_MAKE_VERSION): 20170421
1421 Merge with NetBSD make, pick up
1422 o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1424 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1426 * Makefile (_MAKE_VERSION): 20170420
1427 Merge with NetBSD make, pick up
1428 o main.c: only use -C arg "as is" if it contains no
1431 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1433 * Makefile (_MAKE_VERSION): 20170418
1434 Merge with NetBSD make, pick up
1435 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1437 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
1439 * Makefile (_MAKE_VERSION): 20170417
1440 Merge with NetBSD make, pick up
1441 o fixes a number of coverity complaints
1442 - check return value of fseek, fcntl
1443 - plug memory leak in Dir_FindFile, Var_LoopExpand,
1444 JobPrintCommand, ParseTraditionalInclude
1445 - use bmake_malloc() where NULL is not tollerated
1446 - use MAKE_ATTR_UNUSED rather that kludges like
1447 return(unused ? 0 : 0)
1448 - use purge_cached_realpaths() rather than abuse cached_realpath()
1450 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1452 * Makefile (_MAKE_VERSION): 20170413
1453 Merge with NetBSD make, pick up
1454 o main.c: when setting .OBJDIR ignore '$' in paths.
1456 * job.c: use MALLOC_OPTIONS to set malloc_options.
1458 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1460 * Makefile (_MAKE_VERSION): 20170411
1461 Merge with NetBSD make, pick up
1462 o str.c: Str_Match: allow [^a-z] to behave as expected.
1464 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1466 * Makefile (_MAKE_VERSION): 20170326
1467 Merge with NetBSD make, pick up
1468 o main.c: purge relative paths from realpath cache when .OBJDIR
1471 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1473 * Makefile (_MAKE_VERSION): 20170311
1474 Merge with NetBSD make, pick up
1475 o main.c: only use -C arg "as is" if it starts with '/'.
1477 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1479 * Makefile (_MAKE_VERSION): 20170301
1480 Merge with NetBSD make, pick up
1481 o main.c: use -C arg "as is" rather than getcwd()
1482 if they identify the same directory.
1483 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1485 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
1487 * Makefile (_MAKE_VERSION): 20170201
1488 Merge with NetBSD make, pick up
1489 o var.c: allow :_=var and avoid use of special context.
1491 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
1493 * Makefile (_MAKE_VERSION): 20170130
1494 Merge with NetBSD make, pick up
1495 o var.c: add :range and :_
1496 o main.c: partially initialize Dir_* before MainParseArgs()
1498 If -V, skip Main_ExportMAKEFLAGS()
1500 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
1502 * Makefile (_MAKE_VERSION): 20170114
1503 Merge with NetBSD make, pick up
1504 o var.c: allow specifying the utc value used by :{gm,local}time
1506 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1508 * Makefile (_MAKE_VERSION): 20161212
1509 Merge with NetBSD make, pick up
1510 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1512 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
1514 * Makefile (_MAKE_VERSION): 20161209
1515 Merge with NetBSD make, pick up
1516 o main.c: cleanup setting of .OBJDIR
1517 o parse.c: avoid coredump from (var)=val
1519 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1521 * Makefile (_MAKE_VERSION): 20161126
1522 Merge with NetBSD make, pick up
1523 o make.c: Make_OODate: report src node name if path not set
1525 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1527 * Makefile (_MAKE_VERSION): 20160926
1528 Merge with NetBSD make, pick up
1529 o support for .DELETE_ON_ERROR: (remove targets that fail)
1531 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1533 * Makefile MAN: tweak .Dt to match ${PROG}
1535 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
1537 * Makefile (_MAKE_VERSION): 20160818
1538 its a neater number; pick up whitespace fixes to man page.
1540 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
1542 * Makefile (_MAKE_VERSION): 20160817
1543 Merge with NetBSD make, pick up
1544 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1545 so we can call it before adding entries to missingFiles.
1546 Thus we do not track files we have been told to ignore.
1548 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
1550 * Makefile (_MAKE_VERSION): 20160815
1551 Merge with NetBSD make, pick up
1552 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1553 pathnames, and skip if the expansion is empty.
1554 Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1556 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1558 * Makefile (_MAKE_VERSION): 20160812
1559 Merge with NetBSD make, pick up
1560 o meta.c: remove all missingFiles entries that match a deleted
1562 o main.c: set .ERROR_CMD if possible.
1564 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1566 * Makefile (_MAKE_VERSION): 20160606
1567 Merge with NetBSD make, pick up
1568 o dir.c: extend mtimes cache to others via cached_stat()
1570 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1572 * Makefile (_MAKE_VERSION): 20160604
1573 Merge with NetBSD make, pick up
1574 o meta.c: missing filemon data is only relevant if we read a
1576 Also do not return oodate for a missing metafile if gn->path
1579 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1581 * Makefile (_MAKE_VERSION): 20160602
1582 Merge with NetBSD make, pick up
1583 o cached_realpath(): avoid hitting filesystem more than necessary.
1584 o meta.c: refactor need_meta decision, add knobs for
1585 missing meta file and filemon data wrt out-of-datedness.
1587 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1589 * Makefile (_MAKE_VERSION): 20160528
1591 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1593 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1595 * Makefile (_MAKE_VERSION): 20160512
1596 Merge with NetBSD make, pick up
1597 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1598 this is useful for gcov builds.
1599 o propagate errors from filemon(4).
1601 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
1603 * Makefile (_MAKE_VERSION): 20160509
1604 Merge with NetBSD make, pick up
1605 o remove use of non-standard types u_int etc.
1606 o meta.c: apply realpath() before matching against metaIgnorePaths
1608 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
1610 * Makefile (_MAKE_VERSION): 20160404
1611 Merge with NetBSD make, pick up
1612 o allow makefile to set .MAKE.JOBS
1614 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
1616 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1618 * Makefile (_MAKE_VERSION): 20160315
1619 Merge with NetBSD make, pick up
1620 o fix handling of archive members
1622 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1624 * Makefile (_MAKE_VERSION): rename variable to avoid interference
1625 with checks for ${MAKE_VERSION}
1627 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1629 * Makefile (MAKE_VERSION): 20160310
1630 Merge with NetBSD make, pick up
1631 o meta.c: treat missing Read file same as Write, incase we Delete it.
1633 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1635 * Makefile (MAKE_VERSION): 20160307
1636 Merge with NetBSD make, pick up
1637 o var.c: fix :ts\nnn to be octal by default.
1638 o meta.c: meta_finish() to cleanup memory.
1640 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1642 * Makefile (MAKE_VERSION): 20160226
1643 Merge with NetBSD make, pick up
1644 o meta.c: allow meta file for makeDepend if makefiles want it.
1646 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
1648 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
1649 for backwards compatability.
1651 * Makefile (MAKE_VERSION): 20160220
1652 Merge with NetBSD make, pick up
1653 o var.c: add knob to control handling of '$$' in :=
1655 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1657 * Makefile (MAKE_VERSION): 20160218
1658 Merge with NetBSD make, pick up
1659 o var.c: add .export-literal allows us to fix sys.clean-env.mk
1660 post the changes to Var_Subst.
1661 Var_Subst now takes flags, and does not consume '$$' in :=
1663 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
1665 * Makefile (MAKE_VERSION): 20160217
1666 Merge with NetBSD make, pick up
1667 o var.c: preserve '$$' in :=
1668 o parse.c: add .dinclude for handling included
1669 makefile like .depend
1671 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
1673 * Makefile (MAKE_VERSION): 20151220
1674 Merge with NetBSD make, pick up
1675 o suff.c: re-initialize suffNull when clearing suffixes.
1677 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
1679 * Makefile (MAKE_VERSION): 20151201
1680 Merge with NetBSD make, pick up
1681 o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1682 o meta.c: meta_oodate: use lstat(2) for checking link target
1683 in case it is a symlink.
1684 o var.c: avoid calling brk_string and Var_Export1 with empty
1687 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1689 * Makefile (MAKE_VERSION): 20151126
1690 Merge with NetBSD make, pick up
1691 o parse.c: ParseTrackInput don't access beyond
1694 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
1696 * Makefile (MAKE_VERSION): 20151022
1698 * Add support for BSD/OS which lacks inttypes.h
1699 and really needs sys/param.h for sys/sysctl.h
1700 also 'type' is not a shell builtin.
1702 * var.c: eliminate uint32_t and need for inttypes.h
1704 * main.c: PrintOnError flush stdout before run .ERROR
1706 * parse.c: cope with _SC_PAGESIZE not being defined.
1709 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
1711 * Makefile (MAKE_VERSION): 20151020
1712 Merge with NetBSD make, pick up
1713 o var.c: fix uninitialized var
1715 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1717 * var.c: the conditional expressions used with ':?' can be
1718 expensive, if already discarding do not evaluate or expand
1721 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1723 * Makefile (MAKE_VERSION): 20151010
1724 Merge with NetBSD make, pick up
1725 o Add Boolean wantit flag to Var_Subst and Var_Parse
1726 when FALSE we know we are discarding the result and can
1727 skip operations like Cmd_Exec.
1729 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
1731 * Makefile (MAKE_VERSION): 20151009
1732 Merge with NetBSD make, pick up
1733 o var.c: don't check for NULL before free()
1734 o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1736 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
1738 * Makefile (MAKE_VERSION): 20150910
1739 Merge with NetBSD make, pick up
1740 o main.c: with -w print Enter/Leaving messages for objdir too
1742 o centralize shell metachar handling
1744 * FILES: add metachar.[ch]
1746 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1748 * Makefile (MAKE_VERSION): 20150606
1749 Merge with NetBSD make, pick up
1750 o make.1: document .OBJDIR target
1752 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1754 * Makefile (MAKE_VERSION): 20150505
1755 Merge with NetBSD make, pick up
1756 o cond.c: be strict about lhs of comparison when evaluating .if
1757 but less so when called from variable expansion.
1758 o unit-tests/cond2.mk: test various error conditions
1760 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1762 * machine.sh (MACHINE): Add Bitrig
1763 patch from joerg@netbsd.org
1765 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1767 * Makefile (MAKE_VERSION): 20150418
1768 Merge with NetBSD make, pick up
1769 o job.c: use memmove() rather than memcpy()
1771 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
1774 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1776 * Makefile (MAKE_VERSION): 20150411
1777 bump version - only mk/ changes.
1779 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
1781 * Makefile (MAKE_VERSION): 20150410
1782 Merge with NetBSD make, pick up
1783 o document different handling of '-' in jobs mode vs compat
1784 o fix jobs mode so that '-' only applies to whole job
1785 when shell lacks hasErrCtl
1786 o meta.c: use separate vars to track lcwd and latestdir (read)
1789 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
1791 * Makefile (MAKE_VERSION): 20150401
1792 Merge with NetBSD make, pick up
1793 o meta.c: close meta file in child
1795 * Makefile: use BINDIR.bmake if set.
1796 Same for MANDIR and SHAREDIR
1797 Handy for testing release candidates
1798 in various environments.
1800 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1802 * move initialization of savederr to block where it is used
1803 to avoid spurious warning from gcc5
1805 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1807 * Makefile (MAKE_VERSION): 20141111
1808 just a cooler number
1810 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1812 * Makefile (MAKE_VERSION): 20141105
1813 Merge with NetBSD make, pick up
1814 o revert major overhaul of suffix handling
1815 and POSIX compliance - too much breakage
1816 and impossible to make backwards compatible.
1817 o we still have the new unit test structure which is ok.
1818 o meta.c ensure "-- filemon" is at start of line.
1820 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
1822 * configure.in: test that result of getconf PATH_MAX is numeric
1823 and discard if not. Apparently needed for Hurd.
1825 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1827 * Makefile (MAKE_VERSION): 20140830
1828 Merge with NetBSD make, pick up
1829 o major overhaul of suffix handling
1830 o improved POSIX compliance
1831 o overhauled unit-tests
1833 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1835 * Makefile (MAKE_VERSION): 20140620
1836 Merge with NetBSD make, pick up
1837 o var.c return varNoError rather than var_Error for ::= modifiers.
1839 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
1841 * Makefile (MAKE_VERSION): 20140522
1842 Merge with NetBSD make, pick up
1843 o var.c detect some parse errors.
1845 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1847 * Fix spelling errors - patch from Pedro Giffuni
1849 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1851 * Makefile (MAKE_VERSION): 20140214
1852 Merge with NetBSD make, pick up
1854 o use Var_Value to get MAKEOBJDIR[PREFIX]
1855 o reduced realloc'ign in brk_string.
1856 * configure.in: add a check for compiler supporting __func__
1858 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
1860 * boot-strap: ignore mksrc=none
1862 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
1864 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1866 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
1868 * Makefile (MAKE_VERSION): 20140101
1869 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
1870 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
1871 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
1873 * configure.in: Add AC_PREREQ and check for
1874 sysctl; patch from Andrew Shadura andrewsh at debian.org
1876 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
1878 * Makefile (MAKE_VERSION): 20131010
1879 * lose the const from arg to systcl to avoid problems on older BSDs.
1881 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1883 * Makefile (MAKE_VERSION): 20131001
1884 Merge with NetBSD make, pick up
1885 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
1886 hw.machine_arch if necessary.
1887 o meta.c: meta_oodate - need to look at src of Link and target
1889 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
1890 provide __arraycount() if needed.
1892 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
1894 * Makefile (MAKE_VERSION): 20130904
1895 Merge with NetBSD make, pick up
1896 o Add VAR_INTERNAL context, so that internal setting of
1897 MAKEFILE does not override value set by makefiles.
1899 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
1901 * Makefile (MAKE_VERSION): 20130902
1902 Merge with NetBSD make, pick up
1903 o CompatRunCommand: only apply shellErrFlag when errCheck is true
1905 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
1907 * Makefile (MAKE_VERSION): 20130828
1908 Merge with NetBSD make, pick up
1909 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
1910 o Call Job_SetPrefix() from Job_Init() so makefiles have
1911 opportunity to set .MAKE.JOB.PREFIX
1913 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
1915 * Makefile (MAKE_VERSION): 20130730
1916 Merge with NetBSD make, pick up
1917 o Allow suppression of --- job -- tokens by setting
1918 .MAKE.JOB.PREFIX empty.
1920 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
1922 * Makefile (MAKE_VERSION): 20130716
1923 Merge with NetBSD make, pick up
1924 o number of gmake compatibility tweaks
1925 -w for gmake style entering/leaving messages
1926 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
1927 handle MAKEFLAGS containing only letters.
1928 o when overriding a GLOBAL variable on the command line,
1929 delete it from GLOBAL context so -V doesn't show the wrong
1932 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
1934 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
1936 * Makefile (MAKE_VERSION): 20130706
1937 Merge with NetBSD make, pick up
1938 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
1939 true so that CompatRunCommand() can use it, to ensure
1940 consistent behavior with jobs mode.
1941 o use MAKE_LEVEL_ENV to define the variable to propagate
1942 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
1943 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
1946 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1948 * Makefile (MAKE_VERSION): 20130604
1949 Merge with NetBSD make, pick up
1950 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
1951 to avoid leaking descriptors.
1953 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1955 * Makefile (MAKE_VERSION): 20130528
1956 Merge with NetBSD make, pick up
1957 o var.c: cleanup some left-overs in VarHash()
1959 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
1961 * Makefile (MAKE_VERSION): 20130520
1962 generate manifest from component FILES rather than have to
1963 update FILES when mk/FILES changes.
1965 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
1967 * Makefile (MAKE_VERSION): 20130518
1968 Merge with NetBSD make, pick up
1969 o suff.c: don't skip all processsing for .PHONY targets
1970 else wildcard srcs do not get expanded.
1971 o var.c: expand name of variable to delete if necessary.
1973 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1975 * Makefile (MAKE_VERSION): 20130330
1976 Merge with NetBSD make, pick up
1977 o meta.c: refine the handling of .OODATE in commands.
1978 Rather than suppress command comparison for the entire script
1979 as though .NOMETA_CMP had been used, only suppress it for the
1981 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
1982 suppress comparison of a command without otherwise affecting it.
1983 o make.1: document that
1985 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
1987 * Makefile (MAKE_VERSION): 20130321
1988 yes, not quite right but its a cooler number.
1989 Merge with NetBSD make, pick up
1990 o parse.c: fix ParseGmakeExport to be portable
1991 and add a unit-test.
1992 * meta.c: call meta_init() before makefiles are read and if built
1993 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
1994 this let's makefiles test for support.
1995 Call meta_mode_init() to process .MAKE.MODE.
1997 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1999 * Makefile (MAKE_VERSION): 20130305
2000 Merge with NetBSD make, pick up
2001 o run .STALE: target when a dependency from .depend is missing.
2002 o job.c: add Job_RunTarget() for the above and .BEGIN
2004 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
2006 * Makefile (MAKE_VERSION): 20130303
2007 Merge with NetBSD make, pick up
2008 o main.c: set .MAKE.OS to utsname.sysname
2009 o job.c: more checks for read and poll errors
2010 o var.c: lose VarChangeCase() saves 4% time
2012 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
2014 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
2015 want to use MAKEOBJDIR
2017 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
2019 * Merge with NetBSD make, pick up
2020 o make.1: more info on how shell commands are handled.
2021 o job.c,main.c: detect write errors to job pipes.
2023 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
2025 * Makefile (MAKE_VERSION): 20130123
2026 Merge with NetBSD make, pick up
2027 o meta.c: if script uses .OODATE and meta_oodate() decides
2028 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
2029 o var.c: in debug output indicate which variabale modifiers
2031 o remove Check_Cwd logic the makefiles have been fixed.
2033 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
2035 * makefile.in: add a simple makefile for folk who insist on
2036 ./configure; make; make install
2037 it just runs boot-strap
2038 * include mk/* to accommodate the above
2039 * boot-strap: re-work to accommodate the above
2040 mksrc defaults to $Mydir/mk
2041 allow op={configure,build,install,clean,all}
2042 add options to facilitate install
2043 * Makefile.config.in: just the bits set by configure
2044 * Makefile: bump version to 20121212
2045 abandon Makefile.in (NetBSD Makefile)
2046 leverage mk/* instead
2047 * configure.in: ensure srcdir is absolute
2049 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
2051 * Makefile.in (MAKE_VERSION): 20121111
2052 fix generation of bmake.cat1
2054 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
2056 * Makefile.in (MAKE_VERSION): 20121109
2057 Merge with NetBSD make, pick up
2058 o make.c: MakeBuildChild: return 0 so search continues if a
2059 .ORDER dependency is detected.
2060 o unit-tests/order: test the above
2062 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
2064 * Makefile.in (MAKE_VERSION): 20121102
2065 Merge with NetBSD make, pick up
2066 o cond.c: allow cond_state[] to grow.
2067 In meta mode with a very large tree, we can hit the limit
2068 while processing dirdeps.
2070 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
2072 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2074 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2076 * Makefile.in (MAKE_VERSION): 20121010
2077 o protect syntax that only bmake parses correctly.
2078 o remove auto setting of FORCE_MACHINE, use configure's
2079 --with-force-machine=whatever if that is desired.
2081 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
2083 * Makefile.in: do not lose history from make.1 when generating bmake.1
2085 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
2087 * Makefile.in (MAKE_VERSION): 20121007
2088 Merge with NetBSD make, pick up
2089 o compat.c: ignore empty commands - same as jobs mode.
2090 o make.1: document meta chars that cause use of shell
2092 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
2094 * Makefile.in (MAKE_VERSION): bump version to 20120911
2095 * bsd.after-import.mk: include Makefile.inc early and allow it to
2098 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
2100 * Makefile.in (MAKE_VERSION): bump version to 20120831
2101 Merge with NetBSD make, pick up
2102 o cast sizeof() to int for comparison
2103 o minor make.1 tweak
2105 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
2107 * Makefile.in (MAKE_VERSION): bump version to 20120830
2108 Merge with NetBSD make, pick up
2109 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
2110 o debug flag -dV causes -V to show raw value regardless.
2112 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
2114 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2117 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
2119 * Makefile.in (MAKE_VERSION): bump version to 20120704
2120 Merge with NetBSD make, pick up
2121 o Job_ParseShell should call Shell_Init if it has been
2123 * Makefile.in: set USE_META based on configure result.
2124 also .PARSEDIR is safer indicator of bmake.
2126 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
2128 * Makefile.in: bump version to 20120626
2129 ensure CPPFLAGS is in CFLAGS
2130 * meta.c: avoid nested externs
2131 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2133 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
2135 * Makefile.in (MAKE_VERSION): bump version to 20120620
2136 Merge with NetBSD make, pick up
2137 o make_malloc.c: avoid including make_malloc.h again
2139 * Makefile.in: avoid bmake only syntax or protect with
2140 .if defined(.MAKE.LEVEL)
2141 * bsd.after-import.mk: replace .-include with .sinclude
2142 ensure? SRCTOP gets a value
2143 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
2145 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
2147 * Makefile.in (MAKE_VERSION): bump version to 20120612
2148 Merge with NetBSD make, pick up
2149 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
2150 for greater portability.
2151 o unit-tests/forloop: check that .for works as expected wrt
2152 number of times and with "quoted strings".
2154 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2156 * Makefile.in (MAKE_VERSION): bump version to 20120606
2157 Merge with NetBSD make, pick up
2158 o compat.c: use kill(2) rather than raise(3).
2159 * configure.in: look for sys/dev/filemon
2160 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
2161 and pass BOOTSTRAP_XTRAS to boot-strap.
2163 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2165 * Makefile.in (MAKE_VERSION): bump version to 20120604
2166 Merge with NetBSD make, pick up
2167 o util.c and var.c share same var for tracking if environ
2168 has been reallocated.
2169 o util.c provide getenv with setenv.
2170 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
2171 when the shell actively strips .MAKE.* from the environment.
2172 We still refer to the variable always as .MAKE.LEVEL
2173 * util.c fix bug in findenv() was finding prefix of name.
2174 * compat.c: re-raising SIGINT etc after running .INTERRUPT
2175 results in more reliable termination of all activity on many
2178 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
2180 * Makefile.in (MAKE_VERSION): bump version to 20120602
2181 Merge with NetBSD make, pick up
2182 o for.c: handle quoted items in .for list
2184 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
2186 * Makefile.in (MAKE_VERSION): bump version to 20120530
2187 Merge with NetBSD make, pick up
2188 o compat.c: ignore empty command.
2190 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2192 * Makefile.in (MAKE_VERSION): bump version to 20120524
2193 * FILES: add bsd.after-import.mk:
2194 A simple means of integrating bmake into a BSD build system.
2196 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2198 * Makefile.in (MAKE_VERSION): bump version to 20120520
2199 Merge with NetBSD make, pick up
2200 o increased limit for nested conditionals.
2202 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
2204 * Makefile.in (MAKE_VERSION): bump version to 20120518
2205 Merge with NetBSD make, pick up
2206 o use _exit(2) in signal hanlder
2207 o Don't use the [dir] cache when building nodes that might have
2208 changed since the last exec.
2209 o Avoid nested extern declaration warnings.
2211 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
2213 * meta.c (fgetLine): avoid %z - not portable.
2214 * parse.c: Since we moved include of sys/mman.h
2215 and def's of MAP_COPY etc. we got dups from a merge.
2217 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
2219 * Makefile.in (MAKE_VERSION): bump version to 20120420
2220 Merge with NetBSD make, pick up
2221 o restore duplicate supression in .MAKE.MAKEFILES
2222 runtime saving can be significant.
2223 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2224 consumption up to 20%.
2226 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2228 * Makefile.in (MAKE_VERSION): bump version to 20120420
2229 Merge with NetBSD make, pick up
2230 o remove duplicate supression in .MAKE.MAKEFILES
2231 o improved dir cache behavior
2232 o gmake'ish export command
2234 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
2236 * Makefile.in (MAKE_VERSION): bump version to 20120325
2237 Merge with NetBSD make, pick up
2238 o fix parsing of :[#] in conditionals.
2240 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
2242 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2243 since some systems cannot cope with .Nx <version>
2245 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
2247 * Makefile.in (MAKE_VERSION): bump version to 20111111
2248 Merge with NetBSD make, pick up
2249 o debug output for .PARSEDIR and .PARSEFILE
2251 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2253 * Makefile.in (MAKE_VERSION): bump version to 20111010
2255 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
2257 * boot-strap: check for an expected file in the dirs we look for.
2258 * make-bootstrap.sh: pass on LDSTATIC
2260 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
2262 * Makefile.in (MAKE_VERSION): bump version to 20111001
2263 Merge with NetBSD make, pick up
2264 o ensure .PREFIX is set for .PHONY
2265 and .TARGET set for .PHONY run via .END
2266 o __dead used consistently
2268 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
2270 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2272 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
2274 * Makefile.in (MAKE_VERSION): bump version to 20110905
2275 Merge with NetBSD make, pick up
2276 o meta_oodate: ignore makeDependfile
2278 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
2280 * Makefile.in (MAKE_VERSION): bump version to 20110828
2281 Merge with NetBSD make, pick up
2282 o silent=yes in .MAKE.MODE causes meta mode to mark targets
2283 as SILENT if a .meta file is created
2285 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
2287 * Makefile.in (MAKE_VERSION): bump version to 20110818
2288 Merge with NetBSD make, pick up
2289 o in meta mode, if target flagged .META a missing .meta file
2290 means target is out-of-date
2291 o fixes for gcc 4.5 warnings
2292 o simplify job printing code
2294 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
2296 * Makefile.in (MAKE_VERSION): bump version to 20110808
2297 Merge with NetBSD make, pick up
2298 o do not touch OP_SPECIAL targets when doing make -t
2300 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
2302 * Makefile.in (MAKE_VERSION): bump version to 20110622
2303 Merge with NetBSD make, pick up
2304 o meta_oodate detect corrupted .meta file and declare oodate.
2305 * configure.in: add check for setsid
2307 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
2309 * Merge with NetBSD make, pick up
2310 o unit-tests/modts now works on MirBSD
2312 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2314 * Makefile.in (MAKE_VERSION): bump version to 20110606
2315 Merge with NetBSD make, pick up
2316 o ApplyModifiers: when we parse a variable which is not
2317 the entire modifier string, or not followed by ':', do not
2318 consider it as containing modifiers.
2319 o loadfile: ensure newline at end of mapped file.
2321 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2323 * Makefile.in (MAKE_VERSION): bump version to 20110505
2324 Merge with NetBSD make, pick up
2325 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2326 of make's control. In meta mode, any generated file within
2327 said bailiwick, which is found to be missing, causes current
2328 target to be out-of-date.
2330 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
2332 * Makefile.in (MAKE_VERSION): bump version to 20110411
2333 Merge with NetBSD make, pick up
2334 o when long modifiers fail to match, check sysV style.
2337 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
2339 * Makefile.in (MAKE_VERSION): bump version to 20110410
2340 Merge with NetBSD make, pick up
2341 o :hash - cheap 32bit hash of value
2342 o :localtime, :gmtime - use value as format string for strftime.
2344 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
2346 * Makefile.in (MAKE_VERSION): bump version to 20110330
2347 mostly because its a cooler version.
2348 Merge with NetBSD make, pick up
2349 o NetBSD tags for meta.[ch]
2350 o job.c call meta_job_finish() after meta_job_error().
2351 o meta_job_error() should call meta_job_finish() to ensure
2352 .meta file is closed, and safe to copy - if .ERROR target wants.
2353 meta_job_finish() is safe to call repeatedly.
2355 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
2357 * unit-tests/modts: use printf if it is a builtin,
2358 to save us from MirBSD
2360 * Makefile.in (MAKE_VERSION): bump version to 20110329
2361 Merge with NetBSD make, pick up
2362 o fix for use after free() in CondDoExists().
2363 o meta_oodate() report extra commands and return earlier.
2365 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
2367 * Makefile.in (MAKE_VERSION): bump version to 20110327
2368 Merge with NetBSD make, pick up
2369 o meta.c, if .MAKE.MODE contains curdirOk=yes
2370 allow creating .meta files in .CURDIR
2371 * boot-strap (TOOL_DIFF): aparently at least on linux distro
2372 formats the output of 'type' differently - so eat any "()"
2374 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
2376 * Makefile.in (MAKE_VERSION): bump version to 20110306
2377 Merge with NetBSD make, pick up
2378 o meta.c, only do getcwd() once
2380 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
2382 * Makefile.in (MAKE_VERSION): bump version to 20110305
2383 Merge with NetBSD make, pick up
2384 o correct sysV substitution handling of empty lhs and variable
2385 o correct exists() check for dir with trailing /
2386 o correct handling of modifiers for non-existant variables
2387 during evaluation of conditionals.
2388 o ensure MAP_FILE is defined.
2389 o meta.c use curdir[] now exported by main.c
2391 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
2393 * Makefile.in (MAKE_VERSION): bump version to 20110225
2394 Merge with NetBSD make, pick up
2395 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2396 makefiles have been read.
2397 o fix example of :? modifier in man page.
2399 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
2401 * Makefile.in (MAKE_VERSION): bump version to 20110214
2402 Merge with NetBSD make, pick up
2403 o meta.c handle realpath() failing when generating meta file
2406 * sigcompat.c: convert to ansi so we can use higher warning levels.
2409 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
2411 * Makefile.in (MAKE_VERSION): bump version to 20110207
2412 Merge with NetBSD make, pick up
2413 o fix for bug in meta mode.
2415 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
2417 * parse.c: SunOS 5.8 at least does not have MAP_FILE
2419 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
2421 * Makefile.in (MAKE_VERSION): bump version to 20110101
2422 Merge with NetBSD make, pick up
2423 o use mmap(2) if available, for reading makefiles
2425 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
2427 * Makefile.in (MAKE_VERSION): bump version to 20101215
2428 Merge with NetBSD make, pick up
2429 o ensure meta_job_error() does not report a previous .meta file
2432 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
2434 * Makefile.in (MAKE_VERSION): bump version to 20101210
2435 Merge with NetBSD make, pick up
2436 o meta_oodate: track cwd per process, and only consider target
2437 out-of-date if missing file is outside make's CWD.
2438 Ignore files in /tmp/ etc.
2439 o to ensure unit-tests results match, need to control LC_ALL
2441 o fix for parsing bug in var.c
2443 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2445 * Makefile.in (MAKE_VERSION): bump version to 20101126
2446 Merge with NetBSD make, pick up
2447 o if stale dependency is an IMPSRC, search via .PATH
2448 o meta_oodate: if a referenced file is missing, target is
2450 o meta_oodate: if a target uses .OODATE in its commands,
2451 it (.OODATE) needs to be recomputed.
2452 o keep a pointer to youngest child node, rather than just its
2455 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
2457 * Makefile.in (MAKE_VERSION): bump version to 20101101
2459 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
2461 * machine.sh: like os.sh,
2462 allow for uname -p producing useless drivel
2464 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
2466 * boot-strap: document configure knobs for meta and filemon.
2468 * Makefile.in (MAKE_VERSION): bump version to 20100911
2469 Merge with NetBSD make, pick up
2470 o meta.c - meta mode
2472 * make-bootstrap.sh.in: handle meta.c
2473 * configure.in: add knobs for use_meta and filemon_h
2474 also, look for dirname, str[e]sep and strlcpy
2475 * util.c: add simple err[x] and warn[x]
2477 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
2479 * boot-strap (TOOL_DIFF): set this to ensure tests use
2480 the same version of diff that configure tested
2482 * Makefile.in (MAKE_VERSION): bump version to 20100808
2483 Merge with NetBSD make, pick up
2484 o in jobs mode, when we discover we cannot make something,
2485 call PrintOnError before exit.
2487 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
2489 * Makefile.in (MAKE_VERSION): bump version to 20100806
2490 Merge with NetBSD make, pick up
2491 o formatting fixes for ignored errors
2492 o ensure jobs are cleaned up regardless of where wait() was called.
2494 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
2496 * Makefile.in (MAKE_VERSION): bump version to 20100618
2497 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2499 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
2501 * Makefile.in (MAKE_VERSION): bump version to 20100616
2502 Merge with NetBSD make, pick up
2504 o call PrintOnError from JobFinish when we detect an error we
2507 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2509 * Makefile.in (MAKE_VERSION): bump version to 20100606
2510 Merge with NetBSD make, pick up
2513 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
2515 * Makefile.in (MAKE_VERSION): bump version to 20100605
2516 Merge with NetBSD make, pick up
2517 o use bmake_signal() which is a wrapper around sigaction()
2518 in place of signal()
2519 o add .export-env to allow exporting variables to environment
2520 without tracking (so no re-export when the internal value is
2523 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2525 * Makefile.in (MAKE_VERSION): bump version to 20100524
2526 Merge with NetBSD make, pick up
2527 o fix for .info et al being greedy.
2529 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
2531 * Makefile.in (MAKE_VERSION): bump version to 20100520
2532 Merge with NetBSD make, pick up
2533 o back to using realpath on argv[0]
2534 but only if contains '/' and does not start with '/'.
2536 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
2538 * boot-strap: use absolute path for bmake when running tests.
2540 * Makefile.in (MAKE_VERSION): bump version to 20100510
2541 Merge with NetBSD make, pick up
2542 o revert use of realpath on argv[0]
2543 too many corner cases.
2544 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2546 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2548 * Makefile.in (MAKE_VERSION): bump version to 20100505
2549 Merge with NetBSD make, pick up
2550 o fix for missed SIGCHLD when compiled with SunPRO
2551 actually for bmake, defining FORCE_POSIX_SIGNALS would have
2554 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
2556 * Makefile.in (MAKE_VERSION): bump version to 20100430
2557 Merge with NetBSD make, pick up
2558 o fflush stdout before writing to stdout
2560 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
2562 * Makefile.in (MAKE_VERSION): bump version to 20100423
2563 Merge with NetBSD make, pick up
2564 o updated unit tests for Haiku (this time for sure).
2565 * boot-strap: based on patch from joerg
2566 honor --with-default-sys-path better.
2567 * boot-strap: remove mention of --with-prefix-sys-path
2569 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
2571 * Makefile.in (MAKE_VERSION): bump version to 20100422
2572 * Merge with NetBSD make, pick up
2573 o fix for vfork() on Darwin.
2574 o fix for bogus $TMPDIR.
2575 o set .MAKE.MODE=compat for -B
2576 o set .MAKE.JOBS=max_jobs for -j max_jobs
2577 o allow unit-tests to run without any *.mk
2578 o unit-tests/modmisc be more conservative in dirs presumed to exist.
2579 * boot-strap: ignore /usr/share/mk except on NetBSD.
2580 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
2581 ensure sort(1) behaves as expected.
2583 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
2585 * boot-strap: add FindHereOrAbove so we can use -m .../mk
2587 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2589 * Makefile.in (MAKE_VERSION): bump version to 20100420
2590 * Merge with NetBSD make, pick up
2591 o fix for variable realpath() behavior.
2592 we have to stat(2) the result to be sure.
2593 o fix for .export (all) when nested vars use :sh
2595 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
2597 * Makefile.in (MAKE_VERSION): bump version to 20100414
2598 * Merge with NetBSD make, pick up
2599 o use realpath to resolve argv[0] (for .MAKE) if needed.
2600 o add realpath from libc.
2601 o add :tA to resolve variable via realpath(3) if possible.
2603 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
2605 * Makefile.in (MAKE_VERSION): bump version to 20100408
2606 * Merge with NetBSD make, pick up
2607 o unit tests for .ERROR, .error
2608 o fix for .ERROR to ensure it cannot be default target.
2610 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
2612 * Makefile.in (MAKE_VERSION): bump version to 20100406
2613 * Merge with NetBSD make, pick up
2614 o fix for compat mode "Error code" going to debug_file.
2615 o fix for .ALLSRC being populated twice.
2616 o support for .info, .warning and .error directives
2617 o .MAKE.MODE to control make's operational mode
2618 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2620 o .MAKE.DEPENDFILE to control the name of the depend file
2621 o .ERROR target - run on failure.
2623 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
2625 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2627 * os.sh,arch.c: patch for Haiku from joerg at netbsd
2629 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
2631 * Makefile.in (MAKE_VERSION): bump version to 20100222
2632 * Merge with NetBSD make, pick up
2633 o better error msg for .for with mutiple inter vars
2636 o use make-bootstrap.sh from joerg at netbsd
2637 to avoid the need for a native make when bootstrapping.
2638 o add "" everywhere ;-)
2639 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2640 otherwise the pre-formated version.
2642 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
2644 * Makefile.in (MAKE_VERSION): bump version to 20100102
2645 * Merge with NetBSD make, pick up:
2648 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
2650 * Makefile.in (MAKE_VERSION): bump version to 20091118
2651 * Merge with NetBSD make, pick up:
2653 o report lines that start with '.' and should have ':'
2654 (catch typo's of .el*if).
2656 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2658 * configure.in: Ensure that srcdir and mksrc are absolute paths.
2660 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2662 * Makefile.in (MAKE_VERSION): fix version to 20091007
2664 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
2666 * Makefile.in (MAKE_VERSION): bump version to 200910007
2667 * Merge with NetBSD make, pick up:
2668 o fix for parsing of :S;...;...; applied to .for loop iterator
2669 appearing in a dependency line.
2671 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2673 * Makefile.in (MAKE_VERSION): bump version to 20090909
2674 * Merge with NetBSD make, pick up:
2675 o fix for -C, .CURDIR and .OBJDIR
2677 o allow share_dir to be set independent of prefix.
2678 o select default share_dir better when prefix ends in $HOST_TARGET
2679 o if FORCE_BSD_MK etc were set, include them in the suggested
2682 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
2684 * Makefile.in (MAKE_VERSION): bump version to 20090908
2685 * Merge with NetBSD make, pick up:
2686 o .MAKE.LEVEL for recursion tracking
2687 o fix for :M scanning \:
2689 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2691 * configure.in: Don't -D__EXTENSIONS__ if
2692 AC_USE_SYSTEM_EXTENSIONS says "no".
2694 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
2696 * Makefile.in (MAKE_VERSION): bump version to 20090826
2697 Simplify MAKE_VERSION to just the bare date.
2698 * Merge with NetBSD make, pick up:
2699 o -C directory support.
2700 o support for SIGINFO
2701 o use $TMPDIR for temp files.
2702 o child of vfork should be careful about modifying parent's state.
2705 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
2707 * Appy some patches for MiNT from David Brownlee
2709 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
2711 * Makefile.in (BMAKE_VERSION): bump version to 20090222
2712 * Merge with NetBSD make, pick up:
2713 o Possible null pointer de-ref in Var_Set.
2715 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
2717 * Makefile.in (BMAKE_VERSION): bump version to 20090204
2718 * Merge with NetBSD make, pick up:
2719 o bmake_malloc et al moved to their own .c
2720 o Count both () and {} when looking for the end of a :M pattern
2721 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2722 o strlist.c - functions for processing extendable arrays of pointers to strings.
2723 o ClientData replaced with void *, so const void * can be used.
2724 o New debug flag C for DEBUG_CWD
2726 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
2728 * Makefile.in (BMAKE_VERSION): bump version to 20081111
2729 Apply patch from Joerg Sonnenberge to
2731 o remove some redundant checks
2732 o check for emlloc etc only in libutil and require the whole family.
2734 o remove [v]asprintf which is no longer used.
2736 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2738 * Makefile.in (BMAKE_VERSION): bump version to 20081101
2739 * Merge with NetBSD make, pick up:
2740 o util.c: avoid use of putenv() - christos
2742 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2744 * Makefile.in (BMAKE_VERSION): bump version to 20081030
2745 pick up man page tweaks.
2747 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
2749 * Makefile.in: move processing of LIBOBJS to after is definition!
2750 thus we'll have getenv.c in SRCS only if needed.
2752 * make.1: add examples of how to use :?
2754 * Makefile.in (BMAKE_VERSION): bump version to 20081029
2755 * Merge with NetBSD make, pick up:
2756 o fix for .END processing with -j
2757 o segfault from Parse_Error when no makefile is open
2758 o handle numeric expressions in any variable expansion
2759 o debug output now defaults to stderr, -dF to change it - apb
2760 o make now uses bmake_malloc etc so that it can build natively
2761 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2763 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
2765 * Makefile.in (BMAKE_VERSION): bump version to 20080808
2766 * Merge with NetBSD make, pick up:
2767 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2768 long lines in Makefiles
2769 o optimizations for VarQuote by joerg
2770 o fix for PR/38756: dominik: make dumps core on invalid makefile
2772 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
2774 * Makefile.in (BMAKE_VERSION): bump version to 20080515
2775 * Merge with NetBSD make, pick up:
2776 o fix skip setting vars in VAR_GLOBAL context, to handle
2777 cases where VAR_CMD is used for other than command line vars.
2779 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
2781 * boot-strap (make_version): we may need to look in
2782 $prefix/share/mk for sys.mk
2784 * Makefile.in (BMAKE_VERSION): bump version to 20080514
2785 * Merge with NetBSD make, pick up:
2786 o skip setting vars in VAR_GLOBAL context, when already set in
2787 VAR_CMD which takes precedence.
2789 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
2791 * Makefile.in (BMAKE_VERSION): bump version to 20080330
2792 * Merge with NetBSD make, pick up:
2793 o fix for ?= when LHS contains variable reference.
2795 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2797 * merge some patches from NetBSD pkgsrc.
2799 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
2800 the MAKSYSPATH used during bootstrap.
2802 * Makefile.in (BMAKE_VERSION): bump version to 20080215
2803 * Merge with NetBSD make, pick up:
2804 o warn if non-space chars follow 'empty' in a conditional.
2806 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2808 * Makefile.in (BMAKE_VERSION): bump version to 20080118
2809 * Merge with NetBSD make, pick up:
2810 o consider dependencies read from .depend as optional - dsl
2811 o remember when buffer for reading makefile grows - dsl
2812 o add -dl (aka LOUD) - David O'Brien
2814 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
2816 * Makefile.in (BMAKE_VERSION): bump version to 20071022
2817 * Merge with NetBSD make, pick up:
2818 o Allow .PATH<suffix> to be used for .include ""
2820 * boot-strap: source default settings from .bmake-boot-strap.rc
2822 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
2824 * Makefile.in: fix maninstall on various systems
2825 provided that our man.mk is used.
2826 For non-BSD systems we install the preformatted page
2829 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
2831 * boot-strap: make bmake.1 too, so maninstall works.
2833 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
2835 * Makefile.in (BMAKE_VERSION): bump version to 20071014
2836 * Merge with NetBSD make, pick up:
2837 o revamped handling of defshell - configure no longer needs to
2838 know the content of the shells array - apb
2839 o stop Var_Subst modifying its input - apb
2840 o avoid calling ParseTrackInput too often - dsl
2842 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
2844 * Makefile.in (BMAKE_VERSION): bump version to 20071011
2845 * Merge with NetBSD make, pick up:
2846 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
2848 * sigcompat.c: some tweaks for HP-UX 11.x based on
2849 patch from Tobias Nygren
2851 * configure.in: update handling of --with-defshell to match
2852 new make behavior. --with-defshell=/usr/xpg4/bin/sh
2853 will now do what one might hope - provided the chosen shell
2854 behaves enough like sh.
2856 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
2858 * Makefile.in (BMAKE_VERSION): bump to 20071008
2859 * Merge with NetBSD make, pick up:
2860 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
2861 o .export/.MAKE.EXPORTED - export of variables - sjg
2862 o .MAKE.MAKEFILES - track all makefiles read - sjg
2863 o performance improvements - dsl
2864 o revamp parallel job scheduling - dsl
2866 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2868 * Makefile.in (BMAKE_VERSION): bump to 20060728
2869 * Merge with NetBSD make, pick up:
2870 o extra debug info during variable and cond processing - sjg
2871 o shell definition now covers newline - rillig
2872 o minor mem leak in PrintOnError - sjg
2874 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2876 * Makefile.in (BMAKE_VERSION): bump to 20060511
2877 * Merge with NetBSD make, pick up:
2878 o more memory leaks - coverity
2879 o possible overflow in ArchFindMember - coverity
2880 o extract variable modifier code out of Var_Parse()
2881 so it can be called recursively - sjg
2882 o unit-tests/moderrs - sjg
2884 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
2886 * Makefile.in (BMAKE_VERSION): bump to 20060412
2887 * Merge with NetBSD make, pick up:
2888 o fixes for some memory leaks - coverity
2889 o only read first sys.mk etc when searching sysIncPath - sjg
2891 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
2892 setting ${MAKEFILE} - OBATA Akio
2894 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
2896 * Makefile.in (BMAKE_VERSION): bump to 20060318
2897 * Merge with NetBSD make, pick up:
2898 o cleanup of job.c to remove remote handling, distcc is more
2899 useful and this code was likely bit-rotting - dsl
2900 o fix for :P modifier - sjg
2901 * boot-strap: set default prefix to something reasonable
2904 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
2906 * Makefile.in (BMAKE_VERSION): bump to 20060301
2907 * Merge with NetBSD make, pick up:
2908 o make .WAIT apply recursively, document and test case - apb
2909 o allow variable modifiers in a variable appear anywhere in
2910 modifier list, document and test case - sjg
2912 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
2914 * Makefile.in (BMAKE_VERSION): bump to 20060222
2915 * Merge with NetBSD make, pick up:
2916 o improved job token handling - dsl
2917 o SIG_DFL the correct signal before exec - dsl
2918 o more debug info during parsing - dsl
2919 o allow variable modifiers to be specified via variable - sjg
2920 * boot-strap: explain why we died if no mksrc
2922 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
2924 * Makefile.in (BMAKE_VERSION): bump to 20051105
2925 * configure.in: always set default_sys_path
2926 default is ${prefix}/share/mk
2927 - remove prefix_sys_path, anyone wanting more than above
2928 needs to set it manually.
2930 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2932 * boot-strap: make this a bit easier for pkgsrc folk.
2933 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
2934 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2936 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
2938 * Makefile.in (BMAKE_VERSION): bump to 20051102
2939 * job.c (JobFinish): fix likely ancient merge lossage
2940 fix from Todd Vierling.
2941 * boot-strap (srcdir): allow setting mksrc=none
2943 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
2945 * Makefile.in (BMAKE_VERSION): bump to 20051031
2946 * ranlib.h: skip on OSF too.
2949 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
2951 * Makefile.in (BMAKE_VERSION): bump to 20051002
2954 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2956 * Makefile.in (BMAKE_VERSION): bump to 20051001
2957 support for UnixWare and some other systems,
2958 based on patches from pkgsrc/bootstrap
2960 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2962 * Makefile.in (BMAKE_VERSION): bump to 20050901
2963 * Merge with NetBSD make, pick up:
2964 o possible parse error causing us to wander off.
2966 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
2968 * Makefile.in (BMAKE_VERSION): bump to 20050606
2969 * Merge with NetBSD make, pick up:
2970 o :0x modifier for randomizing a list
2971 o fixes for a number of -Wuninitialized issues.
2973 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
2975 * Makefile.in (BMAKE_VERSION): bump to 20050530
2976 * Merge with NetBSD make, pick up:
2977 o Handle dependencies for .BEGIN, .END and .INTERRUPT
2979 * README: was seriously out of date.
2981 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
2983 * Important to use .MAKE rather than MAKE.
2985 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
2987 * Makefile.in (BMAKE_VERSION): bump to 20050315
2988 * Merge with NetBSD make, pick up:
2989 o don't mistake .elsefoo for .else
2990 o use suffix-specific search path correctly
2991 o bunch of style nits
2993 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2996 o ensure that args to --src and --with-mksrc
2997 are resolved before giving them to configure.
2998 o add -o "objdir" so that builder can control it,
2999 default is $OS as determined by os.sh
3000 o add -q to suppress all the install instructions.
3002 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
3004 * Remove __IDSTRING()
3006 * Makefile.in (BMAKE_VERSION): bump to 20040508
3007 * Merge with NetBSD make, pick up:
3009 - remove '-e' from compat mode
3010 - add support for '+' command-line prefix.
3011 o fix for handling '--' on command-line.
3012 o fix include in lst.lib/lstInt.h to simplify '-I's
3013 o we also picked up replacement of MAKE_BOOTSTRAP
3014 with !MAKE_NATIVE which is a noop, but possibly confusing.
3016 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
3018 * Makefile.in (BMAKE_VERSION): bump to 20040414
3019 * Merge with NetBSD make, pick up:
3020 o allow quoted strings on lhs of conditionals
3021 o issue warning when extra .else is seen
3022 o print line numer when errors encountered during parsing from
3025 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
3027 * Makefile.in (BMAKE_VERSION): bump to 20040220
3028 * Merge with NetBSD make, pick up:
3029 o fix for old :M parsing bug.
3030 o re-jigged unit-tests
3032 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
3034 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
3035 so that './bmake -f Makefile test' works.
3037 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
3039 * Makefile.in: (BMAKE_VERSION): bump to 20040214
3040 * Merge with NetBSD make, pick up:
3041 o search upwards for *.mk
3042 o fix for double free of var substitution buffers
3043 o use of getopt replaced with custom code, since the usage
3044 (re-scanning) isn't posix compatible.
3046 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
3048 * arch.c: don't include ranlib.h on ELF systems
3049 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
3051 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
3053 * Makefile.in (BMAKE_VERSION): bump to 20040118
3055 * boot-strap (while): export vars we assign to on cmdline
3056 * unit-test/Makefile.in: ternary is .PHONY
3058 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
3060 * Makefile.in (BMAKE_VERSION): bump version to 20040108
3061 * Merge with NetBSD make, pick up:
3062 o fix for ternary modifier
3064 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
3066 * Makefile.in (BMAKE_VERSION): bump version to 20040105
3067 * Merge with NetBSD make, pick up:
3068 o fix for cond.c to handle compound expressions better
3069 o variable expansion within sysV style replacements
3071 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
3073 * Make portable snprintf safer - output to /dev/null first to
3076 * Makefile.in (BMAKE_VERSION): bump version to 20031222
3077 * Merge with NetBSD make, pick up:
3078 o -dg3 to show input graph when things go wrong.
3079 o explicitly look for makefiles in objdir if not found in curdir so
3080 that errors in .depend etc will be reported accurarely.
3081 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
3082 instead as it more accurately reflects the expected behavior and
3083 is more consistently implemented.
3084 o avoid use of asprintf.
3086 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
3088 * util.c: Add asprintf and vasprintf.
3090 * Makefile.in (BMAKE_VERSION): bump version to 20030928
3091 * Merge with NetBSD make, pick up:
3092 :[] modifier - allows picking words from a variable.
3093 :tW modifier - allows treating value as one big word.
3094 W flag for :C and :S - allows treating value as one big word.
3096 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
3098 * Merge with NetBSD make
3099 pick up -de flag to enable printing failed command.
3100 don't skip 1st two dir entries (normally . and ..) since
3101 coda does not have them.
3103 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
3105 * Makefile.in (BMAKE_VERSION): bump version to 20030909
3106 * Merge with NetBSD make, pick up:
3107 - changes for -V '${VAR}' to print fully expanded value
3109 - CompatRunCommand now prints the command that failed.
3110 - several files got updated 3 clause Berkeley license.
3112 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
3114 * boot-strap: Allow setting configure args on command line.
3116 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
3118 * configure.in: add --with-defshell to allow sh or ksh
3119 to be selected as default shell.
3121 * Makefile.in: bump version to 20030731
3123 * Merge with NetBSD make
3124 Pick up .SHELL spec for ksh and associate man page changes.
3125 Also compat mode now uses the same shell specs.
3127 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
3129 * var.c (Var_Parse): ensure delim is initialized.
3131 * unit-tests/Makefile.in: use single quotes to avoid problems from
3135 Run the unit-tests as part of the bootstrap procedure.
3137 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
3139 * unit-tests/Makefile.in: always force complaints from
3140 ${TEST_MAKE} to be from 'make'.
3142 * configure.in: add check for 'diff -u'
3143 also fix some old autoconf'isms
3145 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
3146 if using GCC add -Wno-cast-qual to CFLAGS for var.o
3148 * Merge with NetBSD make
3149 Pick up fix for :ts parsing error in some cases.
3152 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
3154 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
3156 * var.c (Var_Parse): fix bug in :ts modifier, after const
3157 correctness fixes, must pass nstr to VarModify.
3159 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
3161 * Makefile.in: BMAKE_VERSION switch to a date based version.
3162 We'll generally use the date of last import from NetBSD.
3164 * Merge with NetBSD make
3165 Pick up fixes for const-correctness, now passes WARNS=3 on
3167 Pick up :ts modifier, allows controlling the separator used
3168 between words in variable expansion.
3170 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
3172 * FILES: include boot-strap and os.sh
3174 * Makefile.in: only set WARNS if we are NetBSD, the effect on
3175 FreeBSD is known to be bad.
3177 * makefile.boot.in (bootstrap): make this the default target.
3179 * Makefile.in: bump version to 3.1.19
3181 * machine.sh: avoid A-Z with tr as it is bound to lose.
3183 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
3185 * Merge with NetBSD make
3186 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3187 Plus some doc fixes.
3189 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
3191 * Merge with NetBSD make
3192 Pick up fix for PR/1523 - don't count a library as built, if there
3193 is no way to build it
3195 * Bump version to 3.1.18
3197 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
3199 * Merge with NetBSD make
3200 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3201 appears in src list.
3203 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
3205 * Merge with NetBSD make (mmm 10th anniversary!)
3206 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3207 pick up -X which tells us to not export VAR=val via setenv if
3208 we are already doing so via MAKEFLAGS. This saves valuable env
3209 space on systems like Darwin.
3210 set MAKE_VERSION to 3.1.17
3212 * parse.c: pix up fix for suffix rules
3214 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
3216 * Merge with NetBSD make.
3217 pick up fix for propagating -B via MAKEFLAGS.
3218 set MAKE_VERSION to 3.1.16
3220 * Apply some patches from pkgsrc-bootstrap/bmake
3221 Originally by Grant Beattie <grant@netbsd.org>
3222 I may have missed some - since they are based on bmake-3.1.12
3224 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
3226 * makefile.boot.in (bmake): update install targets for those that
3227 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3228 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
3230 * bmake.cat1: update the pre-formatted man page!
3232 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
3234 * Merge with NetBSD make.
3235 pick up fix for premature free of pointer used in call
3237 set MAKE_VERSION to 3.1.15
3239 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
3241 * configure.in: determine suitable value for MKSRC.
3242 override using --with-mksrc=PATH.
3244 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3245 configs(8) will use 'sun4' as an alias for 'sparc'.
3247 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
3249 * Merge with NetBSD make.
3251 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3252 set MAKE_VERSION to 3.1.14
3253 add configure checks for killpg and sys/socket.h
3255 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
3259 * makefile.boot.in (bmake): use install-mk
3260 Also setup ./mk before trying to invoke bmake.boot incase we
3261 needed install-mk to create a sys.mk for us.
3263 * configure.in: If we need to add -I${srcdir}/missing, make it an
3264 absolute path so that it works for lst.lib too.
3266 * make.h: always include sys/cdefs.h since we provide one if the
3269 * Makefile.in (install-mk):
3270 use MKSRC/install-mk which will do the right thing.
3271 use uname -p for ARCH if possible.
3272 since install-mk will setup links bsd.prog.mk -> prog.mk if
3273 needed, just .include bsd.prog.mk
3275 * Merge with NetBSD make (NetBSD-1.6)
3276 Code is ansi-C only now.
3277 Bug in handling of dotLast is fixed.
3278 Can now assign .OBJDIR and make will reset its notions of life.
3279 New modifiers :tu :tl for toUpper and toLower.
3281 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3283 * Merge with NetBSD make
3284 pick up fix for .END failure in compat mode.
3285 pick up fix for extra va_end() in ParseVErrorInternal.
3287 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3289 * configure.in: for systems that have sys/cdefs.h check if it is
3290 compatible. If not, include the one under missing, but tell it to
3291 include the native one too - necessary on Linux.
3293 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3294 include_next (for gcc) to get the native sys/cdefs.h
3296 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3298 * job.c (JobFinish): Fix an earlier merge bug that resulted in
3299 leaking descriptors when using -jN.
3301 * job.c (JobPrintCommand): See if "curdir" exists before
3302 attempting to chdir(). Doing the chdir directly in make (when in
3303 compat mode) fails silently, so let the -jN version do the same.
3304 This can happen when building kernels in an object tree and
3305 playing clever games to reset .CURDIR.
3307 * Merged with NetBSD make
3310 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3312 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3314 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3316 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3317 us not to export the iterator variable when using VAR_CMD context.
3319 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3321 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3322 its the wrong "fix".
3324 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3326 * Redesigned export of VAR_CMD's via MAKEFLAGS.
3327 We now simply append the variable names to .MAKEOVERRIDES, and
3328 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3329 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3330 Apart from fixing quoting bugs in previous version, this allows us
3331 to export vars to the environment by simply doing:
3332 .MAKEOVERRIDES+= PATH
3333 Merged again with NetBSD make, but the above is the only change.
3335 * configure.in: added
3336 --disable-pwd-override disable $PWD overriding getcwd()
3337 --disable-check-make-chdir disable make trying to guess
3338 when it should automatically cd ${.CURDIR}
3340 * Merge with NetBSD make, changes include:
3341 parse.c (ParseDoDependency): Spot that the syntax error is
3342 caused by an unresolved cvs/rcs conflict and say so.
3343 var.c: most of Var* functions now take a ctxt as 1st arg.
3344 now does variable substituion on rhs of sysv style modifiers.
3346 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
3347 is now done here. We append the name='value' to .MAKEOVERRIDES
3348 rather than directly into MAKEFLAGS as this allows a Makefile to
3349 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
3350 very similar mechanism. Note that in adding name='value' to
3351 .MAKEOVERRIDES we do the moral equivalent of:
3352 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3354 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3356 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3358 * Merged with NetBSD make
3359 make -dx can now be used to run commands via sh -x
3360 better error messages on exec failures.
3362 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3364 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3365 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
3366 MACHINE etc otherwise they propagate from the previous bmake.
3368 * configure.in (machine): allow --with-machine=generic to make
3369 configure use machine.sh to set MACHINE.
3371 * job.c (JobInterrupt): convert to using WAIT_T and friends.
3373 * Makefile.in: mention in bmake.1 that we use autoconf.
3375 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3377 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3379 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3380 as that rather defeats the usefulness of ${MAKEFILE}.
3382 * main.c (MainParseArgs): append command line variable assignments
3383 to MAKEFLAGS so that they get propagated to child make's.
3384 Apparently this is required POSIX behaviour? Its useful anyway.
3386 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3388 * compat.c (CompatRunCommand): don't use perror() since stdio may
3389 cause problems in child of vfork().
3391 * compat.c, main.c: Call PrintOnError() when we are going to bail.
3392 This routine prints out the .curdir where we stopped and will also
3393 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3395 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
3398 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
3400 * Added RCSid's for the files we've touched.
3402 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3404 * configure.in: Thanks to some clues from mdb@juniper.net,
3405 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3406 as well as what ends up in _PATH_DEFSYSPATH. We now have:
3408 --with-machine=MACHINE explicitly set MACHINE
3409 --with-force-machine=MACHINE set FORCE_MACHINE
3410 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
3411 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
3412 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
3413 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
3415 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3417 * makefile: added a pathetically simple makefile to drive
3418 bootstrapping. Running configure by hand is more useful.
3420 * Makefile.in: added MAKE_VERSION, and reworked things to be less
3421 dependent on NetBSD bsd.*.mk
3423 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3424 _PATH_OBJDIRPREFIX for those that don't want a default.
3425 construct _PATH_DEFSYSPATH from the info we get from configure.
3427 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3428 if MAKE_VERSION is defined.
3430 * compat.c: when we bail, print out the .CURDIR we were in.
3432 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3434 * Merged with NetBSD make
3436 * var.c: fixed a bug in the handling of the modifier :P
3437 if the node as found but the path was null, we segfault trying to
3440 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3442 * Merged with NetBSD make
3444 * make.c: Make_OODate's test for a library out of date was using
3445 cmtime where it should have used mtime (my bug).
3447 * compat.c: Use perror() to tell us what really went wrong when we
3448 cannot exec a command.
3450 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3452 * Merged with NetBSD make
3454 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3456 * Merged with NetBSD make
3458 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3460 * Merged with NetBSD make
3462 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3464 * Merged with NetBSD make
3466 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3468 * util.c: don't provide signal() since we use sigcompat.c
3470 * Makefile.in: added a build target.
3472 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3473 These allow some quite clever magic.
3475 * main.c (main): added support for getenv(MAKESYSPATH).
3477 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3479 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3480 This avoids objdir having a different value depending on how a
3481 directory was reached (via command line, or subdir.mk).
3483 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3485 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3487 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3488 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3489 I've been testing this in NetBSD's make for some weeks.
3491 * Turn Makefile into Makefile.in and make it useful.
3493 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3495 * Imported NetBSD's -current make(1) and resolve conflicts.
3497 * Applied autoconf patches from bmake v2
3499 * Imported clean code base from NetBSD-1.0