HardenedBSD/contrib/bmake
Simon J. Gerraty c59c3bf34d Merge bmake-20240309
Merge commit '368b06ce6b0135d6de13f7265f6dcbaeb791b3bb'
2024-03-13 21:56:57 -07:00
..
filemon
missing/sys
mk
PSD.doc
unit-tests
_strtol.h
aclocal.m4
arch.c
bmake.1
bmake.cat1
boot-strap
bsd.after-import.mk
buf.c
buf.h
ChangeLog
compat.c
cond.c
config.h.in
configure
configure.in
dir.c
dir.h
dirname.c
FILES
find_lib.sh
for.c
getopt.c
hash.c
hash.h
import.sh
install-sh
job.c
job.h
LICENSE
lst.c
lst.h
machine.sh
main.c
make_malloc.c
make_malloc.h
make-bootstrap.sh.in
make-conf.h
make.1
make.c
make.h
Makefile
Makefile.config.in
makefile.in
meta.c
meta.h
metachar.c
metachar.h
mkdeps.sh
os.sh
parse.c
pathnames.h
ranlib.h
README
realpath.c
setenv.c
sigact.h
sigaction.c
sigcompat.c
str.c
str.h
stresep.c
strlcpy.c
suff.c
targ.c
trace.c
trace.h
util.c
var.c
VERSION
wait.h

			       bmake
			       *****

This directory contains a port of the BSD make tool (from NetBSD).
Since 1993 I have run it on AIX, BSDi, Darwin, FreeBSD, HP-UX, IRIX,
Linux, Minix, OSF, Solaris, SunOS and even UTS.
Others have run it on many more systems.

Currently each release is tested on Darwin, NetBSD, FreeBSD and Linux.

Since 2003 bmake switched to a date based version (first was 20030714)
which generally represents the date it was last merged with NetBSD's
make.  Since then, NetBSD's make is imported within a week of any
*interesting* changes, so that bmake tracks it very closely.

Building
========

The preferred way to bootstrap bmake is::

	./bmake/boot-strap

there are a number of args - most of which get passed to configure,
eg.
::

	./bmake/boot-strap --prefix=/opt

see the boot-strap script for details.

For folk that hate to read anything, since 20121212 you can also use
the GNU standard process of::

	./configure; make; make install

This will *not* work on Darwin or any other system with a case
insensitive filesystem.  It depends on a generated ``makefile`` which
is disabled by default on Darwin.

To make much use of bmake you will need the bsd.*.mk macros or my
portable *.mk macros which are included with bmake since 20121212
and separately available from
https://www.crufty.net/ftp/pub/sjg/mk.tar.gz
both that and
https://www.crufty.net/ftp/pub/sjg/bmake.tar.gz
will be links to the latest versions.

Porting
=======

If you encounter a system that bmake does not build or work on *out of
the box*, I welcome patches.
Even a report of unit tests which fail is appreciated.
If you can provide access to a suitable machine - even better.

More info can be found at https://www.crufty.net/help/sjg/bmake.htm

--sjg <sjg@crufty.net>