@@@ work in progress
[runlisp] / configure.ac
CommitLineData
e29834b8
MW
1dnl -*-autoconf-*-
2dnl
3dnl Configuration script for `runlisp'
4dnl
5dnl (c) 2020 Mark Wooding
6dnl
7
8dnl----- Licensing notice ---------------------------------------------------
9dnl
10dnl This file is part of Runlisp, a tool for invoking Common Lisp scripts.
11dnl
12dnl Runlisp is free software: you can redistribute it and/or modify it
13dnl under the terms of the GNU General Public License as published by the
14dnl Free Software Foundation; either version 3 of the License, or (at your
15dnl option) any later version.
16dnl
17dnl Runlisp is distributed in the hope that it will be useful, but WITHOUT
18dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20dnl for more details.
21dnl
22dnl You should have received a copy of the GNU General Public License
23dnl along with Runlisp. If not, see <https://www.gnu.org/licenses/>.
24
25dnl--------------------------------------------------------------------------
26dnl Initialization.
27
28mdw_AUTO_VERSION
29AC_INIT([runlisp], AUTO_VERSION, [mdw@distorted.org.uk])
30AC_CONFIG_SRCDIR([runlisp.c])
31AC_CONFIG_AUX_DIR([config])
32AM_INIT_AUTOMAKE([foreign])
33mdw_SILENT_RULES
34
35AC_PROG_CC
36AX_CFLAGS_WARN_ALL
7b8ff279
MW
37mdw_DECL_ENVIRON
38AC_CHECK_FUNC([strsignal])
39case $ac_cv_func_strsignal in no) AC_DECL_SYS_SIGLIST ;; esac
e29834b8
MW
40
41AC_CHECK_PROGS([AUTOM4TE], [autom4te])
42
43dnl--------------------------------------------------------------------------
44dnl Checking for Lisp implementations.
45
46imagedir=$localstatedir/$PACKAGE_NAME; AC_SUBST(imagedir)
47mdw_DEFINE_PATHS([
48 mdw_DEFINE_PATH([IMAGEDIR], [$imagedir])
7b8ff279 49 mdw_DEFINE_PATH([ETCDIR], [$sysconfdir])
e29834b8
MW
50 mdw_DEFINE_PATH([DATADIR], [$datadir/$PACKAGE_NAME])])
51
52AC_ARG_ENABLE([imagedump],
53 [AS_HELP_STRING([--enable-imagedump[=SYSTEMS]],
54 [make dumps of Lisp SYSTEMS with ASDF etc. preloaded;
55 SYSTEMS is `yes', `no', or a comma-separated list of
56 system names])],
57 [], [enable_imagedump=yes])
58
59AC_DEFUN([mdw_CHECK_LISP],
60[AC_CHECK_PROGS([$1], [$2])
61AC_ARG_VAR([$1], [Path to the $1 Lisp system.])
62case ,$enable_imagedump, in
63 ,yes, | *,$2,*) dump=t ;;
64 *) dump=nil ;;
65esac
66AM_CONDITIONAL([DUMP_$1], [test $dump = t])])
67
68mdw_CHECK_LISP([SBCL], [sbcl])
69mdw_CHECK_LISP([CCL], [ccl])
70mdw_CHECK_LISP([CLISP], [clisp])
71mdw_CHECK_LISP([ECL], [ecl])
72mdw_CHECK_LISP([CMUCL], [cmucl])
73mdw_CHECK_LISP([ABCL], [abcl])
74
75dnl ECL is changing its command-line option syntax, because that will make
76dnl things much better or something. So we need to figure out which version
77dnl of the syntax to use.
78mdw_ecl_opts=hunoz
79if test "x$ECL" != x; then
80 AC_MSG_CHECKING([ECL command-line option flavour])
81 ver=$($ECL --version)
82 case $ver in
83 [ECL\ [0-9].*] | [ECL\ 1[0-5].*]) mdw_ecl_opts=trad ;;
84 [ECL\ 1[6-9].*] | [ECL\ [2-9][0-9].*]) mdw_ecl_opts=gnu ;;
85 *) AC_MSG_ERROR([unsupported ECL version \`$ver']) ;;
86 esac
87 AC_MSG_RESULT([$mdw_ecl_opts])
88 case $mdw_ecl_opts in
89 gnu) AC_DEFINE([ECL_OPTIONS_GNU], [1],
90 [Define 1 if ECL uses GNU-style `--FOO' options]) ;;
91 esac
92fi
93case $mdw_ecl_opts in
94 gnu) ECLOPT=-- ;;
95 trad) ECLOPT=- ;;
96 *) AC_MSG_ERROR([internal error: unexpected value for `$mdw_ecl_opts']) ;;
97esac
98AC_SUBST([ECLOPT])
99
100dnl--------------------------------------------------------------------------
101dnl Benchmarking support.
102
103dnl This has lots of random dependencies, and isn't really very useful. Turn
104dnl it off unless the user is very keen.
105AC_ARG_ENABLE([benchmark],
106 [AS_HELP_STRING([--enable-benchmark],
107 [turn on script-startup benchmark machinery])],
108 [mdw_bench=$enableval], [mdw_bench=no])
109AM_CONDITIONAL([BENCHMARK], [test "$mdw_bench" = yes])
110
111dnl--------------------------------------------------------------------------
112dnl Produce output.
113
114AC_CONFIG_HEADER([config/config.h])
115AC_CONFIG_TESTDIR([t])
116
117AC_CONFIG_FILES([Makefile]
118 [bench/Makefile doc/Makefile]
119 [t/Makefile t/atlocal])
120AC_OUTPUT
121
122dnl----- That's all, folks --------------------------------------------------