From 45d26b2a496451e565bf3e13594d8bf0ea59fec7 Mon Sep 17 00:00:00 2001 From: Matt Jolly Date: Sat, 6 Apr 2024 01:28:42 +1000 Subject: [PATCH] dev-docs: update Discuss new Meson build path and how to build things. Co-authored-by: Thomas Adam Signed-off-by: Matt Jolly --- dev-docs/INSTALL.md | 43 ++++++++++++++++++++++++++++++++----------- fvwm/Makefile.am | 2 +- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/dev-docs/INSTALL.md b/dev-docs/INSTALL.md index 50bb8aace..7a39e6edb 100644 --- a/dev-docs/INSTALL.md +++ b/dev-docs/INSTALL.md @@ -1,7 +1,8 @@ Installation Instructions ========================= -FVWM3 uses automake and autotools as its build process. +FVWM3 prefers `meson` as its build tool chain, but provides `autotools` as a +legacy fallback on older systems. Dependencies ============ @@ -49,33 +50,53 @@ system in use. Generating documentation ======================== +`fvwm3` won't compile documentation by default, so it's opt-in. + To generate `fvwm3`'s documentation: 1. Install `asciidoctor` -2. To generate manpages: pass `--enable-mandoc` to `./configure` -3. To generate HTML docs: pass `--enable-htmldoc` to `./configure` +2. To generate manpages: pass `-Dhtmldoc=true` to `meson` +3. To generate HTML docs: pass `-Dmandoc=true` to `meson` -`fvwm3` won't compile documentation by default, so it's opt-in. Installing From Git =================== -FVWM3 has a bootstrap script to generate `configure` and associated files. -Run the following command chain to generate the `configure` script and build -the project: +## Build Systems + +`fvwm3` has traditionally been using autotools. However, this is now +deprecated in favour of `meson`. It is suggested that all systems which +support `meson` use this instead as it is now the preferred build system to +use. + +The `autotools` build system remains to provide legacy support but is not +going to see any updates to it. + +### Autotools ``` -./autogen.sh && ./configure && make +./autogen.sh && ./configure && make && sudo make install +``` + +### Meson + +``` +meson setup build && ninja -C build && ninja -C build install ``` Installing From Release Tarball =============================== +## Autotools + Release tarballs will come bundled with `./configure` already, hence: ``` -./configure && make +./configure && make && sudo make install ``` -As with most things, if the default options `./configure` chooses isn't -appropriate for your needs, see `./configure --help` for appropriate options. +## Meson + +``` +meson setup build && ninja -C build && meson install -C build +``` \ No newline at end of file diff --git a/fvwm/Makefile.am b/fvwm/Makefile.am index 0f794f429..7f4ea0b94 100644 --- a/fvwm/Makefile.am +++ b/fvwm/Makefile.am @@ -49,4 +49,4 @@ AM_CFLAGS = \ -DFVWM_MODULEDIR=\"$(FVWM_MODULEDIR)\" \ -DFVWM_DATADIR=\"$(FVWM_DATADIR)\" \ -DFVWM_CONFDIR=\"$(FVWM_CONFDIR)\" \ - -DLOCALEDIR=\"$(LOCALEDIR)\" \ No newline at end of file + -DLOCALEDIR=\"$(LOCALEDIR)\"