diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 82 |
1 files changed, 59 insertions, 23 deletions
diff --git a/README.md b/README.md index 257d686a62b6..659069f6d44a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# pkgconf [](https://github.com/pkgconf/pkgconf/actions/workflows/test.yml) +# pkgconf [](https://github.com/pkgconf/pkgconf/actions/workflows/test.yml) [](https://app.codecov.io/github/pkgconf/pkgconf) `pkgconf` is a program which helps to configure compiler and linker flags for development libraries. It is a superset of the functionality provided by @@ -9,6 +9,11 @@ the original pkg-config. to allow other tooling such as compilers and IDEs to discover and use libraries configured by pkgconf. +`bomtool` and `spdxtool` are programs generating software bill of materials (SBOM) +for a given set of pkg-config modules, in the SPDX 2.0 and SPDX Lite 3.0.1 format, +respectively. The output of these tools can then be translated into other SBOM +formats as necessary. + ## release tarballs Release tarballs are available on [distfiles.ariadne.space][distfiles]. @@ -17,12 +22,13 @@ Release tarballs are available on [distfiles.ariadne.space][distfiles]. ## build system setup -If you would like to use the git sources directly, or a snapshot of the -sources from GitHub, you will need to regenerate the autotools build -system artifacts yourself, or use Meson instead. For example, on Alpine: +pkgconf uses [Meson](https://mesonbuild.com) as its build system. - $ apk add autoconf automake libtool build-base - $ sh ./autogen.sh +> **Note:** The autotools build system is deprecated as of pkgconf 3.0 and will be +> removed in pkgconf 3.1. New build configurations should use Meson or Muon. + +If you would like to use the git sources directly, or a snapshot of the sources from +GitHub, Meson can be used directly without any additional bootstrap step. ## pkgconf-lite @@ -78,10 +84,54 @@ scraped. The `--debug` output is **not** a stable interface, and should **never depended on as a source of information. If you need a stable interface to query pkg-config which is not covered, please get in touch. -## compiling `pkgconf` and `libpkgconf` on UNIX +## compiling `pkgconf` and `libpkgconf` + +pkgconf is compiled using [Meson](https://mesonbuild.com): + + $ meson setup build + $ meson compile -C build + $ meson install -C build + +If you are installing pkgconf into a custom prefix, such as `/opt/pkgconf`, you will +likely want to define the default system includedir and libdir for your toolchain. +To do this, use the `SYSTEM_LIBDIR` and `SYSTEM_INCLUDEDIR` Meson options like so: + + $ meson setup build \ + --prefix=/opt/pkgconf \ + -DSYSTEM_LIBDIR=/lib:/usr/lib \ + -DSYSTEM_INCLUDEDIR=/usr/include + $ meson compile -C build + $ meson install -C build + +There are a few additional defines such as `PKGCONFIGDIR`. On Windows, the default +`PKGCONFIGDIR` value is usually overridden at runtime based on path relocation. -pkgconf is basically compiled the same way any other autotools-based project is -compiled: +### bootstrapping with Muon + +In bootstrap environments where Python is not yet available, pkgconf can also be +built with [Muon](https://muon.build), a C implementation of the Meson build +description language. The same `meson.build` files are used; no separate +configuration is needed. Both Meson and Muon are tested in CI. + + $ muon setup build + $ samu -C build + $ muon install -C build + +For non-bootstrap builds, Meson is recommended. + +## compiling `pkgconf` and `libpkgconf` with autotools (deprecated) + +> **Warning:** The autotools build system is deprecated as of pkgconf 3.0 and will be +> removed in pkgconf 3.1. Please migrate to Meson or Muon. + +If you would like to use the git sources directly, or a snapshot of the sources from +GitHub, you will need to regenerate the autotools build system artifacts yourself, or +use Meson instead (recoommended). For example, on Alpine: + + $ apk add autoconf automake libtool build-base + $ sh ./autogen.sh + +pkgconf is then compiled the same way as any other autotools-based project: $ ./configure $ make @@ -99,20 +149,6 @@ flags like so: $ make $ sudo make install -## compiling `pkgconf` and `libpkgconf` with Meson (usually for Windows) - -pkgconf is compiled using [Meson](https://mesonbuild.com) on Windows. In theory, you could also use -Meson to build on UNIX, but this is not recommended at this time as pkgconf is typically built -much earlier than Meson. - - $ meson setup build -Dtests=disabled - $ meson compile -C build - $ meson install -C build - -There are a few defines such as `SYSTEM_LIBDIR`, `PKGCONFIGDIR` and `SYSTEM_INCLUDEDIR`. -However, on Windows, the default `PKGCONFIGDIR` value is usually overridden at runtime based -on path relocation. - ## pkg-config symlink If you want pkgconf to be used when you invoke `pkg-config`, you should install a |
