expect that the path is actually used by the configure script, which had
not been the case. Now it is finally possible to select a different
shell for use by bmake.
expect full path names. Use the default locations in /bin unless
overriden explicitly. Bump revision of bmake.
On Solaris, use /usr/xpg4/bin/sh if it exists.
use inplace libnbcompat like the direct build from bootstrap
does. Fix a long-standing bug in mkbinarykit. The default work
directory was "work" (relative) and therefore MAKECONF=work/...
was passed down, effectively making it a nop. That resulted in
digest being incorrectly installed during the bootstrap.
Tested on DragonFly by myself and on OSF by tnn@, discussed with jlam@
joerg has pointed out, after calling vfork() one can hardly do anything.
A solution would be to simply not use vfork(), but that may have
performance impacts on all platforms.
function Job_Execv executes a shell command line, and if that fails due
to an overly long command line, the shell command is written into a
temporary file, which is then executed.
This is at least necessary to make the bulk builds work on IRIX.
by always forcing our internal search path when invocing bmake.boot.
This does not affect the generated binary and is the reason why this
goes directly into the tree.
Including e.g. /usr/share/mk results in sys.mk read from there
as well. On DragonFly this adds X11BASE and results in obscure
breakages. Since the mk files are supposed to be self-contained,
it doesn't make much sense to look in other directories anyway.
Bump revision to annotate this.
Discussed-with: reed@.
Reported-by: Aggelos Economopoulos <aoiko AT cc DOT ece DOT ntua DOT gr>
Remove GNU_CONFIGURE=no from pkgsrc Makefile.
Add "--mksrc none" to arguments and
add --prefix=${PREFIX} and --sysconfdir=${PKG_SYSCONFDIR}
and remove ${CONFIGURE_ARGS} for boot-strap.
Note that I didn't import the files that only change was a
CVS $Id$ tag.
From ChangeLog:
2005-11-05 Simon J. Gerraty <sjg@void.crufty.net>
* Makefile.in (BMAKE_VERSION): bump to 20051105
* configure.in: always set default_sys_path
default is ${prefix}/share/mk
- remove prefix_sys_path, anyone wanting more than above
needs to set it manually.
2005-11-04 Simon J. Gerraty <sjg@void.crufty.net>
* boot-strap: make this a bit easier for pkgsrc folk.
bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
'mips' while pkgsrc wants 'mipseb' or 'mipsel'
2005-11-02 Simon J. Gerraty <sjg@void.crufty.net>
* Makefile.in (BMAKE_VERSION): bump to 20051102
* job.c (JobFinish): fix likely ancient merge lossage
fix from Todd Vierling.
* boot-strap (srcdir): allow setting mksrc=none
2005-10-31 Simon J. Gerraty <sjg@void.crufty.net>
* Makefile.in (BMAKE_VERSION): bump to 20051031
* ranlib.h: skip on OSF too.
(NetBSD PR 31864)
The plan is to remove the out-of-date source from bootstrap/bmake.
Sources obtained from ftp://ftp.NetBSD.org/pub/NetBSD/misc/sjg/.
Source is kept in files/ for bootstrap purposes (to be done).
Update to version bmake-20051002. Changes include:
* Makefile.in (BMAKE_VERSION): bump to 20051001
support for UnixWare and some other systems,
based on patches from pkgsrc/bootstrap
Remove DEPENDS for mk-files (as mentioned on tech-pkg in June).
Use libnbcompat. Also patch-aa is to use libnbcompat.
(I chose to use patches so files would be exact from original source
tarball.)
And use PKGMANDIR.
We now use bmake/boot-strap for simpler building.
New location for distfile.
Changes to bmake include:
o allow quoted strings on lhs of conditionals
o issue warning when extra .else is seen
o print line numer when errors encountered during parsing from
string.
o posix fixes
- remove '-e' from compat mode
- add support for '+' command-line prefix.
o fix for handling '--' on command-line.
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().
Changes include:
* Make portable snprintf safer - output to /dev/null first to
check space needed.
o -dg3 to show input graph when things go wrong.
o explicitly look for makefiles in objdir if not found in curdir so
that errors in .depend etc will be reported accurarely.
o avoid use of -e in shell scripts in jobs mode, use '|| exit $?'
instead as it more accurately reflects the expected behavior and
is more consistently implemented.
o avoid use of asprintf.
-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:
synched with NetBSD make as of 2001/10/16
fix for bug in compat mode .END processing
fix for bug in cleanup of jobs when using -jN
addition of .USEBEFORE
simpler bootstrap - compiles again on recent linux (Red Hat)
The Makefile here now deals with the fact that we may not have installed
a sys.mk in /usr/pkg/share/mk on BSD systems.
Reviewed: agc
swoop.
Changes since previous version:
Tue Jun 12 16:48:57 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
* var.c (Var_Set): Add 4th (flags) arg so VarLoopExpand can tell
us not to export the iterator variable when using VAR_CMD context.
Sun Jun 10 21:55:21 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
* job.c (Job_CatchChildren): don't call Job_CatchOutput() here,
its the wrong "fix".
Sat Jun 9 00:11:24 2001 Simon J. Gerraty <sjg@zen.quick.com.au>
* Redesigned export of VAR_CMD's via MAKEFLAGS.
We now simply append the variable names to .MAKEOVERRIDES, and
handle duplicate suppression and quoting in ExportMAKEFLAGS using:
${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}
Apart from fixing quoting bugs in previous version, this allows us
to export vars to the environment by simply doing:
.MAKEOVERRIDES+= PATH
Merged again with NetBSD make, but the above is the only change.
* configure.in: added
--disable-pwd-override disable $PWD overriding getcwd()
--disable-check-make-chdir disable make trying to guess
when it should automatically cd ${.CURDIR}
* Merge with NetBSD make, changes include:
parse.c (ParseDoDependency): Spot that the syntax error is
caused by an unresolved cvs/rcs conflict and say so.
var.c: most of Var* functions now take a ctxt as 1st arg.
now does variable substituion on rhs of sysv style modifiers.
* var.c (Var_Set): exporting of command line variables (VAR_CMD)
is now done here. We append the name='value' to .MAKEOVERRIDES
rather than directly into MAKEFLAGS as this allows a Makefile to
use .MAKEOVERRIDES= to disable this behaviour. GNU make uses a
very similar mechanism. Note that in adding name='value' to
.MAKEOVERRIDES we do the moral equivalent of:
.MAKEOVERRIDES:= ${.MAKEOVERRIDES:Nname=*} name='val'
This is NetBSD's make(1) utility, with a configure script and
supporting replacements for various NetBSD library routines, ported to
other Operating Systems by Simon Gerraty. Solaris, SunOS, HP-UX,
Linux and AIX are amongst the operating systems supported.