chiark / gitweb /
src/method-impl.lisp: Initialize `suppliedp' flags properly.
[sod] / configure.ac
1 dnl -*-autoconf-*-
2 dnl
3 dnl Configuration script for SOD
4 dnl
5 dnl (c) 2015 Straylight/Edgeware
6 dnl
7
8 dnl----- Licensing notice ---------------------------------------------------
9 dnl
10 dnl This file is part of the Sensible Object Design, an object system for C.
11 dnl
12 dnl SOD is free software; you can redistribute it and/or modify
13 dnl it under the terms of the GNU General Public License as published by
14 dnl the Free Software Foundation; either version 2 of the License, or
15 dnl (at your option) any later version.
16 dnl
17 dnl SOD is distributed in the hope that it will be useful,
18 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
19 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 dnl GNU General Public License for more details.
21 dnl
22 dnl You should have received a copy of the GNU General Public License
23 dnl along with SOD; if not, write to the Free Software Foundation,
24 dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26 dnl--------------------------------------------------------------------------
27 dnl Initialization.
28
29 mdw_AUTO_VERSION
30 AC_INIT([sod], AUTO_VERSION, [mdw@distorted.org.uk])
31 AC_CONFIG_SRCDIR([lib/sod.h])
32 AC_CONFIG_AUX_DIR([config])
33 AM_INIT_AUTOMAKE([foreign])
34 mdw_SILENT_RULES
35
36 AC_PROG_CC
37 AM_PROG_LIBTOOL
38 AX_CFLAGS_WARN_ALL
39 mdw_LIBTOOL_VERSION_INFO
40
41 dnl--------------------------------------------------------------------------
42 dnl 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.
52 ver=AC_PACKAGE_VERSION
53 case $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     ;;
64 esac
65 AC_SUBST([ASDF_VERSION])
66
67 dnl--------------------------------------------------------------------------
68 dnl Common Lisp things.
69
70 AC_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
75 AC_CHECK_PROGS([CL_LAUNCH], [cl-launch], [not-found])
76 case "$CL_LAUNCH" in
77   not-found) AC_MSG_ERROR([\`cl-launch' not found]) ;;
78 esac
79
80 AC_MSG_CHECKING([for best choice of Lisp system])
81 if ! 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])
84 fi
85 AC_SUBST([LISPSYS])
86 AC_MSG_RESULT([$LISPSYS])
87
88 AC_MSG_CHECKING([FASL file extension])
89 fasl=$($CL_LAUNCH -l $LISPSYS -ip \
90         '(pathname-type (compile-file-pathname "foo.lisp"))')
91 AC_SUBST([fasl])
92 AC_MSG_RESULT([.$fasl])
93
94 AC_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'])
98 AC_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'])
102 AC_SUBST([lispsrcdir], [$with_lisp_source_dir])
103 AC_SUBST([lispsysdir], [$with_lisp_system_dir])
104
105 dnl--------------------------------------------------------------------------
106 dnl Output.
107
108 AC_CONFIG_FILES(
109   [Makefile]
110   [src/Makefile]
111   [lib/Makefile]
112   [doc/Makefile]
113   [test/Makefile])
114 AC_OUTPUT
115
116 dnl----- That's all, folks --------------------------------------------------