1 2021-03-14 Simon J Gerraty <sjg@beast.crufty.net>
3 * VERSION (_MAKE_VERSION): 20210314
4 Merge with NetBSD make, pick up
5 o var.c: avoid evaluating many modifiers in parse only mode
6 in strict mode (-dL) many variable references are parsed twice,
7 the first time just to report parse errors early, so we want to
8 avoid side effects and wasted effort to the extent possible.
10 2021-02-26 Simon J Gerraty <sjg@beast.crufty.net>
12 * VERSION (_MAKE_VERSION): 20210226
13 Merge with NetBSD make, pick up
14 o remove freestanding freeIt variables
16 o var.c: restructure code in ParseVarname to target human readers
17 improve error message for;
18 bad modifier in variable expression
21 remove redundant parameter of ApplySingleModifier
22 explain non-obvious code around indirect variable modifiers
23 quote ':S' in error message about missing delimiter
24 extract ParseModifier_Match into separate function
25 add context information to error message about ':range' modifier
26 add quotes around variable name in an error message
27 reorder code in ModifyWords
28 use more common parameter order for VarSelectWords
29 make ModifyWord_Subst a little easier to understand
30 do not expand variable name from the command line twice
31 extract ExistsInCmdline from Var_SetWithFlags
32 save a hash map lookup when defining a cmdline variable
33 clean up VarAdd, Var_Delete, Var_ReexportVars
34 use bit-shift expressions for VarFlags constants
35 rename constants for VarFlags
36 rename ExprDefined constants for debug logging
37 rename ExprStatus to ExprDefined
38 split parameters for evaluating variable expressions
39 reduce redundant code around ModifyWords
40 print error about failed shell command before overwriting variable
41 clean up ValidShortVarname, ParseVarnameShort
42 rename VarExprStatus to ExprStatus
43 add functions for assigning the value of an expression
44 rename ApplyModifiersState_Define to Expr_Define
45 condense the code for parsing :S and :C modifiers
47 2021-02-06 Simon J Gerraty <sjg@beast.crufty.net>
49 * VERSION (_MAKE_VERSION): 20210206
50 Merge with NetBSD make, pick up
51 o unit-tests: use private TMPDIR to avoid errors from other users
53 2021-02-05 Simon J Gerraty <sjg@beast.crufty.net>
55 * VERSION (_MAKE_VERSION): 20210205
56 Merge with NetBSD make, pick up
57 o avoid strdup in mkTempFile
59 o rename context and ctxt to scope
60 o rename some VAR constants to SCOPE
61 o Var_ functions, move the scope to the front
62 o use shortcut functions Global_Set and Global_Append
63 o add shortcut Global_Delete for deleting a global variable
64 o rename Var_Delete to Var_DeleteExpand, Var_DeleteVar to Var_Delete
65 o compat.c: when exiting due to an error, print graph information
66 o enum.c: remove overengineered Enum_ValueToString
67 o make.c: remove unused INTERNAL flag
68 remove unused return type of MakeBuildParent
69 o parse.c: replace parse error "Need an operator" with better message
70 o var.c: improve documentation about variable scopes
71 rename Var_ValueDirect to GNode_ValueDirect
72 rename old Var_SetWithFlags to Var_SetExpandWithFlags
73 merge SetVar into Var_SetWithFlags
74 split Var_Exists into plain Var_Exists and Var_ExistsExpand
75 split Var_Append into Var_Append and Var_AppendExpand
76 replace enum bit-set with bit-field
77 o unit-tests/var-op-shell: use kill rather than kill -14
78 which broke on darwin with recent update.
80 2021-02-01 Simon J Gerraty <sjg@beast.crufty.net>
82 * configure.in: check for sig_atomic_t and define it as 'int'
85 * VERSION (_MAKE_VERSION): 20210201
86 Merge with NetBSD make, pick up
87 o use sig_atomic_t for caught_sigchld
89 2021-01-30 Simon J Gerraty <sjg@beast.crufty.net>
91 * VERSION (_MAKE_VERSION): 20210130
92 Merge with NetBSD make, pick up
94 o convert SearchPath to struct
95 o split Buf_Destroy into Buf_Done and Buf_DoneData
96 o for.c: split For_Eval into separate functions
97 rename struct For to struct ForLoop
98 o job.c: do not create empty shell files in jobs mode
99 rename JobOpenTmpFile to JobWriteShellCommands
100 reduce unnecessary calls to waitpid
101 o parse.c: in -dp mode, print stack trace with each diagnostic
103 2021-01-23 Simon J Gerraty <sjg@beast.crufty.net>
105 * VERSION (_MAKE_VERSION): 20210123
106 Merge with NetBSD make, pick up
107 o rename Dir_Expand to SearchPath_Expand
108 o rename Dir_AddDir, reorder parameters of SearchPath_ToFlags
109 o cond.c: fix debug output for comparison operators in conditionals
110 o dir.c: split Dir_FindFile into separate functions
112 2021-01-20 Simon J Gerraty <sjg@beast.crufty.net>
114 * VERSION (_MAKE_VERSION): 20210120
115 Merge with NetBSD make, pick up
116 o fix some more lint nits
117 o refine some unit tests for portability
118 o cond.c: rework parsing
120 2021-01-10 Simon J Gerraty <sjg@beast.crufty.net>
122 * VERSION (_MAKE_VERSION): 20210110
123 Merge with NetBSD make, pick up
125 o consistently use boolean expressions in conditions
127 2021-01-08 Simon J Gerraty <sjg@beast.crufty.net>
129 * VERSION (_MAKE_VERSION): 20210108
130 Merge with NetBSD make, pick up
131 o job.c: back to polling token pipe if we want a token
132 o main.c: always print 'stopped in' on first call
133 The execption is if we bail because of an abort token
134 in which case just exit 6.
136 2021-01-01 Simon J Gerraty <sjg@beast.crufty.net>
138 * VERSION (_MAKE_VERSION): 20210101
139 Merge with NetBSD make, pick up
141 o rename CmdOpts.lint to strict
142 o exit 2 on technical errors
143 o replace pointers in controlling conditions with booleans
144 o replace global preserveUndefined with VARE_KEEP_UNDEF
145 o compat.c: re-export variables from the actual make process
146 if using vfork this is the effect anyway
147 o cond.c: clean up VarParseResult constants
148 o for.c: fix undefined behavior in SubstVarLong
149 make control flow in SubstVarLong of .for loops more obvious
150 clean up SubstVarShort in .for loops
151 extract ForSubstBody from ForReadMore
153 simplify termination condition for .for loop
154 add error handling for .for loop items
155 job.c: re-export variables from the actual make process
156 parse.c: remove mmap for loading files, only allow files < 1 GiB
157 fix edge case in := with undefined in variable name
158 skip variable expansion in ParseDependencyTargetWord
159 var.c: split ExportVar into separate functions
160 clean up code in extracted ExportVar functions
161 remove dead code from ApplyModifiersIndirect
162 split Var_Subst into easily understandable functions
163 clean up VarParseResult constants
165 2020-12-25 Simon J Gerraty <sjg@beast.crufty.net>
167 * main.c: use .MAKE.DEPENDFILE as set by makefiles
169 2020-12-22 Simon J Gerraty <sjg@beast.crufty.net>
171 * VERSION (_MAKE_VERSION): 20201222
172 Merge with NetBSD make, pick up
173 o make DEBUG macro return boolean
174 o parse.c: fix assertion failure for files without trailing newline
175 o var.c: allow .undef to undefine multiple variables at once
176 remove excess newline from parse errors
178 2020-12-21 Simon J Gerraty <sjg@beast.crufty.net>
180 * VERSION (_MAKE_VERSION): 20201221
181 Merge with NetBSD make, pick up
182 o some unit-test updates
184 2020-12-20 Simon J Gerraty <sjg@beast.crufty.net>
186 * VERSION (_MAKE_VERSION): 20201220
187 Merge with NetBSD make, pick up
189 o return FStr from Var_Parse and Var_Value
190 o spell nonexistent consistently
191 o add str_basename to reduce duplicate code
192 o compat.c: fix .ERROR_TARGET in compat -k mode
193 extract InitSignals from Compat_Run
194 extract UseShell from Compat_RunCommand
195 o cond.c: error out if an '.endif' or '.else' contain extraneous text
196 o for.c: rename ForIterate to ForReadMore
197 o hash.c: clean up hash function for HashTable
198 o lst.c: rename Vector.priv_cap to cap
199 o main.c: remove constant parameter from MakeMode
200 o make.c: use symbolic time for 0 in Make_Recheck
201 extract MakeChildren from MakeStartJobs
202 o parse.c: clean up memory handling in VarAssign_EvalShell, Parse_DoVar
203 fix error message for .info/.warning/.error without argument
204 extract Var_Undef from ParseDirective
205 extract ParseSkippedBranches, ParseForLoop from ParseReadLine
206 rename mode constants for ParseGetLine to be more expressive
207 reduce debugging details in Parse_SetInput
208 fix line numbers in .for loops
209 split ParseGetLine into separate functions
210 fix garbled output for failed shell command
211 var.c: remove redundant assignment in ApplyModifier_SysV
212 error out on unknown variable modifiers at parse time
213 remove wrong error message for indirect modifier in lint mode
214 extract ApplySingleModifier from ApplyModifiers
215 use FStr for memory management in Var_SetWithFlags
216 extract SetVar from Var_SetWithFlags
218 extract string functions from ApplyModifier_To
219 error out if .undef has not exactly 1 argument
220 extract Var_DeleteVar from Var_Delete
221 extract Var_Undef from ParseDirective
222 clean up memory management for expanding variable expressions
224 2020-12-12 Simon J Gerraty <sjg@beast.crufty.net>
228 * lst.c: avoid anonymous union
230 * VERSION (_MAKE_VERSION): 20201212
231 Merge with NetBSD make, pick up
233 o inline Targ_Ignore and Targ_Silent
234 o split JobFlags into separate fields
235 o remove const from function parameters (left overs from refactoring)
236 o eliminate boolean argument of Var_Export
237 o make API of Buf_Init simpler
238 o rename ParseRunOptions to ParseCommandFlags
239 o replace *line with line[0]
240 o compat.c: fix wrong exit status for multiple failed main targets
241 refactor Compat_Run to show the error condition more clearly
242 don't make .END if the main targets already failed (-k mode)
243 fix exit status in -k mode if a dependency fails
244 o for.c: clean up Buf_AddEscaped in .for loops
245 o job.c: extract ShellWriter_ErrOn from JobPrintCommand
246 make Job_Touch simpler
248 rename Shell.exitFlag to errFlag
249 move Job.xtraced to ShellWriter
250 make printing of shell commands independent from the job
251 rename shell flags in struct Shell
252 extract JobOpenTmpFile from JobStart
253 rename RunFlags to CommandFlags
254 split various Job.* into separate fields
255 rename commandShell to shell
256 extract InitShellNameAndPath from Shell_Init
257 replace signal handling macros with local functions
258 replace macro MESSAGE with local function
259 parse.c: error out on null bytes in makefiles
260 error out on misspelled directives
261 rename IFile.nextbuf to readMore
262 fix undefined behavior in ParseEOF
263 str.c: remove redundant call to strlen in Str_Words
264 var.c: error out on misspelled .unexport-env
265 error out on misspelled .export directives
266 extract ExportVars from Var_Export
267 extract ExportVarsExpand from Var_Export
268 eliminate boolean argument of Var_Export
269 fix undefined behavior when exporting ${:U }
270 rename Var_ExportVars to Var_ReexportVars
271 rename Var_Export1 to ExportVar
273 2020-12-06 Simon J Gerraty <sjg@beast.crufty.net>
275 * VERSION (_MAKE_VERSION): 20201206
276 Merge with NetBSD make, pick up
278 o inline macros for debug logging
279 o use consistent variable names for list nodes
280 o define constants for enum zero-values
281 o dir.c: use fixed format for debug output of the directory cache
283 o lst.c: inline Lst_Enqueue, Vector_Done
284 o meta.c: remove unused parameter from meta_needed
285 o parse.c: rename parse functions
286 o suff.c: extract ExpandChildrenRegular from ExpandChildren
287 o targ.c: don't concatenate identifiers in Targ_PrintType
288 o var.c: remove comment decoration
289 extract UnexportVars from Var_UnExport
290 extract GetVarnamesToUnexport from Var_UnExport
291 extract UnexportEnv from Var_UnExport
292 extract UnexportVar from Var_UnExport
293 move CleanEnv to UnexportVars
294 replace pointer comparisons with enum
295 add FStr to var.c to make memory handling simpler
296 use FStr in Var_UnExport
297 move type definitions in var.c to the top
298 extract FreeEnvVar from Var_Parse
299 extract ShuffleStrings from ApplyModifier_Order
301 2020-11-30 Simon J Gerraty <sjg@beast.crufty.net>
303 * VERSION (_MAKE_VERSION): 20201130
304 Merge with NetBSD make, pick up
305 o add unit tests for META MODE
306 o reduce memory allocation for dirSearchPath, GNode.parents,
307 GNode.children, OpenDirs
308 o reduce pointer indirection for GNode.cohorts and
309 GNode.implicitParents
310 o remove pointer indirection from GNode.commands
311 o inline Lst_ForEachUntil in meta mode
312 o dir.c: fix memory leak for lstat cache in -DCLEANUP mode
313 clean up memory management for CachedDirs
314 fix the reference count of dotLast going negative
315 add debug logging for OpenDirs_Done
316 extract CacheNewDir from Dir_AddDir
317 add debug logging for reference counting of CachedDir
318 rename some Dir functions to SearchPath
319 o job.c: rename some global variables
320 o main.c: reduce memory allocation in ReadBuiltinRules
321 reduce memory allocation in CmdOpts.create, CmdOpts.variables,
323 Add .MAKE.UID and .MAKE.GID
324 o make.c: reduce memory allocation for/in toBeMade,
325 Make_ProcessWait, Make_ExpandUse
326 o meta.c: reduce memory allocation in meta_oodate
327 o parse.c: reduce memory allocations for parsing dependencies and
329 o suff.c: reduce memory allocation in suffix handling
331 2020-11-24 Simon J Gerraty <sjg@beast.crufty.net>
333 * VERSION (_MAKE_VERSION): 20201124
334 Merge with NetBSD make, pick up
335 o .MAKE.{UID,GID} represent uid and gid running make.
336 o fix error handling for .BEGIN and .END dependency in -k mode
337 o fix missing "Stop." after failed .END node in -k mode
338 o use properly typed comparisons in boolean contexts
339 o replace a few HashTable_CreateEntry with HashTable_Set
341 o compat.c: split Compat_Make into smaller functions
342 extract DebugFailedTarget from Compat_RunCommand
343 o dir.c: refactor Dir_UpdateMTime
344 migrate CachedDir.files from HashTable to HashSet
345 o make.c: add high-level API for GNode.made
347 2020-11-22 Simon J Gerraty <sjg@beast.crufty.net>
349 * VERSION (_MAKE_VERSION): 20201122
350 Merge with NetBSD make, pick up
351 o rename GNode.context to vars
352 o suff.c: cleanup and refactor
353 rename some functions and vars to better reflect usage
354 add high-level API for CandidateSearcher
355 o targ.c: add more debug logging for suffix handling
357 o add debug logging for setting and resetting the main target
359 2020-11-17 Simon J Gerraty <sjg@beast.crufty.net>
361 * VERSION (_MAKE_VERSION): 20201117
362 Merge with NetBSD make, pick up
363 o fix some unit-tests when .SHELL is dash
364 o rename Targ_NewGN to GNode_New
365 o make some GNode functions const
366 o main.c: call Targ_Init before Var_Init
367 cleanup PrintOnError, getTmpdir and ParseBoolean
368 o var.c: fix error message of failed :!cmd! modifier
370 2020-11-14 Simon J Gerraty <sjg@beast.crufty.net>
372 * VERSION (_MAKE_VERSION): 20201114
373 Merge with NetBSD make, pick up
374 o replace a few HashTable_CreateEntry with HashTable_Set
375 o clean up cached_stats
376 o rename DEFAULT to defaultNode
377 o remove redundant struct make_stat
378 o cond.c: in lint mode, check for ".else <cond>"
379 use bitset for IfState
380 replace large switch with if-else in Cond_EvalLine
381 o job.c: clean up JobExec, JobStart, JobDoOutput
382 use stderr for error message about failed touch
384 replace macro DBPRINTF with JobPrintln
385 rename JobState to JobStatus
386 main.c: switch cache for realpath from GNode to HashTable
388 clean up InitDefSysIncPath
389 use progname instead of hard-coded 'make' in warning
390 rename Main_SetVarObjdir to SetVarObjdir
391 make.1: document the -S option
392 make.c: fix debug output for GNode details
393 use symbolic names in debug output of GNodes
395 2020-11-12 Simon J Gerraty <sjg@beast.crufty.net>
397 * configure.in: fix --with-force-machine-arch
399 * VERSION (_MAKE_VERSION): 20201112
400 Merge with NetBSD make, pick up
401 o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
402 checks in InitObjdir. Explicit .OBJDIR target always allows
404 o cond.c: clean up Cond_EvalLine
406 2020-11-11 Simon J Gerraty <sjg@beast.crufty.net>
408 * VERSION (_MAKE_VERSION): 20201111
409 Merge with NetBSD make, pick up
412 remove redundant parentheses from sizeof operator
413 replace character literal 0 with '\0'.
414 replace pointer literal 0 with NULL.
415 remove redundant parentheses.
416 replace (expr & mask) == 0 with !(expr & mask).
417 use strict typing in conditions of the form !var
418 o rename Make_OODate to GNode_IsOODate
419 o rename Make_TimeStamp to GNode_UpdateYoungestChild
420 o rename Var_Set_with_flags to Var_SetWithFlags
421 o rename dieQuietly to shouldDieQuietly
422 o buf.c: make API of Buf_Init simpler
423 o compat.c: clean up Compat_Make, Compat_RunCommand,
424 CompatDeleteTarget and CompatInterrupt
425 o cond.c: in lint mode, only allow '&&' and '||', not '&' and '|'
426 clean up CondParser_Comparison
427 o main.c: rename getBoolean and s2Boolean
428 rename MAKEFILE_PREFERENCE for consistency
429 o parse.c: replace strstr in ParseMaybeSubMake with optimized code
430 o var.c: rename VARE_ASSIGN to VARE_KEEP_DOLLAR
431 replace emptyString with allocated empty string
432 error out on unclosed expressions after the colon
434 2020-11-01 Simon J Gerraty <sjg@beast.crufty.net>
436 * VERSION (_MAKE_VERSION): 20201101
437 Merge with NetBSD make, pick up
438 o negate NoExecute to GNode_ShouldExecute
439 o job.c: rename JobMatchShell to FindShellByName
440 extract EscapeShellDblQuot from JobPrintCommand
441 extract ParseRunOptions from JobPrintCommand
442 o var.c: extract ApplyModifiersIndirect from ApplyModifiers
443 treat malformed :range, :ts and :[...] as errors
444 add tests for the variable modifiers :[words] and :range
446 2020-10-31 Simon J Gerraty <sjg@beast.crufty.net>
448 * VERSION (_MAKE_VERSION): 20201031
449 Merge with NetBSD make, pick up
450 o format #include directives consistently
451 o do not look up local variables like .TARGET anywhere else
452 o main.c: Main_SetObjdir is first called for curdir which may be
454 reduce the scope where recursive expressions are detected
455 remove redundant :tl from getBoolean
457 o meta.c: simplify memory allocation in meta_create and meta_oodate
458 o parse.c: extract loadedfile_mmap from loadfile
459 o trace.c: document possible undefined behavior with .CURDIR
460 o var.c: make parsing of the :gmtime and :localtime modifiers stricter
461 rename ismeta to is_shell_metachar
462 remove debug logging for the :Q variable modifier
463 rename VarIsDynamic to VarnameIsDynamic
464 use consistent parameter order in varname parsing functions
465 extract ParseVarnameLong from Var_Parse
466 extract ParseVarnameShort from Var_Parse
467 fix type of ParseModifierPart parameter delim
468 extract IsEscapedModifierPart from ParseModifierPart
470 add test for combining the :@ and :? variable modifiers
472 2020-10-30 Simon J Gerraty <sjg@beast.crufty.net>
474 * VERSION (_MAKE_VERSION): 20201030
475 Merge with NetBSD make, pick up
476 o change char * to void * in Var_Value
477 o make iterating over HashTable simpler
478 o rename VAR_CMD to VAR_CMDLINE
479 o cond.c: clean up is_separator
480 fix parse error in string literal in conditional
481 o main.c: do not use objdir that is not writable
482 in lint mode, exit with error status on errors
483 o parse.c: clean up StrContainsWord
484 fix out-of-bounds pointer in ParseTrackInput
485 o var.c: rename Str_SYSVMatch and its parameters
486 remove unsatisfiable conditions in Var_Set_with_flags
487 document where the variable name is expanded
488 fix documentation for VARP_SUB_ONE
489 rename VAR_EXPORTED_YES to VAR_EXPORTED_SOME
490 document VAR_READONLY
491 prevent appending to read-only variables
492 extract MayExport from Var_Export1
493 remove redundant evaluations in VarFind
494 replace VarFindFlags with a simple Boolean
495 rename FIND_CMD to FIND_CMDLINE, to match VAR_CMDLINE
497 2020-10-28 Simon J Gerraty <sjg@beast.crufty.net>
499 * VERSION (_MAKE_VERSION): 20201028
500 Merge with NetBSD make, pick up
501 o rename defIncPath to defSysIncPath
502 o initialize all CmdOpts fields
503 o lst.c: inline Vector_Get
504 o main.c: refactor main extract
505 InitMaxJobs,InitObjdir,InitVarMake,InitRandom,
506 ReadMakefiles,CleanUp,InitVpath,ReadBuiltinRules,
507 InitDefIncPath,CmdOpts_Init,UnlimitFiles
508 o parse.c: merge curFile into includes
509 rename predecessor to order_pred
510 sort ParseSpecial alphabetically
511 remove unused, undocumented .NOEXPORT
512 rename ParseSpecial enum values consistently
513 rename some fields of struct IFile
515 2020-10-26 Simon J Gerraty <sjg@beast.crufty.net>
517 * VERSION (_MAKE_VERSION): 20201026
518 Merge with NetBSD make, pick up
519 o group the command line options and arguments into a struct
520 o rename GNode.cmgn to youngestChild
521 o rename hash functions to identify the type name
522 o negate OP_NOP and rename it to GNode_IsTarget
523 o add GNode_Path to access the path of a GNode
524 o remove macros MIN and MAX
525 o remove unused Lst_Find and Lst_FindFrom
526 o arch.c: and make Arch_FindLib simpler
528 make Arch_ParseArchive simpler
529 o cond.c: inline CondFindStrMatch into FuncMake
530 o dir.c: replace Dir_CopyDir with Dir_CopyDirSearchPath
531 omit trailing space in debug output for expanding file patterns
532 refactor DirMatchFiles
533 document that the SearchPath of Dir_FindFile may be NULL
534 remove UNCONST from Dir_Expand
536 o for.c: clean up code for handling .for loops
537 o hash.c: print hash in debug log with fixed width
538 clean up hash table functions
539 reduce amount of string hashing
540 o job.c: refactor JobDeleteTarget
541 use proper enum constants for aborting
542 convert result of JobStart from macros to enum
543 convert abort reason macros to enum
544 rework Job_CheckCommands to reduce indentation
546 add field names in declaration of DEFSHELL_CUSTOM
547 convert JobState and JobFlags to enum types
548 move handling of the "..." command to JobPrintCommands
551 remove Lst_Open, Lst_Next, Lst_Close
552 remove code for circular lists from Lst_Next
553 o main.c: do not attempt to read .MAKE.DEPENFILE if set to
554 /dev/null or anything starting with "no"
555 convert macros for debug flags into enum
556 o make.c: inline Lst_Copy in Make_ExpandUse
557 o meta.c: inline Lst_Find in meta_oodate
558 make Lst_RemoveIf simpler in meta_oodate
559 o parse.c: convert error level for Parse_Error to an enum
560 o suff.c: properly terminate debug output with newline
561 add more details to DEBUG_SRC log
562 replace Dir_CopyDir with Dir_CopyDirSearchPath
563 don't modify GNode name while rebuilding the suffix graph
564 o var.c: reduce duplicate code in VarFind
566 2020-10-22 Simon J Gerraty <sjg@beast.crufty.net>
568 * VERSION (_MAKE_VERSION): 20201022
569 Merge with NetBSD make, pick up
570 o more refactoring and simplification to reduce code size
571 o var.c: extract CanonicalVarname from VarFind
572 o make.c: extract UpdateImplicitParentsVars from Make_Update
573 o main.c: extract PrintVar from doPrintVars
574 extract HandlePWD from main
575 o lst.c: inline simple Lst getters
576 remove unused Lst_ForEach
577 o job.c: move struct Shell from job.h to job.c
580 2020-10-19 Simon J Gerraty <sjg@beast.crufty.net>
582 * configure.in: remove inappropriate use of AC_INCLUDES_DEFAULT
584 2020-10-18 Simon J Gerraty <sjg@beast.crufty.net>
586 * VERSION (_MAKE_VERSION): 20201018
587 Merge with NetBSD make, pick up
589 o rename some Hash_* apis to Hash*
590 o replace execError with execDie
591 o rename Lst_Init to Lst_New
592 o add tags to enum types
593 o rename Stack to Vector
594 o parse.c: more refactoring
595 o unit-tests: make some tests use line buffered stdout
596 o unit-tests/Makefile: in meta mode do not make all tests depend on
597 Makefile, it isn't necessary.
599 2020-10-10 Simon J Gerraty <sjg@beast.crufty.net>
601 * main.c: check for CTL_HW being defined.
602 * unit-tests/Makefile: ensure export tests output are POSIX compliant
603 disable opt-debug-jobs test until it works on ubuntu
605 * VERSION (_MAKE_VERSION): 20201010
606 Merge with NetBSD make, pick up
607 o dir.c: remove pathname limit for Dir_FindHereOrAbove
608 o hash.c: replace strcpy with memcpy in Hash_CreateEntry
609 o main.c: extract init_machine and init_machine_arch from main
610 allow to disable debug logging options
611 o parse.c: enable format string truncation warnings
612 extract parsing of sources from ParseDoDependency
613 split ParseDoSrc into smaller functions
614 hide implementation details from Parse_DoVar
615 clean up parsing of variable assignments
616 split Parse_DoVar into manageable pieces
617 don't modify the given line during Parse_DoVar
618 fix out-of-bounds memory access in Parse_DoVar
619 fix parsing of the :sh assignment modifier
620 o var.c: rework memory allocation for the name of variables
621 extract ApplyModifier_Literal into separate function
622 in lint mode, reject modifiers without delimiter
623 do not export variable names starting with '-'
624 o fix double-free bug in -DCLEANUP mode
625 o more cleanup to enable higher warnings level
628 2020-10-02 Simon J Gerraty <sjg@beast.crufty.net>
630 * VERSION (_MAKE_VERSION): 20201002
631 Merge with NetBSD make, pick up
632 o dir.c: use hash table for looking up open directories by name
633 o main.c: clean up option handling
634 o parse.c: add missing const for Parse_AddIncludeDir
635 o var.c: ApplyModifier_To, update pp in each branch
636 o remove redundant function prototypes
639 2020-10-01 Simon J Gerraty <sjg@beast.crufty.net>
641 * VERSION (_MAKE_VERSION): 20201001
642 Merge with NetBSD make, pick up
643 o compat.c: comment about "..."
645 2020-09-30 Simon J Gerraty <sjg@beast.crufty.net>
647 * VERSION (_MAKE_VERSION): 20200930
648 Merge with NetBSD make, pick up
649 o job.c: split Job.jobPipe into 2 separate fields
650 replace Lst_Open with direct iteration
651 o lst.c: remove redundant assertions
652 o targ.c: replace Lst_Open with direct iteration
653 o var.c: fix bug in evaluation of indirect variable modifiers
654 extract ApplyModifier_Quote into separate function
655 o make debug logging simpler
657 2020-09-27 Simon J Gerraty <sjg@beast.crufty.net>
659 * VERSION (_MAKE_VERSION): 20200927
660 Merge with NetBSD make, pick up
661 o parse.c: ensure parse errors result in 'stopped in' message.
662 o compat.c: make parameter of Compat_RunCommand const
663 o main.c: extract InitVarTarget from main
664 o parse.c: rename ParseFinishLine to FinishDependencyGroup
665 refactor ParseDoDependency
666 o var.c: Var_Subst no longer returns string result
667 rename Var_ParsePP back to Var_Parse
668 in lint mode, improve error handling for undefined variables
669 extract ParseVarname from Var_Parse
670 o rename Lst_ForEach to Lst_ForEachUntil
671 o inline Lst_ForEachUntil in several cases
672 o clean up API for finding and creating GNodes
673 o fix assertion failure in -j mode with .END node
674 o inline and remove LstNode_Prev and LstNode_Next
675 o use fine-grained type names for lists and their nodes
678 2020-09-11 Simon J Gerraty <sjg@beast.crufty.net>
680 * VERSION (_MAKE_VERSION): 20200911
681 Merge with NetBSD make, pick up
682 o cond.c: split EvalComparison into smaller functions
683 reorder parameters of condition parsing functions
684 reduce code size in CondParser_Eval
685 rename CondGetString to CondParser_String
686 add CondLexer_SkipWhitespace
687 group the condition parsing state into a struct
688 in CondGetString, replace repeated Buf_Add with Buf_AddStr
689 o migrate Var_Parse to Var_ParsePP
690 o add wrappers around ctype.h functions
691 o lst.c: use a stack instead of a list for the nested include path
694 2020-09-04 Simon J Gerraty <sjg@beast.crufty.net>
696 * make-bootstrap.sh.in: adjust object list
698 2020-09-02 Simon J Gerraty <sjg@beast.crufty.net>
700 * VERSION (_MAKE_VERSION): 20200902
701 Merge with NetBSD make, pick up
702 o use make_stat to ensure no confusion over valid fields
703 returned by cached_stat
704 o var.c: make VarQuote const-correct
705 o add unit tests for .for
707 2020-09-01 Simon J Gerraty <sjg@beast.crufty.net>
709 * VERSION (_MAKE_VERSION): 20200901
710 Merge with NetBSD make, pick up
711 o rename Hash_Table fields
712 o make data types in Dir_HasWildcards more precise
714 2020-08-31 Simon J Gerraty <sjg@beast.crufty.net>
716 * VERSION (_MAKE_VERSION): 20200831
717 Merge with NetBSD make, pick up
718 o suff.c: fix unbalanced Lst_Open/Lst_Close in SuffFindCmds
719 o lst.c: Lst_Open renable assert that list isn't open
720 o unit test for .TARGET dependent flags
721 o var.c: fix aliasing bug in VarUniq
722 o more unit tests for :u
724 2020-08-30 Simon J Gerraty <sjg@beast.crufty.net>
726 * VERSION (_MAKE_VERSION): 20200830
727 Merge with NetBSD make, pick up
728 o allow for strict type checking for Boolean
729 o Var_Parse never returns NULL
730 o Var_Subst never returns NULL
731 o Lst_Find now takes boolean match function
732 o rename Lst_Memeber to Lst_FindDatum
733 o rename LstNode functions to match their type
734 o rename GNode.iParents to implicitParents
735 o fix assertion failure for .SUFFIXES in archives
736 o compat.c: clean up documentation for CompatInterrupt and Compat_Run
737 remove unreachable code from CompatRunCommand
738 o main.c: simplify getBoolean
739 o stc.c: replace brk_string with simpler Str_Words
740 o suff.c: add debug macros
742 2020-08-28 Simon J Gerraty <sjg@beast.crufty.net>
744 * VERSION (_MAKE_VERSION): 20200828
745 Merge with NetBSD make, pick up
746 o lst.c: inline LstIsValid and LstNodeIsValid
747 o remove trailing S from Lst function names after migration complete
748 o more comment cleanup/clarification
749 o suff.c: clean up suffix handling
752 2020-08-26 Simon J Gerraty <sjg@beast.crufty.net>
754 * VERSION (_MAKE_VERSION): 20200826
755 Merge with NetBSD make, pick up
756 o enum.c: distinguish between bitsets containing flags and
758 o var.c: fix error message for ::!= modifier with shell error
759 o fix bugs in -DCLEANUP mode
761 2020-08-24 Simon J Gerraty <sjg@beast.crufty.net>
763 * VERSION (_MAKE_VERSION): 20200824
764 Merge with NetBSD make, pick up
765 o in debug mode, print GNode details in symbols
767 2020-08-23 Simon J Gerraty <sjg@beast.crufty.net>
769 * VERSION (_MAKE_VERSION): 20200823
770 Merge with NetBSD make, pick up
771 o lst.c: more asserts,
772 make args to Lst_Find match others.
773 o var.c: pass flags to VarAdd
775 o str.c: brk_string return size_t for nwords
778 2020-08-22 Simon J Gerraty <sjg@beast.crufty.net>
780 * VERSION (_MAKE_VERSION):
781 Merge with NetBSD make, pick up
782 o var.c: support for read-only variables eg .SHELL
783 being the shell used to run scripts.
784 o lst.c: more simplification
785 o more documentation and style cleanup
787 o ensure unit-test/Makefile is run by TEST_MAKE
788 o reduce duplication of header inclusion
790 2020-08-21 Simon J Gerraty <sjg@beast.crufty.net>
792 * VERSION (_MAKE_VERSION): 20200821
793 Merge with NetBSD make, pick up
794 o lst.c: revert invalid assertion - but document it
795 o dir.c: split Dir_Init into two functions
797 2020-08-20 Simon J Gerraty <sjg@beast.crufty.net>
799 * lst.c: needs inttypes.h on Linux
801 * VERSION (_MAKE_VERSION): 20200820
802 Merge with NetBSD make, pick up
803 o make.1: clarify some passages
804 o var.c: more cleanup, clarify comments
805 o make_malloc.c: remove unreachable code
806 o cond.c: make CondGetString easier to debug
807 o simplify list usage
810 2020-08-16 Simon J Gerraty <sjg@beast.crufty.net>
812 * VERSION (_MAKE_VERSION): 20200816
813 Merge with NetBSD make, pick up
814 o refactor unit-tests to be more fine grained
815 not all tests moved yet
817 2020-08-14 Simon J Gerraty <sjg@beast.crufty.net>
819 * VERSION (_MAKE_VERSION): 20200814
820 Merge with NetBSD make, pick up
821 o more str_concat variants
822 o more enums for flags
823 o var.c: cleanup for higher warnings level
825 2020-08-10 Simon J Gerraty <sjg@beast.crufty.net>
827 * VERSION (_MAKE_VERSION): 20200810
828 Merge with NetBSD make, pick up
830 o general comment and style cleanup
832 2020-08-08 Simon J Gerraty <sjg@beast.crufty.net>
834 * VERSION (_MAKE_VERSION): 20200808
835 Merge with NetBSD make, pick up
836 o enum.[ch]: streamline, enums for use in flags and debug output
838 o var.c: reduce duplicate code for modifiers
839 debug logging for Var_Parse
840 more detailed debug output
843 2020-08-06 Simon J Gerraty <sjg@beast.crufty.net>
845 * unit-tests/Makefile: -r for recursive and include Makefile.inc
846 so I can run tests in meta mode
847 supress extra noise if in meta mode
849 * VERSION (_MAKE_VERSION): 20200806
850 Merge with NetBSD make, pick up
851 o parse.c: remove VARE_WANTRES for LINT
852 we just want to check parsing (for now).
854 2020-08-05 Simon J Gerraty <sjg@beast.crufty.net>
856 * VERSION (_MAKE_VERSION): 20200805
857 Merge with NetBSD make, pick up
858 o make.1: Rework the description of dependence operators
860 2020-08-03 Simon J Gerraty <sjg@beast.crufty.net>
862 * VERSION (_MAKE_VERSION): 20200803
863 Merge with NetBSD make, pick up
864 o revert some C99 usage, for max portability
867 2020-08-02 Simon J Gerraty <sjg@beast.crufty.net>
869 * VERSION (_MAKE_VERSION): 20200802
870 Merge with NetBSD make, pick up
873 2020-08-01 Simon J Gerraty <sjg@beast.crufty.net>
875 * Remove NetBSD specific plumbing from unit-tests/Makefile
877 * VERSION (_MAKE_VERSION): 20200801
878 Merge with NetBSD make, pick up
879 o make Var_Value return const
880 o size_t for buf sizes
881 o optimize some buffer operations - avoid strlen
883 2020-07-31 Simon J Gerraty <sjg@beast.crufty.net>
885 * VERSION (_MAKE_VERSION): 20200731
886 Merge with NetBSD make, pick up
887 o var.c: fix undefinded behavior for incomplete :t modifier
888 fixes unit-test/moderrs on Ubuntu
889 o parse.c: When parsing variable assignments other than :=
890 if DEBUG(LINT) test substition of value, so we get a file and
891 line number in the resulting error.
892 o dir.c: fix parsing of nested braces in dependency lines
895 2020-07-30 Simon J Gerraty <sjg@beast.crufty.net>
897 * VERSION (_MAKE_VERSION): 20200730
898 Merge with NetBSD make, pick up
899 o var.c: minor cleanup
900 o unit-tests: more tests to improve code coverage
902 2020-07-28 Simon J Gerraty <sjg@beast.crufty.net>
904 * VERSION (_MAKE_VERSION): 20200728
905 Merge with NetBSD make, pick up
906 o var.c: more optimizations
908 2020-07-26 Simon J Gerraty <sjg@beast.crufty.net>
910 * VERSION (_MAKE_VERSION): 20200726
911 Merge with NetBSD make, pick up
912 o collapse lsd.lib into lst.c - reduce code size and allow inlining
913 o lots of function comment updates
914 o var.c: more optimizations
915 o make return of Var_Parse const
917 2020-07-20 Simon J Gerraty <sjg@beast.crufty.net>
919 * VERSION (_MAKE_VERSION): 20200720
920 Merge with NetBSD make, pick up
921 o DEBUG_HASH report stats at end and tone down the noise
922 o var.c: each flag type gets its own prefix.
923 move SysV string matching to var.c
924 make ampersand in ${VAR:from=to&} an ordinary character
925 cleanup and simplify implementation of modifiers
926 o make.1: move documentation for assignment modifiers
928 2020-07-18 Simon J Gerraty <sjg@beast.crufty.net>
930 * VERSION (_MAKE_VERSION): 20200718
931 Merge with NetBSD make, pick up
932 o DEBUG_HASH to see how well the hash tables are working
934 2020-07-11 Simon J Gerraty <sjg@beast.crufty.net>
936 * bsd.after-import.mk: make sure we update unit-tests/Makefile
938 2020-07-10 Simon J Gerraty <sjg@beast.crufty.net>
940 * configure.in: use AC_INCLUDES_DEFAULT rather than AC_HEADER_STDC
942 * VERSION (_MAKE_VERSION): 20200710
943 Merge with NetBSD make, pick up
944 o filemon/filemon_dev.c: use O_CLOEXEC rather than extra syscall
945 o meta.c: target flagged .META is out-of-date if meta file missing
947 2020-07-09 Simon J Gerraty <sjg@beast.crufty.net>
949 * VERSION (_MAKE_VERSION): 20200709
950 Merge with NetBSD make, pick up
951 o cond.c: fix for compare_expression when doEval=0
952 o unit-tests/Makefile: rework
953 o filemon/filemon_dev.c: ensure filemon fd is closed on exec.
955 2020-07-04 Simon J Gerraty <sjg@beast.crufty.net>
957 * VERSION (_MAKE_VERSION): 20200704
958 Merge with NetBSD make, pick up
959 (most of this by rillig@)
960 o lots of style and white-space cleanup
961 o lots more unit tests for variable modifiers
962 o simplified description of some functions
963 o str.c: refactor Str_Match
964 o var.c: debugging output for :@
965 constify VarModify parameter
966 fix :hash modifier on 16-bit platforms
967 remove unnecessary forward declarations
968 refactor ApplyModifier_SysV to have less indentation
969 simplify code for :E and :R
970 clean up code for :H and :T
971 refactor ApplyModifiers
973 * var.c: we need stdint.h on some platforms to get uint32_t
974 * unit-test/Makefile: we need to supress the specific error
975 for RE substitution error in modmisc, since it varies accross
978 2020-07-02 Simon J Gerraty <sjg@beast.crufty.net>
980 * VERSION (_MAKE_VERSION): 20200702
981 Merge with NetBSD make, pick up
982 o var.c: more improvements to avoiding unnecessary evaluation
984 o remove flags arg to Var_Set which outside of var.c is always 0
986 2020-07-01 Simon J Gerraty <sjg@beast.crufty.net>
988 * VERSION (_MAKE_VERSION): 20200701
989 Merge with NetBSD make, pick up
990 o var.c: with change to cond.c; ensure that nested variables
991 within a variable name are expanded.
992 o unit-tests/varmisc.mk: test for nested varname
994 2020-06-29 Simon J Gerraty <sjg@beast.crufty.net>
996 * VERSION (_MAKE_VERSION): 20200629
997 Merge with NetBSD make, pick up
998 o cond.c: do not eval unnecessary terms of conditionals.
1000 2020-06-25 Simon J Gerraty <sjg@beast.crufty.net>
1002 * VERSION (_MAKE_VERSION): 20200625
1003 Merge with NetBSD make, pick up
1004 o meta.c: report error if lseek in filemon_read fails
1006 2020-06-22 Simon J Gerraty <sjg@beast.crufty.net>
1008 * VERSION (_MAKE_VERSION): 20200622
1009 Merge with NetBSD make, pick up
1010 o dieQuietly: ignore OP_SUBMAKE as too aggressive
1012 2020-06-19 Simon J Gerraty <sjg@beast.crufty.net>
1014 * VERSION (_MAKE_VERSION): 20200619
1015 Merge with NetBSD make, pick up
1016 o str.c: performance improvement for Str_Match for multiple '*'
1017 o dieQuietly: supress the failure output from make
1018 when failing node is a sub-make or a sibling failed.
1019 This cuts down greatly on unhelpful noise at the end of
1020 build log. Disabled by -dj or .MAKE.DIE_QUIETLY=no
1022 2020-06-10 Simon J Gerraty <sjg@beast.crufty.net>
1024 * FILES: add LICENSE to appease some packagers.
1025 This is an attempt to fairly represent the license on almost
1026 200 files, which are almost all BSD-3-Clause
1027 The few exceptions being more liberal.
1029 * VERSION (_MAKE_VERSION): 20200610
1030 Merge with NetBSD make, pick up
1033 2020-06-06 Simon J Gerraty <sjg@beast.crufty.net>
1035 * VERSION (_MAKE_VERSION): 20200606
1036 Merge with NetBSD make, pick up
1039 * Makefile: fix depends for main.o which broke MAKE_VERSION
1041 2020-06-05 Simon J Gerraty <sjg@beast.crufty.net>
1043 * VERSION (_MAKE_VERSION): 20200605
1044 Merge with NetBSD make, pick up
1045 o dir.c: cached_stats - don't confuse stat and lstat results.
1046 o var.c: add :Or for reverse sort.
1048 2020-05-24 Simon J Gerraty <sjg@beast.crufty.net>
1050 * configure.in: add AC_PROG_CC_C99 for mipspro compiler
1051 also if --with-filemon= specifies path to filemon.h
1053 * dirname.c: remove include of namespace.h
1055 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
1057 * VERSION (_MAKE_VERSION): 20200517
1058 Merge with NetBSD make, pick up
1059 o modified dollar tests to avoid shell dependencies
1060 o new tests for .INCLUDEFROM
1062 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
1064 * unit-tests/dollar.mk: tweak '1 dollar literal' test
1065 to not depend so much on shell behavior
1067 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
1069 * VERSION (_MAKE_VERSION): 20200510
1070 Merge with NetBSD make, pick up
1071 o unit test for dollar handling
1073 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
1075 * VERSION (_MAKE_VERSION): 20200506
1076 Merge with NetBSD make, pick up
1077 o str.c: empty string does not match % pattern
1078 plus unit-test changes
1080 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
1082 * VERSION (_MAKE_VERSION): 20200504
1083 May the 4th be with you
1084 Merge with NetBSD make, pick up
1085 o var.c: import handling of old sysV style modifier using '%'
1086 o str.c: refactor brk_string
1087 o unit-tests: add test case for lazy conditions
1089 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
1091 * VERSION (_MAKE_VERSION): 20200418
1093 * configure.in: use_makefile=no for cygwin et al.
1094 case insensitive filesystems just don't work if both
1095 makefile and Makefile exist.
1096 NOTE: bmake does not support cygwin and likely never will,
1097 but if brave souls want to try it - help them out.
1099 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
1101 * VERSION (_MAKE_VERSION): 20200402
1102 Merge with NetBSD make, pick up
1103 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
1104 a blank command is perfectly valid.
1106 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
1108 * VERSION (_MAKE_VERSION): 20200330
1109 Merge with NetBSD make, pick up
1110 o make.h: extern debug_file
1112 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
1114 * VERSION (_MAKE_VERSION): 20200318
1115 Merge with NetBSD make, pick up
1116 o meta.c: meta_oodate, check for corrupted meta file
1117 earlier and more often.
1119 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
1121 * VERSION (_MAKE_VERSION): 20200220
1123 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
1125 * boot-strap: unset MAKEFLAGS
1127 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
1129 * VERSION (_MAKE_VERSION): 20200212
1130 * meta.c: meta_compat_parent check for USE_FILEMON
1131 patch from Soeren Tempel
1133 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
1136 Merge with NetBSD make, pick up
1137 o meta.c: fix compat mode, need to call meta_job_output()
1138 o job.c: extra fds for meta mode not needed if using filemon_dev
1140 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
1143 Merge with NetBSD make, pick up
1144 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
1147 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
1150 Merge with NetBSD make, pick up
1151 o filemon/filemon_{dev,ktrace}.c: allow selection of
1152 filemon implementation. filemon_dev.c uses the kernel module
1153 while filemon_ktrace.c leverages the fktrace api available in
1154 NetBSD. filemon_ktrace.c can hopefully form the basis for
1155 adding support for other tracing mechanisms such as strace on
1157 o meta.c: when target is out-of-date per normal make rules
1158 record value of .OODATE in meta file.
1160 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
1163 Merge with NetBSD make, pick up
1164 o parse.c: don't pass NULL to realpath(3)
1165 some versions cannot handle it.
1167 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
1170 Merge with NetBSD make, pick up
1171 o parse.c: ParseDoDependency: free paths rather than assert
1173 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
1177 * configure.in: add --without-makefile to avoid generating
1178 makefile and make-bootstrap.sh
1180 * include Makefile.inc if it exists
1182 * Use Makefile and Makefile.config.in in unit-tests
1183 so we can use just: make obj && make && make test
1184 when bmake is already available.
1185 We add --without-makefile to CONFIGURE_ARGS in this case.
1187 * tweak bsd.after-import.mk (captures Makefile.config etc
1188 after import to FreeBSD for example) to cope with all the above.
1190 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
1193 Merge with NetBSD make, pick up
1194 o parse.c: ParseVErrorInternal use .PARSEDIR
1195 and apply if relative, and then use .PARSEFILE
1196 for consistent result.
1198 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
1201 Merge with NetBSD make, pick up
1202 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
1204 o var.c: avoid SEGFAULT in .unexport-env
1205 when MAKELEVEL is not set
1207 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
1210 Merge with NetBSD make, pick up
1211 o fix for unit-tests/varquote.mk on Debian
1213 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
1216 Merge with NetBSD make, pick up
1218 o dir.c: cleanup caching of stats
1220 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
1222 * Makefile.config.in: use += where it makes sense.
1224 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1227 Merge with NetBSD make, pick up
1228 o job.c: skip polling job token pipe
1230 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1233 Merge with NetBSD make, pick up
1234 o parse.c: be more cautious about detecting depenency line
1235 rather than sysV style include.
1237 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
1240 Merge with NetBSD make, pick up
1241 o parse.c: avoid calling sysconf for every call to loadfile
1243 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1246 Merge with NetBSD make, pick up
1247 o var.c: Var_Set handle NULL value anytime.
1249 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
1252 Merge with NetBSD make, pick up
1253 o parse.c: do not treat .info as warning with -W
1255 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
1258 Merge with NetBSD make, pick up
1259 o var.c: Var_Append use Var_Set if var not previously set
1260 so that VAR_CMD is handled correctly.
1261 Add a suitable unit-test.
1263 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1265 * VERSION (_MAKE_VERSION): 20171126
1267 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
1268 since AC_TRY_COMPILE puts input inside main()
1269 which upsets modern compilers.
1271 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
1274 Merge with NetBSD make, pick up
1275 o var.c: do not append to variable set on command line
1276 add unit-test to catch this.
1278 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
1281 Merge with NetBSD make, pick up
1282 o main.c: ignore empty MAKEOBJDIR
1284 * Makefile.config.in:
1285 make @prefix@ @machine*@ and @default_sys_path@ defaults.
1287 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
1291 * unit-tests/dotwait.mk: redirect stderr through pipe for more
1292 consistent result on some platforms.
1294 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
1296 * machine.sh: entry for AIX
1298 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1300 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
1301 to a file that can be included by configure as well as make.
1302 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
1304 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
1306 * Makefile (_MAKE_VERSION): 20170810
1307 Merge with NetBSD make, pick up
1308 o meta.c: if target is in subdir we only need subdir name in
1311 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
1313 * Makefile (_MAKE_VERSION): 20170720
1314 Merge with NetBSD make, pick up
1315 o compat.c: pass SIGINT etc onto child and wait for it to exit
1316 before we self-terminate.
1318 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
1320 * Makefile (_MAKE_VERSION): 20170711
1321 forgot to update after merge on 20170708 ;-)
1322 o main.c: refactor to reduce size of main function.
1323 add -v option to always fully expand values.
1324 o meta.c: ensure command output in meta file has ending newline
1325 even when filemon not being used.
1326 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
1327 pathname via ':L' since any ':' in pathname breaks that.
1328 Instead set a '${.p.}' to pathname in the target context and
1331 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
1333 * Makefile (_MAKE_VERSION): 20170510
1334 Merge with NetBSD make, pick up
1335 o main.c: Main_SetObjdir: ensure buf2 is in scope
1337 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
1339 * Makefile (_MAKE_VERSION): 20170505
1342 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1344 * parse.c: not everyone has stdint.h
1346 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
1348 * Makefile (_MAKE_VERSION): 20170501
1351 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1353 * Makefile (_MAKE_VERSION): 20170421
1354 Merge with NetBSD make, pick up
1355 o str.c: Str_Match: fix closure tests for [^] and add unit-test.
1357 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1359 * Makefile (_MAKE_VERSION): 20170420
1360 Merge with NetBSD make, pick up
1361 o main.c: only use -C arg "as is" if it contains no
1364 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1366 * Makefile (_MAKE_VERSION): 20170418
1367 Merge with NetBSD make, pick up
1368 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
1370 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
1372 * Makefile (_MAKE_VERSION): 20170417
1373 Merge with NetBSD make, pick up
1374 o fixes a number of coverity complaints
1375 - check return value of fseek, fcntl
1376 - plug memory leak in Dir_FindFile, Var_LoopExpand,
1377 JobPrintCommand, ParseTraditionalInclude
1378 - use bmake_malloc() where NULL is not tollerated
1379 - use MAKE_ATTR_UNUSED rather that kludges like
1380 return(unused ? 0 : 0)
1381 - use purge_cached_realpaths() rather than abuse cached_realpath()
1383 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
1385 * Makefile (_MAKE_VERSION): 20170413
1386 Merge with NetBSD make, pick up
1387 o main.c: when setting .OBJDIR ignore '$' in paths.
1389 * job.c: use MALLOC_OPTIONS to set malloc_options.
1391 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1393 * Makefile (_MAKE_VERSION): 20170411
1394 Merge with NetBSD make, pick up
1395 o str.c: Str_Match: allow [^a-z] to behave as expected.
1397 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1399 * Makefile (_MAKE_VERSION): 20170326
1400 Merge with NetBSD make, pick up
1401 o main.c: purge relative paths from realpath cache when .OBJDIR
1404 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
1406 * Makefile (_MAKE_VERSION): 20170311
1407 Merge with NetBSD make, pick up
1408 o main.c: only use -C arg "as is" if it starts with '/'.
1410 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
1412 * Makefile (_MAKE_VERSION): 20170301
1413 Merge with NetBSD make, pick up
1414 o main.c: use -C arg "as is" rather than getcwd()
1415 if they identify the same directory.
1416 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
1418 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
1420 * Makefile (_MAKE_VERSION): 20170201
1421 Merge with NetBSD make, pick up
1422 o var.c: allow :_=var and avoid use of special context.
1424 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
1426 * Makefile (_MAKE_VERSION): 20170130
1427 Merge with NetBSD make, pick up
1428 o var.c: add :range and :_
1429 o main.c: partially initialize Dir_* before MainParseArgs()
1431 If -V, skip Main_ExportMAKEFLAGS()
1433 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
1435 * Makefile (_MAKE_VERSION): 20170114
1436 Merge with NetBSD make, pick up
1437 o var.c: allow specifying the utc value used by :{gm,local}time
1439 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1441 * Makefile (_MAKE_VERSION): 20161212
1442 Merge with NetBSD make, pick up
1443 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
1445 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
1447 * Makefile (_MAKE_VERSION): 20161209
1448 Merge with NetBSD make, pick up
1449 o main.c: cleanup setting of .OBJDIR
1450 o parse.c: avoid coredump from (var)=val
1452 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1454 * Makefile (_MAKE_VERSION): 20161126
1455 Merge with NetBSD make, pick up
1456 o make.c: Make_OODate: report src node name if path not set
1458 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1460 * Makefile (_MAKE_VERSION): 20160926
1461 Merge with NetBSD make, pick up
1462 o support for .DELETE_ON_ERROR: (remove targets that fail)
1464 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
1466 * Makefile MAN: tweak .Dt to match ${PROG}
1468 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
1470 * Makefile (_MAKE_VERSION): 20160818
1471 its a neater number; pick up whitespace fixes to man page.
1473 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
1475 * Makefile (_MAKE_VERSION): 20160817
1476 Merge with NetBSD make, pick up
1477 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
1478 so we can call it before adding entries to missingFiles.
1479 Thus we do not track files we have been told to ignore.
1481 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
1483 * Makefile (_MAKE_VERSION): 20160815
1484 Merge with NetBSD make, pick up
1485 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
1486 pathnames, and skip if the expansion is empty.
1487 Useful for dirdeps.mk when checking DIRDEPS_CACHE.
1489 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
1491 * Makefile (_MAKE_VERSION): 20160812
1492 Merge with NetBSD make, pick up
1493 o meta.c: remove all missingFiles entries that match a deleted
1495 o main.c: set .ERROR_CMD if possible.
1497 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1499 * Makefile (_MAKE_VERSION): 20160606
1500 Merge with NetBSD make, pick up
1501 o dir.c: extend mtimes cache to others via cached_stat()
1503 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1505 * Makefile (_MAKE_VERSION): 20160604
1506 Merge with NetBSD make, pick up
1507 o meta.c: missing filemon data is only relevant if we read a
1509 Also do not return oodate for a missing metafile if gn->path
1512 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1514 * Makefile (_MAKE_VERSION): 20160602
1515 Merge with NetBSD make, pick up
1516 o cached_realpath(): avoid hitting filesystem more than necessary.
1517 o meta.c: refactor need_meta decision, add knobs for
1518 missing meta file and filemon data wrt out-of-datedness.
1520 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1522 * Makefile (_MAKE_VERSION): 20160528
1524 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
1526 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
1528 * Makefile (_MAKE_VERSION): 20160512
1529 Merge with NetBSD make, pick up
1530 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
1531 this is useful for gcov builds.
1532 o propagate errors from filemon(4).
1534 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
1536 * Makefile (_MAKE_VERSION): 20160509
1537 Merge with NetBSD make, pick up
1538 o remove use of non-standard types u_int etc.
1539 o meta.c: apply realpath() before matching against metaIgnorePaths
1541 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
1543 * Makefile (_MAKE_VERSION): 20160404
1544 Merge with NetBSD make, pick up
1545 o allow makefile to set .MAKE.JOBS
1547 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
1549 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
1551 * Makefile (_MAKE_VERSION): 20160315
1552 Merge with NetBSD make, pick up
1553 o fix handling of archive members
1555 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1557 * Makefile (_MAKE_VERSION): rename variable to avoid interference
1558 with checks for ${MAKE_VERSION}
1560 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
1562 * Makefile (MAKE_VERSION): 20160310
1563 Merge with NetBSD make, pick up
1564 o meta.c: treat missing Read file same as Write, incase we Delete it.
1566 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
1568 * Makefile (MAKE_VERSION): 20160307
1569 Merge with NetBSD make, pick up
1570 o var.c: fix :ts\nnn to be octal by default.
1571 o meta.c: meta_finish() to cleanup memory.
1573 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
1575 * Makefile (MAKE_VERSION): 20160226
1576 Merge with NetBSD make, pick up
1577 o meta.c: allow meta file for makeDepend if makefiles want it.
1579 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
1581 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
1582 for backwards compatability.
1584 * Makefile (MAKE_VERSION): 20160220
1585 Merge with NetBSD make, pick up
1586 o var.c: add knob to control handling of '$$' in :=
1588 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
1590 * Makefile (MAKE_VERSION): 20160218
1591 Merge with NetBSD make, pick up
1592 o var.c: add .export-literal allows us to fix sys.clean-env.mk
1593 post the changes to Var_Subst.
1594 Var_Subst now takes flags, and does not consume '$$' in :=
1596 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
1598 * Makefile (MAKE_VERSION): 20160217
1599 Merge with NetBSD make, pick up
1600 o var.c: preserve '$$' in :=
1601 o parse.c: add .dinclude for handling included
1602 makefile like .depend
1604 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
1606 * Makefile (MAKE_VERSION): 20151220
1607 Merge with NetBSD make, pick up
1608 o suff.c: re-initialize suffNull when clearing suffixes.
1610 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
1612 * Makefile (MAKE_VERSION): 20151201
1613 Merge with NetBSD make, pick up
1614 o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
1615 o meta.c: meta_oodate: use lstat(2) for checking link target
1616 in case it is a symlink.
1617 o var.c: avoid calling brk_string and Var_Export1 with empty
1620 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1622 * Makefile (MAKE_VERSION): 20151126
1623 Merge with NetBSD make, pick up
1624 o parse.c: ParseTrackInput don't access beyond
1627 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
1629 * Makefile (MAKE_VERSION): 20151022
1631 * Add support for BSD/OS which lacks inttypes.h
1632 and really needs sys/param.h for sys/sysctl.h
1633 also 'type' is not a shell builtin.
1635 * var.c: eliminate uint32_t and need for inttypes.h
1637 * main.c: PrintOnError flush stdout before run .ERROR
1639 * parse.c: cope with _SC_PAGESIZE not being defined.
1642 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
1644 * Makefile (MAKE_VERSION): 20151020
1645 Merge with NetBSD make, pick up
1646 o var.c: fix uninitialized var
1648 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
1650 * var.c: the conditional expressions used with ':?' can be
1651 expensive, if already discarding do not evaluate or expand
1654 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1656 * Makefile (MAKE_VERSION): 20151010
1657 Merge with NetBSD make, pick up
1658 o Add Boolean wantit flag to Var_Subst and Var_Parse
1659 when FALSE we know we are discarding the result and can
1660 skip operations like Cmd_Exec.
1662 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
1664 * Makefile (MAKE_VERSION): 20151009
1665 Merge with NetBSD make, pick up
1666 o var.c: don't check for NULL before free()
1667 o meta.c: meta_oodate, do not hard code ignore of makeDependfile
1669 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
1671 * Makefile (MAKE_VERSION): 20150910
1672 Merge with NetBSD make, pick up
1673 o main.c: with -w print Enter/Leaving messages for objdir too
1675 o centralize shell metachar handling
1677 * FILES: add metachar.[ch]
1679 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1681 * Makefile (MAKE_VERSION): 20150606
1682 Merge with NetBSD make, pick up
1683 o make.1: document .OBJDIR target
1685 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1687 * Makefile (MAKE_VERSION): 20150505
1688 Merge with NetBSD make, pick up
1689 o cond.c: be strict about lhs of comparison when evaluating .if
1690 but less so when called from variable expansion.
1691 o unit-tests/cond2.mk: test various error conditions
1693 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
1695 * machine.sh (MACHINE): Add Bitrig
1696 patch from joerg@netbsd.org
1698 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
1700 * Makefile (MAKE_VERSION): 20150418
1701 Merge with NetBSD make, pick up
1702 o job.c: use memmove() rather than memcpy()
1704 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
1707 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1709 * Makefile (MAKE_VERSION): 20150411
1710 bump version - only mk/ changes.
1712 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
1714 * Makefile (MAKE_VERSION): 20150410
1715 Merge with NetBSD make, pick up
1716 o document different handling of '-' in jobs mode vs compat
1717 o fix jobs mode so that '-' only applies to whole job
1718 when shell lacks hasErrCtl
1719 o meta.c: use separate vars to track lcwd and latestdir (read)
1722 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
1724 * Makefile (MAKE_VERSION): 20150401
1725 Merge with NetBSD make, pick up
1726 o meta.c: close meta file in child
1728 * Makefile: use BINDIR.bmake if set.
1729 Same for MANDIR and SHAREDIR
1730 Handy for testing release candidates
1731 in various environments.
1733 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
1735 * move initialization of savederr to block where it is used
1736 to avoid spurious warning from gcc5
1738 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1740 * Makefile (MAKE_VERSION): 20141111
1741 just a cooler number
1743 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
1745 * Makefile (MAKE_VERSION): 20141105
1746 Merge with NetBSD make, pick up
1747 o revert major overhaul of suffix handling
1748 and POSIX compliance - too much breakage
1749 and impossible to make backwards compatible.
1750 o we still have the new unit test structure which is ok.
1751 o meta.c ensure "-- filemon" is at start of line.
1753 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
1755 * configure.in: test that result of getconf PATH_MAX is numeric
1756 and discard if not. Apparently needed for Hurd.
1758 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
1760 * Makefile (MAKE_VERSION): 20140830
1761 Merge with NetBSD make, pick up
1762 o major overhaul of suffix handling
1763 o improved POSIX compliance
1764 o overhauled unit-tests
1766 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1768 * Makefile (MAKE_VERSION): 20140620
1769 Merge with NetBSD make, pick up
1770 o var.c return varNoError rather than var_Error for ::= modifiers.
1772 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
1774 * Makefile (MAKE_VERSION): 20140522
1775 Merge with NetBSD make, pick up
1776 o var.c detect some parse errors.
1778 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
1780 * Fix spelling errors - patch from Pedro Giffuni
1782 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
1784 * Makefile (MAKE_VERSION): 20140214
1785 Merge with NetBSD make, pick up
1787 o use Var_Value to get MAKEOBJDIR[PREFIX]
1788 o reduced realloc'ign in brk_string.
1789 * configure.in: add a check for compiler supporting __func__
1791 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
1793 * boot-strap: ignore mksrc=none
1795 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
1797 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
1799 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
1801 * Makefile (MAKE_VERSION): 20140101
1802 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
1803 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
1804 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
1806 * configure.in: Add AC_PREREQ and check for
1807 sysctl; patch from Andrew Shadura andrewsh at debian.org
1809 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
1811 * Makefile (MAKE_VERSION): 20131010
1812 * lose the const from arg to systcl to avoid problems on older BSDs.
1814 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1816 * Makefile (MAKE_VERSION): 20131001
1817 Merge with NetBSD make, pick up
1818 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
1819 hw.machine_arch if necessary.
1820 o meta.c: meta_oodate - need to look at src of Link and target
1822 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
1823 provide __arraycount() if needed.
1825 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
1827 * Makefile (MAKE_VERSION): 20130904
1828 Merge with NetBSD make, pick up
1829 o Add VAR_INTERNAL context, so that internal setting of
1830 MAKEFILE does not override value set by makefiles.
1832 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
1834 * Makefile (MAKE_VERSION): 20130902
1835 Merge with NetBSD make, pick up
1836 o CompatRunCommand: only apply shellErrFlag when errCheck is true
1838 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
1840 * Makefile (MAKE_VERSION): 20130828
1841 Merge with NetBSD make, pick up
1842 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
1843 o Call Job_SetPrefix() from Job_Init() so makefiles have
1844 opportunity to set .MAKE.JOB.PREFIX
1846 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
1848 * Makefile (MAKE_VERSION): 20130730
1849 Merge with NetBSD make, pick up
1850 o Allow suppression of --- job -- tokens by setting
1851 .MAKE.JOB.PREFIX empty.
1853 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
1855 * Makefile (MAKE_VERSION): 20130716
1856 Merge with NetBSD make, pick up
1857 o number of gmake compatibility tweaks
1858 -w for gmake style entering/leaving messages
1859 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
1860 handle MAKEFLAGS containing only letters.
1861 o when overriding a GLOBAL variable on the command line,
1862 delete it from GLOBAL context so -V doesn't show the wrong
1865 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
1867 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
1869 * Makefile (MAKE_VERSION): 20130706
1870 Merge with NetBSD make, pick up
1871 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
1872 true so that CompatRunCommand() can use it, to ensure
1873 consistent behavior with jobs mode.
1874 o use MAKE_LEVEL_ENV to define the variable to propagate
1875 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
1876 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
1879 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1881 * Makefile (MAKE_VERSION): 20130604
1882 Merge with NetBSD make, pick up
1883 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
1884 to avoid leaking descriptors.
1886 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
1888 * Makefile (MAKE_VERSION): 20130528
1889 Merge with NetBSD make, pick up
1890 o var.c: cleanup some left-overs in VarHash()
1892 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
1894 * Makefile (MAKE_VERSION): 20130520
1895 generate manifest from component FILES rather than have to
1896 update FILES when mk/FILES changes.
1898 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
1900 * Makefile (MAKE_VERSION): 20130518
1901 Merge with NetBSD make, pick up
1902 o suff.c: don't skip all processsing for .PHONY targets
1903 else wildcard srcs do not get expanded.
1904 o var.c: expand name of variable to delete if necessary.
1906 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1908 * Makefile (MAKE_VERSION): 20130330
1909 Merge with NetBSD make, pick up
1910 o meta.c: refine the handling of .OODATE in commands.
1911 Rather than suppress command comparison for the entire script
1912 as though .NOMETA_CMP had been used, only suppress it for the
1914 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
1915 suppress comparison of a command without otherwise affecting it.
1916 o make.1: document that
1918 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
1920 * Makefile (MAKE_VERSION): 20130321
1921 yes, not quite right but its a cooler number.
1922 Merge with NetBSD make, pick up
1923 o parse.c: fix ParseGmakeExport to be portable
1924 and add a unit-test.
1925 * meta.c: call meta_init() before makefiles are read and if built
1926 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
1927 this let's makefiles test for support.
1928 Call meta_mode_init() to process .MAKE.MODE.
1930 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
1932 * Makefile (MAKE_VERSION): 20130305
1933 Merge with NetBSD make, pick up
1934 o run .STALE: target when a dependency from .depend is missing.
1935 o job.c: add Job_RunTarget() for the above and .BEGIN
1937 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
1939 * Makefile (MAKE_VERSION): 20130303
1940 Merge with NetBSD make, pick up
1941 o main.c: set .MAKE.OS to utsname.sysname
1942 o job.c: more checks for read and poll errors
1943 o var.c: lose VarChangeCase() saves 4% time
1945 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
1947 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
1948 want to use MAKEOBJDIR
1950 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
1952 * Merge with NetBSD make, pick up
1953 o make.1: more info on how shell commands are handled.
1954 o job.c,main.c: detect write errors to job pipes.
1956 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
1958 * Makefile (MAKE_VERSION): 20130123
1959 Merge with NetBSD make, pick up
1960 o meta.c: if script uses .OODATE and meta_oodate() decides
1961 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
1962 o var.c: in debug output indicate which variabale modifiers
1964 o remove Check_Cwd logic the makefiles have been fixed.
1966 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
1968 * makefile.in: add a simple makefile for folk who insist on
1969 ./configure; make; make install
1970 it just runs boot-strap
1971 * include mk/* to accommodate the above
1972 * boot-strap: re-work to accommodate the above
1973 mksrc defaults to $Mydir/mk
1974 allow op={configure,build,install,clean,all}
1975 add options to facilitate install
1976 * Makefile.config.in: just the bits set by configure
1977 * Makefile: bump version to 20121212
1978 abandon Makefile.in (NetBSD Makefile)
1979 leverage mk/* instead
1980 * configure.in: ensure srcdir is absolute
1982 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
1984 * Makefile.in (MAKE_VERSION): 20121111
1985 fix generation of bmake.cat1
1987 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
1989 * Makefile.in (MAKE_VERSION): 20121109
1990 Merge with NetBSD make, pick up
1991 o make.c: MakeBuildChild: return 0 so search continues if a
1992 .ORDER dependency is detected.
1993 o unit-tests/order: test the above
1995 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
1997 * Makefile.in (MAKE_VERSION): 20121102
1998 Merge with NetBSD make, pick up
1999 o cond.c: allow cond_state[] to grow.
2000 In meta mode with a very large tree, we can hit the limit
2001 while processing dirdeps.
2003 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
2005 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
2007 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2009 * Makefile.in (MAKE_VERSION): 20121010
2010 o protect syntax that only bmake parses correctly.
2011 o remove auto setting of FORCE_MACHINE, use configure's
2012 --with-force-machine=whatever if that is desired.
2014 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
2016 * Makefile.in: do not lose history from make.1 when generating bmake.1
2018 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
2020 * Makefile.in (MAKE_VERSION): 20121007
2021 Merge with NetBSD make, pick up
2022 o compat.c: ignore empty commands - same as jobs mode.
2023 o make.1: document meta chars that cause use of shell
2025 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
2027 * Makefile.in (MAKE_VERSION): bump version to 20120911
2028 * bsd.after-import.mk: include Makefile.inc early and allow it to
2031 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
2033 * Makefile.in (MAKE_VERSION): bump version to 20120831
2034 Merge with NetBSD make, pick up
2035 o cast sizeof() to int for comparison
2036 o minor make.1 tweak
2038 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
2040 * Makefile.in (MAKE_VERSION): bump version to 20120830
2041 Merge with NetBSD make, pick up
2042 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
2043 o debug flag -dV causes -V to show raw value regardless.
2045 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
2047 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
2050 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
2052 * Makefile.in (MAKE_VERSION): bump version to 20120704
2053 Merge with NetBSD make, pick up
2054 o Job_ParseShell should call Shell_Init if it has been
2056 * Makefile.in: set USE_META based on configure result.
2057 also .PARSEDIR is safer indicator of bmake.
2059 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
2061 * Makefile.in: bump version to 20120626
2062 ensure CPPFLAGS is in CFLAGS
2063 * meta.c: avoid nested externs
2064 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
2066 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
2068 * Makefile.in (MAKE_VERSION): bump version to 20120620
2069 Merge with NetBSD make, pick up
2070 o make_malloc.c: avoid including make_malloc.h again
2072 * Makefile.in: avoid bmake only syntax or protect with
2073 .if defined(.MAKE.LEVEL)
2074 * bsd.after-import.mk: replace .-include with .sinclude
2075 ensure? SRCTOP gets a value
2076 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
2078 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
2080 * Makefile.in (MAKE_VERSION): bump version to 20120612
2081 Merge with NetBSD make, pick up
2082 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
2083 for greater portability.
2084 o unit-tests/forloop: check that .for works as expected wrt
2085 number of times and with "quoted strings".
2087 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2089 * Makefile.in (MAKE_VERSION): bump version to 20120606
2090 Merge with NetBSD make, pick up
2091 o compat.c: use kill(2) rather than raise(3).
2092 * configure.in: look for sys/dev/filemon
2093 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
2094 and pass BOOTSTRAP_XTRAS to boot-strap.
2096 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2098 * Makefile.in (MAKE_VERSION): bump version to 20120604
2099 Merge with NetBSD make, pick up
2100 o util.c and var.c share same var for tracking if environ
2101 has been reallocated.
2102 o util.c provide getenv with setenv.
2103 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
2104 when the shell actively strips .MAKE.* from the environment.
2105 We still refer to the variable always as .MAKE.LEVEL
2106 * util.c fix bug in findenv() was finding prefix of name.
2107 * compat.c: re-raising SIGINT etc after running .INTERRUPT
2108 results in more reliable termination of all activity on many
2111 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
2113 * Makefile.in (MAKE_VERSION): bump version to 20120602
2114 Merge with NetBSD make, pick up
2115 o for.c: handle quoted items in .for list
2117 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
2119 * Makefile.in (MAKE_VERSION): bump version to 20120530
2120 Merge with NetBSD make, pick up
2121 o compat.c: ignore empty command.
2123 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2125 * Makefile.in (MAKE_VERSION): bump version to 20120524
2126 * FILES: add bsd.after-import.mk:
2127 A simple means of integrating bmake into a BSD build system.
2129 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
2131 * Makefile.in (MAKE_VERSION): bump version to 20120520
2132 Merge with NetBSD make, pick up
2133 o increased limit for nested conditionals.
2135 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
2137 * Makefile.in (MAKE_VERSION): bump version to 20120518
2138 Merge with NetBSD make, pick up
2139 o use _exit(2) in signal hanlder
2140 o Don't use the [dir] cache when building nodes that might have
2141 changed since the last exec.
2142 o Avoid nested extern declaration warnings.
2144 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
2146 * meta.c (fgetLine): avoid %z - not portable.
2147 * parse.c: Since we moved include of sys/mman.h
2148 and def's of MAP_COPY etc. we got dups from a merge.
2150 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
2152 * Makefile.in (MAKE_VERSION): bump version to 20120420
2153 Merge with NetBSD make, pick up
2154 o restore duplicate supression in .MAKE.MAKEFILES
2155 runtime saving can be significant.
2156 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
2157 consumption up to 20%.
2159 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2161 * Makefile.in (MAKE_VERSION): bump version to 20120420
2162 Merge with NetBSD make, pick up
2163 o remove duplicate supression in .MAKE.MAKEFILES
2164 o improved dir cache behavior
2165 o gmake'ish export command
2167 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
2169 * Makefile.in (MAKE_VERSION): bump version to 20120325
2170 Merge with NetBSD make, pick up
2171 o fix parsing of :[#] in conditionals.
2173 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
2175 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
2176 since some systems cannot cope with .Nx <version>
2178 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
2180 * Makefile.in (MAKE_VERSION): bump version to 20111111
2181 Merge with NetBSD make, pick up
2182 o debug output for .PARSEDIR and .PARSEFILE
2184 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
2186 * Makefile.in (MAKE_VERSION): bump version to 20111010
2188 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
2190 * boot-strap: check for an expected file in the dirs we look for.
2191 * make-bootstrap.sh: pass on LDSTATIC
2193 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
2195 * Makefile.in (MAKE_VERSION): bump version to 20111001
2196 Merge with NetBSD make, pick up
2197 o ensure .PREFIX is set for .PHONY
2198 and .TARGET set for .PHONY run via .END
2199 o __dead used consistently
2201 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
2203 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
2205 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
2207 * Makefile.in (MAKE_VERSION): bump version to 20110905
2208 Merge with NetBSD make, pick up
2209 o meta_oodate: ignore makeDependfile
2211 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
2213 * Makefile.in (MAKE_VERSION): bump version to 20110828
2214 Merge with NetBSD make, pick up
2215 o silent=yes in .MAKE.MODE causes meta mode to mark targets
2216 as SILENT if a .meta file is created
2218 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
2220 * Makefile.in (MAKE_VERSION): bump version to 20110818
2221 Merge with NetBSD make, pick up
2222 o in meta mode, if target flagged .META a missing .meta file
2223 means target is out-of-date
2224 o fixes for gcc 4.5 warnings
2225 o simplify job printing code
2227 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
2229 * Makefile.in (MAKE_VERSION): bump version to 20110808
2230 Merge with NetBSD make, pick up
2231 o do not touch OP_SPECIAL targets when doing make -t
2233 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
2235 * Makefile.in (MAKE_VERSION): bump version to 20110622
2236 Merge with NetBSD make, pick up
2237 o meta_oodate detect corrupted .meta file and declare oodate.
2238 * configure.in: add check for setsid
2240 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
2242 * Merge with NetBSD make, pick up
2243 o unit-tests/modts now works on MirBSD
2245 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
2247 * Makefile.in (MAKE_VERSION): bump version to 20110606
2248 Merge with NetBSD make, pick up
2249 o ApplyModifiers: when we parse a variable which is not
2250 the entire modifier string, or not followed by ':', do not
2251 consider it as containing modifiers.
2252 o loadfile: ensure newline at end of mapped file.
2254 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2256 * Makefile.in (MAKE_VERSION): bump version to 20110505
2257 Merge with NetBSD make, pick up
2258 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
2259 of make's control. In meta mode, any generated file within
2260 said bailiwick, which is found to be missing, causes current
2261 target to be out-of-date.
2263 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
2265 * Makefile.in (MAKE_VERSION): bump version to 20110411
2266 Merge with NetBSD make, pick up
2267 o when long modifiers fail to match, check sysV style.
2270 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
2272 * Makefile.in (MAKE_VERSION): bump version to 20110410
2273 Merge with NetBSD make, pick up
2274 o :hash - cheap 32bit hash of value
2275 o :localtime, :gmtime - use value as format string for strftime.
2277 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
2279 * Makefile.in (MAKE_VERSION): bump version to 20110330
2280 mostly because its a cooler version.
2281 Merge with NetBSD make, pick up
2282 o NetBSD tags for meta.[ch]
2283 o job.c call meta_job_finish() after meta_job_error().
2284 o meta_job_error() should call meta_job_finish() to ensure
2285 .meta file is closed, and safe to copy - if .ERROR target wants.
2286 meta_job_finish() is safe to call repeatedly.
2288 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
2290 * unit-tests/modts: use printf if it is a builtin,
2291 to save us from MirBSD
2293 * Makefile.in (MAKE_VERSION): bump version to 20110329
2294 Merge with NetBSD make, pick up
2295 o fix for use after free() in CondDoExists().
2296 o meta_oodate() report extra commands and return earlier.
2298 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
2300 * Makefile.in (MAKE_VERSION): bump version to 20110327
2301 Merge with NetBSD make, pick up
2302 o meta.c, if .MAKE.MODE contains curdirOk=yes
2303 allow creating .meta files in .CURDIR
2304 * boot-strap (TOOL_DIFF): aparently at least on linux distro
2305 formats the output of 'type' differently - so eat any "()"
2307 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
2309 * Makefile.in (MAKE_VERSION): bump version to 20110306
2310 Merge with NetBSD make, pick up
2311 o meta.c, only do getcwd() once
2313 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
2315 * Makefile.in (MAKE_VERSION): bump version to 20110305
2316 Merge with NetBSD make, pick up
2317 o correct sysV substitution handling of empty lhs and variable
2318 o correct exists() check for dir with trailing /
2319 o correct handling of modifiers for non-existant variables
2320 during evaluation of conditionals.
2321 o ensure MAP_FILE is defined.
2322 o meta.c use curdir[] now exported by main.c
2324 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
2326 * Makefile.in (MAKE_VERSION): bump version to 20110225
2327 Merge with NetBSD make, pick up
2328 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
2329 makefiles have been read.
2330 o fix example of :? modifier in man page.
2332 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
2334 * Makefile.in (MAKE_VERSION): bump version to 20110214
2335 Merge with NetBSD make, pick up
2336 o meta.c handle realpath() failing when generating meta file
2339 * sigcompat.c: convert to ansi so we can use higher warning levels.
2342 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
2344 * Makefile.in (MAKE_VERSION): bump version to 20110207
2345 Merge with NetBSD make, pick up
2346 o fix for bug in meta mode.
2348 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
2350 * parse.c: SunOS 5.8 at least does not have MAP_FILE
2352 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
2354 * Makefile.in (MAKE_VERSION): bump version to 20110101
2355 Merge with NetBSD make, pick up
2356 o use mmap(2) if available, for reading makefiles
2358 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
2360 * Makefile.in (MAKE_VERSION): bump version to 20101215
2361 Merge with NetBSD make, pick up
2362 o ensure meta_job_error() does not report a previous .meta file
2365 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
2367 * Makefile.in (MAKE_VERSION): bump version to 20101210
2368 Merge with NetBSD make, pick up
2369 o meta_oodate: track cwd per process, and only consider target
2370 out-of-date if missing file is outside make's CWD.
2371 Ignore files in /tmp/ etc.
2372 o to ensure unit-tests results match, need to control LC_ALL
2374 o fix for parsing bug in var.c
2376 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
2378 * Makefile.in (MAKE_VERSION): bump version to 20101126
2379 Merge with NetBSD make, pick up
2380 o if stale dependency is an IMPSRC, search via .PATH
2381 o meta_oodate: if a referenced file is missing, target is
2383 o meta_oodate: if a target uses .OODATE in its commands,
2384 it (.OODATE) needs to be recomputed.
2385 o keep a pointer to youngest child node, rather than just its
2388 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
2390 * Makefile.in (MAKE_VERSION): bump version to 20101101
2392 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
2394 * machine.sh: like os.sh,
2395 allow for uname -p producing useless drivel
2397 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
2399 * boot-strap: document configure knobs for meta and filemon.
2401 * Makefile.in (MAKE_VERSION): bump version to 20100911
2402 Merge with NetBSD make, pick up
2403 o meta.c - meta mode
2405 * make-bootstrap.sh.in: handle meta.c
2406 * configure.in: add knobs for use_meta and filemon_h
2407 also, look for dirname, str[e]sep and strlcpy
2408 * util.c: add simple err[x] and warn[x]
2410 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
2412 * boot-strap (TOOL_DIFF): set this to ensure tests use
2413 the same version of diff that configure tested
2415 * Makefile.in (MAKE_VERSION): bump version to 20100808
2416 Merge with NetBSD make, pick up
2417 o in jobs mode, when we discover we cannot make something,
2418 call PrintOnError before exit.
2420 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
2422 * Makefile.in (MAKE_VERSION): bump version to 20100806
2423 Merge with NetBSD make, pick up
2424 o formatting fixes for ignored errors
2425 o ensure jobs are cleaned up regardless of where wait() was called.
2427 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
2429 * Makefile.in (MAKE_VERSION): bump version to 20100618
2430 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
2432 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
2434 * Makefile.in (MAKE_VERSION): bump version to 20100616
2435 Merge with NetBSD make, pick up
2437 o call PrintOnError from JobFinish when we detect an error we
2440 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
2442 * Makefile.in (MAKE_VERSION): bump version to 20100606
2443 Merge with NetBSD make, pick up
2446 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
2448 * Makefile.in (MAKE_VERSION): bump version to 20100605
2449 Merge with NetBSD make, pick up
2450 o use bmake_signal() which is a wrapper around sigaction()
2451 in place of signal()
2452 o add .export-env to allow exporting variables to environment
2453 without tracking (so no re-export when the internal value is
2456 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
2458 * Makefile.in (MAKE_VERSION): bump version to 20100524
2459 Merge with NetBSD make, pick up
2460 o fix for .info et al being greedy.
2462 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
2464 * Makefile.in (MAKE_VERSION): bump version to 20100520
2465 Merge with NetBSD make, pick up
2466 o back to using realpath on argv[0]
2467 but only if contains '/' and does not start with '/'.
2469 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
2471 * boot-strap: use absolute path for bmake when running tests.
2473 * Makefile.in (MAKE_VERSION): bump version to 20100510
2474 Merge with NetBSD make, pick up
2475 o revert use of realpath on argv[0]
2476 too many corner cases.
2477 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
2479 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
2481 * Makefile.in (MAKE_VERSION): bump version to 20100505
2482 Merge with NetBSD make, pick up
2483 o fix for missed SIGCHLD when compiled with SunPRO
2484 actually for bmake, defining FORCE_POSIX_SIGNALS would have
2487 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
2489 * Makefile.in (MAKE_VERSION): bump version to 20100430
2490 Merge with NetBSD make, pick up
2491 o fflush stdout before writing to stdout
2493 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
2495 * Makefile.in (MAKE_VERSION): bump version to 20100423
2496 Merge with NetBSD make, pick up
2497 o updated unit tests for Haiku (this time for sure).
2498 * boot-strap: based on patch from joerg
2499 honor --with-default-sys-path better.
2500 * boot-strap: remove mention of --with-prefix-sys-path
2502 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
2504 * Makefile.in (MAKE_VERSION): bump version to 20100422
2505 * Merge with NetBSD make, pick up
2506 o fix for vfork() on Darwin.
2507 o fix for bogus $TMPDIR.
2508 o set .MAKE.MODE=compat for -B
2509 o set .MAKE.JOBS=max_jobs for -j max_jobs
2510 o allow unit-tests to run without any *.mk
2511 o unit-tests/modmisc be more conservative in dirs presumed to exist.
2512 * boot-strap: ignore /usr/share/mk except on NetBSD.
2513 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
2514 ensure sort(1) behaves as expected.
2516 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
2518 * boot-strap: add FindHereOrAbove so we can use -m .../mk
2520 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
2522 * Makefile.in (MAKE_VERSION): bump version to 20100420
2523 * Merge with NetBSD make, pick up
2524 o fix for variable realpath() behavior.
2525 we have to stat(2) the result to be sure.
2526 o fix for .export (all) when nested vars use :sh
2528 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
2530 * Makefile.in (MAKE_VERSION): bump version to 20100414
2531 * Merge with NetBSD make, pick up
2532 o use realpath to resolve argv[0] (for .MAKE) if needed.
2533 o add realpath from libc.
2534 o add :tA to resolve variable via realpath(3) if possible.
2536 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
2538 * Makefile.in (MAKE_VERSION): bump version to 20100408
2539 * Merge with NetBSD make, pick up
2540 o unit tests for .ERROR, .error
2541 o fix for .ERROR to ensure it cannot be default target.
2543 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
2545 * Makefile.in (MAKE_VERSION): bump version to 20100406
2546 * Merge with NetBSD make, pick up
2547 o fix for compat mode "Error code" going to debug_file.
2548 o fix for .ALLSRC being populated twice.
2549 o support for .info, .warning and .error directives
2550 o .MAKE.MODE to control make's operational mode
2551 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
2553 o .MAKE.DEPENDFILE to control the name of the depend file
2554 o .ERROR target - run on failure.
2556 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
2558 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
2560 * os.sh,arch.c: patch for Haiku from joerg at netbsd
2562 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
2564 * Makefile.in (MAKE_VERSION): bump version to 20100222
2565 * Merge with NetBSD make, pick up
2566 o better error msg for .for with mutiple inter vars
2569 o use make-bootstrap.sh from joerg at netbsd
2570 to avoid the need for a native make when bootstrapping.
2571 o add "" everywhere ;-)
2572 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
2573 otherwise the pre-formated version.
2575 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
2577 * Makefile.in (MAKE_VERSION): bump version to 20100102
2578 * Merge with NetBSD make, pick up:
2581 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
2583 * Makefile.in (MAKE_VERSION): bump version to 20091118
2584 * Merge with NetBSD make, pick up:
2586 o report lines that start with '.' and should have ':'
2587 (catch typo's of .el*if).
2589 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2591 * configure.in: Ensure that srcdir and mksrc are absolute paths.
2593 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2595 * Makefile.in (MAKE_VERSION): fix version to 20091007
2597 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
2599 * Makefile.in (MAKE_VERSION): bump version to 200910007
2600 * Merge with NetBSD make, pick up:
2601 o fix for parsing of :S;...;...; applied to .for loop iterator
2602 appearing in a dependency line.
2604 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
2606 * Makefile.in (MAKE_VERSION): bump version to 20090909
2607 * Merge with NetBSD make, pick up:
2608 o fix for -C, .CURDIR and .OBJDIR
2610 o allow share_dir to be set independent of prefix.
2611 o select default share_dir better when prefix ends in $HOST_TARGET
2612 o if FORCE_BSD_MK etc were set, include them in the suggested
2615 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
2617 * Makefile.in (MAKE_VERSION): bump version to 20090908
2618 * Merge with NetBSD make, pick up:
2619 o .MAKE.LEVEL for recursion tracking
2620 o fix for :M scanning \:
2622 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2624 * configure.in: Don't -D__EXTENSIONS__ if
2625 AC_USE_SYSTEM_EXTENSIONS says "no".
2627 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
2629 * Makefile.in (MAKE_VERSION): bump version to 20090826
2630 Simplify MAKE_VERSION to just the bare date.
2631 * Merge with NetBSD make, pick up:
2632 o -C directory support.
2633 o support for SIGINFO
2634 o use $TMPDIR for temp files.
2635 o child of vfork should be careful about modifying parent's state.
2638 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
2640 * Appy some patches for MiNT from David Brownlee
2642 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
2644 * Makefile.in (BMAKE_VERSION): bump version to 20090222
2645 * Merge with NetBSD make, pick up:
2646 o Possible null pointer de-ref in Var_Set.
2648 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
2650 * Makefile.in (BMAKE_VERSION): bump version to 20090204
2651 * Merge with NetBSD make, pick up:
2652 o bmake_malloc et al moved to their own .c
2653 o Count both () and {} when looking for the end of a :M pattern
2654 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
2655 o strlist.c - functions for processing extendable arrays of pointers to strings.
2656 o ClientData replaced with void *, so const void * can be used.
2657 o New debug flag C for DEBUG_CWD
2659 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
2661 * Makefile.in (BMAKE_VERSION): bump version to 20081111
2662 Apply patch from Joerg Sonnenberge to
2664 o remove some redundant checks
2665 o check for emlloc etc only in libutil and require the whole family.
2667 o remove [v]asprintf which is no longer used.
2669 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2671 * Makefile.in (BMAKE_VERSION): bump version to 20081101
2672 * Merge with NetBSD make, pick up:
2673 o util.c: avoid use of putenv() - christos
2675 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
2677 * Makefile.in (BMAKE_VERSION): bump version to 20081030
2678 pick up man page tweaks.
2680 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
2682 * Makefile.in: move processing of LIBOBJS to after is definition!
2683 thus we'll have getenv.c in SRCS only if needed.
2685 * make.1: add examples of how to use :?
2687 * Makefile.in (BMAKE_VERSION): bump version to 20081029
2688 * Merge with NetBSD make, pick up:
2689 o fix for .END processing with -j
2690 o segfault from Parse_Error when no makefile is open
2691 o handle numeric expressions in any variable expansion
2692 o debug output now defaults to stderr, -dF to change it - apb
2693 o make now uses bmake_malloc etc so that it can build natively
2694 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
2696 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
2698 * Makefile.in (BMAKE_VERSION): bump version to 20080808
2699 * Merge with NetBSD make, pick up:
2700 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
2701 long lines in Makefiles
2702 o optimizations for VarQuote by joerg
2703 o fix for PR/38756: dominik: make dumps core on invalid makefile
2705 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
2707 * Makefile.in (BMAKE_VERSION): bump version to 20080515
2708 * Merge with NetBSD make, pick up:
2709 o fix skip setting vars in VAR_GLOBAL context, to handle
2710 cases where VAR_CMD is used for other than command line vars.
2712 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
2714 * boot-strap (make_version): we may need to look in
2715 $prefix/share/mk for sys.mk
2717 * Makefile.in (BMAKE_VERSION): bump version to 20080514
2718 * Merge with NetBSD make, pick up:
2719 o skip setting vars in VAR_GLOBAL context, when already set in
2720 VAR_CMD which takes precedence.
2722 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
2724 * Makefile.in (BMAKE_VERSION): bump version to 20080330
2725 * Merge with NetBSD make, pick up:
2726 o fix for ?= when LHS contains variable reference.
2728 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2730 * merge some patches from NetBSD pkgsrc.
2732 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
2733 the MAKSYSPATH used during bootstrap.
2735 * Makefile.in (BMAKE_VERSION): bump version to 20080215
2736 * Merge with NetBSD make, pick up:
2737 o warn if non-space chars follow 'empty' in a conditional.
2739 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2741 * Makefile.in (BMAKE_VERSION): bump version to 20080118
2742 * Merge with NetBSD make, pick up:
2743 o consider dependencies read from .depend as optional - dsl
2744 o remember when buffer for reading makefile grows - dsl
2745 o add -dl (aka LOUD) - David O'Brien
2747 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
2749 * Makefile.in (BMAKE_VERSION): bump version to 20071022
2750 * Merge with NetBSD make, pick up:
2751 o Allow .PATH<suffix> to be used for .include ""
2753 * boot-strap: source default settings from .bmake-boot-strap.rc
2755 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
2757 * Makefile.in: fix maninstall on various systems
2758 provided that our man.mk is used.
2759 For non-BSD systems we install the preformatted page
2762 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
2764 * boot-strap: make bmake.1 too, so maninstall works.
2766 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
2768 * Makefile.in (BMAKE_VERSION): bump version to 20071014
2769 * Merge with NetBSD make, pick up:
2770 o revamped handling of defshell - configure no longer needs to
2771 know the content of the shells array - apb
2772 o stop Var_Subst modifying its input - apb
2773 o avoid calling ParseTrackInput too often - dsl
2775 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
2777 * Makefile.in (BMAKE_VERSION): bump version to 20071011
2778 * Merge with NetBSD make, pick up:
2779 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
2781 * sigcompat.c: some tweaks for HP-UX 11.x based on
2782 patch from Tobias Nygren
2784 * configure.in: update handling of --with-defshell to match
2785 new make behavior. --with-defshell=/usr/xpg4/bin/sh
2786 will now do what one might hope - provided the chosen shell
2787 behaves enough like sh.
2789 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
2791 * Makefile.in (BMAKE_VERSION): bump to 20071008
2792 * Merge with NetBSD make, pick up:
2793 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
2794 o .export/.MAKE.EXPORTED - export of variables - sjg
2795 o .MAKE.MAKEFILES - track all makefiles read - sjg
2796 o performance improvements - dsl
2797 o revamp parallel job scheduling - dsl
2799 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2801 * Makefile.in (BMAKE_VERSION): bump to 20060728
2802 * Merge with NetBSD make, pick up:
2803 o extra debug info during variable and cond processing - sjg
2804 o shell definition now covers newline - rillig
2805 o minor mem leak in PrintOnError - sjg
2807 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2809 * Makefile.in (BMAKE_VERSION): bump to 20060511
2810 * Merge with NetBSD make, pick up:
2811 o more memory leaks - coverity
2812 o possible overflow in ArchFindMember - coverity
2813 o extract variable modifier code out of Var_Parse()
2814 so it can be called recursively - sjg
2815 o unit-tests/moderrs - sjg
2817 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
2819 * Makefile.in (BMAKE_VERSION): bump to 20060412
2820 * Merge with NetBSD make, pick up:
2821 o fixes for some memory leaks - coverity
2822 o only read first sys.mk etc when searching sysIncPath - sjg
2824 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
2825 setting ${MAKEFILE} - OBATA Akio
2827 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
2829 * Makefile.in (BMAKE_VERSION): bump to 20060318
2830 * Merge with NetBSD make, pick up:
2831 o cleanup of job.c to remove remote handling, distcc is more
2832 useful and this code was likely bit-rotting - dsl
2833 o fix for :P modifier - sjg
2834 * boot-strap: set default prefix to something reasonable
2837 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
2839 * Makefile.in (BMAKE_VERSION): bump to 20060301
2840 * Merge with NetBSD make, pick up:
2841 o make .WAIT apply recursively, document and test case - apb
2842 o allow variable modifiers in a variable appear anywhere in
2843 modifier list, document and test case - sjg
2845 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
2847 * Makefile.in (BMAKE_VERSION): bump to 20060222
2848 * Merge with NetBSD make, pick up:
2849 o improved job token handling - dsl
2850 o SIG_DFL the correct signal before exec - dsl
2851 o more debug info during parsing - dsl
2852 o allow variable modifiers to be specified via variable - sjg
2853 * boot-strap: explain why we died if no mksrc
2855 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
2857 * Makefile.in (BMAKE_VERSION): bump to 20051105
2858 * configure.in: always set default_sys_path
2859 default is ${prefix}/share/mk
2860 - remove prefix_sys_path, anyone wanting more than above
2861 needs to set it manually.
2863 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
2865 * boot-strap: make this a bit easier for pkgsrc folk.
2866 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
2867 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2869 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
2871 * Makefile.in (BMAKE_VERSION): bump to 20051102
2872 * job.c (JobFinish): fix likely ancient merge lossage
2873 fix from Todd Vierling.
2874 * boot-strap (srcdir): allow setting mksrc=none
2876 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
2878 * Makefile.in (BMAKE_VERSION): bump to 20051031
2879 * ranlib.h: skip on OSF too.
2882 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
2884 * Makefile.in (BMAKE_VERSION): bump to 20051002
2887 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
2889 * Makefile.in (BMAKE_VERSION): bump to 20051001
2890 support for UnixWare and some other systems,
2891 based on patches from pkgsrc/bootstrap
2893 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
2895 * Makefile.in (BMAKE_VERSION): bump to 20050901
2896 * Merge with NetBSD make, pick up:
2897 o possible parse error causing us to wander off.
2899 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
2901 * Makefile.in (BMAKE_VERSION): bump to 20050606
2902 * Merge with NetBSD make, pick up:
2903 o :0x modifier for randomizing a list
2904 o fixes for a number of -Wuninitialized issues.
2906 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
2908 * Makefile.in (BMAKE_VERSION): bump to 20050530
2909 * Merge with NetBSD make, pick up:
2910 o Handle dependencies for .BEGIN, .END and .INTERRUPT
2912 * README: was seriously out of date.
2914 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
2916 * Important to use .MAKE rather than MAKE.
2918 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
2920 * Makefile.in (BMAKE_VERSION): bump to 20050315
2921 * Merge with NetBSD make, pick up:
2922 o don't mistake .elsefoo for .else
2923 o use suffix-specific search path correctly
2924 o bunch of style nits
2926 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
2929 o ensure that args to --src and --with-mksrc
2930 are resolved before giving them to configure.
2931 o add -o "objdir" so that builder can control it,
2932 default is $OS as determined by os.sh
2933 o add -q to suppress all the install instructions.
2935 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
2937 * Remove __IDSTRING()
2939 * Makefile.in (BMAKE_VERSION): bump to 20040508
2940 * Merge with NetBSD make, pick up:
2942 - remove '-e' from compat mode
2943 - add support for '+' command-line prefix.
2944 o fix for handling '--' on command-line.
2945 o fix include in lst.lib/lstInt.h to simplify '-I's
2946 o we also picked up replacement of MAKE_BOOTSTRAP
2947 with !MAKE_NATIVE which is a noop, but possibly confusing.
2949 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
2951 * Makefile.in (BMAKE_VERSION): bump to 20040414
2952 * Merge with NetBSD make, pick up:
2953 o allow quoted strings on lhs of conditionals
2954 o issue warning when extra .else is seen
2955 o print line numer when errors encountered during parsing from
2958 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
2960 * Makefile.in (BMAKE_VERSION): bump to 20040220
2961 * Merge with NetBSD make, pick up:
2962 o fix for old :M parsing bug.
2963 o re-jigged unit-tests
2965 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
2967 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
2968 so that './bmake -f Makefile test' works.
2970 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
2972 * Makefile.in: (BMAKE_VERSION): bump to 20040214
2973 * Merge with NetBSD make, pick up:
2974 o search upwards for *.mk
2975 o fix for double free of var substitution buffers
2976 o use of getopt replaced with custom code, since the usage
2977 (re-scanning) isn't posix compatible.
2979 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
2981 * arch.c: don't include ranlib.h on ELF systems
2982 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
2984 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
2986 * Makefile.in (BMAKE_VERSION): bump to 20040118
2988 * boot-strap (while): export vars we assign to on cmdline
2989 * unit-test/Makefile.in: ternary is .PHONY
2991 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
2993 * Makefile.in (BMAKE_VERSION): bump version to 20040108
2994 * Merge with NetBSD make, pick up:
2995 o fix for ternary modifier
2997 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
2999 * Makefile.in (BMAKE_VERSION): bump version to 20040105
3000 * Merge with NetBSD make, pick up:
3001 o fix for cond.c to handle compound expressions better
3002 o variable expansion within sysV style replacements
3004 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
3006 * Make portable snprintf safer - output to /dev/null first to
3009 * Makefile.in (BMAKE_VERSION): bump version to 20031222
3010 * Merge with NetBSD make, pick up:
3011 o -dg3 to show input graph when things go wrong.
3012 o explicitly look for makefiles in objdir if not found in curdir so
3013 that errors in .depend etc will be reported accurarely.
3014 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
3015 instead as it more accurately reflects the expected behavior and
3016 is more consistently implemented.
3017 o avoid use of asprintf.
3019 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
3021 * util.c: Add asprintf and vasprintf.
3023 * Makefile.in (BMAKE_VERSION): bump version to 20030928
3024 * Merge with NetBSD make, pick up:
3025 :[] modifier - allows picking words from a variable.
3026 :tW modifier - allows treating value as one big word.
3027 W flag for :C and :S - allows treating value as one big word.
3029 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
3031 * Merge with NetBSD make
3032 pick up -de flag to enable printing failed command.
3033 don't skip 1st two dir entries (normally . and ..) since
3034 coda does not have them.
3036 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
3038 * Makefile.in (BMAKE_VERSION): bump version to 20030909
3039 * Merge with NetBSD make, pick up:
3040 - changes for -V '${VAR}' to print fully expanded value
3042 - CompatRunCommand now prints the command that failed.
3043 - several files got updated 3 clause Berkeley license.
3045 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
3047 * boot-strap: Allow setting configure args on command line.
3049 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
3051 * configure.in: add --with-defshell to allow sh or ksh
3052 to be selected as default shell.
3054 * Makefile.in: bump version to 20030731
3056 * Merge with NetBSD make
3057 Pick up .SHELL spec for ksh and associate man page changes.
3058 Also compat mode now uses the same shell specs.
3060 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
3062 * var.c (Var_Parse): ensure delim is initialized.
3064 * unit-tests/Makefile.in: use single quotes to avoid problems from
3068 Run the unit-tests as part of the bootstrap procedure.
3070 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
3072 * unit-tests/Makefile.in: always force complaints from
3073 ${TEST_MAKE} to be from 'make'.
3075 * configure.in: add check for 'diff -u'
3076 also fix some old autoconf'isms
3078 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
3079 if using GCC add -Wno-cast-qual to CFLAGS for var.o
3081 * Merge with NetBSD make
3082 Pick up fix for :ts parsing error in some cases.
3085 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
3087 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
3089 * var.c (Var_Parse): fix bug in :ts modifier, after const
3090 correctness fixes, must pass nstr to VarModify.
3092 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
3094 * Makefile.in: BMAKE_VERSION switch to a date based version.
3095 We'll generally use the date of last import from NetBSD.
3097 * Merge with NetBSD make
3098 Pick up fixes for const-correctness, now passes WARNS=3 on
3100 Pick up :ts modifier, allows controlling the separator used
3101 between words in variable expansion.
3103 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
3105 * FILES: include boot-strap and os.sh
3107 * Makefile.in: only set WARNS if we are NetBSD, the effect on
3108 FreeBSD is known to be bad.
3110 * makefile.boot.in (bootstrap): make this the default target.
3112 * Makefile.in: bump version to 3.1.19
3114 * machine.sh: avoid A-Z with tr as it is bound to lose.
3116 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
3118 * Merge with NetBSD make
3119 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
3120 Plus some doc fixes.
3122 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
3124 * Merge with NetBSD make
3125 Pick up fix for PR/1523 - don't count a library as built, if there
3126 is no way to build it
3128 * Bump version to 3.1.18
3130 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
3132 * Merge with NetBSD make
3133 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
3134 appears in src list.
3136 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
3138 * Merge with NetBSD make (mmm 10th anniversary!)
3139 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
3140 pick up -X which tells us to not export VAR=val via setenv if
3141 we are already doing so via MAKEFLAGS. This saves valuable env
3142 space on systems like Darwin.
3143 set MAKE_VERSION to 3.1.17
3145 * parse.c: pix up fix for suffix rules
3147 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
3149 * Merge with NetBSD make.
3150 pick up fix for propagating -B via MAKEFLAGS.
3151 set MAKE_VERSION to 3.1.16
3153 * Apply some patches from pkgsrc-bootstrap/bmake
3154 Originally by Grant Beattie <grant@netbsd.org>
3155 I may have missed some - since they are based on bmake-3.1.12
3157 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
3159 * makefile.boot.in (bmake): update install targets for those that
3160 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
3161 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
3163 * bmake.cat1: update the pre-formatted man page!
3165 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
3167 * Merge with NetBSD make.
3168 pick up fix for premature free of pointer used in call
3170 set MAKE_VERSION to 3.1.15
3172 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
3174 * configure.in: determine suitable value for MKSRC.
3175 override using --with-mksrc=PATH.
3177 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
3178 configs(8) will use 'sun4' as an alias for 'sparc'.
3180 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
3182 * Merge with NetBSD make.
3184 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
3185 set MAKE_VERSION to 3.1.14
3186 add configure checks for killpg and sys/socket.h
3188 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
3192 * makefile.boot.in (bmake): use install-mk
3193 Also setup ./mk before trying to invoke bmake.boot incase we
3194 needed install-mk to create a sys.mk for us.
3196 * configure.in: If we need to add -I${srcdir}/missing, make it an
3197 absolute path so that it works for lst.lib too.
3199 * make.h: always include sys/cdefs.h since we provide one if the
3202 * Makefile.in (install-mk):
3203 use MKSRC/install-mk which will do the right thing.
3204 use uname -p for ARCH if possible.
3205 since install-mk will setup links bsd.prog.mk -> prog.mk if
3206 needed, just .include bsd.prog.mk
3208 * Merge with NetBSD make (NetBSD-1.6)
3209 Code is ansi-C only now.
3210 Bug in handling of dotLast is fixed.
3211 Can now assign .OBJDIR and make will reset its notions of life.
3212 New modifiers :tu :tl for toUpper and toLower.
3214 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3216 * Merge with NetBSD make
3217 pick up fix for .END failure in compat mode.
3218 pick up fix for extra va_end() in ParseVErrorInternal.
3220 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
3222 * configure.in: for systems that have sys/cdefs.h check if it is
3223 compatible. If not, include the one under missing, but tell it to
3224 include the native one too - necessary on Linux.
3226 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
3227 include_next (for gcc) to get the native sys/cdefs.h
3229 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3231 * job.c (JobFinish): Fix an earlier merge bug that resulted in
3232 leaking descriptors when using -jN.
3234 * job.c (JobPrintCommand): See if "curdir" exists before
3235 attempting to chdir(). Doing the chdir directly in make (when in
3236 compat mode) fails silently, so let the -jN version do the same.
3237 This can happen when building kernels in an object tree and
3238 playing clever games to reset .CURDIR.
3240 * Merged with NetBSD make
3243 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3245 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
3247 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3249 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
3250 us not to export the iterator variable when using VAR_CMD context.
3252 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3254 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
3255 its the wrong "fix".
3257 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3259 * Redesigned export of VAR_CMD's via MAKEFLAGS.
3260 We now simply append the variable names to .MAKEOVERRIDES, and
3261 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
3262 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
3263 Apart from fixing quoting bugs in previous version, this allows us
3264 to export vars to the environment by simply doing:
3265 .MAKEOVERRIDES+= PATH
3266 Merged again with NetBSD make, but the above is the only change.
3268 * configure.in: added
3269 --disable-pwd-override disable $PWD overriding getcwd()
3270 --disable-check-make-chdir disable make trying to guess
3271 when it should automatically cd ${.CURDIR}
3273 * Merge with NetBSD make, changes include:
3274 parse.c (ParseDoDependency): Spot that the syntax error is
3275 caused by an unresolved cvs/rcs conflict and say so.
3276 var.c: most of Var* functions now take a ctxt as 1st arg.
3277 now does variable substituion on rhs of sysv style modifiers.
3279 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
3280 is now done here. We append the name='value' to .MAKEOVERRIDES
3281 rather than directly into MAKEFLAGS as this allows a Makefile to
3282 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
3283 very similar mechanism. Note that in adding name='value' to
3284 .MAKEOVERRIDES we do the moral equivalent of:
3285 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
3287 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3289 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
3291 * Merged with NetBSD make
3292 make -dx can now be used to run commands via sh -x
3293 better error messages on exec failures.
3295 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3297 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
3298 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
3299 MACHINE etc otherwise they propagate from the previous bmake.
3301 * configure.in (machine): allow --with-machine=generic to make
3302 configure use machine.sh to set MACHINE.
3304 * job.c (JobInterrupt): convert to using WAIT_T and friends.
3306 * Makefile.in: mention in bmake.1 that we use autoconf.
3308 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
3310 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3312 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
3313 as that rather defeats the usefulness of ${MAKEFILE}.
3315 * main.c (MainParseArgs): append command line variable assignments
3316 to MAKEFLAGS so that they get propagated to child make's.
3317 Apparently this is required POSIX behaviour? Its useful anyway.
3319 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3321 * compat.c (CompatRunCommand): don't use perror() since stdio may
3322 cause problems in child of vfork().
3324 * compat.c, main.c: Call PrintOnError() when we are going to bail.
3325 This routine prints out the .curdir where we stopped and will also
3326 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
3328 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
3331 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
3333 * Added RCSid's for the files we've touched.
3335 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3337 * configure.in: Thanks to some clues from mdb@juniper.net,
3338 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
3339 as well as what ends up in _PATH_DEFSYSPATH. We now have:
3341 --with-machine=MACHINE explicitly set MACHINE
3342 --with-force-machine=MACHINE set FORCE_MACHINE
3343 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
3344 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
3345 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
3346 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
3348 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
3350 * makefile: added a pathetically simple makefile to drive
3351 bootstrapping. Running configure by hand is more useful.
3353 * Makefile.in: added MAKE_VERSION, and reworked things to be less
3354 dependent on NetBSD bsd.*.mk
3356 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
3357 _PATH_OBJDIRPREFIX for those that don't want a default.
3358 construct _PATH_DEFSYSPATH from the info we get from configure.
3360 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
3361 if MAKE_VERSION is defined.
3363 * compat.c: when we bail, print out the .CURDIR we were in.
3365 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3367 * Merged with NetBSD make
3369 * var.c: fixed a bug in the handling of the modifier :P
3370 if the node as found but the path was null, we segfault trying to
3373 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
3375 * Merged with NetBSD make
3377 * make.c: Make_OODate's test for a library out of date was using
3378 cmtime where it should have used mtime (my bug).
3380 * compat.c: Use perror() to tell us what really went wrong when we
3381 cannot exec a command.
3383 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3385 * Merged with NetBSD make
3387 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3389 * Merged with NetBSD make
3391 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3393 * Merged with NetBSD make
3395 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3397 * Merged with NetBSD make
3399 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3401 * util.c: don't provide signal() since we use sigcompat.c
3403 * Makefile.in: added a build target.
3405 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
3406 These allow some quite clever magic.
3408 * main.c (main): added support for getenv(MAKESYSPATH).
3410 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3412 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
3413 This avoids objdir having a different value depending on how a
3414 directory was reached (via command line, or subdir.mk).
3416 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
3418 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3420 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
3421 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
3422 I've been testing this in NetBSD's make for some weeks.
3424 * Turn Makefile into Makefile.in and make it useful.
3426 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
3428 * Imported NetBSD's -current make(1) and resolve conflicts.
3430 * Applied autoconf patches from bmake v2
3432 * Imported clean code base from NetBSD-1.0