core: eval_apply profile.
[mes.git] / INSTALL
1                                                               -*- org -*-
2 #+TITLE: Building and Installing GNU Mes
3
4 Copyright © 2016, 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
5
6   Copying and distribution of this file, with or without modification,
7   are permitted in any medium without royalty provided the copyright
8   notice and this notice are preserved.
9
10 Mes can be built in two modes: as a regulare package build or as a
11 bootstrap package.
12
13 After bootstrapping Mes it can be used to bootstrap TinyCC (tcc) in a
14 similar way.
15
16 * Get it
17    git clone [[git://git.savannah.gnu.org][git://git.savannah.gnu.org/mes.git]]
18
19 * Regular build
20 ** Prerequisites
21 *** Guix
22     guix environment -l .guix.scm     #64 bit + 32bit
23     guix environment --system=i686-linux -l .guix.scm #32 bit only
24
25 *** Other GNU/Linux
26   - [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.5 is known to work.
27   - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.86.0 is known to work.
28   - GNU Gcc, 4.9.3 is known to work.
29   - GNU Guile, version 2.0.12 or is know to work.
30   - SH, /bin/sh, GNU Bash 4.3 is known to work.
31   - GNU coreutils
32   - sed, GNU sed 4.2 is known to work.
33   - git, 2.10 is known to work.
34   - Perl, 5.22 is known to work.
35
36 ** Build it
37    ./configure
38    make
39
40 ** Check it
41    make check
42
43 ** Install it
44    make install
45
46 * Guix it
47    guix package -f .guix.scm
48
49 * Bootstrap build
50
51 The bootstrap build is being developed in Guix, on wip-bootstrap, see
52 http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/mes.scm?h=wip-bootstrap
53
54 ** Prerequisites
55   - [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.5 is known to work.
56   - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.86.0 is known to work.
57   - [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.17.1 is known to work.
58
59 ** Build it
60    <setup environment, e.g. prefix, MES_SEED>
61    ./configure.sh [--prefix=<prefix>]
62    ./build.sh
63
64 ** Check it
65
66    ./check.sh
67
68 ** Install it
69
70    ./install.sh