BSDBuild Logo

What is BSDBuild?

BSDBuild logo BSDBuild is a compact, cross-platform build system which follows the Principle of Least Astonishment. Derived from the traditional 4.4BSD make libraries, BSDBuild allows programs and libraries to be built portably using simple BSD-style Makefiles (without BSD make extensions). BSDBuild works on most operating systems and make flavors.

BSDBuild can generate Bourne configure scripts, *-config installation scripts, pkg-config .pc files and platform-specific application and library bundles. BSDBuild-generated configure scripts provide the same user interface and accepts the same options as a typical GNU autotools script, but BSDBuild uses a different configure.in language and generated scripts are simpler, helping security.

The base distribution currently includes over 100 built-in Test Modules for detecting and testing the compatibility of various software. New test modules can be written quickly.

All standard test modules allow an alternate installation prefix to be passed to configure (e.g., --with-mylib=/alternate/prefix), facilitating cross-compilation and library testing.

The BSDBuild tests can also be used from CMake. The configure script generator outputs a CMake macro package that contains all BSDBuild tests available as CMake macros.

For an introductory tutorial, see the: Frequently Asked Questions. Please direct any issues, comments or suggestions to GitHub Issues. You can chat with the developers over at the LibAgar Discord.

Core Components
mkconfigure Generate portable Bourne/POSIX ./configure scripts.
<build.common.mk> Common variables used by other modules.
<build.man.mk> Process manual page sources (in mandoc format) into ASCII, PostScript, PDF and HTML output.
<build.lib.mk> Compile static or shared libraries from sources in Ada, assembly, C, C++, Objective C, Lex or Yacc.
<build.prog.mk> Compile programs from sources in Ada, assembly, C, C++, Objective C, Lex or Yacc.
<build.www.mk> Compile HTML documents (and optionally language/character set variants) from sources using m4 and xsltproc.
Example Projects Using BSDBuild

LibAgar uses BSDBuild to compile its libraries and applications. Its ./configure script performs over a hundred tests and is routintely tested on FreeBSD, Linux, OpenBSD, Windows, MacOS and others.

The Agar Debugger (agardb) is a C++ project which uses BSDBuild.

Agar's bindings to the Ada language (both the bindings libraries and demos) are built from Ada sources using BSDBuild.

The port of Agar-Core to the Commodore 64 uses cc65 and BSDBuild. Passing --host=c64 to the ./configure script is all that is needed to perform cross compilation to this classic 8-bit platform.

The port of Agar-GUI to the GameCube uses devkitPro and BSDBuild to compile a .dol executable.

The Edacious circuit simulator uses BSDBuild to compile its suite of applications and libraries. It's built on top of Agar so its ./configure script only needs about a dozen tests.

The CsoftMGI server management suite uses BSDBuild to compile its libraries and client programs. It also uses build.perl.mk to install its perl components.

The websites www.csoft.net, www.libagar.org and www.vedge.org are built using build.www.mk.

News
03/01/2024 Updated public KEYS file and PGP signatures of packages.
02/25/2023 The Manual Page Reader and documentation have been updated.
11/17/2022 You can now join the LibAgar Discord to discuss the project.
07/14/2015 07/14/2015
Released bsdbuild v3.1 (ChangeLog)
04/23/2020 04/23/2020
Updated developer's public KEYS file.
08/10/2012 08/10/2012
Released bsdbuild v3.0 (ChangeLog)

[ Previous announcements ]


Csoft.net ElectronTubeStore