1 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
3 * Makefile (MAKE_VERSION): 20150505
4 Merge with NetBSD make, pick up
5 o cond.c: be strict about lhs of comparison when evaluating .if
6 but less so when called from variable expansion.
7 o unit-tests/cond2.mk: test various error conditions
9 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
11 * machine.sh (MACHINE): Add Bitrig
12 patch from joerg@netbsd.org
14 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
16 * Makefile (MAKE_VERSION): 20150418
17 Merge with NetBSD make, pick up
18 o job.c: use memmove() rather than memcpy()
20 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
23 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
25 * Makefile (MAKE_VERSION): 20150411
26 bump version - only mk/ changes.
28 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
30 * Makefile (MAKE_VERSION): 20150410
31 Merge with NetBSD make, pick up
32 o document different handling of '-' in jobs mode vs compat
33 o fix jobs mode so that '-' only applies to whole job
34 when shell lacks hasErrCtl
35 o meta.c: use separate vars to track lcwd and latestdir (read)
38 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
40 * Makefile (MAKE_VERSION): 20150401
41 Merge with NetBSD make, pick up
42 o meta.c: close meta file in child
44 * Makefile: use BINDIR.bmake if set.
45 Same for MANDIR and SHAREDIR
46 Handy for testing release candidates
47 in various environments.
49 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
51 * move initialization of savederr to block where it is used
52 to avoid spurious warning from gcc5
54 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
56 * Makefile (MAKE_VERSION): 20141111
59 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
61 * Makefile (MAKE_VERSION): 20141105
62 Merge with NetBSD make, pick up
63 o revert major overhaul of suffix handling
64 and POSIX compliance - too much breakage
65 and impossible to make backwards compatible.
66 o we still have the new unit test structure which is ok.
67 o meta.c ensure "-- filemon" is at start of line.
69 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
71 * configure.in: test that result of getconf PATH_MAX is numeric
72 and discard if not. Apparently needed for Hurd.
74 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
76 * Makefile (MAKE_VERSION): 20140830
77 Merge with NetBSD make, pick up
78 o major overhaul of suffix handling
79 o improved POSIX compliance
80 o overhauled unit-tests
82 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
84 * Makefile (MAKE_VERSION): 20140620
85 Merge with NetBSD make, pick up
86 o var.c return varNoError rather than var_Error for ::= modifiers.
88 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
90 * Makefile (MAKE_VERSION): 20140522
91 Merge with NetBSD make, pick up
92 o var.c detect some parse errors.
94 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
96 * Fix spelling errors - patch from Pedro Giffuni
98 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
100 * Makefile (MAKE_VERSION): 20140214
101 Merge with NetBSD make, pick up
103 o use Var_Value to get MAKEOBJDIR[PREFIX]
104 o reduced realloc'ign in brk_string.
105 * configure.in: add a check for compiler supporting __func__
107 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
109 * boot-strap: ignore mksrc=none
111 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
113 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
115 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
117 * Makefile (MAKE_VERSION): 20140101
118 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
119 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
120 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
122 * configure.in: Add AC_PREREQ and check for
123 sysctl; patch from Andrew Shadura andrewsh at debian.org
125 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
127 * Makefile (MAKE_VERSION): 20131010
128 * lose the const from arg to systcl to avoid problems on older BSDs.
130 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
132 * Makefile (MAKE_VERSION): 20131001
133 Merge with NetBSD make, pick up
134 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
135 hw.machine_arch if necessary.
136 o meta.c: meta_oodate - need to look at src of Link and target
138 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
139 provide __arraycount() if needed.
141 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
143 * Makefile (MAKE_VERSION): 20130904
144 Merge with NetBSD make, pick up
145 o Add VAR_INTERNAL context, so that internal setting of
146 MAKEFILE does not override value set by makefiles.
148 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
150 * Makefile (MAKE_VERSION): 20130902
151 Merge with NetBSD make, pick up
152 o CompatRunCommand: only apply shellErrFlag when errCheck is true
154 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
156 * Makefile (MAKE_VERSION): 20130828
157 Merge with NetBSD make, pick up
158 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
159 o Call Job_SetPrefix() from Job_Init() so makefiles have
160 opportunity to set .MAKE.JOB.PREFIX
162 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
164 * Makefile (MAKE_VERSION): 20130730
165 Merge with NetBSD make, pick up
166 o Allow suppression of --- job -- tokens by setting
167 .MAKE.JOB.PREFIX empty.
169 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
171 * Makefile (MAKE_VERSION): 20130716
172 Merge with NetBSD make, pick up
173 o number of gmake compatibility tweaks
174 -w for gmake style entering/leaving messages
175 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
176 handle MAKEFLAGS containing only letters.
177 o when overriding a GLOBAL variable on the command line,
178 delete it from GLOBAL context so -V doesn't show the wrong
181 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
183 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
185 * Makefile (MAKE_VERSION): 20130706
186 Merge with NetBSD make, pick up
187 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
188 true so that CompatRunCommand() can use it, to ensure
189 consistent behavior with jobs mode.
190 o use MAKE_LEVEL_ENV to define the variable to propagate
191 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
192 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
195 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
197 * Makefile (MAKE_VERSION): 20130604
198 Merge with NetBSD make, pick up
199 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
200 to avoid leaking descriptors.
202 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
204 * Makefile (MAKE_VERSION): 20130528
205 Merge with NetBSD make, pick up
206 o var.c: cleanup some left-overs in VarHash()
208 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
210 * Makefile (MAKE_VERSION): 20130520
211 generate manifest from component FILES rather than have to
212 update FILES when mk/FILES changes.
214 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
216 * Makefile (MAKE_VERSION): 20130518
217 Merge with NetBSD make, pick up
218 o suff.c: don't skip all processsing for .PHONY targets
219 else wildcard srcs do not get expanded.
220 o var.c: expand name of variable to delete if necessary.
222 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
224 * Makefile (MAKE_VERSION): 20130330
225 Merge with NetBSD make, pick up
226 o meta.c: refine the handling of .OODATE in commands.
227 Rather than suppress command comparison for the entire script
228 as though .NOMETA_CMP had been used, only suppress it for the
230 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
231 suppress comparison of a command without otherwise affecting it.
232 o make.1: document that
234 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
236 * Makefile (MAKE_VERSION): 20130321
237 yes, not quite right but its a cooler number.
238 Merge with NetBSD make, pick up
239 o parse.c: fix ParseGmakeExport to be portable
241 * meta.c: call meta_init() before makefiles are read and if built
242 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
243 this let's makefiles test for support.
244 Call meta_mode_init() to process .MAKE.MODE.
246 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
248 * Makefile (MAKE_VERSION): 20130305
249 Merge with NetBSD make, pick up
250 o run .STALE: target when a dependency from .depend is missing.
251 o job.c: add Job_RunTarget() for the above and .BEGIN
253 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
255 * Makefile (MAKE_VERSION): 20130303
256 Merge with NetBSD make, pick up
257 o main.c: set .MAKE.OS to utsname.sysname
258 o job.c: more checks for read and poll errors
259 o var.c: lose VarChangeCase() saves 4% time
261 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
263 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
264 want to use MAKEOBJDIR
266 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
268 * Merge with NetBSD make, pick up
269 o make.1: more info on how shell commands are handled.
270 o job.c,main.c: detect write errors to job pipes.
272 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
274 * Makefile (MAKE_VERSION): 20130123
275 Merge with NetBSD make, pick up
276 o meta.c: if script uses .OODATE and meta_oodate() decides
277 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
278 o var.c: in debug output indicate which variabale modifiers
280 o remove Check_Cwd logic the makefiles have been fixed.
282 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
284 * makefile.in: add a simple makefile for folk who insist on
285 ./configure; make; make install
286 it just runs boot-strap
287 * include mk/* to accommodate the above
288 * boot-strap: re-work to accommodate the above
289 mksrc defaults to $Mydir/mk
290 allow op={configure,build,install,clean,all}
291 add options to facilitate install
292 * Makefile.config.in: just the bits set by configure
293 * Makefile: bump version to 20121212
294 abandon Makefile.in (NetBSD Makefile)
295 leverage mk/* instead
296 * configure.in: ensure srcdir is absolute
298 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
300 * Makefile.in (MAKE_VERSION): 20121111
301 fix generation of bmake.cat1
303 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
305 * Makefile.in (MAKE_VERSION): 20121109
306 Merge with NetBSD make, pick up
307 o make.c: MakeBuildChild: return 0 so search continues if a
308 .ORDER dependency is detected.
309 o unit-tests/order: test the above
311 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
313 * Makefile.in (MAKE_VERSION): 20121102
314 Merge with NetBSD make, pick up
315 o cond.c: allow cond_state[] to grow.
316 In meta mode with a very large tree, we can hit the limit
317 while processing dirdeps.
319 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
321 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
323 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
325 * Makefile.in (MAKE_VERSION): 20121010
326 o protect syntax that only bmake parses correctly.
327 o remove auto setting of FORCE_MACHINE, use configure's
328 --with-force-machine=whatever if that is desired.
330 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
332 * Makefile.in: do not lose history from make.1 when generating bmake.1
334 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
336 * Makefile.in (MAKE_VERSION): 20121007
337 Merge with NetBSD make, pick up
338 o compat.c: ignore empty commands - same as jobs mode.
339 o make.1: document meta chars that cause use of shell
341 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
343 * Makefile.in (MAKE_VERSION): bump version to 20120911
344 * bsd.after-import.mk: include Makefile.inc early and allow it to
347 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
349 * Makefile.in (MAKE_VERSION): bump version to 20120831
350 Merge with NetBSD make, pick up
351 o cast sizeof() to int for comparison
354 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
356 * Makefile.in (MAKE_VERSION): bump version to 20120830
357 Merge with NetBSD make, pick up
358 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
359 o debug flag -dV causes -V to show raw value regardless.
361 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
363 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
366 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
368 * Makefile.in (MAKE_VERSION): bump version to 20120704
369 Merge with NetBSD make, pick up
370 o Job_ParseShell should call Shell_Init if it has been
372 * Makefile.in: set USE_META based on configure result.
373 also .PARSEDIR is safer indicator of bmake.
375 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
377 * Makefile.in: bump version to 20120626
378 ensure CPPFLAGS is in CFLAGS
379 * meta.c: avoid nested externs
380 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
382 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
384 * Makefile.in (MAKE_VERSION): bump version to 20120620
385 Merge with NetBSD make, pick up
386 o make_malloc.c: avoid including make_malloc.h again
388 * Makefile.in: avoid bmake only syntax or protect with
389 .if defined(.MAKE.LEVEL)
390 * bsd.after-import.mk: replace .-include with .sinclude
391 ensure? SRCTOP gets a value
392 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
394 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
396 * Makefile.in (MAKE_VERSION): bump version to 20120612
397 Merge with NetBSD make, pick up
398 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
399 for greater portability.
400 o unit-tests/forloop: check that .for works as expected wrt
401 number of times and with "quoted strings".
403 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
405 * Makefile.in (MAKE_VERSION): bump version to 20120606
406 Merge with NetBSD make, pick up
407 o compat.c: use kill(2) rather than raise(3).
408 * configure.in: look for sys/dev/filemon
409 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
410 and pass BOOTSTRAP_XTRAS to boot-strap.
412 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
414 * Makefile.in (MAKE_VERSION): bump version to 20120604
415 Merge with NetBSD make, pick up
416 o util.c and var.c share same var for tracking if environ
417 has been reallocated.
418 o util.c provide getenv with setenv.
419 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
420 when the shell actively strips .MAKE.* from the environment.
421 We still refer to the variable always as .MAKE.LEVEL
422 * util.c fix bug in findenv() was finding prefix of name.
423 * compat.c: re-raising SIGINT etc after running .INTERRUPT
424 results in more reliable termination of all activity on many
427 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
429 * Makefile.in (MAKE_VERSION): bump version to 20120602
430 Merge with NetBSD make, pick up
431 o for.c: handle quoted items in .for list
433 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
435 * Makefile.in (MAKE_VERSION): bump version to 20120530
436 Merge with NetBSD make, pick up
437 o compat.c: ignore empty command.
439 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
441 * Makefile.in (MAKE_VERSION): bump version to 20120524
442 * FILES: add bsd.after-import.mk:
443 A simple means of integrating bmake into a BSD build system.
445 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
447 * Makefile.in (MAKE_VERSION): bump version to 20120520
448 Merge with NetBSD make, pick up
449 o increased limit for nested conditionals.
451 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
453 * Makefile.in (MAKE_VERSION): bump version to 20120518
454 Merge with NetBSD make, pick up
455 o use _exit(2) in signal hanlder
456 o Don't use the [dir] cache when building nodes that might have
457 changed since the last exec.
458 o Avoid nested extern declaration warnings.
460 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
462 * meta.c (fgetLine): avoid %z - not portable.
463 * parse.c: Since we moved include of sys/mman.h
464 and def's of MAP_COPY etc. we got dups from a merge.
466 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
468 * Makefile.in (MAKE_VERSION): bump version to 20120420
469 Merge with NetBSD make, pick up
470 o restore duplicate supression in .MAKE.MAKEFILES
471 runtime saving can be significant.
472 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
473 consumption up to 20%.
475 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
477 * Makefile.in (MAKE_VERSION): bump version to 20120420
478 Merge with NetBSD make, pick up
479 o remove duplicate supression in .MAKE.MAKEFILES
480 o improved dir cache behavior
481 o gmake'ish export command
483 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
485 * Makefile.in (MAKE_VERSION): bump version to 20120325
486 Merge with NetBSD make, pick up
487 o fix parsing of :[#] in conditionals.
489 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
491 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
492 since some systems cannot cope with .Nx <version>
494 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
496 * Makefile.in (MAKE_VERSION): bump version to 20111111
497 Merge with NetBSD make, pick up
498 o debug output for .PARSEDIR and .PARSEFILE
500 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
502 * Makefile.in (MAKE_VERSION): bump version to 20111010
504 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
506 * boot-strap: check for an expected file in the dirs we look for.
507 * make-bootstrap.sh: pass on LDSTATIC
509 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
511 * Makefile.in (MAKE_VERSION): bump version to 20111001
512 Merge with NetBSD make, pick up
513 o ensure .PREFIX is set for .PHONY
514 and .TARGET set for .PHONY run via .END
515 o __dead used consistently
517 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
519 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
521 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
523 * Makefile.in (MAKE_VERSION): bump version to 20110905
524 Merge with NetBSD make, pick up
525 o meta_oodate: ignore makeDependfile
527 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
529 * Makefile.in (MAKE_VERSION): bump version to 20110828
530 Merge with NetBSD make, pick up
531 o silent=yes in .MAKE.MODE causes meta mode to mark targets
532 as SILENT if a .meta file is created
534 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
536 * Makefile.in (MAKE_VERSION): bump version to 20110818
537 Merge with NetBSD make, pick up
538 o in meta mode, if target flagged .META a missing .meta file
539 means target is out-of-date
540 o fixes for gcc 4.5 warnings
541 o simplify job printing code
543 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
545 * Makefile.in (MAKE_VERSION): bump version to 20110808
546 Merge with NetBSD make, pick up
547 o do not touch OP_SPECIAL targets when doing make -t
549 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
551 * Makefile.in (MAKE_VERSION): bump version to 20110622
552 Merge with NetBSD make, pick up
553 o meta_oodate detect corrupted .meta file and declare oodate.
554 * configure.in: add check for setsid
556 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
558 * Merge with NetBSD make, pick up
559 o unit-tests/modts now works on MirBSD
561 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
563 * Makefile.in (MAKE_VERSION): bump version to 20110606
564 Merge with NetBSD make, pick up
565 o ApplyModifiers: when we parse a variable which is not
566 the entire modifier string, or not followed by ':', do not
567 consider it as containing modifiers.
568 o loadfile: ensure newline at end of mapped file.
570 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
572 * Makefile.in (MAKE_VERSION): bump version to 20110505
573 Merge with NetBSD make, pick up
574 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
575 of make's control. In meta mode, any generated file within
576 said bailiwick, which is found to be missing, causes current
577 target to be out-of-date.
579 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
581 * Makefile.in (MAKE_VERSION): bump version to 20110411
582 Merge with NetBSD make, pick up
583 o when long modifiers fail to match, check sysV style.
586 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
588 * Makefile.in (MAKE_VERSION): bump version to 20110410
589 Merge with NetBSD make, pick up
590 o :hash - cheap 32bit hash of value
591 o :localtime, :gmtime - use value as format string for strftime.
593 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
595 * Makefile.in (MAKE_VERSION): bump version to 20110330
596 mostly because its a cooler version.
597 Merge with NetBSD make, pick up
598 o NetBSD tags for meta.[ch]
599 o job.c call meta_job_finish() after meta_job_error().
600 o meta_job_error() should call meta_job_finish() to ensure
601 .meta file is closed, and safe to copy - if .ERROR target wants.
602 meta_job_finish() is safe to call repeatedly.
604 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
606 * unit-tests/modts: use printf if it is a builtin,
607 to save us from MirBSD
609 * Makefile.in (MAKE_VERSION): bump version to 20110329
610 Merge with NetBSD make, pick up
611 o fix for use after free() in CondDoExists().
612 o meta_oodate() report extra commands and return earlier.
614 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
616 * Makefile.in (MAKE_VERSION): bump version to 20110327
617 Merge with NetBSD make, pick up
618 o meta.c, if .MAKE.MODE contains curdirOk=yes
619 allow creating .meta files in .CURDIR
620 * boot-strap (TOOL_DIFF): aparently at least on linux distro
621 formats the output of 'type' differently - so eat any "()"
623 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
625 * Makefile.in (MAKE_VERSION): bump version to 20110306
626 Merge with NetBSD make, pick up
627 o meta.c, only do getcwd() once
629 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
631 * Makefile.in (MAKE_VERSION): bump version to 20110305
632 Merge with NetBSD make, pick up
633 o correct sysV substitution handling of empty lhs and variable
634 o correct exists() check for dir with trailing /
635 o correct handling of modifiers for non-existant variables
636 during evaluation of conditionals.
637 o ensure MAP_FILE is defined.
638 o meta.c use curdir[] now exported by main.c
640 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
642 * Makefile.in (MAKE_VERSION): bump version to 20110225
643 Merge with NetBSD make, pick up
644 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
645 makefiles have been read.
646 o fix example of :? modifier in man page.
648 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
650 * Makefile.in (MAKE_VERSION): bump version to 20110214
651 Merge with NetBSD make, pick up
652 o meta.c handle realpath() failing when generating meta file
655 * sigcompat.c: convert to ansi so we can use higher warning levels.
658 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
660 * Makefile.in (MAKE_VERSION): bump version to 20110207
661 Merge with NetBSD make, pick up
662 o fix for bug in meta mode.
664 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
666 * parse.c: SunOS 5.8 at least does not have MAP_FILE
668 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
670 * Makefile.in (MAKE_VERSION): bump version to 20110101
671 Merge with NetBSD make, pick up
672 o use mmap(2) if available, for reading makefiles
674 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
676 * Makefile.in (MAKE_VERSION): bump version to 20101215
677 Merge with NetBSD make, pick up
678 o ensure meta_job_error() does not report a previous .meta file
681 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
683 * Makefile.in (MAKE_VERSION): bump version to 20101210
684 Merge with NetBSD make, pick up
685 o meta_oodate: track cwd per process, and only consider target
686 out-of-date if missing file is outside make's CWD.
687 Ignore files in /tmp/ etc.
688 o to ensure unit-tests results match, need to control LC_ALL
690 o fix for parsing bug in var.c
692 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
694 * Makefile.in (MAKE_VERSION): bump version to 20101126
695 Merge with NetBSD make, pick up
696 o if stale dependency is an IMPSRC, search via .PATH
697 o meta_oodate: if a referenced file is missing, target is
699 o meta_oodate: if a target uses .OODATE in its commands,
700 it (.OODATE) needs to be recomputed.
701 o keep a pointer to youngest child node, rather than just its
704 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
706 * Makefile.in (MAKE_VERSION): bump version to 20101101
708 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
710 * machine.sh: like os.sh,
711 allow for uname -p producing useless drivel
713 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
715 * boot-strap: document configure knobs for meta and filemon.
717 * Makefile.in (MAKE_VERSION): bump version to 20100911
718 Merge with NetBSD make, pick up
721 * make-bootstrap.sh.in: handle meta.c
722 * configure.in: add knobs for use_meta and filemon_h
723 also, look for dirname, str[e]sep and strlcpy
724 * util.c: add simple err[x] and warn[x]
726 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
728 * boot-strap (TOOL_DIFF): set this to ensure tests use
729 the same version of diff that configure tested
731 * Makefile.in (MAKE_VERSION): bump version to 20100808
732 Merge with NetBSD make, pick up
733 o in jobs mode, when we discover we cannot make something,
734 call PrintOnError before exit.
736 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
738 * Makefile.in (MAKE_VERSION): bump version to 20100806
739 Merge with NetBSD make, pick up
740 o formatting fixes for ignored errors
741 o ensure jobs are cleaned up regardless of where wait() was called.
743 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
745 * Makefile.in (MAKE_VERSION): bump version to 20100618
746 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
748 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
750 * Makefile.in (MAKE_VERSION): bump version to 20100616
751 Merge with NetBSD make, pick up
753 o call PrintOnError from JobFinish when we detect an error we
756 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
758 * Makefile.in (MAKE_VERSION): bump version to 20100606
759 Merge with NetBSD make, pick up
762 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
764 * Makefile.in (MAKE_VERSION): bump version to 20100605
765 Merge with NetBSD make, pick up
766 o use bmake_signal() which is a wrapper around sigaction()
768 o add .export-env to allow exporting variables to environment
769 without tracking (so no re-export when the internal value is
772 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
774 * Makefile.in (MAKE_VERSION): bump version to 20100524
775 Merge with NetBSD make, pick up
776 o fix for .info et al being greedy.
778 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
780 * Makefile.in (MAKE_VERSION): bump version to 20100520
781 Merge with NetBSD make, pick up
782 o back to using realpath on argv[0]
783 but only if contains '/' and does not start with '/'.
785 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
787 * boot-strap: use absolute path for bmake when running tests.
789 * Makefile.in (MAKE_VERSION): bump version to 20100510
790 Merge with NetBSD make, pick up
791 o revert use of realpath on argv[0]
792 too many corner cases.
793 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
795 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
797 * Makefile.in (MAKE_VERSION): bump version to 20100505
798 Merge with NetBSD make, pick up
799 o fix for missed SIGCHLD when compiled with SunPRO
800 actually for bmake, defining FORCE_POSIX_SIGNALS would have
803 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
805 * Makefile.in (MAKE_VERSION): bump version to 20100430
806 Merge with NetBSD make, pick up
807 o fflush stdout before writing to stdout
809 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
811 * Makefile.in (MAKE_VERSION): bump version to 20100423
812 Merge with NetBSD make, pick up
813 o updated unit tests for Haiku (this time for sure).
814 * boot-strap: based on patch from joerg
815 honor --with-default-sys-path better.
816 * boot-strap: remove mention of --with-prefix-sys-path
818 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
820 * Makefile.in (MAKE_VERSION): bump version to 20100422
821 * Merge with NetBSD make, pick up
822 o fix for vfork() on Darwin.
823 o fix for bogus $TMPDIR.
824 o set .MAKE.MODE=compat for -B
825 o set .MAKE.JOBS=max_jobs for -j max_jobs
826 o allow unit-tests to run without any *.mk
827 o unit-tests/modmisc be more conservative in dirs presumed to exist.
828 * boot-strap: ignore /usr/share/mk except on NetBSD.
829 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
830 ensure sort(1) behaves as expected.
832 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
834 * boot-strap: add FindHereOrAbove so we can use -m .../mk
836 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
838 * Makefile.in (MAKE_VERSION): bump version to 20100420
839 * Merge with NetBSD make, pick up
840 o fix for variable realpath() behavior.
841 we have to stat(2) the result to be sure.
842 o fix for .export (all) when nested vars use :sh
844 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
846 * Makefile.in (MAKE_VERSION): bump version to 20100414
847 * Merge with NetBSD make, pick up
848 o use realpath to resolve argv[0] (for .MAKE) if needed.
849 o add realpath from libc.
850 o add :tA to resolve variable via realpath(3) if possible.
852 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
854 * Makefile.in (MAKE_VERSION): bump version to 20100408
855 * Merge with NetBSD make, pick up
856 o unit tests for .ERROR, .error
857 o fix for .ERROR to ensure it cannot be default target.
859 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
861 * Makefile.in (MAKE_VERSION): bump version to 20100406
862 * Merge with NetBSD make, pick up
863 o fix for compat mode "Error code" going to debug_file.
864 o fix for .ALLSRC being populated twice.
865 o support for .info, .warning and .error directives
866 o .MAKE.MODE to control make's operational mode
867 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
869 o .MAKE.DEPENDFILE to control the name of the depend file
870 o .ERROR target - run on failure.
872 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
874 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
876 * os.sh,arch.c: patch for Haiku from joerg at netbsd
878 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
880 * Makefile.in (MAKE_VERSION): bump version to 20100222
881 * Merge with NetBSD make, pick up
882 o better error msg for .for with mutiple inter vars
885 o use make-bootstrap.sh from joerg at netbsd
886 to avoid the need for a native make when bootstrapping.
887 o add "" everywhere ;-)
888 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
889 otherwise the pre-formated version.
891 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
893 * Makefile.in (MAKE_VERSION): bump version to 20100102
894 * Merge with NetBSD make, pick up:
897 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
899 * Makefile.in (MAKE_VERSION): bump version to 20091118
900 * Merge with NetBSD make, pick up:
902 o report lines that start with '.' and should have ':'
903 (catch typo's of .el*if).
905 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
907 * configure.in: Ensure that srcdir and mksrc are absolute paths.
909 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
911 * Makefile.in (MAKE_VERSION): fix version to 20091007
913 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
915 * Makefile.in (MAKE_VERSION): bump version to 200910007
916 * Merge with NetBSD make, pick up:
917 o fix for parsing of :S;...;...; applied to .for loop iterator
918 appearing in a dependency line.
920 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
922 * Makefile.in (MAKE_VERSION): bump version to 20090909
923 * Merge with NetBSD make, pick up:
924 o fix for -C, .CURDIR and .OBJDIR
926 o allow share_dir to be set independent of prefix.
927 o select default share_dir better when prefix ends in $HOST_TARGET
928 o if FORCE_BSD_MK etc were set, include them in the suggested
931 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
933 * Makefile.in (MAKE_VERSION): bump version to 20090908
934 * Merge with NetBSD make, pick up:
935 o .MAKE.LEVEL for recursion tracking
936 o fix for :M scanning \:
938 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
940 * configure.in: Don't -D__EXTENSIONS__ if
941 AC_USE_SYSTEM_EXTENSIONS says "no".
943 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
945 * Makefile.in (MAKE_VERSION): bump version to 20090826
946 Simplify MAKE_VERSION to just the bare date.
947 * Merge with NetBSD make, pick up:
948 o -C directory support.
949 o support for SIGINFO
950 o use $TMPDIR for temp files.
951 o child of vfork should be careful about modifying parent's state.
954 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
956 * Appy some patches for MiNT from David Brownlee
958 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
960 * Makefile.in (BMAKE_VERSION): bump version to 20090222
961 * Merge with NetBSD make, pick up:
962 o Possible null pointer de-ref in Var_Set.
964 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
966 * Makefile.in (BMAKE_VERSION): bump version to 20090204
967 * Merge with NetBSD make, pick up:
968 o bmake_malloc et al moved to their own .c
969 o Count both () and {} when looking for the end of a :M pattern
970 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
971 o strlist.c - functions for processing extendable arrays of pointers to strings.
972 o ClientData replaced with void *, so const void * can be used.
973 o New debug flag C for DEBUG_CWD
975 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
977 * Makefile.in (BMAKE_VERSION): bump version to 20081111
978 Apply patch from Joerg Sonnenberge to
980 o remove some redundant checks
981 o check for emlloc etc only in libutil and require the whole family.
983 o remove [v]asprintf which is no longer used.
985 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
987 * Makefile.in (BMAKE_VERSION): bump version to 20081101
988 * Merge with NetBSD make, pick up:
989 o util.c: avoid use of putenv() - christos
991 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
993 * Makefile.in (BMAKE_VERSION): bump version to 20081030
994 pick up man page tweaks.
996 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
998 * Makefile.in: move processing of LIBOBJS to after is definition!
999 thus we'll have getenv.c in SRCS only if needed.
1001 * make.1: add examples of how to use :?
1003 * Makefile.in (BMAKE_VERSION): bump version to 20081029
1004 * Merge with NetBSD make, pick up:
1005 o fix for .END processing with -j
1006 o segfault from Parse_Error when no makefile is open
1007 o handle numeric expressions in any variable expansion
1008 o debug output now defaults to stderr, -dF to change it - apb
1009 o make now uses bmake_malloc etc so that it can build natively
1010 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
1012 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
1014 * Makefile.in (BMAKE_VERSION): bump version to 20080808
1015 * Merge with NetBSD make, pick up:
1016 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
1017 long lines in Makefiles
1018 o optimizations for VarQuote by joerg
1019 o fix for PR/38756: dominik: make dumps core on invalid makefile
1021 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
1023 * Makefile.in (BMAKE_VERSION): bump version to 20080515
1024 * Merge with NetBSD make, pick up:
1025 o fix skip setting vars in VAR_GLOBAL context, to handle
1026 cases where VAR_CMD is used for other than command line vars.
1028 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
1030 * boot-strap (make_version): we may need to look in
1031 $prefix/share/mk for sys.mk
1033 * Makefile.in (BMAKE_VERSION): bump version to 20080514
1034 * Merge with NetBSD make, pick up:
1035 o skip setting vars in VAR_GLOBAL context, when already set in
1036 VAR_CMD which takes precedence.
1038 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
1040 * Makefile.in (BMAKE_VERSION): bump version to 20080330
1041 * Merge with NetBSD make, pick up:
1042 o fix for ?= when LHS contains variable reference.
1044 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1046 * merge some patches from NetBSD pkgsrc.
1048 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
1049 the MAKSYSPATH used during bootstrap.
1051 * Makefile.in (BMAKE_VERSION): bump version to 20080215
1052 * Merge with NetBSD make, pick up:
1053 o warn if non-space chars follow 'empty' in a conditional.
1055 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
1057 * Makefile.in (BMAKE_VERSION): bump version to 20080118
1058 * Merge with NetBSD make, pick up:
1059 o consider dependencies read from .depend as optional - dsl
1060 o remember when buffer for reading makefile grows - dsl
1061 o add -dl (aka LOUD) - David O'Brien
1063 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
1065 * Makefile.in (BMAKE_VERSION): bump version to 20071022
1066 * Merge with NetBSD make, pick up:
1067 o Allow .PATH<suffix> to be used for .include ""
1069 * boot-strap: source default settings from .bmake-boot-strap.rc
1071 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
1073 * Makefile.in: fix maninstall on various systems
1074 provided that our man.mk is used.
1075 For non-BSD systems we install the preformatted page
1078 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
1080 * boot-strap: make bmake.1 too, so maninstall works.
1082 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
1084 * Makefile.in (BMAKE_VERSION): bump version to 20071014
1085 * Merge with NetBSD make, pick up:
1086 o revamped handling of defshell - configure no longer needs to
1087 know the content of the shells array - apb
1088 o stop Var_Subst modifying its input - apb
1089 o avoid calling ParseTrackInput too often - dsl
1091 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
1093 * Makefile.in (BMAKE_VERSION): bump version to 20071011
1094 * Merge with NetBSD make, pick up:
1095 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
1097 * sigcompat.c: some tweaks for HP-UX 11.x based on
1098 patch from Tobias Nygren
1100 * configure.in: update handling of --with-defshell to match
1101 new make behavior. --with-defshell=/usr/xpg4/bin/sh
1102 will now do what one might hope - provided the chosen shell
1103 behaves enough like sh.
1105 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
1107 * Makefile.in (BMAKE_VERSION): bump to 20071008
1108 * Merge with NetBSD make, pick up:
1109 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
1110 o .export/.MAKE.EXPORTED - export of variables - sjg
1111 o .MAKE.MAKEFILES - track all makefiles read - sjg
1112 o performance improvements - dsl
1113 o revamp parallel job scheduling - dsl
1115 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
1117 * Makefile.in (BMAKE_VERSION): bump to 20060728
1118 * Merge with NetBSD make, pick up:
1119 o extra debug info during variable and cond processing - sjg
1120 o shell definition now covers newline - rillig
1121 o minor mem leak in PrintOnError - sjg
1123 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
1125 * Makefile.in (BMAKE_VERSION): bump to 20060511
1126 * Merge with NetBSD make, pick up:
1127 o more memory leaks - coverity
1128 o possible overflow in ArchFindMember - coverity
1129 o extract variable modifier code out of Var_Parse()
1130 so it can be called recursively - sjg
1131 o unit-tests/moderrs - sjg
1133 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
1135 * Makefile.in (BMAKE_VERSION): bump to 20060412
1136 * Merge with NetBSD make, pick up:
1137 o fixes for some memory leaks - coverity
1138 o only read first sys.mk etc when searching sysIncPath - sjg
1140 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
1141 setting ${MAKEFILE} - OBATA Akio
1143 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
1145 * Makefile.in (BMAKE_VERSION): bump to 20060318
1146 * Merge with NetBSD make, pick up:
1147 o cleanup of job.c to remove remote handling, distcc is more
1148 useful and this code was likely bit-rotting - dsl
1149 o fix for :P modifier - sjg
1150 * boot-strap: set default prefix to something reasonable
1153 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
1155 * Makefile.in (BMAKE_VERSION): bump to 20060301
1156 * Merge with NetBSD make, pick up:
1157 o make .WAIT apply recursively, document and test case - apb
1158 o allow variable modifiers in a variable appear anywhere in
1159 modifier list, document and test case - sjg
1161 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
1163 * Makefile.in (BMAKE_VERSION): bump to 20060222
1164 * Merge with NetBSD make, pick up:
1165 o improved job token handling - dsl
1166 o SIG_DFL the correct signal before exec - dsl
1167 o more debug info during parsing - dsl
1168 o allow variable modifiers to be specified via variable - sjg
1169 * boot-strap: explain why we died if no mksrc
1171 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
1173 * Makefile.in (BMAKE_VERSION): bump to 20051105
1174 * configure.in: always set default_sys_path
1175 default is ${prefix}/share/mk
1176 - remove prefix_sys_path, anyone wanting more than above
1177 needs to set it manually.
1179 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
1181 * boot-strap: make this a bit easier for pkgsrc folk.
1182 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
1183 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
1185 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
1187 * Makefile.in (BMAKE_VERSION): bump to 20051102
1188 * job.c (JobFinish): fix likely ancient merge lossage
1189 fix from Todd Vierling.
1190 * boot-strap (srcdir): allow setting mksrc=none
1192 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
1194 * Makefile.in (BMAKE_VERSION): bump to 20051031
1195 * ranlib.h: skip on OSF too.
1198 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
1200 * Makefile.in (BMAKE_VERSION): bump to 20051002
1203 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
1205 * Makefile.in (BMAKE_VERSION): bump to 20051001
1206 support for UnixWare and some other systems,
1207 based on patches from pkgsrc/bootstrap
1209 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
1211 * Makefile.in (BMAKE_VERSION): bump to 20050901
1212 * Merge with NetBSD make, pick up:
1213 o possible parse error causing us to wander off.
1215 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
1217 * Makefile.in (BMAKE_VERSION): bump to 20050606
1218 * Merge with NetBSD make, pick up:
1219 o :0x modifier for randomizing a list
1220 o fixes for a number of -Wuninitialized issues.
1222 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
1224 * Makefile.in (BMAKE_VERSION): bump to 20050530
1225 * Merge with NetBSD make, pick up:
1226 o Handle dependencies for .BEGIN, .END and .INTERRUPT
1228 * README: was seriously out of date.
1230 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
1232 * Important to use .MAKE rather than MAKE.
1234 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
1236 * Makefile.in (BMAKE_VERSION): bump to 20050315
1237 * Merge with NetBSD make, pick up:
1238 o don't mistake .elsefoo for .else
1239 o use suffix-specific search path correctly
1240 o bunch of style nits
1242 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
1245 o ensure that args to --src and --with-mksrc
1246 are resolved before giving them to configure.
1247 o add -o "objdir" so that builder can control it,
1248 default is $OS as determined by os.sh
1249 o add -q to suppress all the install instructions.
1251 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
1253 * Remove __IDSTRING()
1255 * Makefile.in (BMAKE_VERSION): bump to 20040508
1256 * Merge with NetBSD make, pick up:
1258 - remove '-e' from compat mode
1259 - add support for '+' command-line prefix.
1260 o fix for handling '--' on command-line.
1261 o fix include in lst.lib/lstInt.h to simplify '-I's
1262 o we also picked up replacement of MAKE_BOOTSTRAP
1263 with !MAKE_NATIVE which is a noop, but possibly confusing.
1265 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
1267 * Makefile.in (BMAKE_VERSION): bump to 20040414
1268 * Merge with NetBSD make, pick up:
1269 o allow quoted strings on lhs of conditionals
1270 o issue warning when extra .else is seen
1271 o print line numer when errors encountered during parsing from
1274 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
1276 * Makefile.in (BMAKE_VERSION): bump to 20040220
1277 * Merge with NetBSD make, pick up:
1278 o fix for old :M parsing bug.
1279 o re-jigged unit-tests
1281 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1283 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
1284 so that './bmake -f Makefile test' works.
1286 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
1288 * Makefile.in: (BMAKE_VERSION): bump to 20040214
1289 * Merge with NetBSD make, pick up:
1290 o search upwards for *.mk
1291 o fix for double free of var substitution buffers
1292 o use of getopt replaced with custom code, since the usage
1293 (re-scanning) isn't posix compatible.
1295 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
1297 * arch.c: don't include ranlib.h on ELF systems
1298 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
1300 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
1302 * Makefile.in (BMAKE_VERSION): bump to 20040118
1304 * boot-strap (while): export vars we assign to on cmdline
1305 * unit-test/Makefile.in: ternary is .PHONY
1307 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
1309 * Makefile.in (BMAKE_VERSION): bump version to 20040108
1310 * Merge with NetBSD make, pick up:
1311 o fix for ternary modifier
1313 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
1315 * Makefile.in (BMAKE_VERSION): bump version to 20040105
1316 * Merge with NetBSD make, pick up:
1317 o fix for cond.c to handle compound expressions better
1318 o variable expansion within sysV style replacements
1320 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
1322 * Make portable snprintf safer - output to /dev/null first to
1325 * Makefile.in (BMAKE_VERSION): bump version to 20031222
1326 * Merge with NetBSD make, pick up:
1327 o -dg3 to show input graph when things go wrong.
1328 o explicitly look for makefiles in objdir if not found in curdir so
1329 that errors in .depend etc will be reported accurarely.
1330 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
1331 instead as it more accurately reflects the expected behavior and
1332 is more consistently implemented.
1333 o avoid use of asprintf.
1335 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
1337 * util.c: Add asprintf and vasprintf.
1339 * Makefile.in (BMAKE_VERSION): bump version to 20030928
1340 * Merge with NetBSD make, pick up:
1341 :[] modifier - allows picking words from a variable.
1342 :tW modifier - allows treating value as one big word.
1343 W flag for :C and :S - allows treating value as one big word.
1345 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
1347 * Merge with NetBSD make
1348 pick up -de flag to enable printing failed command.
1349 don't skip 1st two dir entries (normally . and ..) since
1350 coda does not have them.
1352 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
1354 * Makefile.in (BMAKE_VERSION): bump version to 20030909
1355 * Merge with NetBSD make, pick up:
1356 - changes for -V '${VAR}' to print fully expanded value
1358 - CompatRunCommand now prints the command that failed.
1359 - several files got updated 3 clause Berkeley license.
1361 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
1363 * boot-strap: Allow setting configure args on command line.
1365 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
1367 * configure.in: add --with-defshell to allow sh or ksh
1368 to be selected as default shell.
1370 * Makefile.in: bump version to 20030731
1372 * Merge with NetBSD make
1373 Pick up .SHELL spec for ksh and associate man page changes.
1374 Also compat mode now uses the same shell specs.
1376 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
1378 * var.c (Var_Parse): ensure delim is initialized.
1380 * unit-tests/Makefile.in: use single quotes to avoid problems from
1384 Run the unit-tests as part of the bootstrap procedure.
1386 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
1388 * unit-tests/Makefile.in: always force complaints from
1389 ${TEST_MAKE} to be from 'make'.
1391 * configure.in: add check for 'diff -u'
1392 also fix some old autoconf'isms
1394 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
1395 if using GCC add -Wno-cast-qual to CFLAGS for var.o
1397 * Merge with NetBSD make
1398 Pick up fix for :ts parsing error in some cases.
1401 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
1403 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
1405 * var.c (Var_Parse): fix bug in :ts modifier, after const
1406 correctness fixes, must pass nstr to VarModify.
1408 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
1410 * Makefile.in: BMAKE_VERSION switch to a date based version.
1411 We'll generally use the date of last import from NetBSD.
1413 * Merge with NetBSD make
1414 Pick up fixes for const-correctness, now passes WARNS=3 on
1416 Pick up :ts modifier, allows controlling the separator used
1417 between words in variable expansion.
1419 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
1421 * FILES: include boot-strap and os.sh
1423 * Makefile.in: only set WARNS if we are NetBSD, the effect on
1424 FreeBSD is known to be bad.
1426 * makefile.boot.in (bootstrap): make this the default target.
1428 * Makefile.in: bump version to 3.1.19
1430 * machine.sh: avoid A-Z with tr as it is bound to lose.
1432 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
1434 * Merge with NetBSD make
1435 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
1436 Plus some doc fixes.
1438 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
1440 * Merge with NetBSD make
1441 Pick up fix for PR/1523 - don't count a library as built, if there
1442 is no way to build it
1444 * Bump version to 3.1.18
1446 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
1448 * Merge with NetBSD make
1449 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
1450 appears in src list.
1452 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
1454 * Merge with NetBSD make (mmm 10th anniversary!)
1455 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
1456 pick up -X which tells us to not export VAR=val via setenv if
1457 we are already doing so via MAKEFLAGS. This saves valuable env
1458 space on systems like Darwin.
1459 set MAKE_VERSION to 3.1.17
1461 * parse.c: pix up fix for suffix rules
1463 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
1465 * Merge with NetBSD make.
1466 pick up fix for propagating -B via MAKEFLAGS.
1467 set MAKE_VERSION to 3.1.16
1469 * Apply some patches from pkgsrc-bootstrap/bmake
1470 Originally by Grant Beattie <grant@netbsd.org>
1471 I may have missed some - since they are based on bmake-3.1.12
1473 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
1475 * makefile.boot.in (bmake): update install targets for those that
1476 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
1477 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
1479 * bmake.cat1: update the pre-formatted man page!
1481 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
1483 * Merge with NetBSD make.
1484 pick up fix for premature free of pointer used in call
1486 set MAKE_VERSION to 3.1.15
1488 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
1490 * configure.in: determine suitable value for MKSRC.
1491 override using --with-mksrc=PATH.
1493 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
1494 configs(8) will use 'sun4' as an alias for 'sparc'.
1496 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
1498 * Merge with NetBSD make.
1500 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
1501 set MAKE_VERSION to 3.1.14
1502 add configure checks for killpg and sys/socket.h
1504 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
1508 * makefile.boot.in (bmake): use install-mk
1509 Also setup ./mk before trying to invoke bmake.boot incase we
1510 needed install-mk to create a sys.mk for us.
1512 * configure.in: If we need to add -I${srcdir}/missing, make it an
1513 absolute path so that it works for lst.lib too.
1515 * make.h: always include sys/cdefs.h since we provide one if the
1518 * Makefile.in (install-mk):
1519 use MKSRC/install-mk which will do the right thing.
1520 use uname -p for ARCH if possible.
1521 since install-mk will setup links bsd.prog.mk -> prog.mk if
1522 needed, just .include bsd.prog.mk
1524 * Merge with NetBSD make (NetBSD-1.6)
1525 Code is ansi-C only now.
1526 Bug in handling of dotLast is fixed.
1527 Can now assign .OBJDIR and make will reset its notions of life.
1528 New modifiers :tu :tl for toUpper and toLower.
1530 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
1532 * Merge with NetBSD make
1533 pick up fix for .END failure in compat mode.
1534 pick up fix for extra va_end() in ParseVErrorInternal.
1536 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
1538 * configure.in: for systems that have sys/cdefs.h check if it is
1539 compatible. If not, include the one under missing, but tell it to
1540 include the native one too - necessary on Linux.
1542 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
1543 include_next (for gcc) to get the native sys/cdefs.h
1545 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1547 * job.c (JobFinish): Fix an earlier merge bug that resulted in
1548 leaking descriptors when using -jN.
1550 * job.c (JobPrintCommand): See if "curdir" exists before
1551 attempting to chdir(). Doing the chdir directly in make (when in
1552 compat mode) fails silently, so let the -jN version do the same.
1553 This can happen when building kernels in an object tree and
1554 playing clever games to reset .CURDIR.
1556 * Merged with NetBSD make
1559 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1561 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
1563 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1565 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
1566 us not to export the iterator variable when using VAR_CMD context.
1568 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1570 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
1571 its the wrong "fix".
1573 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1575 * Redesigned export of VAR_CMD's via MAKEFLAGS.
1576 We now simply append the variable names to .MAKEOVERRIDES, and
1577 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
1578 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
1579 Apart from fixing quoting bugs in previous version, this allows us
1580 to export vars to the environment by simply doing:
1581 .MAKEOVERRIDES+= PATH
1582 Merged again with NetBSD make, but the above is the only change.
1584 * configure.in: added
1585 --disable-pwd-override disable $PWD overriding getcwd()
1586 --disable-check-make-chdir disable make trying to guess
1587 when it should automatically cd ${.CURDIR}
1589 * Merge with NetBSD make, changes include:
1590 parse.c (ParseDoDependency): Spot that the syntax error is
1591 caused by an unresolved cvs/rcs conflict and say so.
1592 var.c: most of Var* functions now take a ctxt as 1st arg.
1593 now does variable substituion on rhs of sysv style modifiers.
1595 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
1596 is now done here. We append the name='value' to .MAKEOVERRIDES
1597 rather than directly into MAKEFLAGS as this allows a Makefile to
1598 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
1599 very similar mechanism. Note that in adding name='value' to
1600 .MAKEOVERRIDES we do the moral equivalent of:
1601 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
1603 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1605 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
1607 * Merged with NetBSD make
1608 make -dx can now be used to run commands via sh -x
1609 better error messages on exec failures.
1611 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1613 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
1614 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
1615 MACHINE etc otherwise they propagate from the previous bmake.
1617 * configure.in (machine): allow --with-machine=generic to make
1618 configure use machine.sh to set MACHINE.
1620 * job.c (JobInterrupt): convert to using WAIT_T and friends.
1622 * Makefile.in: mention in bmake.1 that we use autoconf.
1624 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
1626 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1628 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
1629 as that rather defeats the usefulness of ${MAKEFILE}.
1631 * main.c (MainParseArgs): append command line variable assignments
1632 to MAKEFLAGS so that they get propagated to child make's.
1633 Apparently this is required POSIX behaviour? Its useful anyway.
1635 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1637 * compat.c (CompatRunCommand): don't use perror() since stdio may
1638 cause problems in child of vfork().
1640 * compat.c, main.c: Call PrintOnError() when we are going to bail.
1641 This routine prints out the .curdir where we stopped and will also
1642 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
1644 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
1647 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
1649 * Added RCSid's for the files we've touched.
1651 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1653 * configure.in: Thanks to some clues from mdb@juniper.net,
1654 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
1655 as well as what ends up in _PATH_DEFSYSPATH. We now have:
1657 --with-machine=MACHINE explicitly set MACHINE
1658 --with-force-machine=MACHINE set FORCE_MACHINE
1659 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
1660 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
1661 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
1662 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
1664 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
1666 * makefile: added a pathetically simple makefile to drive
1667 bootstrapping. Running configure by hand is more useful.
1669 * Makefile.in: added MAKE_VERSION, and reworked things to be less
1670 dependent on NetBSD bsd.*.mk
1672 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
1673 _PATH_OBJDIRPREFIX for those that don't want a default.
1674 construct _PATH_DEFSYSPATH from the info we get from configure.
1676 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
1677 if MAKE_VERSION is defined.
1679 * compat.c: when we bail, print out the .CURDIR we were in.
1681 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1683 * Merged with NetBSD make
1685 * var.c: fixed a bug in the handling of the modifier :P
1686 if the node as found but the path was null, we segfault trying to
1689 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
1691 * Merged with NetBSD make
1693 * make.c: Make_OODate's test for a library out of date was using
1694 cmtime where it should have used mtime (my bug).
1696 * compat.c: Use perror() to tell us what really went wrong when we
1697 cannot exec a command.
1699 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1701 * Merged with NetBSD make
1703 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1705 * Merged with NetBSD make
1707 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1709 * Merged with NetBSD make
1711 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1713 * Merged with NetBSD make
1715 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1717 * util.c: don't provide signal() since we use sigcompat.c
1719 * Makefile.in: added a build target.
1721 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
1722 These allow some quite clever magic.
1724 * main.c (main): added support for getenv(MAKESYSPATH).
1726 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1728 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
1729 This avoids objdir having a different value depending on how a
1730 directory was reached (via command line, or subdir.mk).
1732 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
1734 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1736 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
1737 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
1738 I've been testing this in NetBSD's make for some weeks.
1740 * Turn Makefile into Makefile.in and make it useful.
1742 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
1744 * Imported NetBSD's -current make(1) and resolve conflicts.
1746 * Applied autoconf patches from bmake v2
1748 * Imported clean code base from NetBSD-1.0