1 2020-05-17 Simon J Gerraty <sjg@beast.crufty.net>
3 * VERSION (_MAKE_VERSION): 20200517
4 Merge with NetBSD make, pick up
5 o modified dollar tests to avoid shell dependencies
6 o new tests for .INCLUDEFROM
8 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net>
10 * unit-tests/dollar.mk: tweak '1 dollar literal' test
11 to not depend so much on shell behavior
13 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net>
15 * VERSION (_MAKE_VERSION): 20200510
16 Merge with NetBSD make, pick up
17 o unit test for dollar handling
19 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net>
21 * VERSION (_MAKE_VERSION): 20200506
22 Merge with NetBSD make, pick up
23 o str.c: empty string does not match % pattern
24 plus unit-test changes
26 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net>
28 * VERSION (_MAKE_VERSION): 20200504
29 May the 4th be with you
30 Merge with NetBSD make, pick up
31 o var.c: import handling of old sysV style modifier using '%'
32 o str.c: refactor brk_string
33 o unit-tests: add test case for lazy conditions
35 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net>
37 * VERSION (_MAKE_VERSION): 20200418
39 * configure.in: use_makefile=no for cygwin et al.
40 case insensitive filesystems just don't work if both
41 makefile and Makefile exist.
42 NOTE: bmake does not support cygwin and likely never will,
43 but if brave souls want to try it - help them out.
45 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net>
47 * VERSION (_MAKE_VERSION): 20200402
48 Merge with NetBSD make, pick up
49 o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
50 a blank command is perfectly valid.
52 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net>
54 * VERSION (_MAKE_VERSION): 20200330
55 Merge with NetBSD make, pick up
56 o make.h: extern debug_file
58 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net>
60 * VERSION (_MAKE_VERSION): 20200318
61 Merge with NetBSD make, pick up
62 o meta.c: meta_oodate, check for corrupted meta file
63 earlier and more often.
65 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net>
67 * VERSION (_MAKE_VERSION): 20200220
69 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net>
71 * boot-strap: unset MAKEFLAGS
73 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net>
75 * VERSION (_MAKE_VERSION): 20200212
76 * meta.c: meta_compat_parent check for USE_FILEMON
77 patch from Soeren Tempel
79 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net>
82 Merge with NetBSD make, pick up
83 o meta.c: fix compat mode, need to call meta_job_output()
84 o job.c: extra fds for meta mode not needed if using filemon_dev
86 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net>
89 Merge with NetBSD make, pick up
90 o meta.c: avoid passing NULL to filemon_*() when meta_needed()
93 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net>
96 Merge with NetBSD make, pick up
97 o filemon/filemon_{dev,ktrace}.c: allow selection of
98 filemon implementation. filemon_dev.c uses the kernel module
99 while filemon_ktrace.c leverages the fktrace api available in
100 NetBSD. filemon_ktrace.c can hopefully form the basis for
101 adding support for other tracing mechanisms such as strace on
103 o meta.c: when target is out-of-date per normal make rules
104 record value of .OODATE in meta file.
106 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net>
109 Merge with NetBSD make, pick up
110 o parse.c: don't pass NULL to realpath(3)
111 some versions cannot handle it.
113 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net>
116 Merge with NetBSD make, pick up
117 o parse.c: ParseDoDependency: free paths rather than assert
119 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net>
123 * configure.in: add --without-makefile to avoid generating
124 makefile and make-bootstrap.sh
126 * include Makefile.inc if it exists
128 * Use Makefile and Makefile.config.in in unit-tests
129 so we can use just: make obj && make && make test
130 when bmake is already available.
131 We add --without-makefile to CONFIGURE_ARGS in this case.
133 * tweak bsd.after-import.mk (captures Makefile.config etc
134 after import to FreeBSD for example) to cope with all the above.
136 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net>
139 Merge with NetBSD make, pick up
140 o parse.c: ParseVErrorInternal use .PARSEDIR
141 and apply if relative, and then use .PARSEFILE
142 for consistent result.
144 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net>
147 Merge with NetBSD make, pick up
148 o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR
150 o var.c: avoid SEGFAULT in .unexport-env
151 when MAKELEVEL is not set
153 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net>
156 Merge with NetBSD make, pick up
157 o fix for unit-tests/varquote.mk on Debian
159 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net>
162 Merge with NetBSD make, pick up
164 o dir.c: cleanup caching of stats
166 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net>
168 * Makefile.config.in: use += where it makes sense.
170 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
173 Merge with NetBSD make, pick up
174 o job.c: skip polling job token pipe
176 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
179 Merge with NetBSD make, pick up
180 o parse.c: be more cautious about detecting depenency line
181 rather than sysV style include.
183 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net>
186 Merge with NetBSD make, pick up
187 o parse.c: avoid calling sysconf for every call to loadfile
189 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
192 Merge with NetBSD make, pick up
193 o var.c: Var_Set handle NULL value anytime.
195 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net>
198 Merge with NetBSD make, pick up
199 o parse.c: do not treat .info as warning with -W
201 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net>
204 Merge with NetBSD make, pick up
205 o var.c: Var_Append use Var_Set if var not previously set
206 so that VAR_CMD is handled correctly.
207 Add a suitable unit-test.
209 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
211 * VERSION (_MAKE_VERSION): 20171126
213 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__
214 since AC_TRY_COMPILE puts input inside main()
215 which upsets modern compilers.
217 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net>
220 Merge with NetBSD make, pick up
221 o var.c: do not append to variable set on command line
222 add unit-test to catch this.
224 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>
227 Merge with NetBSD make, pick up
228 o main.c: ignore empty MAKEOBJDIR
230 * Makefile.config.in:
231 make @prefix@ @machine*@ and @default_sys_path@ defaults.
233 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>
237 * unit-tests/dotwait.mk: redirect stderr through pipe for more
238 consistent result on some platforms.
240 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>
242 * machine.sh: entry for AIX
244 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
246 * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
247 to a file that can be included by configure as well as make.
248 This allows configure to set set _MAKE_VERSION in make-bootstrap.sh
250 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>
252 * Makefile (_MAKE_VERSION): 20170810
253 Merge with NetBSD make, pick up
254 o meta.c: if target is in subdir we only need subdir name in
257 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
259 * Makefile (_MAKE_VERSION): 20170720
260 Merge with NetBSD make, pick up
261 o compat.c: pass SIGINT etc onto child and wait for it to exit
262 before we self-terminate.
264 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
266 * Makefile (_MAKE_VERSION): 20170711
267 forgot to update after merge on 20170708 ;-)
268 o main.c: refactor to reduce size of main function.
269 add -v option to always fully expand values.
270 o meta.c: ensure command output in meta file has ending newline
271 even when filemon not being used.
272 When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
273 pathname via ':L' since any ':' in pathname breaks that.
274 Instead set a '${.p.}' to pathname in the target context and
277 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
279 * Makefile (_MAKE_VERSION): 20170510
280 Merge with NetBSD make, pick up
281 o main.c: Main_SetObjdir: ensure buf2 is in scope
283 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net>
285 * Makefile (_MAKE_VERSION): 20170505
288 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
290 * parse.c: not everyone has stdint.h
292 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net>
294 * Makefile (_MAKE_VERSION): 20170501
297 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
299 * Makefile (_MAKE_VERSION): 20170421
300 Merge with NetBSD make, pick up
301 o str.c: Str_Match: fix closure tests for [^] and add unit-test.
303 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
305 * Makefile (_MAKE_VERSION): 20170420
306 Merge with NetBSD make, pick up
307 o main.c: only use -C arg "as is" if it contains no
310 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
312 * Makefile (_MAKE_VERSION): 20170418
313 Merge with NetBSD make, pick up
314 o main.c: fix Main_SetObjdir() for relative paths (eg obj).
316 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net>
318 * Makefile (_MAKE_VERSION): 20170417
319 Merge with NetBSD make, pick up
320 o fixes a number of coverity complaints
321 - check return value of fseek, fcntl
322 - plug memory leak in Dir_FindFile, Var_LoopExpand,
323 JobPrintCommand, ParseTraditionalInclude
324 - use bmake_malloc() where NULL is not tollerated
325 - use MAKE_ATTR_UNUSED rather that kludges like
326 return(unused ? 0 : 0)
327 - use purge_cached_realpaths() rather than abuse cached_realpath()
329 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net>
331 * Makefile (_MAKE_VERSION): 20170413
332 Merge with NetBSD make, pick up
333 o main.c: when setting .OBJDIR ignore '$' in paths.
335 * job.c: use MALLOC_OPTIONS to set malloc_options.
337 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
339 * Makefile (_MAKE_VERSION): 20170411
340 Merge with NetBSD make, pick up
341 o str.c: Str_Match: allow [^a-z] to behave as expected.
343 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
345 * Makefile (_MAKE_VERSION): 20170326
346 Merge with NetBSD make, pick up
347 o main.c: purge relative paths from realpath cache when .OBJDIR
350 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net>
352 * Makefile (_MAKE_VERSION): 20170311
353 Merge with NetBSD make, pick up
354 o main.c: only use -C arg "as is" if it starts with '/'.
356 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net>
358 * Makefile (_MAKE_VERSION): 20170301
359 Merge with NetBSD make, pick up
360 o main.c: use -C arg "as is" rather than getcwd()
361 if they identify the same directory.
362 o parse.c: ensure loadfile buffer is \n terminated in non-mmap case
364 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net>
366 * Makefile (_MAKE_VERSION): 20170201
367 Merge with NetBSD make, pick up
368 o var.c: allow :_=var and avoid use of special context.
370 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net>
372 * Makefile (_MAKE_VERSION): 20170130
373 Merge with NetBSD make, pick up
374 o var.c: add :range and :_
375 o main.c: partially initialize Dir_* before MainParseArgs()
377 If -V, skip Main_ExportMAKEFLAGS()
379 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net>
381 * Makefile (_MAKE_VERSION): 20170114
382 Merge with NetBSD make, pick up
383 o var.c: allow specifying the utc value used by :{gm,local}time
385 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
387 * Makefile (_MAKE_VERSION): 20161212
388 Merge with NetBSD make, pick up
389 o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.
391 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>
393 * Makefile (_MAKE_VERSION): 20161209
394 Merge with NetBSD make, pick up
395 o main.c: cleanup setting of .OBJDIR
396 o parse.c: avoid coredump from (var)=val
398 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
400 * Makefile (_MAKE_VERSION): 20161126
401 Merge with NetBSD make, pick up
402 o make.c: Make_OODate: report src node name if path not set
404 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
406 * Makefile (_MAKE_VERSION): 20160926
407 Merge with NetBSD make, pick up
408 o support for .DELETE_ON_ERROR: (remove targets that fail)
410 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>
412 * Makefile MAN: tweak .Dt to match ${PROG}
414 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
416 * Makefile (_MAKE_VERSION): 20160818
417 its a neater number; pick up whitespace fixes to man page.
419 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net>
421 * Makefile (_MAKE_VERSION): 20160817
422 Merge with NetBSD make, pick up
423 o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
424 so we can call it before adding entries to missingFiles.
425 Thus we do not track files we have been told to ignore.
427 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net>
429 * Makefile (_MAKE_VERSION): 20160815
430 Merge with NetBSD make, pick up
431 o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
432 pathnames, and skip if the expansion is empty.
433 Useful for dirdeps.mk when checking DIRDEPS_CACHE.
435 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net>
437 * Makefile (_MAKE_VERSION): 20160812
438 Merge with NetBSD make, pick up
439 o meta.c: remove all missingFiles entries that match a deleted
441 o main.c: set .ERROR_CMD if possible.
443 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
445 * Makefile (_MAKE_VERSION): 20160606
446 Merge with NetBSD make, pick up
447 o dir.c: extend mtimes cache to others via cached_stat()
449 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
451 * Makefile (_MAKE_VERSION): 20160604
452 Merge with NetBSD make, pick up
453 o meta.c: missing filemon data is only relevant if we read a
455 Also do not return oodate for a missing metafile if gn->path
458 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
460 * Makefile (_MAKE_VERSION): 20160602
461 Merge with NetBSD make, pick up
462 o cached_realpath(): avoid hitting filesystem more than necessary.
463 o meta.c: refactor need_meta decision, add knobs for
464 missing meta file and filemon data wrt out-of-datedness.
466 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
468 * Makefile (_MAKE_VERSION): 20160528
470 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION
472 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net>
474 * Makefile (_MAKE_VERSION): 20160512
475 Merge with NetBSD make, pick up
476 o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
477 this is useful for gcov builds.
478 o propagate errors from filemon(4).
480 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net>
482 * Makefile (_MAKE_VERSION): 20160509
483 Merge with NetBSD make, pick up
484 o remove use of non-standard types u_int etc.
485 o meta.c: apply realpath() before matching against metaIgnorePaths
487 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net>
489 * Makefile (_MAKE_VERSION): 20160404
490 Merge with NetBSD make, pick up
491 o allow makefile to set .MAKE.JOBS
493 * Makefile (PROG_NAME): use ${_MAKE_VERSION}
495 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net>
497 * Makefile (_MAKE_VERSION): 20160315
498 Merge with NetBSD make, pick up
499 o fix handling of archive members
501 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
503 * Makefile (_MAKE_VERSION): rename variable to avoid interference
504 with checks for ${MAKE_VERSION}
506 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net>
508 * Makefile (MAKE_VERSION): 20160310
509 Merge with NetBSD make, pick up
510 o meta.c: treat missing Read file same as Write, incase we Delete it.
512 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net>
514 * Makefile (MAKE_VERSION): 20160307
515 Merge with NetBSD make, pick up
516 o var.c: fix :ts\nnn to be octal by default.
517 o meta.c: meta_finish() to cleanup memory.
519 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net>
521 * Makefile (MAKE_VERSION): 20160226
522 Merge with NetBSD make, pick up
523 o meta.c: allow meta file for makeDepend if makefiles want it.
525 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net>
527 * var.c: default .MAKE.SAVE_DOLLARS to FALSE
528 for backwards compatability.
530 * Makefile (MAKE_VERSION): 20160220
531 Merge with NetBSD make, pick up
532 o var.c: add knob to control handling of '$$' in :=
534 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net>
536 * Makefile (MAKE_VERSION): 20160218
537 Merge with NetBSD make, pick up
538 o var.c: add .export-literal allows us to fix sys.clean-env.mk
539 post the changes to Var_Subst.
540 Var_Subst now takes flags, and does not consume '$$' in :=
542 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net>
544 * Makefile (MAKE_VERSION): 20160217
545 Merge with NetBSD make, pick up
546 o var.c: preserve '$$' in :=
547 o parse.c: add .dinclude for handling included
548 makefile like .depend
550 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net>
552 * Makefile (MAKE_VERSION): 20151220
553 Merge with NetBSD make, pick up
554 o suff.c: re-initialize suffNull when clearing suffixes.
556 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net>
558 * Makefile (MAKE_VERSION): 20151201
559 Merge with NetBSD make, pick up
560 o cond.c: CondCvtArg: avoid access beyond end of empty buffer.
561 o meta.c: meta_oodate: use lstat(2) for checking link target
562 in case it is a symlink.
563 o var.c: avoid calling brk_string and Var_Export1 with empty
566 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
568 * Makefile (MAKE_VERSION): 20151126
569 Merge with NetBSD make, pick up
570 o parse.c: ParseTrackInput don't access beyond
573 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net>
575 * Makefile (MAKE_VERSION): 20151022
577 * Add support for BSD/OS which lacks inttypes.h
578 and really needs sys/param.h for sys/sysctl.h
579 also 'type' is not a shell builtin.
581 * var.c: eliminate uint32_t and need for inttypes.h
583 * main.c: PrintOnError flush stdout before run .ERROR
585 * parse.c: cope with _SC_PAGESIZE not being defined.
588 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net>
590 * Makefile (MAKE_VERSION): 20151020
591 Merge with NetBSD make, pick up
592 o var.c: fix uninitialized var
594 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net>
596 * var.c: the conditional expressions used with ':?' can be
597 expensive, if already discarding do not evaluate or expand
600 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
602 * Makefile (MAKE_VERSION): 20151010
603 Merge with NetBSD make, pick up
604 o Add Boolean wantit flag to Var_Subst and Var_Parse
605 when FALSE we know we are discarding the result and can
606 skip operations like Cmd_Exec.
608 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
610 * Makefile (MAKE_VERSION): 20151009
611 Merge with NetBSD make, pick up
612 o var.c: don't check for NULL before free()
613 o meta.c: meta_oodate, do not hard code ignore of makeDependfile
615 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
617 * Makefile (MAKE_VERSION): 20150910
618 Merge with NetBSD make, pick up
619 o main.c: with -w print Enter/Leaving messages for objdir too
621 o centralize shell metachar handling
623 * FILES: add metachar.[ch]
625 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
627 * Makefile (MAKE_VERSION): 20150606
628 Merge with NetBSD make, pick up
629 o make.1: document .OBJDIR target
631 2015-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
633 * Makefile (MAKE_VERSION): 20150505
634 Merge with NetBSD make, pick up
635 o cond.c: be strict about lhs of comparison when evaluating .if
636 but less so when called from variable expansion.
637 o unit-tests/cond2.mk: test various error conditions
639 2015-05-04 Simon J. Gerraty <sjg@bad.crufty.net>
641 * machine.sh (MACHINE): Add Bitrig
642 patch from joerg@netbsd.org
644 2015-04-18 Simon J. Gerraty <sjg@bad.crufty.net>
646 * Makefile (MAKE_VERSION): 20150418
647 Merge with NetBSD make, pick up
648 o job.c: use memmove() rather than memcpy()
650 * unit-tests/varshell.mk: SunOS cannot handle the TERMINATED_BY_SIGNAL
653 2015-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
655 * Makefile (MAKE_VERSION): 20150411
656 bump version - only mk/ changes.
658 2015-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
660 * Makefile (MAKE_VERSION): 20150410
661 Merge with NetBSD make, pick up
662 o document different handling of '-' in jobs mode vs compat
663 o fix jobs mode so that '-' only applies to whole job
664 when shell lacks hasErrCtl
665 o meta.c: use separate vars to track lcwd and latestdir (read)
668 2015-04-01 Simon J. Gerraty <sjg@bad.crufty.net>
670 * Makefile (MAKE_VERSION): 20150401
671 Merge with NetBSD make, pick up
672 o meta.c: close meta file in child
674 * Makefile: use BINDIR.bmake if set.
675 Same for MANDIR and SHAREDIR
676 Handy for testing release candidates
677 in various environments.
679 2015-03-26 Simon J. Gerraty <sjg@bad.crufty.net>
681 * move initialization of savederr to block where it is used
682 to avoid spurious warning from gcc5
684 2014-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
686 * Makefile (MAKE_VERSION): 20141111
689 2014-11-05 Simon J. Gerraty <sjg@bad.crufty.net>
691 * Makefile (MAKE_VERSION): 20141105
692 Merge with NetBSD make, pick up
693 o revert major overhaul of suffix handling
694 and POSIX compliance - too much breakage
695 and impossible to make backwards compatible.
696 o we still have the new unit test structure which is ok.
697 o meta.c ensure "-- filemon" is at start of line.
699 2014-09-17 Simon J. Gerraty <sjg@bad.crufty.net>
701 * configure.in: test that result of getconf PATH_MAX is numeric
702 and discard if not. Apparently needed for Hurd.
704 2014-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
706 * Makefile (MAKE_VERSION): 20140830
707 Merge with NetBSD make, pick up
708 o major overhaul of suffix handling
709 o improved POSIX compliance
710 o overhauled unit-tests
712 2014-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
714 * Makefile (MAKE_VERSION): 20140620
715 Merge with NetBSD make, pick up
716 o var.c return varNoError rather than var_Error for ::= modifiers.
718 2014-05-22 Simon J. Gerraty <sjg@bad.crufty.net>
720 * Makefile (MAKE_VERSION): 20140522
721 Merge with NetBSD make, pick up
722 o var.c detect some parse errors.
724 2014-04-05 Simon J. Gerraty <sjg@bad.crufty.net>
726 * Fix spelling errors - patch from Pedro Giffuni
728 2014-02-14 Simon J. Gerraty <sjg@bad.crufty.net>
730 * Makefile (MAKE_VERSION): 20140214
731 Merge with NetBSD make, pick up
733 o use Var_Value to get MAKEOBJDIR[PREFIX]
734 o reduced realloc'ign in brk_string.
735 * configure.in: add a check for compiler supporting __func__
737 2014-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
739 * boot-strap: ignore mksrc=none
741 2014-01-02 Simon J. Gerraty <sjg@bad.crufty.net>
743 * Makefile (DEFAULT_SYS_PATH?): use just ${prefix}/share/mk
745 2014-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
747 * Makefile (MAKE_VERSION): 20140101
748 * configure.in: set bmake_path_max to min(_SC_PATH_MAX,1024)
749 * Makefile.config: defined BMAKE_PATH_MAX to bmake_path_max
750 * make.h: use BMAKE_PATH_MAX if MAXPATHLEN not defined (needed for
752 * configure.in: Add AC_PREREQ and check for
753 sysctl; patch from Andrew Shadura andrewsh at debian.org
755 2013-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
757 * Makefile (MAKE_VERSION): 20131010
758 * lose the const from arg to systcl to avoid problems on older BSDs.
760 2013-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
762 * Makefile (MAKE_VERSION): 20131001
763 Merge with NetBSD make, pick up
764 o main.c: for NATIVE build sysctl to get MACHINE_ARCH from
765 hw.machine_arch if necessary.
766 o meta.c: meta_oodate - need to look at src of Link and target
768 * main.c: check that CTL_HW and HW_MACHINE_ARCH exist.
769 provide __arraycount() if needed.
771 2013-09-04 Simon J. Gerraty <sjg@bad.crufty.net>
773 * Makefile (MAKE_VERSION): 20130904
774 Merge with NetBSD make, pick up
775 o Add VAR_INTERNAL context, so that internal setting of
776 MAKEFILE does not override value set by makefiles.
778 2013-09-02 Simon J. Gerraty <sjg@bad.crufty.net>
780 * Makefile (MAKE_VERSION): 20130902
781 Merge with NetBSD make, pick up
782 o CompatRunCommand: only apply shellErrFlag when errCheck is true
784 2013-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
786 * Makefile (MAKE_VERSION): 20130828
787 Merge with NetBSD make, pick up
788 o Fix VAR :sh = syntax from Will Andrews at freebsd.org
789 o Call Job_SetPrefix() from Job_Init() so makefiles have
790 opportunity to set .MAKE.JOB.PREFIX
792 2013-07-30 Simon J. Gerraty <sjg@bad.crufty.net>
794 * Makefile (MAKE_VERSION): 20130730
795 Merge with NetBSD make, pick up
796 o Allow suppression of --- job -- tokens by setting
797 .MAKE.JOB.PREFIX empty.
799 2013-07-16 Simon J. Gerraty <sjg@bad.crufty.net>
801 * Makefile (MAKE_VERSION): 20130716
802 Merge with NetBSD make, pick up
803 o number of gmake compatibility tweaks
804 -w for gmake style entering/leaving messages
805 if .MAKE.LEVEL > 0 indicate it in progname "make[1]" etc.
806 handle MAKEFLAGS containing only letters.
807 o when overriding a GLOBAL variable on the command line,
808 delete it from GLOBAL context so -V doesn't show the wrong
811 2013-07-06 Simon J. Gerraty <sjg@bad.crufty.net>
813 * configure.in: We don't need MAKE_LEVEL_SAFE anymore.
815 * Makefile (MAKE_VERSION): 20130706
816 Merge with NetBSD make, pick up
817 o Shell_Init(): export shellErrFlag if commandShell hasErrCtl is
818 true so that CompatRunCommand() can use it, to ensure
819 consistent behavior with jobs mode.
820 o use MAKE_LEVEL_ENV to define the variable to propagate
821 .MAKE.LEVEL - currently set to MAKELEVEL (same as gmake).
822 o meta.c: use .MAKE.META.IGNORE_PATHS to allow customization of
825 2013-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
827 * Makefile (MAKE_VERSION): 20130604
828 Merge with NetBSD make, pick up
829 o job.c: JobCreatePipe: do fcntl() after any tweaking of fd's
830 to avoid leaking descriptors.
832 2013-05-28 Simon J. Gerraty <sjg@bad.crufty.net>
834 * Makefile (MAKE_VERSION): 20130528
835 Merge with NetBSD make, pick up
836 o var.c: cleanup some left-overs in VarHash()
838 2013-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
840 * Makefile (MAKE_VERSION): 20130520
841 generate manifest from component FILES rather than have to
842 update FILES when mk/FILES changes.
844 2013-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
846 * Makefile (MAKE_VERSION): 20130518
847 Merge with NetBSD make, pick up
848 o suff.c: don't skip all processsing for .PHONY targets
849 else wildcard srcs do not get expanded.
850 o var.c: expand name of variable to delete if necessary.
852 2013-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
854 * Makefile (MAKE_VERSION): 20130330
855 Merge with NetBSD make, pick up
856 o meta.c: refine the handling of .OODATE in commands.
857 Rather than suppress command comparison for the entire script
858 as though .NOMETA_CMP had been used, only suppress it for the
860 This allows something like ${.OODATE:M.NOMETA_CMP} to be used to
861 suppress comparison of a command without otherwise affecting it.
862 o make.1: document that
864 2013-03-22 Simon J. Gerraty <sjg@bad.crufty.net>
866 * Makefile (MAKE_VERSION): 20130321
867 yes, not quite right but its a cooler number.
868 Merge with NetBSD make, pick up
869 o parse.c: fix ParseGmakeExport to be portable
871 * meta.c: call meta_init() before makefiles are read and if built
872 with filemon support set .MAKE.PATH_FILEMON to _PATH_FILEMON
873 this let's makefiles test for support.
874 Call meta_mode_init() to process .MAKE.MODE.
876 2013-03-13 Simon J. Gerraty <sjg@bad.crufty.net>
878 * Makefile (MAKE_VERSION): 20130305
879 Merge with NetBSD make, pick up
880 o run .STALE: target when a dependency from .depend is missing.
881 o job.c: add Job_RunTarget() for the above and .BEGIN
883 2013-03-03 Simon J. Gerraty <sjg@bad.crufty.net>
885 * Makefile (MAKE_VERSION): 20130303
886 Merge with NetBSD make, pick up
887 o main.c: set .MAKE.OS to utsname.sysname
888 o job.c: more checks for read and poll errors
889 o var.c: lose VarChangeCase() saves 4% time
891 2013-03-02 Simon J. Gerraty <sjg@bad.crufty.net>
893 * boot-strap: remove MAKEOBJDIRPREFIX from environment since we
894 want to use MAKEOBJDIR
896 2013-01-27 Simon J. Gerraty <sjg@bad.crufty.net>
898 * Merge with NetBSD make, pick up
899 o make.1: more info on how shell commands are handled.
900 o job.c,main.c: detect write errors to job pipes.
902 2013-01-25 Simon J. Gerraty <sjg@bad.crufty.net>
904 * Makefile (MAKE_VERSION): 20130123
905 Merge with NetBSD make, pick up
906 o meta.c: if script uses .OODATE and meta_oodate() decides
907 rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
908 o var.c: in debug output indicate which variabale modifiers
910 o remove Check_Cwd logic the makefiles have been fixed.
912 2012-12-12 Simon J. Gerraty <sjg@bad.crufty.net>
914 * makefile.in: add a simple makefile for folk who insist on
915 ./configure; make; make install
916 it just runs boot-strap
917 * include mk/* to accommodate the above
918 * boot-strap: re-work to accommodate the above
919 mksrc defaults to $Mydir/mk
920 allow op={configure,build,install,clean,all}
921 add options to facilitate install
922 * Makefile.config.in: just the bits set by configure
923 * Makefile: bump version to 20121212
924 abandon Makefile.in (NetBSD Makefile)
925 leverage mk/* instead
926 * configure.in: ensure srcdir is absolute
928 2012-11-11 Simon J. Gerraty <sjg@bad.crufty.net>
930 * Makefile.in (MAKE_VERSION): 20121111
931 fix generation of bmake.cat1
933 2012-11-09 Simon J. Gerraty <sjg@bad.crufty.net>
935 * Makefile.in (MAKE_VERSION): 20121109
936 Merge with NetBSD make, pick up
937 o make.c: MakeBuildChild: return 0 so search continues if a
938 .ORDER dependency is detected.
939 o unit-tests/order: test the above
941 2012-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
943 * Makefile.in (MAKE_VERSION): 20121102
944 Merge with NetBSD make, pick up
945 o cond.c: allow cond_state[] to grow.
946 In meta mode with a very large tree, we can hit the limit
947 while processing dirdeps.
949 2012-10-25 Simon J. Gerraty <sjg@bad.crufty.net>
951 * Makefile.in: we need to use ${srcdir} not ${.CURDIR}
953 2012-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
955 * Makefile.in (MAKE_VERSION): 20121010
956 o protect syntax that only bmake parses correctly.
957 o remove auto setting of FORCE_MACHINE, use configure's
958 --with-force-machine=whatever if that is desired.
960 2012-10-08 Simon J. Gerraty <sjg@bad.crufty.net>
962 * Makefile.in: do not lose history from make.1 when generating bmake.1
964 2012-10-07 Simon J. Gerraty <sjg@bad.crufty.net>
966 * Makefile.in (MAKE_VERSION): 20121007
967 Merge with NetBSD make, pick up
968 o compat.c: ignore empty commands - same as jobs mode.
969 o make.1: document meta chars that cause use of shell
971 2012-09-11 Simon J. Gerraty <sjg@bad.crufty.net>
973 * Makefile.in (MAKE_VERSION): bump version to 20120911
974 * bsd.after-import.mk: include Makefile.inc early and allow it to
977 2012-08-31 Simon J. Gerraty <sjg@bad.crufty.net>
979 * Makefile.in (MAKE_VERSION): bump version to 20120831
980 Merge with NetBSD make, pick up
981 o cast sizeof() to int for comparison
984 2012-08-30 Simon J. Gerraty <sjg@bad.crufty.net>
986 * Makefile.in (MAKE_VERSION): bump version to 20120830
987 Merge with NetBSD make, pick up
988 o .MAKE.EXPAND_VARIABLES knob can control default behavior of -V
989 o debug flag -dV causes -V to show raw value regardless.
991 2012-07-05 Simon J. Gerraty <sjg@bad.crufty.net>
993 * bsd.after-import.mk (after-import): ensure unit-tests/Makefile
996 2012-07-04 Simon J. Gerraty <sjg@bad.crufty.net>
998 * Makefile.in (MAKE_VERSION): bump version to 20120704
999 Merge with NetBSD make, pick up
1000 o Job_ParseShell should call Shell_Init if it has been
1002 * Makefile.in: set USE_META based on configure result.
1003 also .PARSEDIR is safer indicator of bmake.
1005 2012-06-26 Simon J. Gerraty <sjg@bad.crufty.net>
1007 * Makefile.in: bump version to 20120626
1008 ensure CPPFLAGS is in CFLAGS
1009 * meta.c: avoid nested externs
1010 * bsd.after-import.mk: avoid ${.CURDIR}/Makefile as target
1012 2012-06-20 Simon J. Gerraty <sjg@bad.crufty.net>
1014 * Makefile.in (MAKE_VERSION): bump version to 20120620
1015 Merge with NetBSD make, pick up
1016 o make_malloc.c: avoid including make_malloc.h again
1018 * Makefile.in: avoid bmake only syntax or protect with
1019 .if defined(.MAKE.LEVEL)
1020 * bsd.after-import.mk: replace .-include with .sinclude
1021 ensure? SRCTOP gets a value
1022 * configure.in: look for filemon.h in /usr/include/dev/filemon first.
1024 2012-06-19 Simon J. Gerraty <sjg@bad.crufty.net>
1026 * Makefile.in (MAKE_VERSION): bump version to 20120612
1027 Merge with NetBSD make, pick up
1028 o use MAKE_ATTR_* rather than those defined by cdefs.h or compiler
1029 for greater portability.
1030 o unit-tests/forloop: check that .for works as expected wrt
1031 number of times and with "quoted strings".
1033 2012-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1035 * Makefile.in (MAKE_VERSION): bump version to 20120606
1036 Merge with NetBSD make, pick up
1037 o compat.c: use kill(2) rather than raise(3).
1038 * configure.in: look for sys/dev/filemon
1039 * bsd.after-import.mk: add a .-include "Makefile.inc" to Makefile
1040 and pass BOOTSTRAP_XTRAS to boot-strap.
1042 2012-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1044 * Makefile.in (MAKE_VERSION): bump version to 20120604
1045 Merge with NetBSD make, pick up
1046 o util.c and var.c share same var for tracking if environ
1047 has been reallocated.
1048 o util.c provide getenv with setenv.
1049 * Add MAKE_LEVEL_SAFE as an alternate means of passing MAKE_LEVEL
1050 when the shell actively strips .MAKE.* from the environment.
1051 We still refer to the variable always as .MAKE.LEVEL
1052 * util.c fix bug in findenv() was finding prefix of name.
1053 * compat.c: re-raising SIGINT etc after running .INTERRUPT
1054 results in more reliable termination of all activity on many
1057 2012-06-02 Simon J. Gerraty <sjg@bad.crufty.net>
1059 * Makefile.in (MAKE_VERSION): bump version to 20120602
1060 Merge with NetBSD make, pick up
1061 o for.c: handle quoted items in .for list
1063 2012-05-30 Simon J. Gerraty <sjg@bad.crufty.net>
1065 * Makefile.in (MAKE_VERSION): bump version to 20120530
1066 Merge with NetBSD make, pick up
1067 o compat.c: ignore empty command.
1069 2012-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
1071 * Makefile.in (MAKE_VERSION): bump version to 20120524
1072 * FILES: add bsd.after-import.mk:
1073 A simple means of integrating bmake into a BSD build system.
1075 2012-05-20 Simon J. Gerraty <sjg@bad.crufty.net>
1077 * Makefile.in (MAKE_VERSION): bump version to 20120520
1078 Merge with NetBSD make, pick up
1079 o increased limit for nested conditionals.
1081 2012-05-18 Simon J. Gerraty <sjg@bad.crufty.net>
1083 * Makefile.in (MAKE_VERSION): bump version to 20120518
1084 Merge with NetBSD make, pick up
1085 o use _exit(2) in signal hanlder
1086 o Don't use the [dir] cache when building nodes that might have
1087 changed since the last exec.
1088 o Avoid nested extern declaration warnings.
1090 2012-04-27 Simon J. Gerraty <sjg@bad.crufty.net>
1092 * meta.c (fgetLine): avoid %z - not portable.
1093 * parse.c: Since we moved include of sys/mman.h
1094 and def's of MAP_COPY etc. we got dups from a merge.
1096 2012-04-24 Simon J. Gerraty <sjg@bad.crufty.net>
1098 * Makefile.in (MAKE_VERSION): bump version to 20120420
1099 Merge with NetBSD make, pick up
1100 o restore duplicate supression in .MAKE.MAKEFILES
1101 runtime saving can be significant.
1102 o Var_Subst() uses Buf_DestroyCompact() to reduce memory
1103 consumption up to 20%.
1105 2012-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1107 * Makefile.in (MAKE_VERSION): bump version to 20120420
1108 Merge with NetBSD make, pick up
1109 o remove duplicate supression in .MAKE.MAKEFILES
1110 o improved dir cache behavior
1111 o gmake'ish export command
1113 2012-03-25 Simon J. Gerraty <sjg@bad.crufty.net>
1115 * Makefile.in (MAKE_VERSION): bump version to 20120325
1116 Merge with NetBSD make, pick up
1117 o fix parsing of :[#] in conditionals.
1119 2012-02-10 Simon J. Gerraty <sjg@bad.crufty.net>
1121 * Makefile.in: replace use of .Nx in bmake.1 with NetBSD
1122 since some systems cannot cope with .Nx <version>
1124 2011-11-14 Simon J. Gerraty <sjg@bad.crufty.net>
1126 * Makefile.in (MAKE_VERSION): bump version to 20111111
1127 Merge with NetBSD make, pick up
1128 o debug output for .PARSEDIR and .PARSEFILE
1130 2011-10-10 Simon J. Gerraty <sjg@bad.crufty.net>
1132 * Makefile.in (MAKE_VERSION): bump version to 20111010
1134 2011-10-09 Simon J. Gerraty <sjg@bad.crufty.net>
1136 * boot-strap: check for an expected file in the dirs we look for.
1137 * make-bootstrap.sh: pass on LDSTATIC
1139 2011-10-01 Simon J. Gerraty <sjg@bad.crufty.net>
1141 * Makefile.in (MAKE_VERSION): bump version to 20111001
1142 Merge with NetBSD make, pick up
1143 o ensure .PREFIX is set for .PHONY
1144 and .TARGET set for .PHONY run via .END
1145 o __dead used consistently
1147 2011-09-10 Simon J. Gerraty <sjg@bad.crufty.net>
1149 * Makefile.in (MAKE_VERSION): 20110909 is a better number ;-)
1151 2011-09-05 Simon J. Gerraty <sjg@bad.crufty.net>
1153 * Makefile.in (MAKE_VERSION): bump version to 20110905
1154 Merge with NetBSD make, pick up
1155 o meta_oodate: ignore makeDependfile
1157 2011-08-28 Simon J. Gerraty <sjg@bad.crufty.net>
1159 * Makefile.in (MAKE_VERSION): bump version to 20110828
1160 Merge with NetBSD make, pick up
1161 o silent=yes in .MAKE.MODE causes meta mode to mark targets
1162 as SILENT if a .meta file is created
1164 2011-08-18 Simon J. Gerraty <sjg@bad.crufty.net>
1166 * Makefile.in (MAKE_VERSION): bump version to 20110818
1167 Merge with NetBSD make, pick up
1168 o in meta mode, if target flagged .META a missing .meta file
1169 means target is out-of-date
1170 o fixes for gcc 4.5 warnings
1171 o simplify job printing code
1173 2011-08-09 Simon J. Gerraty <sjg@bad.crufty.net>
1175 * Makefile.in (MAKE_VERSION): bump version to 20110808
1176 Merge with NetBSD make, pick up
1177 o do not touch OP_SPECIAL targets when doing make -t
1179 2011-06-22 Simon J. Gerraty <sjg@bad.crufty.net>
1181 * Makefile.in (MAKE_VERSION): bump version to 20110622
1182 Merge with NetBSD make, pick up
1183 o meta_oodate detect corrupted .meta file and declare oodate.
1184 * configure.in: add check for setsid
1186 2011-06-07 Simon J. Gerraty <sjg@bad.crufty.net>
1188 * Merge with NetBSD make, pick up
1189 o unit-tests/modts now works on MirBSD
1191 2011-06-04 Simon J. Gerraty <sjg@bad.crufty.net>
1193 * Makefile.in (MAKE_VERSION): bump version to 20110606
1194 Merge with NetBSD make, pick up
1195 o ApplyModifiers: when we parse a variable which is not
1196 the entire modifier string, or not followed by ':', do not
1197 consider it as containing modifiers.
1198 o loadfile: ensure newline at end of mapped file.
1200 2011-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1202 * Makefile.in (MAKE_VERSION): bump version to 20110505
1203 Merge with NetBSD make, pick up
1204 o .MAKE.META.BAILIWICK - list of prefixes which define the scope
1205 of make's control. In meta mode, any generated file within
1206 said bailiwick, which is found to be missing, causes current
1207 target to be out-of-date.
1209 2011-04-11 Simon J. Gerraty <sjg@bad.crufty.net>
1211 * Makefile.in (MAKE_VERSION): bump version to 20110411
1212 Merge with NetBSD make, pick up
1213 o when long modifiers fail to match, check sysV style.
1216 2011-04-10 Simon J. Gerraty <sjg@bad.crufty.net>
1218 * Makefile.in (MAKE_VERSION): bump version to 20110410
1219 Merge with NetBSD make, pick up
1220 o :hash - cheap 32bit hash of value
1221 o :localtime, :gmtime - use value as format string for strftime.
1223 2011-03-30 Simon J. Gerraty <sjg@bad.crufty.net>
1225 * Makefile.in (MAKE_VERSION): bump version to 20110330
1226 mostly because its a cooler version.
1227 Merge with NetBSD make, pick up
1228 o NetBSD tags for meta.[ch]
1229 o job.c call meta_job_finish() after meta_job_error().
1230 o meta_job_error() should call meta_job_finish() to ensure
1231 .meta file is closed, and safe to copy - if .ERROR target wants.
1232 meta_job_finish() is safe to call repeatedly.
1234 2011-03-29 Simon J. Gerraty <sjg@bad.crufty.net>
1236 * unit-tests/modts: use printf if it is a builtin,
1237 to save us from MirBSD
1239 * Makefile.in (MAKE_VERSION): bump version to 20110329
1240 Merge with NetBSD make, pick up
1241 o fix for use after free() in CondDoExists().
1242 o meta_oodate() report extra commands and return earlier.
1244 2011-03-27 Simon J. Gerraty <sjg@bad.crufty.net>
1246 * Makefile.in (MAKE_VERSION): bump version to 20110327
1247 Merge with NetBSD make, pick up
1248 o meta.c, if .MAKE.MODE contains curdirOk=yes
1249 allow creating .meta files in .CURDIR
1250 * boot-strap (TOOL_DIFF): aparently at least on linux distro
1251 formats the output of 'type' differently - so eat any "()"
1253 2011-03-06 Simon J. Gerraty <sjg@bad.crufty.net>
1255 * Makefile.in (MAKE_VERSION): bump version to 20110306
1256 Merge with NetBSD make, pick up
1257 o meta.c, only do getcwd() once
1259 2011-03-05 Simon J. Gerraty <sjg@bad.crufty.net>
1261 * Makefile.in (MAKE_VERSION): bump version to 20110305
1262 Merge with NetBSD make, pick up
1263 o correct sysV substitution handling of empty lhs and variable
1264 o correct exists() check for dir with trailing /
1265 o correct handling of modifiers for non-existant variables
1266 during evaluation of conditionals.
1267 o ensure MAP_FILE is defined.
1268 o meta.c use curdir[] now exported by main.c
1270 2011-02-25 Simon J. Gerraty <sjg@bad.crufty.net>
1272 * Makefile.in (MAKE_VERSION): bump version to 20110225
1273 Merge with NetBSD make, pick up
1274 o fix for incorrect .PARSEDIR when .OBJDIR is re-computed after
1275 makefiles have been read.
1276 o fix example of :? modifier in man page.
1278 2011-02-13 Simon J. Gerraty <sjg@bad.crufty.net>
1280 * Makefile.in (MAKE_VERSION): bump version to 20110214
1281 Merge with NetBSD make, pick up
1282 o meta.c handle realpath() failing when generating meta file
1285 * sigcompat.c: convert to ansi so we can use higher warning levels.
1288 2011-02-07 Simon J. Gerraty <sjg@bad.crufty.net>
1290 * Makefile.in (MAKE_VERSION): bump version to 20110207
1291 Merge with NetBSD make, pick up
1292 o fix for bug in meta mode.
1294 2011-01-03 Simon J. Gerraty <sjg@bad.crufty.net>
1296 * parse.c: SunOS 5.8 at least does not have MAP_FILE
1298 2011-01-01 Simon J. Gerraty <sjg@bad.crufty.net>
1300 * Makefile.in (MAKE_VERSION): bump version to 20110101
1301 Merge with NetBSD make, pick up
1302 o use mmap(2) if available, for reading makefiles
1304 2010-12-15 Simon J. Gerraty <sjg@bad.crufty.net>
1306 * Makefile.in (MAKE_VERSION): bump version to 20101215
1307 Merge with NetBSD make, pick up
1308 o ensure meta_job_error() does not report a previous .meta file
1311 2010-12-10 Simon J. Gerraty <sjg@bad.crufty.net>
1313 * Makefile.in (MAKE_VERSION): bump version to 20101210
1314 Merge with NetBSD make, pick up
1315 o meta_oodate: track cwd per process, and only consider target
1316 out-of-date if missing file is outside make's CWD.
1317 Ignore files in /tmp/ etc.
1318 o to ensure unit-tests results match, need to control LC_ALL
1320 o fix for parsing bug in var.c
1322 2010-11-26 Simon J. Gerraty <sjg@bad.crufty.net>
1324 * Makefile.in (MAKE_VERSION): bump version to 20101126
1325 Merge with NetBSD make, pick up
1326 o if stale dependency is an IMPSRC, search via .PATH
1327 o meta_oodate: if a referenced file is missing, target is
1329 o meta_oodate: if a target uses .OODATE in its commands,
1330 it (.OODATE) needs to be recomputed.
1331 o keep a pointer to youngest child node, rather than just its
1334 2010-11-02 Simon J. Gerraty <sjg@bad.crufty.net>
1336 * Makefile.in (MAKE_VERSION): bump version to 20101101
1338 2010-10-16 Simon J. Gerraty <sjg@bad.crufty.net>
1340 * machine.sh: like os.sh,
1341 allow for uname -p producing useless drivel
1343 2010-09-13 Simon J. Gerraty <sjg@bad.crufty.net>
1345 * boot-strap: document configure knobs for meta and filemon.
1347 * Makefile.in (MAKE_VERSION): bump version to 20100911
1348 Merge with NetBSD make, pick up
1349 o meta.c - meta mode
1351 * make-bootstrap.sh.in: handle meta.c
1352 * configure.in: add knobs for use_meta and filemon_h
1353 also, look for dirname, str[e]sep and strlcpy
1354 * util.c: add simple err[x] and warn[x]
1356 2010-08-08 Simon J. Gerraty <sjg@bad.crufty.net>
1358 * boot-strap (TOOL_DIFF): set this to ensure tests use
1359 the same version of diff that configure tested
1361 * Makefile.in (MAKE_VERSION): bump version to 20100808
1362 Merge with NetBSD make, pick up
1363 o in jobs mode, when we discover we cannot make something,
1364 call PrintOnError before exit.
1366 2010-08-06 Simon J. Gerraty <sjg@bad.crufty.net>
1368 * Makefile.in (MAKE_VERSION): bump version to 20100806
1369 Merge with NetBSD make, pick up
1370 o formatting fixes for ignored errors
1371 o ensure jobs are cleaned up regardless of where wait() was called.
1373 2010-06-28 Simon J. Gerraty <sjg@bad.crufty.net>
1375 * Makefile.in (MAKE_VERSION): bump version to 20100618
1376 * os.sh (MACHINE_ARCH): watch out for drivel from uname -p
1378 2010-06-16 Simon J. Gerraty <sjg@bad.crufty.net>
1380 * Makefile.in (MAKE_VERSION): bump version to 20100616
1381 Merge with NetBSD make, pick up
1383 o call PrintOnError from JobFinish when we detect an error we
1386 2010-06-06 Simon J. Gerraty <sjg@bad.crufty.net>
1388 * Makefile.in (MAKE_VERSION): bump version to 20100606
1389 Merge with NetBSD make, pick up
1392 2010-06-05 Simon J. Gerraty <sjg@bad.crufty.net>
1394 * Makefile.in (MAKE_VERSION): bump version to 20100605
1395 Merge with NetBSD make, pick up
1396 o use bmake_signal() which is a wrapper around sigaction()
1397 in place of signal()
1398 o add .export-env to allow exporting variables to environment
1399 without tracking (so no re-export when the internal value is
1402 2010-05-24 Simon J. Gerraty <sjg@bad.crufty.net>
1404 * Makefile.in (MAKE_VERSION): bump version to 20100524
1405 Merge with NetBSD make, pick up
1406 o fix for .info et al being greedy.
1408 2010-05-23 Simon J. Gerraty <sjg@bad.crufty.net>
1410 * Makefile.in (MAKE_VERSION): bump version to 20100520
1411 Merge with NetBSD make, pick up
1412 o back to using realpath on argv[0]
1413 but only if contains '/' and does not start with '/'.
1415 2010-05-10 Simon J. Gerraty <sjg@bad.crufty.net>
1417 * boot-strap: use absolute path for bmake when running tests.
1419 * Makefile.in (MAKE_VERSION): bump version to 20100510
1420 Merge with NetBSD make, pick up
1421 o revert use of realpath on argv[0]
1422 too many corner cases.
1423 o print MAKE_PRINT_VAR_ON_ERROR before running .ERROR target.
1425 2010-05-05 Simon J. Gerraty <sjg@bad.crufty.net>
1427 * Makefile.in (MAKE_VERSION): bump version to 20100505
1428 Merge with NetBSD make, pick up
1429 o fix for missed SIGCHLD when compiled with SunPRO
1430 actually for bmake, defining FORCE_POSIX_SIGNALS would have
1433 2010-04-30 Simon J. Gerraty <sjg@bad.crufty.net>
1435 * Makefile.in (MAKE_VERSION): bump version to 20100430
1436 Merge with NetBSD make, pick up
1437 o fflush stdout before writing to stdout
1439 2010-04-23 Simon J. Gerraty <sjg@bad.crufty.net>
1441 * Makefile.in (MAKE_VERSION): bump version to 20100423
1442 Merge with NetBSD make, pick up
1443 o updated unit tests for Haiku (this time for sure).
1444 * boot-strap: based on patch from joerg
1445 honor --with-default-sys-path better.
1446 * boot-strap: remove mention of --with-prefix-sys-path
1448 2010-04-22 Simon J. Gerraty <sjg@bad.crufty.net>
1450 * Makefile.in (MAKE_VERSION): bump version to 20100422
1451 * Merge with NetBSD make, pick up
1452 o fix for vfork() on Darwin.
1453 o fix for bogus $TMPDIR.
1454 o set .MAKE.MODE=compat for -B
1455 o set .MAKE.JOBS=max_jobs for -j max_jobs
1456 o allow unit-tests to run without any *.mk
1457 o unit-tests/modmisc be more conservative in dirs presumed to exist.
1458 * boot-strap: ignore /usr/share/mk except on NetBSD.
1459 * unit-tests/Makefile.in: set LANG=C when running unit-tests to
1460 ensure sort(1) behaves as expected.
1462 2010-04-21 Simon J. Gerraty <sjg@bad.crufty.net>
1464 * boot-strap: add FindHereOrAbove so we can use -m .../mk
1466 2010-04-20 Simon J. Gerraty <sjg@bad.crufty.net>
1468 * Makefile.in (MAKE_VERSION): bump version to 20100420
1469 * Merge with NetBSD make, pick up
1470 o fix for variable realpath() behavior.
1471 we have to stat(2) the result to be sure.
1472 o fix for .export (all) when nested vars use :sh
1474 2010-04-14 Simon J. Gerraty <sjg@bad.crufty.net>
1476 * Makefile.in (MAKE_VERSION): bump version to 20100414
1477 * Merge with NetBSD make, pick up
1478 o use realpath to resolve argv[0] (for .MAKE) if needed.
1479 o add realpath from libc.
1480 o add :tA to resolve variable via realpath(3) if possible.
1482 2010-04-08 Simon J. Gerraty <sjg@bad.crufty.net>
1484 * Makefile.in (MAKE_VERSION): bump version to 20100408
1485 * Merge with NetBSD make, pick up
1486 o unit tests for .ERROR, .error
1487 o fix for .ERROR to ensure it cannot be default target.
1489 2010-04-06 Simon J. Gerraty <sjg@bad.crufty.net>
1491 * Makefile.in (MAKE_VERSION): bump version to 20100406
1492 * Merge with NetBSD make, pick up
1493 o fix for compat mode "Error code" going to debug_file.
1494 o fix for .ALLSRC being populated twice.
1495 o support for .info, .warning and .error directives
1496 o .MAKE.MODE to control make's operational mode
1497 o .MAKE.MAKEFILE_PREFERENCE to control the preferred makefile
1499 o .MAKE.DEPENDFILE to control the name of the depend file
1500 o .ERROR target - run on failure.
1502 2010-03-18 Simon J. Gerraty <sjg@bad.crufty.net>
1504 * make-bootstrap.sh.in: extract MAKE_VERSION from Makefile
1506 * os.sh,arch.c: patch for Haiku from joerg at netbsd
1508 2010-03-17 Simon J. Gerraty <sjg@bad.crufty.net>
1510 * Makefile.in (MAKE_VERSION): bump version to 20100222
1511 * Merge with NetBSD make, pick up
1512 o better error msg for .for with mutiple inter vars
1515 o use make-bootstrap.sh from joerg at netbsd
1516 to avoid the need for a native make when bootstrapping.
1517 o add "" everywhere ;-)
1518 o if /usr/share/tmac/andoc.tmac exists install nroff bmake.1
1519 otherwise the pre-formated version.
1521 2010-01-04 Simon J. Gerraty <sjg@bad.crufty.net>
1523 * Makefile.in (MAKE_VERSION): bump version to 20100102
1524 * Merge with NetBSD make, pick up:
1527 2009-11-18 Simon J. Gerraty <sjg@void.crufty.net>
1529 * Makefile.in (MAKE_VERSION): bump version to 20091118
1530 * Merge with NetBSD make, pick up:
1532 o report lines that start with '.' and should have ':'
1533 (catch typo's of .el*if).
1535 2009-10-30 Simon J. Gerraty <sjg@void.crufty.net>
1537 * configure.in: Ensure that srcdir and mksrc are absolute paths.
1539 2009-10-09 Simon J. Gerraty <sjg@void.crufty.net>
1541 * Makefile.in (MAKE_VERSION): fix version to 20091007
1543 2009-10-07 Simon J. Gerraty <sjg@void.crufty.net>
1545 * Makefile.in (MAKE_VERSION): bump version to 200910007
1546 * Merge with NetBSD make, pick up:
1547 o fix for parsing of :S;...;...; applied to .for loop iterator
1548 appearing in a dependency line.
1550 2009-09-09 Simon J. Gerraty <sjg@void.crufty.net>
1552 * Makefile.in (MAKE_VERSION): bump version to 20090909
1553 * Merge with NetBSD make, pick up:
1554 o fix for -C, .CURDIR and .OBJDIR
1556 o allow share_dir to be set independent of prefix.
1557 o select default share_dir better when prefix ends in $HOST_TARGET
1558 o if FORCE_BSD_MK etc were set, include them in the suggested
1561 2009-09-08 Simon J. Gerraty <sjg@void.crufty.net>
1563 * Makefile.in (MAKE_VERSION): bump version to 20090908
1564 * Merge with NetBSD make, pick up:
1565 o .MAKE.LEVEL for recursion tracking
1566 o fix for :M scanning \:
1568 2009-09-03 Simon J. Gerraty <sjg@void.crufty.net>
1570 * configure.in: Don't -D__EXTENSIONS__ if
1571 AC_USE_SYSTEM_EXTENSIONS says "no".
1573 2009-08-26 Simon J. Gerraty <sjg@void.crufty.net>
1575 * Makefile.in (MAKE_VERSION): bump version to 20090826
1576 Simplify MAKE_VERSION to just the bare date.
1577 * Merge with NetBSD make, pick up:
1578 o -C directory support.
1579 o support for SIGINFO
1580 o use $TMPDIR for temp files.
1581 o child of vfork should be careful about modifying parent's state.
1584 2009-03-26 Simon J. Gerraty <sjg@void.crufty.net>
1586 * Appy some patches for MiNT from David Brownlee
1588 2009-02-26 Simon J. Gerraty <sjg@void.crufty.net>
1590 * Makefile.in (BMAKE_VERSION): bump version to 20090222
1591 * Merge with NetBSD make, pick up:
1592 o Possible null pointer de-ref in Var_Set.
1594 2009-02-08 Simon J. Gerraty <sjg@void.crufty.net>
1596 * Makefile.in (BMAKE_VERSION): bump version to 20090204
1597 * Merge with NetBSD make, pick up:
1598 o bmake_malloc et al moved to their own .c
1599 o Count both () and {} when looking for the end of a :M pattern
1600 o Change 'Buffer' so that it is the actual struct, not a pointer to it.
1601 o strlist.c - functions for processing extendable arrays of pointers to strings.
1602 o ClientData replaced with void *, so const void * can be used.
1603 o New debug flag C for DEBUG_CWD
1605 2008-11-11 Simon J. Gerraty <sjg@void.crufty.net>
1607 * Makefile.in (BMAKE_VERSION): bump version to 20081111
1608 Apply patch from Joerg Sonnenberge to
1610 o remove some redundant checks
1611 o check for emlloc etc only in libutil and require the whole family.
1613 o remove [v]asprintf which is no longer used.
1615 2008-11-04 Simon J. Gerraty <sjg@void.crufty.net>
1617 * Makefile.in (BMAKE_VERSION): bump version to 20081101
1618 * Merge with NetBSD make, pick up:
1619 o util.c: avoid use of putenv() - christos
1621 2008-10-30 Simon J. Gerraty <sjg@void.crufty.net>
1623 * Makefile.in (BMAKE_VERSION): bump version to 20081030
1624 pick up man page tweaks.
1626 2008-10-29 Simon J. Gerraty <sjg@void.crufty.net>
1628 * Makefile.in: move processing of LIBOBJS to after is definition!
1629 thus we'll have getenv.c in SRCS only if needed.
1631 * make.1: add examples of how to use :?
1633 * Makefile.in (BMAKE_VERSION): bump version to 20081029
1634 * Merge with NetBSD make, pick up:
1635 o fix for .END processing with -j
1636 o segfault from Parse_Error when no makefile is open
1637 o handle numeric expressions in any variable expansion
1638 o debug output now defaults to stderr, -dF to change it - apb
1639 o make now uses bmake_malloc etc so that it can build natively
1640 on A/UX - wasn't an issue for bmake, but we want to keep in sync.
1642 2008-09-27 Simon J. Gerraty <sjg@void.crufty.net>
1644 * Makefile.in (BMAKE_VERSION): bump version to 20080808
1645 * Merge with NetBSD make, pick up:
1646 o fix for PR/38840: Pierre Pronchery: make crashes while parsing
1647 long lines in Makefiles
1648 o optimizations for VarQuote by joerg
1649 o fix for PR/38756: dominik: make dumps core on invalid makefile
1651 2008-05-15 Simon J. Gerraty <sjg@void.crufty.net>
1653 * Makefile.in (BMAKE_VERSION): bump version to 20080515
1654 * Merge with NetBSD make, pick up:
1655 o fix skip setting vars in VAR_GLOBAL context, to handle
1656 cases where VAR_CMD is used for other than command line vars.
1658 2008-05-14 Simon J. Gerraty <sjg@void.crufty.net>
1660 * boot-strap (make_version): we may need to look in
1661 $prefix/share/mk for sys.mk
1663 * Makefile.in (BMAKE_VERSION): bump version to 20080514
1664 * Merge with NetBSD make, pick up:
1665 o skip setting vars in VAR_GLOBAL context, when already set in
1666 VAR_CMD which takes precedence.
1668 2008-03-30 Simon J. Gerraty <sjg@void.crufty.net>
1670 * Makefile.in (BMAKE_VERSION): bump version to 20080330
1671 * Merge with NetBSD make, pick up:
1672 o fix for ?= when LHS contains variable reference.
1674 2008-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1676 * merge some patches from NetBSD pkgsrc.
1678 * makefile.boot.in (BOOTSTRAP_SYS_PATH): Allow better control of
1679 the MAKSYSPATH used during bootstrap.
1681 * Makefile.in (BMAKE_VERSION): bump version to 20080215
1682 * Merge with NetBSD make, pick up:
1683 o warn if non-space chars follow 'empty' in a conditional.
1685 2008-01-18 Simon J. Gerraty <sjg@void.crufty.net>
1687 * Makefile.in (BMAKE_VERSION): bump version to 20080118
1688 * Merge with NetBSD make, pick up:
1689 o consider dependencies read from .depend as optional - dsl
1690 o remember when buffer for reading makefile grows - dsl
1691 o add -dl (aka LOUD) - David O'Brien
1693 2007-10-22 Simon J. Gerraty <sjg@void.crufty.net>
1695 * Makefile.in (BMAKE_VERSION): bump version to 20071022
1696 * Merge with NetBSD make, pick up:
1697 o Allow .PATH<suffix> to be used for .include ""
1699 * boot-strap: source default settings from .bmake-boot-strap.rc
1701 2007-10-16 Simon J. Gerraty <sjg@void.crufty.net>
1703 * Makefile.in: fix maninstall on various systems
1704 provided that our man.mk is used.
1705 For non-BSD systems we install the preformatted page
1708 2007-10-15 Simon J. Gerraty <sjg@void.crufty.net>
1710 * boot-strap: make bmake.1 too, so maninstall works.
1712 2007-10-14 Simon J. Gerraty <sjg@void.crufty.net>
1714 * Makefile.in (BMAKE_VERSION): bump version to 20071014
1715 * Merge with NetBSD make, pick up:
1716 o revamped handling of defshell - configure no longer needs to
1717 know the content of the shells array - apb
1718 o stop Var_Subst modifying its input - apb
1719 o avoid calling ParseTrackInput too often - dsl
1721 2007-10-11 Simon J. Gerraty <sjg@void.crufty.net>
1723 * Makefile.in (BMAKE_VERSION): bump version to 20071011
1724 * Merge with NetBSD make, pick up:
1725 o fix Shell_Init for case that _BASENAME_DEFSHELL is absolute path.
1727 * sigcompat.c: some tweaks for HP-UX 11.x based on
1728 patch from Tobias Nygren
1730 * configure.in: update handling of --with-defshell to match
1731 new make behavior. --with-defshell=/usr/xpg4/bin/sh
1732 will now do what one might hope - provided the chosen shell
1733 behaves enough like sh.
1735 2007-10-08 Simon J. Gerraty <sjg@void.crufty.net>
1737 * Makefile.in (BMAKE_VERSION): bump to 20071008
1738 * Merge with NetBSD make, pick up:
1739 o .MAKE.JOB.PREFIX - control the token output before jobs - sjg
1740 o .export/.MAKE.EXPORTED - export of variables - sjg
1741 o .MAKE.MAKEFILES - track all makefiles read - sjg
1742 o performance improvements - dsl
1743 o revamp parallel job scheduling - dsl
1745 2006-07-28 Simon J. Gerraty <sjg@void.crufty.net>
1747 * Makefile.in (BMAKE_VERSION): bump to 20060728
1748 * Merge with NetBSD make, pick up:
1749 o extra debug info during variable and cond processing - sjg
1750 o shell definition now covers newline - rillig
1751 o minor mem leak in PrintOnError - sjg
1753 2006-05-11 Simon J. Gerraty <sjg@void.crufty.net>
1755 * Makefile.in (BMAKE_VERSION): bump to 20060511
1756 * Merge with NetBSD make, pick up:
1757 o more memory leaks - coverity
1758 o possible overflow in ArchFindMember - coverity
1759 o extract variable modifier code out of Var_Parse()
1760 so it can be called recursively - sjg
1761 o unit-tests/moderrs - sjg
1763 2006-04-12 Simon J. Gerraty <sjg@void.crufty.net>
1765 * Makefile.in (BMAKE_VERSION): bump to 20060412
1766 * Merge with NetBSD make, pick up:
1767 o fixes for some memory leaks - coverity
1768 o only read first sys.mk etc when searching sysIncPath - sjg
1770 * main.c (ReadMakefile): remove hack for __INTERIX that prevented
1771 setting ${MAKEFILE} - OBATA Akio
1773 2006-03-18 Simon J. Gerraty <sjg@void.crufty.net>
1775 * Makefile.in (BMAKE_VERSION): bump to 20060318
1776 * Merge with NetBSD make, pick up:
1777 o cleanup of job.c to remove remote handling, distcc is more
1778 useful and this code was likely bit-rotting - dsl
1779 o fix for :P modifier - sjg
1780 * boot-strap: set default prefix to something reasonable
1783 2006-03-01 Simon J. Gerraty <sjg@void.crufty.net>
1785 * Makefile.in (BMAKE_VERSION): bump to 20060301
1786 * Merge with NetBSD make, pick up:
1787 o make .WAIT apply recursively, document and test case - apb
1788 o allow variable modifiers in a variable appear anywhere in
1789 modifier list, document and test case - sjg
1791 2006-02-22 Simon J. Gerraty <sjg@void.crufty.net>
1793 * Makefile.in (BMAKE_VERSION): bump to 20060222
1794 * Merge with NetBSD make, pick up:
1795 o improved job token handling - dsl
1796 o SIG_DFL the correct signal before exec - dsl
1797 o more debug info during parsing - dsl
1798 o allow variable modifiers to be specified via variable - sjg
1799 * boot-strap: explain why we died if no mksrc
1801 2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
1803 * Makefile.in (BMAKE_VERSION): bump to 20051105
1804 * configure.in: always set default_sys_path
1805 default is ${prefix}/share/mk
1806 - remove prefix_sys_path, anyone wanting more than above
1807 needs to set it manually.
1809 2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
1811 * boot-strap: make this a bit easier for pkgsrc folk.
1812 bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
1813 'mips' while pkgsrc wants 'mipseb' or 'mipsel'
1815 2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
1817 * Makefile.in (BMAKE_VERSION): bump to 20051102
1818 * job.c (JobFinish): fix likely ancient merge lossage
1819 fix from Todd Vierling.
1820 * boot-strap (srcdir): allow setting mksrc=none
1822 2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
1824 * Makefile.in (BMAKE_VERSION): bump to 20051031
1825 * ranlib.h: skip on OSF too.
1828 2005-10-10 Simon J. Gerraty <sjg@void.crufty.net>
1830 * Makefile.in (BMAKE_VERSION): bump to 20051002
1833 2005-10-09 Simon J. Gerraty <sjg@void.crufty.net>
1835 * Makefile.in (BMAKE_VERSION): bump to 20051001
1836 support for UnixWare and some other systems,
1837 based on patches from pkgsrc/bootstrap
1839 2005-09-03 Simon J. Gerraty <sjg@void.crufty.net>
1841 * Makefile.in (BMAKE_VERSION): bump to 20050901
1842 * Merge with NetBSD make, pick up:
1843 o possible parse error causing us to wander off.
1845 2005-06-06 Simon J. Gerraty <sjg@void.crufty.net>
1847 * Makefile.in (BMAKE_VERSION): bump to 20050606
1848 * Merge with NetBSD make, pick up:
1849 o :0x modifier for randomizing a list
1850 o fixes for a number of -Wuninitialized issues.
1852 2005-05-30 Simon J. Gerraty <sjg@void.crufty.net>
1854 * Makefile.in (BMAKE_VERSION): bump to 20050530
1855 * Merge with NetBSD make, pick up:
1856 o Handle dependencies for .BEGIN, .END and .INTERRUPT
1858 * README: was seriously out of date.
1860 2005-03-22 Simon J. Gerraty <sjg@void.crufty.net>
1862 * Important to use .MAKE rather than MAKE.
1864 2005-03-15 Simon J. Gerraty <sjg@void.crufty.net>
1866 * Makefile.in (BMAKE_VERSION): bump to 20050315
1867 * Merge with NetBSD make, pick up:
1868 o don't mistake .elsefoo for .else
1869 o use suffix-specific search path correctly
1870 o bunch of style nits
1872 2004-05-11 Simon J. Gerraty <sjg@void.crufty.net>
1875 o ensure that args to --src and --with-mksrc
1876 are resolved before giving them to configure.
1877 o add -o "objdir" so that builder can control it,
1878 default is $OS as determined by os.sh
1879 o add -q to suppress all the install instructions.
1881 2004-05-08 Simon J. Gerraty <sjg@void.crufty.net>
1883 * Remove __IDSTRING()
1885 * Makefile.in (BMAKE_VERSION): bump to 20040508
1886 * Merge with NetBSD make, pick up:
1888 - remove '-e' from compat mode
1889 - add support for '+' command-line prefix.
1890 o fix for handling '--' on command-line.
1891 o fix include in lst.lib/lstInt.h to simplify '-I's
1892 o we also picked up replacement of MAKE_BOOTSTRAP
1893 with !MAKE_NATIVE which is a noop, but possibly confusing.
1895 2004-04-14 Simon J. Gerraty <sjg@void.crufty.net>
1897 * Makefile.in (BMAKE_VERSION): bump to 20040414
1898 * Merge with NetBSD make, pick up:
1899 o allow quoted strings on lhs of conditionals
1900 o issue warning when extra .else is seen
1901 o print line numer when errors encountered during parsing from
1904 2004-02-20 Simon J. Gerraty <sjg@void.crufty.net>
1906 * Makefile.in (BMAKE_VERSION): bump to 20040220
1907 * Merge with NetBSD make, pick up:
1908 o fix for old :M parsing bug.
1909 o re-jigged unit-tests
1911 2004-02-15 Simon J. Gerraty <sjg@void.crufty.net>
1913 * Makefile.in (accept test): use ${.MAKE:S,^./,${.CURDIR}/,}
1914 so that './bmake -f Makefile test' works.
1916 2004-02-14 Simon J. Gerraty <sjg@void.crufty.net>
1918 * Makefile.in: (BMAKE_VERSION): bump to 20040214
1919 * Merge with NetBSD make, pick up:
1920 o search upwards for *.mk
1921 o fix for double free of var substitution buffers
1922 o use of getopt replaced with custom code, since the usage
1923 (re-scanning) isn't posix compatible.
1925 2004-02-12 Simon J. Gerraty <sjg@void.crufty.net>
1927 * arch.c: don't include ranlib.h on ELF systems
1928 (thanks to Chuck Cranor <chuck@ece.cmu.edu>).
1930 2004-01-18 Simon J. Gerraty <sjg@void.crufty.net>
1932 * Makefile.in (BMAKE_VERSION): bump to 20040118
1934 * boot-strap (while): export vars we assign to on cmdline
1935 * unit-test/Makefile.in: ternary is .PHONY
1937 2004-01-08 Simon J. Gerraty <sjg@void.crufty.net>
1939 * Makefile.in (BMAKE_VERSION): bump version to 20040108
1940 * Merge with NetBSD make, pick up:
1941 o fix for ternary modifier
1943 2004-01-06 Simon J. Gerraty <sjg@void.crufty.net>
1945 * Makefile.in (BMAKE_VERSION): bump version to 20040105
1946 * Merge with NetBSD make, pick up:
1947 o fix for cond.c to handle compound expressions better
1948 o variable expansion within sysV style replacements
1950 2003-12-22 Simon J. Gerraty <sjg@void.crufty.net>
1952 * Make portable snprintf safer - output to /dev/null first to
1955 * Makefile.in (BMAKE_VERSION): bump version to 20031222
1956 * Merge with NetBSD make, pick up:
1957 o -dg3 to show input graph when things go wrong.
1958 o explicitly look for makefiles in objdir if not found in curdir so
1959 that errors in .depend etc will be reported accurarely.
1960 o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
1961 instead as it more accurately reflects the expected behavior and
1962 is more consistently implemented.
1963 o avoid use of asprintf.
1965 2003-09-28 Simon J. Gerraty <sjg@void.crufty.net>
1967 * util.c: Add asprintf and vasprintf.
1969 * Makefile.in (BMAKE_VERSION): bump version to 20030928
1970 * Merge with NetBSD make, pick up:
1971 :[] modifier - allows picking words from a variable.
1972 :tW modifier - allows treating value as one big word.
1973 W flag for :C and :S - allows treating value as one big word.
1975 2003-09-12 Simon J. Gerraty <sjg@void.crufty.net>
1977 * Merge with NetBSD make
1978 pick up -de flag to enable printing failed command.
1979 don't skip 1st two dir entries (normally . and ..) since
1980 coda does not have them.
1982 2003-09-09 Simon J. Gerraty <sjg@void.crufty.net>
1984 * Makefile.in (BMAKE_VERSION): bump version to 20030909
1985 * Merge with NetBSD make, pick up:
1986 - changes for -V '${VAR}' to print fully expanded value
1988 - CompatRunCommand now prints the command that failed.
1989 - several files got updated 3 clause Berkeley license.
1991 2003-08-02 Simon J. Gerraty <sjg@void.crufty.net>
1993 * boot-strap: Allow setting configure args on command line.
1995 2003-07-31 Simon J. Gerraty <sjg@void.crufty.net>
1997 * configure.in: add --with-defshell to allow sh or ksh
1998 to be selected as default shell.
2000 * Makefile.in: bump version to 20030731
2002 * Merge with NetBSD make
2003 Pick up .SHELL spec for ksh and associate man page changes.
2004 Also compat mode now uses the same shell specs.
2006 2003-07-29 Simon J. Gerraty <sjg@void.crufty.net>
2008 * var.c (Var_Parse): ensure delim is initialized.
2010 * unit-tests/Makefile.in: use single quotes to avoid problems from
2014 Run the unit-tests as part of the bootstrap procedure.
2016 2003-07-28 Simon J. Gerraty <sjg@void.crufty.net>
2018 * unit-tests/Makefile.in: always force complaints from
2019 ${TEST_MAKE} to be from 'make'.
2021 * configure.in: add check for 'diff -u'
2022 also fix some old autoconf'isms
2024 * Makefile.in (BMAKE_VERSION): bump version to 20030728.
2025 if using GCC add -Wno-cast-qual to CFLAGS for var.o
2027 * Merge with NetBSD make
2028 Pick up fix for :ts parsing error in some cases.
2031 2003-07-23 Simon J. Gerraty <sjg@void.crufty.net>
2033 * Makefile.in (BMAKE_VERSION): bump version to 20030723.
2035 * var.c (Var_Parse): fix bug in :ts modifier, after const
2036 correctness fixes, must pass nstr to VarModify.
2038 2003-07-14 Simon J. Gerraty <sjg@void.crufty.net>
2040 * Makefile.in: BMAKE_VERSION switch to a date based version.
2041 We'll generally use the date of last import from NetBSD.
2043 * Merge with NetBSD make
2044 Pick up fixes for const-correctness, now passes WARNS=3 on
2046 Pick up :ts modifier, allows controlling the separator used
2047 between words in variable expansion.
2049 2003-07-11 Simon J. Gerraty <sjg@void.crufty.net>
2051 * FILES: include boot-strap and os.sh
2053 * Makefile.in: only set WARNS if we are NetBSD, the effect on
2054 FreeBSD is known to be bad.
2056 * makefile.boot.in (bootstrap): make this the default target.
2058 * Makefile.in: bump version to 3.1.19
2060 * machine.sh: avoid A-Z with tr as it is bound to lose.
2062 2003-07-10 Simon J. Gerraty <sjg@void.crufty.net>
2064 * Merge with NetBSD make
2065 Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
2066 Plus some doc fixes.
2068 2003-04-27 Simon J. Gerraty <sjg@void.crufty.net>
2070 * Merge with NetBSD make
2071 Pick up fix for PR/1523 - don't count a library as built, if there
2072 is no way to build it
2074 * Bump version to 3.1.18
2076 2003-03-23 Simon J. Gerraty <sjg@void.crufty.net>
2078 * Merge with NetBSD make
2079 Pick up fix for ParseDoSpecialSrc - we only use it if .WAIT
2080 appears in src list.
2082 2003-03-21 Simon J. Gerraty <sjg@void.crufty.net>
2084 * Merge with NetBSD make (mmm 10th anniversary!)
2085 pick up fix for .WAIT in srcs that refer to $@ or $* (PR#20828)
2086 pick up -X which tells us to not export VAR=val via setenv if
2087 we are already doing so via MAKEFLAGS. This saves valuable env
2088 space on systems like Darwin.
2089 set MAKE_VERSION to 3.1.17
2091 * parse.c: pix up fix for suffix rules
2093 2003-03-06 Simon J. Gerraty <sjg@void.crufty.net>
2095 * Merge with NetBSD make.
2096 pick up fix for propagating -B via MAKEFLAGS.
2097 set MAKE_VERSION to 3.1.16
2099 * Apply some patches from pkgsrc-bootstrap/bmake
2100 Originally by Grant Beattie <grant@netbsd.org>
2101 I may have missed some - since they are based on bmake-3.1.12
2103 2002-12-03 Simon J. Gerraty <sjg@void.crufty.net>
2105 * makefile.boot.in (bmake): update install targets for those that
2106 use them, also clear MAKEFLAGS when invoking bmake.boot to avoid
2107 havoc from gmake -w. Thanks to Harlan Stenn <hstenn@cisco.com>.
2109 * bmake.cat1: update the pre-formatted man page!
2111 2002-11-30 Simon J. Gerraty <sjg@void.crufty.net>
2113 * Merge with NetBSD make.
2114 pick up fix for premature free of pointer used in call
2116 set MAKE_VERSION to 3.1.15
2118 2002-11-26 Simon J. Gerraty <sjg@void.crufty.net>
2120 * configure.in: determine suitable value for MKSRC.
2121 override using --with-mksrc=PATH.
2123 * machine.sh: use `uname -p` for MACHINE_ARCH on modern SunOS systems.
2124 configs(8) will use 'sun4' as an alias for 'sparc'.
2126 2002-11-25 Simon J. Gerraty <sjg@void.crufty.net>
2128 * Merge with NetBSD make.
2130 pick up fix for finding ../cat.c via .PATH when .CURDIR=..
2131 set MAKE_VERSION to 3.1.14
2132 add configure checks for killpg and sys/socket.h
2134 2002-09-16 Simon J. Gerraty <sjg@void.crufty.net>
2138 * makefile.boot.in (bmake): use install-mk
2139 Also setup ./mk before trying to invoke bmake.boot incase we
2140 needed install-mk to create a sys.mk for us.
2142 * configure.in: If we need to add -I${srcdir}/missing, make it an
2143 absolute path so that it works for lst.lib too.
2145 * make.h: always include sys/cdefs.h since we provide one if the
2148 * Makefile.in (install-mk):
2149 use MKSRC/install-mk which will do the right thing.
2150 use uname -p for ARCH if possible.
2151 since install-mk will setup links bsd.prog.mk -> prog.mk if
2152 needed, just .include bsd.prog.mk
2154 * Merge with NetBSD make (NetBSD-1.6)
2155 Code is ansi-C only now.
2156 Bug in handling of dotLast is fixed.
2157 Can now assign .OBJDIR and make will reset its notions of life.
2158 New modifiers :tu :tl for toUpper and toLower.
2160 Tue Oct 16 12:18:42 2001 Simon J. Gerraty <sjg@zen.crufty.net>
2162 * Merge with NetBSD make
2163 pick up fix for .END failure in compat mode.
2164 pick up fix for extra va_end() in ParseVErrorInternal.
2166 Thu Oct 11 13:20:06 2001 Simon J. Gerraty <sjg@zen.crufty.net>
2168 * configure.in: for systems that have sys/cdefs.h check if it is
2169 compatible. If not, include the one under missing, but tell it to
2170 include the native one too - necessary on Linux.
2172 * missing/sys/cdefs.h: if NEED_HOST_CDEFS_H is defined, use
2173 include_next (for gcc) to get the native sys/cdefs.h
2175 Tue Aug 21 02:29:34 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2177 * job.c (JobFinish): Fix an earlier merge bug that resulted in
2178 leaking descriptors when using -jN.
2180 * job.c (JobPrintCommand): See if "curdir" exists before
2181 attempting to chdir(). Doing the chdir directly in make (when in
2182 compat mode) fails silently, so let the -jN version do the same.
2183 This can happen when building kernels in an object tree and
2184 playing clever games to reset .CURDIR.
2186 * Merged with NetBSD make
2189 Tue Jun 26 23:45:11 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2191 * makefile.boot.in: Give bmake.boot a MAKESYSPATH that might work.
2193 Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2195 * var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
2196 us not to export the iterator variable when using VAR_CMD context.
2198 Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2200 * job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
2201 its the wrong "fix".
2203 Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2205 * Redesigned export of VAR_CMD's via MAKEFLAGS.
2206 We now simply append the variable names to .MAKEOVERRIDES, and
2207 handle duplicate suppression and quoting in ExportMAKEFLAGS using:
2208 ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
2209 Apart from fixing quoting bugs in previous version, this allows us
2210 to export vars to the environment by simply doing:
2211 .MAKEOVERRIDES+= PATH
2212 Merged again with NetBSD make, but the above is the only change.
2214 * configure.in: added
2215 --disable-pwd-override disable $PWD overriding getcwd()
2216 --disable-check-make-chdir disable make trying to guess
2217 when it should automatically cd ${.CURDIR}
2219 * Merge with NetBSD make, changes include:
2220 parse.c (ParseDoDependency): Spot that the syntax error is
2221 caused by an unresolved cvs/rcs conflict and say so.
2222 var.c: most of Var* functions now take a ctxt as 1st arg.
2223 now does variable substituion on rhs of sysv style modifiers.
2225 * var.c (Var_Set): exporting of command line variables (VAR_CMD)
2226 is now done here. We append the name='value' to .MAKEOVERRIDES
2227 rather than directly into MAKEFLAGS as this allows a Makefile to
2228 use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
2229 very similar mechanism. Note that in adding name='value' to
2230 .MAKEOVERRIDES we do the moral equivalent of:
2231 .MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
2233 Fri Jun 1 14:08:02 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2235 * make-conf.h (USE_IOVEC): make it conditional on HAVE_SYS_UIO_H
2237 * Merged with NetBSD make
2238 make -dx can now be used to run commands via sh -x
2239 better error messages on exec failures.
2241 Thu May 31 01:44:54 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2243 * Makefile.in (main.o): depends on ${SRCS} ${MAKEFILE} so that
2244 MAKE_VERSION gets updated. Also don't use ?= for MAKE_VERSION,
2245 MACHINE etc otherwise they propagate from the previous bmake.
2247 * configure.in (machine): allow --with-machine=generic to make
2248 configure use machine.sh to set MACHINE.
2250 * job.c (JobInterrupt): convert to using WAIT_T and friends.
2252 * Makefile.in: mention in bmake.1 that we use autoconf.
2254 * make.1: mention MAKE_PRINT_VAR_ON_ERROR.
2256 Wed May 30 23:17:18 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2258 * main.c (ReadMakefile): don't set MAKEFILE if reading ".depend"
2259 as that rather defeats the usefulness of ${MAKEFILE}.
2261 * main.c (MainParseArgs): append command line variable assignments
2262 to MAKEFLAGS so that they get propagated to child make's.
2263 Apparently this is required POSIX behaviour? Its useful anyway.
2265 Tue May 29 02:20:07 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2267 * compat.c (CompatRunCommand): don't use perror() since stdio may
2268 cause problems in child of vfork().
2270 * compat.c, main.c: Call PrintOnError() when we are going to bail.
2271 This routine prints out the .curdir where we stopped and will also
2272 display any vars listed in ${MAKE_PRINT_VAR_ON_ERROR}.
2274 * main.c: add ${.newline} to hold a "\n" - sometimes handy in
2277 * var.c: VarLoopExpand: ignore addSpace if a \n is present.
2279 * Added RCSid's for the files we've touched.
2281 Thu May 24 15:41:37 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2283 * configure.in: Thanks to some clues from mdb@juniper.net,
2284 added autoconf magic to control setting of MACHINE, MACHINE_ARCH
2285 as well as what ends up in _PATH_DEFSYSPATH. We now have:
2287 --with-machine=MACHINE explicitly set MACHINE
2288 --with-force-machine=MACHINE set FORCE_MACHINE
2289 --with-machine_arch=MACHINE_ARCH explicitly set MACHINE_ARCH
2290 --with-default-sys-path=PATH:DIR:LIST use an explicit _PATH_DEFSYSPATH
2291 --with-prefix-sys-path=PATH:DIR:LIST prefix _PATH_PREFIX_SYSPATH
2292 --with-path-objdirprefix=PATH override _PATH_OBJDIRPREFIX
2294 If _PATH_OBJDIRPREFIX is set to "no" we won't define it.
2296 * makefile: added a pathetically simple makefile to drive
2297 bootstrapping. Running configure by hand is more useful.
2299 * Makefile.in: added MAKE_VERSION, and reworked things to be less
2300 dependent on NetBSD bsd.*.mk
2302 * pathnames.h: allow NO_PATH_OBJDIRPREFIX to stop us defining
2303 _PATH_OBJDIRPREFIX for those that don't want a default.
2304 construct _PATH_DEFSYSPATH from the info we get from configure.
2306 * main.c: allow for no _PATH_OBJDIRPREFIX, set ${MAKE_VERSION}
2307 if MAKE_VERSION is defined.
2309 * compat.c: when we bail, print out the .CURDIR we were in.
2311 Sat May 12 00:34:12 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2313 * Merged with NetBSD make
2315 * var.c: fixed a bug in the handling of the modifier :P
2316 if the node as found but the path was null, we segfault trying to
2319 Mon Mar 5 16:20:33 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
2321 * Merged with NetBSD make
2323 * make.c: Make_OODate's test for a library out of date was using
2324 cmtime where it should have used mtime (my bug).
2326 * compat.c: Use perror() to tell us what really went wrong when we
2327 cannot exec a command.
2329 Fri Dec 15 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2331 * Merged with NetBSD make
2333 Sat Jun 10 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2335 * Merged with NetBSD make
2337 Thu Jun 1 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2339 * Merged with NetBSD make
2341 Tue May 30 10:11:08 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2343 * Merged with NetBSD make
2345 Thu Apr 27 00:07:47 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2347 * util.c: don't provide signal() since we use sigcompat.c
2349 * Makefile.in: added a build target.
2351 * var.c (Var_Parse): added ODE modifiers :U, :D, :L, :P, :@ and :!
2352 These allow some quite clever magic.
2354 * main.c (main): added support for getenv(MAKESYSPATH).
2356 Mon Apr 2 16:25:13 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2358 * Disable $PWD overriding getcwd() if MAKEOBJDIRPREFIX is set.
2359 This avoids objdir having a different value depending on how a
2360 directory was reached (via command line, or subdir.mk).
2362 * If FORCE_MACHINE is defined, ignore getenv("MACHINE").
2364 Mon Apr 2 23:15:31 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2366 * Do a chdir(${.CURDIR}) before invoking ${.MAKE} or ${.MAKE:T} if
2367 MAKEOBJDIRPREFIX is set and NOCHECKMAKECHDIR is not.
2368 I've been testing this in NetBSD's make for some weeks.
2370 * Turn Makefile into Makefile.in and make it useful.
2372 Tue Feb 29 22:08:00 2000 Simon J. Gerraty <sjg@zen.quick.com.au>
2374 * Imported NetBSD's -current make(1) and resolve conflicts.
2376 * Applied autoconf patches from bmake v2
2378 * Imported clean code base from NetBSD-1.0