bmake is sync'd with -current make as of 2004-02-20
Fixes include:
o fix for old :M parsing bug.
o re-jigged unit-tests
o search upwards for *.mk
o fix for double free of var substitution buffers
o use of getopt replaced with custom code, since the usage
(re-scanning) isn't posix compatible.
* arch.c: don't include ranlib.h on ELF systems
mk-files adds dpadd.mk (cool magic driven by DPADD)
and a re-worked warnings.mk (very cool).
Also fixes:
* own.mk: don't use NetBSD's _SRC_TOP_ it can
cause confusion. Also don't take just 'mk' as a
srctop indicator.
* Generic.sys.mk: need to use ${.PARSEDIR} with exists().
-de to get more verbose error messages
:[] modifier to pick words from variable etc.
Update mk-files to 20030928
added some extra sys.mk's from bootstrap-pkgsrc
changed own.mk to default to root:${ROOT_GROUP} ownership.
sys.mk can set ROOT_GROUP if wheel is not right.
Changes to mk-files:
* install-mk: add ability to use cp -f when updating
destination .mk files. Also now possible to play games with
FORCE_SYS_MK=ln etc on *BSD machines to link /usr/share/mk/sys.mk
into dest - not recommended unless you seriously want to.
* own.mk (IMPFLAGS): add support for COPTS.${IMPSRC:T} etc
for semi-compatability with NetBSD.
Changes to bmake:
* boot-strap: Allow setting configure args on command line.
* configure.in: add --with-defshell to allow sh or ksh
to be selected as default shell.
* Merge with NetBSD make 20030731
Pick up .SHELL spec for ksh and associate man page changes.
Also compat mode now uses the same shell specs.
* var.c (Var_Parse): ensure delim is initialized.
* unit-tests/Makefile.in: use single quotes to avoid problems from
some shells.
* makefile.boot.in:
Run the unit-tests as part of the bootstrap procedure.
* unit-tests/Makefile.in: always force complaints from
${TEST_MAKE} to be from 'make'.
* configure.in: add check for 'diff -u'
also fix some old autoconf'isms
* Makefile.in (BMAKE_VERSION): bump version to 20030728.
if using GCC add -Wno-cast-qual to CFLAGS for var.o
* Merge with NetBSD make 20030728
Pick up fix for :ts parsing error in some cases.
Pick unit-tests.
Same for mk-files. In the case of bmake the version closely
corresponds to the date of the latest sync with usr.bin/make.
Changes to bmake since 3.1.18 include:
Pick up fixes for const-correctness, now passes WARNS=3 on
NetBSD.
Pick up :ts modifier, allows controlling the separator used
between words in variable expansion.
* FILES: include boot-strap and os.sh
* Makefile.in: only set WARNS if we are NetBSD, the effect on
FreeBSD is known to be bad.
* makefile.boot.in (bootstrap): make this the default target.
* Makefile.in: bump version to 3.1.19
* machine.sh: avoid A-Z with tr as it is bound to lose.
Pick up fix for PR/19781 - unhelpful error msg on unclosed ${var:foo
Plus some doc fixes.
Changes to mk-files since 1.3.2:
Don't inlcue -pipe in CC for SunOS.
Make it easier to do non-root installs by overriding *_INSTALL_OWN.
Use STRIP_FLAG rather than STRIP for -s
Avoid use of A-Z with tr.
Avoid searching above /a/b/ when looking for
top-of-tree Linux at least hangs if you try to examine an automount
mount point.
Changes of note:
Added target-flags.mk allows frobbing CFLAGS for individual
targets.
prog.mk and lib.mk attempt to use bsd.prog.mk and bsd.lib.mk
to help ensure the right magic happens on ELF systems.
Several improvments to autodep.mk - now the default unless
NO_AUTODEP is defined.
The bsd.*.mk files are no longer installed on BSD systems as they are
almost guaranteed to do more harm than good.
Reviewed: agc