Go to file
Guillem Jover be4aced4c5 build: Make almost all exposed interfaces use the new ABI selection
Explicitly select what to include as part of the target ABI, instead of
letting autoconfiguration potentially break ABI if the system grows
functionality provided by the library.

Make almost all the library selectable per target. Do not install manual
pages for interfaces not included in the library. Control inclusion of
symbols in map file via pre-processor macros, and move the comments
describing the ABI selection to configure.ac.

For now the header files are included as is and filtered through
pre-processor conditionals. Eventually they might get switched to be
autogenerated at build time.
2024-02-25 03:50:40 +01:00
include build: Make almost all exposed interfaces use the new ABI selection 2024-02-25 03:50:40 +01:00
m4 build: Rework ABI selection logic 2024-02-25 03:49:15 +01:00
man build: Make almost all exposed interfaces use the new ABI selection 2024-02-25 03:50:40 +01:00
src build: Make almost all exposed interfaces use the new ABI selection 2024-02-25 03:50:40 +01:00
test build: Make almost all exposed interfaces use the new ABI selection 2024-02-25 03:50:40 +01:00
.gitignore build: Generate the map file from the configured ABI 2024-02-18 13:54:13 +01:00
.gitlab-ci.yml build: Check out-of-tree builds in CI 2024-01-07 20:21:08 +01:00
autogen build: Switch to autotools 2012-05-29 04:35:55 +02:00
configure.ac build: Make almost all exposed interfaces use the new ABI selection 2024-02-25 03:50:40 +01:00
COPYING man: Switch arc4random(3bsd) man page from OpenBSD to NetBSD 2023-03-29 02:48:53 +02:00
get-version build: Switch to autotools 2012-05-29 04:35:55 +02:00
Makefile.am build: Terminate lists in variables with «# EOL» 2022-11-23 23:44:09 +01:00
README doc: Add missing empty line to separate README sections 2022-10-04 04:29:37 +02:00
TODO man: Replace references to a.out(5) with elf(5) 2019-08-08 03:22:09 +02:00

libbsd - Utility functions from BSD systems

This library provides useful functions commonly found on BSD systems,
and lacking on others like GNU systems, thus making it easier to port
projects with strong BSD origins, without needing to embed the same
code over and over again on each project.

A BSD compatible message-digest library is required, on systems where
this is not provided by its libc or libmd libraries, the canonical
implementation to use is <https://www.hadrons.org/software/libmd/>.


Releases
--------

  <https://libbsd.freedesktop.org/releases/>


Mailing List
------------

The subscription interface and web archives can be found at:

  <https://lists.freedesktop.org/mailman/listinfo/libbsd>

The mail address is:

  libbsd@lists.freedesktop.org


Source Repository
-----------------

The primary repository can be browsed at:

  <https://cgit.freedesktop.org/libbsd>

and cloned from:

  <https://anongit.freedesktop.org/git/libbsd>


Building from git source
------------------------

To prepare the libbsd source tree from git before starting the build process
some required software needs to be installed:

  GNU autoconf >= 2.67
  GNU automake >= 1.9
  GNU libtool >= 2.0

After installing the needed software, and running the following command on
the git tree:

  $ ./autogen

the source should be roughly equivalent to the distributed tar source.


Building from tar source
------------------------

The minimum software required to configure and build dpkg from a tarball is:

  C89 compiler
  make

The following software might be required depending on the system:

  libmd (whenever the libc does not provide the needed digest functions)

The build process is done by running the usual «./configure; make». To
see all available configuration options please run «./configure --help».