Simon J. Gerraty ef402bba84 Import bmake-20260508
Intersting/relevant changes since bmake-20260313

ChangeLog since bmake-20260313

2026-05-08  Simon J Gerraty  <[email protected]>

	* VERSION (_MAKE_VERSION): 20260508
	Merge with NetBSD make, pick up
	o make.1: fix description of '-' handling in jobs-mod
	by intenting it correctly.

2026-04-13  Simon J Gerraty  <[email protected]>

	* VERSION (_MAKE_VERSION): 20260406
	Merge with NetBSD make, pick up
	o cleanup unnecessary parens

	* configure.in: add --with-save-dollars to control default for
	.MAKE.SAVE.DOLLARS - address FreeBSD PR 294436

mk/ChangeLog since bmake-20260313

2026-05-09  Simon J Gerraty  <[email protected]>

	* gendirdeps.mk: also apply ':S,/$,,' and ':C,/(\.[^.]*)$,\1,'
	when setting DIRDEPS prior to saving.

	* dirdeps.mk: when debugging it is handy to be able to skip
	recursing so if DEBUG_DIRDEPS contains 'norecurse' we will only
	process the immediate DIRDEPS.
	Also if DEBUG_DIRDEPS contains '-V' we process sections normally
	skipped when doing 'make -V'.
	o ensure we do not get duplicate build dirs due to someone
	adding a trailing '/' or '/.${TARGET_SPEC}' to a DIRDEPS entry.
	Add ':S,/$,,' when setting '__depdirs' and
	add ':C,/(\.[^.]*)$,\1,' when setting '__qual_depdirs'.

2026-04-24  Simon J Gerraty  <[email protected]>

	* install-mk (MK_VERSION): 20260424

	* Use MK_META_AUTODEP to control use of meta.autodep.mk
	so it can be used independently of MK_DIRDEPS_BUILD for
	bootstrapping.

	* sys.vars.mk (M_type): use :sh rather than :sh1 to avoid
	surprises in a .for loop.
2026-05-12 21:20:50 -07:00
2022-04-03 12:52:08 -07:00
2020-11-20 03:54:37 +00:00
2026-05-12 21:20:50 -07:00
2021-01-13 17:24:34 -08:00
2026-04-06 11:25:05 -07:00
2021-12-17 23:27:22 -08:00
2018-03-01 23:45:44 +00:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2025-12-03 09:57:57 -08:00
2025-03-19 14:01:12 -07:00
2024-05-03 15:43:12 -07:00
2024-05-03 15:43:12 -07:00
2026-05-12 21:20:50 -07:00
2025-07-19 10:08:57 -07:00
2026-05-12 21:20:50 -07:00
2024-07-20 12:41:55 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2024-07-20 12:41:55 -07:00
2020-06-09 02:07:26 +00:00
2025-12-03 09:57:57 -08:00
2023-01-27 16:23:54 -08:00
2026-05-12 21:20:50 -07:00
2024-05-23 13:08:58 -07:00
2025-06-27 19:38:49 -07:00
2025-06-27 19:38:49 -07:00
2025-12-03 09:57:57 -08:00
2026-05-12 21:20:50 -07:00
2026-04-06 11:25:05 -07:00
2026-04-06 11:25:05 -07:00
2024-05-03 15:43:12 -07:00
2024-05-03 15:43:12 -07:00
2023-01-27 16:23:54 -08:00
2026-05-12 21:20:50 -07:00
2025-07-19 10:08:57 -07:00
2022-02-05 12:03:50 -08:00
2026-05-12 21:20:50 -07:00
2024-03-13 19:14:41 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2026-04-06 11:25:05 -07:00
2026-05-12 21:20:50 -07:00
2013-01-31 16:44:23 +00:00
2026-05-12 21:20:50 -07:00
2025-08-05 15:31:51 -07:00
2021-12-17 23:27:22 -08:00
2022-02-05 12:03:50 -08:00
2023-01-27 16:23:54 -08:00
2026-04-06 11:25:05 -07:00
2026-05-12 21:20:50 -07:00
2021-01-13 17:24:34 -08:00
2024-01-13 17:16:25 -08:00
2013-01-31 16:44:23 +00:00
2021-12-17 23:27:22 -08:00
2025-12-03 09:57:57 -08:00
2025-12-03 09:57:57 -08:00
2025-07-19 10:08:57 -07:00
2026-04-06 11:25:05 -07:00
2018-03-01 23:45:44 +00:00
2023-01-27 16:23:54 -08:00
2026-04-06 11:25:05 -07:00
2025-06-27 19:38:49 -07:00
2025-06-27 19:38:49 -07:00
2021-02-10 17:51:11 -08:00
2024-07-20 12:41:55 -07:00
2026-05-12 21:20:50 -07:00
2026-05-12 21:20:50 -07:00
2025-12-03 09:57:57 -08:00

			       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 <[email protected]>

S
Description
The FreeBSD src tree publish-only repository. Experimenting with 'simple' pull requests....
Readme
3.8 GiB
0 Stars 1 Watchers 0 Forks
Languages
C 59.9%
C++ 26.8%
Roff 4.5%
Shell 2.8%
Assembly 1.7%
Other 3.7%