summaryrefslogtreecommitdiff
path: root/personal/setup/emacs.md
blob: 52552a7e12a3e88c94a56bc87c871ebc65282b88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Compiling

This script seems to handle most cases I care about:

- a freshly cloned copy of the repository,
- a repository where compilation has already happened,
- a repository where I want to change the `configure` flags…

``` bash
#!/bin/bash

set -eux

MAKE="make -j$(nproc --all)"
CONFIGURE_FLAGS="--with-xwidgets --with-cairo"

check-config ()
{
    local define=$(grep EMACS_CONFIG_OPTIONS src/config.h)
    local pattern='^#define EMACS_CONFIG_OPTIONS "(.+)"$'

    [[ ${define} =~ ${pattern} ]]
    test "${BASH_REMATCH[1]}" = "${CONFIGURE_FLAGS}"
}

if ! test -f src/config.h || ! check-config
then
    ./configure ${CONFIGURE_FLAGS}
fi

if ! ${MAKE}
then
    ${MAKE} bootstrap
fi
```