build: Separate Mes and Guile modules.
[mes.git] / install.sh
1 #! /bin/sh
2
3 set -e
4 if [ -n "$BUILD_DEBUG" ]; then
5     set -x
6 fi
7
8 # use bash or lose if pipes fail
9 [ -n "$BASH" ] && set -o pipefail
10
11 SHELL=${SHELL-$(command -v sh)}
12 prefix=${prefix-/usr/local}
13
14 MES_PREFIX=${MES_PREFIX-$prefix/share/mes}
15 MES_SEED=${MES_SEED-../MES-SEED}
16 TINYCC_SEED=${TINYCC_SEED-../TINYCC-SEED}
17
18 GUILE_EFFECTIVE_VERSION=${GUILE_EFFECTIVE_VERSION-2.2}
19 datadir=${moduledir-$prefix/share/mes}
20 docdir=${moduledir-$prefix/share/doc/mes}
21 mandir=${mandir-$prefix/share/man}
22 moduledir=${moduledir-$datadir/module}
23 guile_site_dir=${guile_site_dir-$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION}
24 guile_site_ccache_dir=${guile_site_ccache_dir-$prefix/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache}
25 docdir=${moduledir-$prefix/share/doc/mes}
26
27 mkdir -p $DESTDIR$prefix/bin
28 cp src/mes $DESTDIR$prefix/bin/mes
29
30 mkdir -p $DESTDIR$prefix/lib
31 mkdir -p $DESTDIR$MES_PREFIX/lib
32 cp scripts/mescc $DESTDIR$prefix/bin/mescc
33
34 mkdir -p $DESTDIR$MES_PREFIX
35 tar -cf- doc include lib scaffold | tar -xf- -C $DESTDIR$MES_PREFIX
36 tar -cf- --exclude='*.go' module | tar -xf- -C $DESTDIR$MES_PREFIX
37 tar -cf- -C mes module | tar -xf- -C $DESTDIR$MES_PREFIX
38
39 mkdir -p $DESTDIR$guile_site_dir
40 mkdir -p $DESTDIR$guile_site_ccache_dir
41 tar -cf- -C module --exclude='*.go' . | tar -xf- -C $DESTDIR$guile_site_dir
42 tar -cf- -C module --exclude='*.scm' . | tar -xf- -C $DESTDIR$guile_site_ccache_dir
43
44 chmod +w $DESTDIR$prefix/bin/mescc
45 sed \
46     -e "s,^#! /bin/sh,#! $SHELL," \
47     -e "s,@datadir@,$datadir,g" \
48     -e "s,@docdir@,$docdir,g" \
49     -e "s,@guile_site_ccache_dir@,$guile_site_ccache_dir,g" \
50     -e "s,@guile_site_dir@,$guile_site_dir,g" \
51     -e "s,@moduledir@,$moduledir,g" \
52     -e "s,@prefix@,$prefix,g" \
53     -e "s,@VERSION@,$VERSION,g" \
54     scripts/mescc > $DESTDIR$prefix/bin/mescc
55 chmod +w $DESTDIR$moduledir/mes/boot-0.scm
56 sed \
57     -e "s,^#! /bin/sh,#! $SHELL," \
58     -e "s,mes/module/,$moduledir/," \
59     -e "s,@datadir@,$datadir,g" \
60     -e "s,@docdir@,$docdir,g" \
61     -e "s,@guile_site_ccache_dir@,$guile_site_ccache_dir,g" \
62     -e "s,@guile_site_dir@,$guile_site_dir,g" \
63     -e "s,@moduledir@,$moduledir,g" \
64     -e "s,@prefix@,$prefix,g" \
65     -e "s,@VERSION@,$VERSION,g" \
66     mes/module/mes/boot-0.scm > $DESTDIR$moduledir/mes/boot-0.scm
67
68 sed \
69     -e "s,^#! /bin/sh,#! $SHELL," \
70     scripts/diff.scm > $DESTDIR$prefix/bin/diff.scm
71 chmod -w+x $DESTDIR$prefix/bin/diff.scm
72
73 if [ -f doc/mes.info ]; then
74     mkdir -p $DESTDIR$prefix/share/info
75     tar -cf- doc/mes.info* doc/images | tar -xf- --strip-components=1 -C $DESTDIR$prefix/share/info
76     install-info --info-dir=$DESTDIR$prefix/share/info doc/mes.info
77 fi
78
79 if [ -f doc/mes.1 ]; then
80     mkdir -p $DESTDIR$mandir/man1
81     cp doc/mes.1 $DESTDIR$mandir/man1/
82 fi
83
84 if [ -f doc/mescc.1 ]; then
85     mkdir -p $DESTDIR$mandir/man1
86     cp doc/mescc.1 $DESTDIR$mandir/man1/
87 fi