Skip to content

Commit

Permalink
dev-docs: update
Browse files Browse the repository at this point in the history
Discuss new Meson build path and how to build things.

Co-authored-by: Thomas Adam <thomas@fvwm.org>
Signed-off-by: Matt Jolly <Kangie@gentoo.org>
  • Loading branch information
Kangie and ThomasAdam committed Sep 18, 2024
1 parent 33adf3e commit e1e7501
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 12 deletions.
43 changes: 32 additions & 11 deletions dev-docs/INSTALL.md
Original file line number Diff line number Diff line change
@@ -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
============
Expand Down Expand Up @@ -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
```
2 changes: 1 addition & 1 deletion fvwm/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,4 @@ AM_CFLAGS = \
-DFVWM_MODULEDIR=\"$(FVWM_MODULEDIR)\" \
-DFVWM_DATADIR=\"$(FVWM_DATADIR)\" \
-DFVWM_CONFDIR=\"$(FVWM_CONFDIR)\" \
-DLOCALEDIR=\"$(LOCALEDIR)\"
-DLOCALEDIR=\"$(LOCALEDIR)\"

0 comments on commit e1e7501

Please sign in to comment.