build: configure: Oops, substitute @prefix@.
[mes.git] / configure.sh
1 #! /bin/sh
2
3 # GNU Mes --- Maxwell Equations of Software
4 # Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
5 #
6 # This file is part of GNU Mes.
7 #
8 # GNU Mes is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 3 of the License, or (at
11 # your option) any later version.
12 #
13 # GNU Mes is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
20
21 set -e
22
23 VERSION=0.17
24
25 # parse --prefix=prefix
26 cmdline=$(echo "$@")
27 p=${cmdline##*--prefix=}
28 p=${p% *}
29 p=${p% -*}
30 if [ -z "$p" ]; then
31     p=${prefix-/usr/local}
32 fi
33 prefix=$p
34
35 srcdir=${srcdir-$(dirname $0)}
36 . ${srcdest}build-aux/trace.sh
37
38 BASH=${BASH-$(command -v bash)}
39 GUILE=${GUILE-$(command -v guile)} || true
40
41 if [ "$srcdir" = . ]; then
42     top_builddir=.
43 else
44     srcdest=${srcdest}
45     top_builddir=$PWD
46 fi
47 abs_top_srcdir=${abs_top_srcdir-$(cd ${srcdir} && pwd)}
48 abs_top_builddir=$PWD
49
50 if [ -z "$GUILE" -o "$GUILE" = true ]; then
51     GUILE_EFFECTIVE_VERSION=${GUILE_EFFECTIVE_VERSION-2.2}
52 else
53     GUILE_EFFECTIVE_VERSION=${GUILE_EFFECTIVE_VERSION-$(guile -c '(display (effective-version))')}
54 fi
55 datadir=${datadir-$prefix/share}
56 docdir=${docdir-$datadir/doc/mes-$VERSION}
57 infodir=${infodir-$datadir/info}
58 mandir=${mandir-$datadir/man}
59 moduledir=${moduledir-$datadir/mes/module}
60 guile_site_dir=${guile_site_dir-$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION}
61 guile_site_ccache_dir=${guile_site_ccache_dir-$prefix/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache}
62
63 subst () {
64     sed \
65     -e s,"@srcdest@,$srcdest,"\
66     -e s,"@srcdir@,$srcdir,"\
67     -e s,"@abs_top_srcdir@,$abs_top_srcdir,"\
68     -e s,"@abs_top_builddir@,$abs_top_builddir,"\
69     -e s,"@top_builddir@,$top_builddir,"\
70     -e s,"@BASH@,$BASH,"\
71     -e s,"@GUILE@,$GUILE,"\
72     -e s,"@prefix@,$prefix,"\
73     -e s,"@guile_site_dir@,$guile_site_dir,"\
74     -e s,"@guile_site_ccache_dir@,$guile_site_ccache_dir,"\
75     -e s,"@VERSION@,$VERSION,"\
76     -e s,"mes/module/,$moduledir,"\
77     $1 > $2
78 }
79
80 subst ${srcdest}build-aux/pre-inst-env.in pre-inst-env
81 chmod +x pre-inst-env
82 subst ${srcdest}mes/module/mes/boot-0.scm.in mes/module/mes/boot-0.scm
83 subst ${srcdest}scripts/mescc.in scripts/mescc
84
85 subst ${srcdest}build-aux/GNUmakefile.in GNUmakefile
86 subst ${srcdest}build-aux/build.sh.in build.sh
87 subst ${srcdest}build-aux/check.sh.in check.sh
88 subst ${srcdest}build-aux/install.sh.in install.sh
89 subst ${srcdest}build-aux/uninstall.sh.in uninstall.sh
90
91 chmod +x scripts/mescc
92
93 cat <<EOF
94 Run:
95   ./build.sh      to build mes
96   ./check.sh      to check mes
97   ./install.sh    to install mes
98 EOF