Commit | Line | Data |
---|---|---|
97a9a385 MW |
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 | |
e0808c47 | 10 | dnl This file is part of the Sensible Object Design, an object system for C. |
97a9a385 MW |
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 | ||
58a95090 MW |
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 | ||
97a9a385 MW |
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]) | |
5e6bcea3 | 89 | fasl=$($CL_LAUNCH -l $LISPSYS -ip \ |
97a9a385 | 90 | '(pathname-type (compile-file-pathname "foo.lisp"))') |
5e6bcea3 MW |
91 | AC_SUBST([fasl]) |
92 | AC_MSG_RESULT([.$fasl]) | |
97a9a385 MW |
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 | ||
3f725f73 MW |
108 | AC_CONFIG_FILES( |
109 | [Makefile] | |
110 | [src/Makefile] | |
111 | [lib/Makefile] | |
112 | [doc/Makefile] | |
113 | [test/Makefile]) | |
97a9a385 MW |
114 | AC_OUTPUT |
115 | ||
116 | dnl----- That's all, folks -------------------------------------------------- |