build: Support Debian build, install.
[mes.git] / INSTALL
1                                                               -*- org -*-
2 Building and Installing Mes
3
4 Mes can be built in two modes: as a regulare package build or as
5 a bootstrap package.
6
7 After bootstrapping Mes, it can be used to bootstrap TinyCC (tcc) in a
8 similar way.
9
10 * Get it
11    git clone https://gitlab.com/janneke/mes
12
13 * Regular build
14 ** Prerequisites
15 *** Guix
16     guix environment -l guix.scm     #64 bit + 32bit
17     guix environment --system=i686-linux -l guix.scm #32 bit only
18
19 *** Other GNU/Linux
20   - [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.4 is known to work.
21   - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work.
22   - GNU Gcc, 4.9.3 is known to work.
23   - GNU Guile, version 2.0.12 or is know to work.
24   - SH, /bin/sh, GNU Bash 4.3 is known to work.
25   - GNU coreutils
26   - sed, GNU sed 4.2 is known to work.
27   - git, 2.10 is known to work.
28   - Perl, 5.22 is known to work.
29
30 ** Build it
31    ./configure
32    make
33
34 ** Check it
35    make check
36
37 ** Install it
38    make install
39
40 * Guix it
41    guix package -f guix.scm
42
43 * Bootstrap build
44
45 The bootstrap build is being prototyped in GuixSD, see
46 https://gitlab.com/janneke/guix/blob/wip-bootstrap/gnu/packages/mes.scm
47
48 ** Prerequisites
49   - [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.4 is known to work.
50   - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work.
51   - [[https://github.com/oriansj/mescc-tools][mes-seed]], 0.15 is known to work.
52
53 ** Build it
54    <setup environment, e.g. PREFIX, MES_SEED>
55
56    ./build.sh
57
58 ** Check it
59
60    ./check.sh
61
62 ** Install it
63
64    ./install.sh