chiark / gitweb /
src/method-impl.lisp: Initialize `suppliedp' flags properly.
[sod] / configure.ac
CommitLineData
97a9a385
MW
1dnl -*-autoconf-*-
2dnl
3dnl Configuration script for SOD
4dnl
5dnl (c) 2015 Straylight/Edgeware
6dnl
7
8dnl----- Licensing notice ---------------------------------------------------
9dnl
e0808c47 10dnl This file is part of the Sensible Object Design, an object system for C.
97a9a385
MW
11dnl
12dnl SOD is free software; you can redistribute it and/or modify
13dnl it under the terms of the GNU General Public License as published by
14dnl the Free Software Foundation; either version 2 of the License, or
15dnl (at your option) any later version.
16dnl
17dnl SOD is distributed in the hope that it will be useful,
18dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
19dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20dnl GNU General Public License for more details.
21dnl
22dnl You should have received a copy of the GNU General Public License
23dnl along with SOD; if not, write to the Free Software Foundation,
24dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26dnl--------------------------------------------------------------------------
27dnl Initialization.
28
29mdw_AUTO_VERSION
30AC_INIT([sod], AUTO_VERSION, [mdw@distorted.org.uk])
31AC_CONFIG_SRCDIR([lib/sod.h])
32AC_CONFIG_AUX_DIR([config])
33AM_INIT_AUTOMAKE([foreign])
34mdw_SILENT_RULES
35
36AC_PROG_CC
37AM_PROG_LIBTOOL
38AX_CFLAGS_WARN_ALL
39mdw_LIBTOOL_VERSION_INFO
40
58a95090
MW
41dnl--------------------------------------------------------------------------
42dnl Convert the version number for ASDF.
43
44## This is surprisingly awful. The convention for official version numbers
45## is that they look like MAJOR.MINOR.PATCH[.BPB][-N-gHEX[+]]. ASDF
46## insists on simple numeric things separated by dots. If there's no Git
47## thing on the end, then the main version number will do fine. If there
48## is, then we insert /two/ `0's in, followed by N and the HEX converted to
49## decimal. Why two? Because if there's no brown-paper-bag number, we
50## want to make sure that the first BPB release is higher than any of the
51## preceding Git revisions.
52ver=AC_PACKAGE_VERSION
53case $ver in
54 *-*-g*)
55 base=${ver%%-*} tail=${ver#*-}
56 n=${tail%%-*} tail=${tail#*-g}
57 case $tail in *+) grubby=.1 tail=${tail%+} ;; *) grubby= ;; esac
58 rev=$(( 0x$tail ))
59 ASDF_VERSION=$base.0.0.$n.$rev$grubby
60 ;;
61 *)
62 ASDF_VERSION=$ver
63 ;;
64esac
65AC_SUBST([ASDF_VERSION])
66
97a9a385
MW
67dnl--------------------------------------------------------------------------
68dnl Common Lisp things.
69
70AC_ARG_WITH([lisp-system],
71 [AS_HELP_STRING([--with-lisp-system=SYSTEMS],
72 [preference order of cl-launch Lisp systems])],
73 [], [with_lisp_system="sbcl clisp"])
74
75AC_CHECK_PROGS([CL_LAUNCH], [cl-launch], [not-found])
76case "$CL_LAUNCH" in
77 not-found) AC_MSG_ERROR([\`cl-launch' not found]) ;;
78esac
79
80AC_MSG_CHECKING([for best choice of Lisp system])
81if ! LISPSYS=$($CL_LAUNCH -l "$with_lisp_system" \
82 -ip '(string-downcase (lisp-implementation-type))'); then
83 AC_MSG_ERROR([cl-launch didn't like any Lisp system])
84fi
85AC_SUBST([LISPSYS])
86AC_MSG_RESULT([$LISPSYS])
87
88AC_MSG_CHECKING([FASL file extension])
5e6bcea3 89fasl=$($CL_LAUNCH -l $LISPSYS -ip \
97a9a385 90 '(pathname-type (compile-file-pathname "foo.lisp"))')
5e6bcea3
MW
91AC_SUBST([fasl])
92AC_MSG_RESULT([.$fasl])
97a9a385
MW
93
94AC_ARG_WITH([lisp-source-dir],
95 [AS_HELP_STRING([--with-lisp-source-dir=DIR],
96 [where to install Common Lisp source files])],
97 [], [with_lisp_source_dir='${datadir}/common-lisp/source'])
98AC_ARG_WITH([lisp-system-dir],
99 [AS_HELP_STRING([--with-lisp-system-dir=DIR],
100 [where to install ASDF system links])],
101 [], [with_lisp_system_dir='${datadir}/common-lisp/systems'])
102AC_SUBST([lispsrcdir], [$with_lisp_source_dir])
103AC_SUBST([lispsysdir], [$with_lisp_system_dir])
104
105dnl--------------------------------------------------------------------------
106dnl Output.
107
3f725f73
MW
108AC_CONFIG_FILES(
109 [Makefile]
110 [src/Makefile]
111 [lib/Makefile]
112 [doc/Makefile]
113 [test/Makefile])
97a9a385
MW
114AC_OUTPUT
115
116dnl----- That's all, folks --------------------------------------------------