Can't have empty body for if/then. Just use true.
[maxima.git] / configure.ac
blobe6a1fa182328dfefbd92dd0ad92e0fd9ad2713ef
1 dnl Process this file with autoconf to produce a configure script.
3 dnl If git is available, the version number here is not used.  
4 dnl Instead, git is used to derive the version based on the closest
5 dnl annotated branch tag.
6 dnl
7 dnl Note: during Lisp-based builds (see INSTALL.lisp) the version
8 dnl number is read from the following AC_INIT line.  It's sensitive to
9 dnl whitespace so when updating the version number only make changes
10 dnl within the second pair of square brackets.
11 AC_INIT([maxima], [5.46post])
12 AC_CONFIG_SRCDIR([src/macsys.lisp])
13 AM_INIT_AUTOMAKE([-Wno-portability tar-ustar])
15 # On debian-based systems this makes us use the right gcl version out-of-the box.
16 # On other systems it doesn't hurt.
17 export GCL_ANSI=t
19 # This enables running the testbench for "make check" on gcl versions with the old
20 # memory management (Which in January 2018 includes all Versions shipped with debian
21 # and Ubuntu)
22 export GCL_MEM_MULTIPLE=0.1
24 AM_PATH_LISPDIR
26 AC_CANONICAL_HOST
28 dnl If we were using a C compiler, EXEEXT would get defined
29 dnl automatically. But we aren't, so we have to define it ourselves.
30 dnl Still to do: Add Win64 support here, if this is needed.
31 case "$host" in
32         *mingw*)
33                 win32=true
34                 win64=false
35                 mingw=true
36                 EXEEXT=.exe
37                 CLISPEXT=${EXEEXT}
38                 ;;
39         *cygwin*)
40                 win32=false
41                 win64=false
42                 mingw=false
43                 EXEEXT=.exe
44                 CLISPEXT=${EXEEXT}
45                 ;;
46         *)
47                 win32=false
48                 win64=false
49                 mingw=false
50                 EXEEXT=
51                 CLISPEXT=.run
52 esac
53 AC_SUBST(EXEEXT)
54 AC_SUBST(win32)
55 AC_SUBST(win64)
56 AM_CONDITIONAL(WIN32, test x$win32 = xtrue)
57 AM_CONDITIONAL(WIN64, test x$win64 = xtrue)
59 dnl To make life more confusing, the automake test machinery (which we
60 dnl use in ./tests) needs the am__EXEEXT conditional. This would have
61 dnl normally been expanded (via something we've copied from Automake's
62 dnl init.m4 into our aclocal.m4) as Automake computed EXEEXT, but it
63 dnl didn't so we have to drop this in ourselves.
64 AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
66 explicit_lisp=false
67 lisps_enabled=""
69 dnl Compiling with abcl requires a jre and the path to abcl.jar
70 AC_ARG_ENABLE(abcl,
71         [  --enable-abcl                Use abcl, requires --with-abcl-jar],
72         [case "${enableval}" in
73                 yes) abcl=true 
74                      lisps_enabled="${lisps_enabled} abcl"
75                      explicit_lisp=true ;;
76                 no)  abcl=false ;;
77                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-abcl) ;;
78         esac
79         explicit_lisp=true],
80         [abcl=false])
81 ABCL_JAR=`pwd`/"abcl.jar"
82 AC_ARG_WITH(abcl-jar,
83         [  --with-abcl-jar=<jarfile>    Use <jarfile> as abcl install (default ./abcl.jar)],
84         [abcl=true
85         lisps_enabled="${lisps_enabled} abcl"
86         explicit_lisp=true
87         ABCL_JAR="${withval}"])
88         
89 AC_ARG_WITH(jre,
90         [  --with-jre=<jre>             When compiling with abcl: use <jre> as Java interpreter],
91         [JRE="${withval}"],
92         [JRE="java"])
94 if test x"${abcl}" = xtrue ; then
95      if test -e "${ABCL_JAR}" ; then
96           echo Using abcl found in ${ABCL_JAR}
97      else
98         AC_MSG_ERROR(${ABCL_JAR} not found.)
99      fi
102 dnl n.b. clisp_default_name is hardcoded in "with" message
103 clisp_default_name=clisp
104 AC_ARG_ENABLE(clisp,
105         [  --enable-clisp               Use clisp],
106         [case "${enableval}" in
107                 yes) clisp=true 
108                      lisps_enabled="${lisps_enabled} clisp"
109                      explicit_lisp=true ;;
110                 no)  clisp=false ;;
111                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-clisp) ;;
112         esac
113         explicit_lisp=true],
114         [clisp=false])
115 AC_ARG_WITH(clisp,
116         [  --with-clisp=<prog>          Use clisp executable <prog> (default clisp)],
117         [clisp=true
118         lisps_enabled="${lisps_enabled} clisp"
119         explicit_lisp=true
120         if test "$withval" = "yes"; then
121                 CLISP_NAME="${clisp_default_name}"
122         else
123                 CLISP_NAME="$withval"
124         fi],
125         [CLISP_NAME=${clisp_default_name}])
126         CLISP_RUNTIME="lisp${CLISPEXT}"
127 AC_ARG_WITH(clisp-runtime,
128         [  --with-clisp-runtime=<path>  Use clisp runtime <path> (default
129                                   *lib-directory*/base/lisp.run on unix,
130                                   *lib-directory*\\lisp.exe on windows) ],
131         [clisp=true
132         lisps_enabled="${lisps_enabled} clisp"
133         CLISP_RUNTIME_PATH="$withval"
134         CLISP_RUNTIME=`basename ${CLISP_RUNTIME_PATH}`],
135         [])
136 AC_ARG_ENABLE(clisp-exec,
137         [  --enable-clisp-exec          Create a maxima executable image using CLISP.
138                                 No check is made if the version of 
139                                 CLISP supports executable images],
140         [case "${enableval}" in
141             yes) clisp_exec=true 
142                  clisp=true 
143                  lisps_enabled="${lisps_enabled} clisp"
144                  explicit_lisp=true ;;
145             no) clisp_exec=false ;;
146             *) AC_MSG_ERROR(bad value ${enableval} for --enable-clisp-exec) ;;
147          esac
148          CLISP_EXEC=${clisp_exec}],
149         [clisp_exec=false
150          CLISP_EXEC=false])
151 if test x"${clisp}" = xtrue ; then
152         if test `echo "$CLISP_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
153                 if test -x "$CLISP_NAME" ; then
154                         clisp_found=true
155                 else
156                         clisp_found=false
157                 fi
158         else
159                 AC_CHECK_PROG(clisp_found,$CLISP_NAME,true,false)
160         fi
161         if test x"${clisp_found}" = xfalse ; then
162                 AC_MSG_WARN(clisp executable ${CLISP_NAME} not found in PATH)
163         fi         
167 dnl See if git exists.  If it does, update VERSION to include a git tag
168 AC_CHECK_PROG(git_found, git, true, false)
169 if test x"${git_found}" = xtrue; then
170     # Test to see if git describe works (discarding any output).  If
171     # it works, use it.  Otherwise, keep existing value of VERSION.
172     # (git describe fails if git is executed in a non-Git directory, e.g.,
173     # an unpacked tarball. Since the exit codes of git describe are undocumented,
174     # we cannot distinguish that from a missing annotated tag.
175     # Play it safe by refusing to change VERSION.)
176     if git describe > /dev/null 2>&1; then
177         VERSION="`git describe --dirty`"
178         # When building RPMs, hyphens in the version are not allowed, so
179         # replace them with underscores.
180         VERSION=`echo $VERSION | sed 's;-;_;g'`
181     fi
184 dnl Parses the version number for the manual
185 manual_version=`echo $VERSION | sed 's+branch_++; s+_base++; s+_dirty++; s+_+.+g'`
186 AC_SUBST(manual_version)
188 dnl n.b. cmucl_default_name is hardcoded in "with" message
189 cmucl_default_name=lisp
190 CMUCL_RUNTIME=lisp
191 AC_ARG_ENABLE(cmucl,
192         [  --enable-cmucl               Use CMUCL],
193         [case "${enableval}" in
194                 yes) cmucl=true 
195                      lisps_enabled="${lisps_enabled} cmucl"
196                      explicit_lisp=true ;;
197                 no)  cmucl=false ;;
198                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-cmucl) ;;
199         esac
200         explicit_lisp=true],
201         [cmucl=false])
202 AC_ARG_WITH(cmucl,
203         [  --with-cmucl=<prog>          Use CMUCL executable <prog> (default lisp)],
204         [cmucl=true
205         lisps_enabled="${lisps_enabled} cmucl"
206         explicit_lisp=true
207         if test "$withval" = "yes"; then
208                 CMUCL_NAME="${cmucl_default_name}"
209         else
210                 CMUCL_NAME="$withval"
211         fi],
212         [CMUCL_NAME=${cmucl_default_name}])
213 AC_ARG_WITH(cmucl-runtime,
214         [  --with-cmucl-runtime=<path>  Use CMUCL runtime <path> (default
215                                   *cmucl-lib*/../bin/lisp)],
216         [cmucl=true
217         lisps_enabled="${lisps_enabled} cmucl"
218         CMUCL_RUNTIME_PATH="$withval"
219         CMUCL_RUNTIME=`basename ${CMUCL_RUNTIME_PATH}`],
220         [])
221 AC_ARG_ENABLE(cmucl-exec,
222         [  --enable-cmucl-exec          Create a maxima executable image using CMUCL.
223                                 No check is made if the version of 
224                                 CMUCL supports executable images],
225         [case "${enableval}" in
226             yes) cmucl_exec=true
227                  cmucl=true 
228                  lisps_enabled="${lisps_enabled} cmucl"
229                  explicit_lisp=true ;;
230             no) cmucl_exec=false ;;
231             *) AC_MSG_ERROR(bad value ${enableval} for --enable-cmucl-exec) ;;
232          esac
233          CMUCL_EXEC=${cmucl_exec}],
234         [cmucl_exec=false
235          CMUCL_EXEC=false])
236 if test x"${cmucl}" = xtrue ; then
237         if test `echo "$CMUCL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
238                 if test -x "$CMUCL_NAME" ; then
239                         cmucl_found=true
240                 else
241                         cmucl_found=false
242                 fi
243         else
244                 AC_CHECK_PROG(cmucl_found,$CMUCL_NAME,true,false)
245         fi
246         AC_CHECK_PROG(cmucl_found,$CMUCL_NAME,true,false)
247         if test x"${cmucl_found}" = xfalse ; then
248                 AC_MSG_WARN(cmucl executable ${CMUCL_NAME} not found in PATH)
249         fi
252 dnl n.b. scl_default_name is hardcoded in "with" message
253 scl_default_name=scl
254 SCL_RUNTIME=lisp
255 AC_ARG_ENABLE(scl,
256         [  --enable-scl                 Use SCL],
257         [case "${enableval}" in
258                 yes) scl=true 
259                      lisps_enabled="${lisps_enabled} scl"
260                      explicit_lisp=true ;;
261                 no)  scl=false ;;
262                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-scl) ;;
263         esac
264         explicit_lisp=true],
265         [scl=false])
266 AC_ARG_WITH(scl,
267         [  --with-scl=<prog>            Use SCL executable <prog> (default scl)],
268         [scl=true
269         lisps_enabled="${lisps_enabled} scl"
270         explicit_lisp=true
271         if test "$withval" = "yes"; then
272                 SCL_NAME="${scl_default_name}"
273         else
274                 SCL_NAME="$withval"
275         fi],
276         [SCL_NAME=${scl_default_name}])
277 AC_ARG_WITH(scl-runtime,
278         [  --with-scl-runtime=<path>    Use SCL runtime <path> (default
279                                   file://library/../bin/lisp)],
280         [scl=true
281         lisps_enabled="${lisps_enabled} scl"
282         SCL_RUNTIME_PATH="$withval"
283         SCL_RUNTIME=`basename ${SCL_RUNTIME_PATH}`],
284         [])
285 if test x"${scl}" = xtrue ; then
286         if test `echo "$SCL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
287                 if test -x "$SCL_NAME" ; then
288                         scl_found=true
289                 else
290                         scl_found=false
291                 fi
292         else
293                 AC_CHECK_PROG(scl_found,$SCL_NAME,true,false)
294         fi
295         AC_CHECK_PROG(scl_found,$SCL_NAME,true,false)
296         if test x"${scl_found}" = xfalse ; then
297                 AC_MSG_WARN(scl executable ${SCL_NAME} not found in PATH)
298         fi
301 dnl n.b. sbcl_default_name is hardcoded in "with" message
302 sbcl_default_name=sbcl
303 AC_ARG_ENABLE(sbcl,
304         [  --enable-sbcl                Use SBCL],
305         [case "${enableval}" in
306                 yes) sbcl=true 
307                      lisps_enabled="${lisps_enabled} sbcl"
308                      explicit_lisp=true ;;
309                 no)  sbcl=false ;;
310                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-sbcl) ;;
311         esac
312         explicit_lisp=true],
313         [sbcl=false])
314 AC_ARG_WITH(sbcl,
315         [  --with-sbcl=<prog>           Use SBCL executable <prog> (default sbcl)],
316         [sbcl=true
317         lisps_enabled="${lisps_enabled} sbcl"
318         explicit_lisp=true
319         if test "$withval" = "yes"; then
320                 SBCL_NAME="${sbcl_default_name}"
321         else
322                 SBCL_NAME="$withval"
323         fi],
324         [SBCL_NAME="${sbcl_default_name}"])
325 AC_ARG_ENABLE(sbcl-exec,
326         [  --enable-sbcl-exec           Create a maxima executable image using SBCL.
327                                 No check is made if the version of 
328                                 SBCL supports executable images],
329         [case "${enableval}" in
330             yes) sbcl_exec=true 
331                  sbcl=true 
332                  lisps_enabled="${lisps_enabled} sbcl"
333                  explicit_lisp=true ;;
334             no) sbcl_exec=false ;;
335             *) AC_MSG_ERROR(bad value ${enableval} for --enable-sbcl-exec) ;;
336          esac
337          SBCL_EXEC=${sbcl_exec}],
338         [sbcl_exec=false
339          SBCL_EXEC=false])
340 if test x"${sbcl}" = xtrue ; then
341         if test `echo "$SBCL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
342                 if test -x "$SBCL_NAME" ; then
343                         sbcl_found=true
344                 else
345                         sbcl_found=false
346                 fi
347         else
348                 AC_CHECK_PROG(sbcl_found,"$SBCL_NAME",true,false)
349         fi
350         AC_CHECK_PROG(sbcl_found,"$SBCL_NAME",true,false)
351         if test x"${sbcl_found}" = xfalse ; then
352                 AC_MSG_WARN(sbcl executable "${SBCL_NAME}" not found in PATH)
353         fi
355         
356 dnl n.b. acl_default_name is hardcoded in "with" message
357 acl_default_name=lisp
358 AC_ARG_ENABLE(acl,
359         [  --enable-acl                 Use ACL],
360         [case "${enableval}" in
361                 yes) acl=true 
362                      lisps_enabled="${lisps_enabled} acl"
363                      explicit_lisp=true ;;
364                 no)  acl=false ;;
365                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-acl) ;;
366         esac
367         explicit_lisp=true],
368         [acl=false])
369 AC_ARG_WITH(acl,
370         [  --with-acl=<prog>            Use ACL executable <prog> (default lisp)],
371         [acl=true
372         lisps_enabled="${lisps_enabled} acl"
373         explicit_lisp=true
374         if test "$withval" = "yes"; then
375                 ACL_NAME="${acl_default_name}"
376         else
377                 ACL_NAME="$withval"
378         fi],
379         [ACL_NAME=${acl_default_name}])
380 if test x"${acl}" = xtrue ; then
381         if test `echo "$ACL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
382                 if test -x "$ACL_NAME" ; then
383                         acl_found=true
384                 else
385                         acl_found=false
386                 fi
387         else
388                 AC_CHECK_PROG(acl_found,$ACL_NAME,true,false)
389         fi
390         AC_CHECK_PROG(acl_found,$ACL_NAME,true,false)
391         if test x"${acl_found}" = xfalse ; then
392                 AC_MSG_WARN(acl executable ${ACL_NAME} not found in PATH)
393         fi
396 dnl n.b. gcl_default_name is hardcoded in "with" message
397 gcl_default_name=gcl
398 AC_ARG_ENABLE(gcl,
399         [  --enable-gcl                 Use GCL],
400         [case "${enableval}" in
401                 yes) gcl=true 
402                      lisps_enabled="${lisps_enabled} gcl"
403                      explicit_lisp=true;;
404                 no)  gcl=false ;;
405                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gcl) ;;
406         esac],
407         [gcl=false])
408 AC_ARG_WITH(gcl,
409         [  --with-gcl=<prog>            Use GCL executable <prog> (default gcl)],
410         [gcl=true
411         lisps_enabled="${lisps_enabled} gcl"
412         explicit_lisp=true
413         if test "$withval" = "yes"; then
414                 GCL_NAME="${gcl_default_name}"
415         else
416                 GCL_NAME="$withval"
417         fi],
418         [GCL_NAME=${gcl_default_name}])
419 if test x"${gcl}" = xtrue ; then
420         if test `echo "$GCL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
421                 if test -x "$GCL_NAME" ; then
422                         gcl_found=true
423                 else
424                         gcl_found=false
425                 fi
426         else
427                 AC_CHECK_PROG(gcl_found,$GCL_NAME,true,false)
428         fi
429         if test x"${gcl_found}" = xfalse ; then
430                 AC_MSG_WARN(gcl executable ${GCL_NAME} not found in PATH)
431         fi
434 dnl n.b. openmcl_default_name is hardcoded in "with" message
435 openmcl_default_name=openmcl
436 AC_ARG_ENABLE(openmcl,
437         [  --enable-openmcl             Use OpenMCL],
438         [case "${enableval}" in
439                 yes) openmcl=true 
440                      lisps_enabled="${lisps_enabled} openmcl"
441                      explicit_lisp=true;;
442                 no)  openmcl=false ;;
443                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-openmcl) ;;
444         esac],
445         [openmcl=false])
446 AC_ARG_WITH(openmcl,
447         [  --with-openmcl=<prog>        Use OpenMCL executable <prog> (default openmcl)],
448         [openmcl=true
449         lisps_enabled="${lisps_enabled} openmcl"
450         explicit_lisp=true
451         if test "$withval" = "yes"; then
452                 OPENMCL_NAME="${openmcl_default_name}"
453         else
454                 OPENMCL_NAME="$withval"
455         fi],
456         [OPENMCL_NAME=${openmcl_default_name}])
457 AC_ARG_ENABLE(openmcl-exec,
458         [  --enable-openmcl-exec        Create a maxima executable image using OPENMCL.
459                                 No check is made if the version of 
460                                 OPENMCL supports executable images],
461         [case "${enableval}" in
462             yes) openmcl_exec=true
463                  openmcl=true 
464                  lisps_enabled="${lisps_enabled} openmcl"
465                  explicit_lisp=true;;
466             no) openmcl_exec=false ;;
467             *) AC_MSG_ERROR(bad value ${enableval} for --enable-openmcl-exec) ;;
468          esac
469          OPENMCL_EXEC=${openmcl_exec}],
470         [openmcl_exec=false
471          OPENMCL_EXEC=false])
473 dnl Define ccl as an alias (essentially) for openmcl
474 AC_ARG_ENABLE(ccl,
475         [  --enable-ccl                 Use CCL (Clozure Common Lisp)],
476         [case "${enableval}" in
477                 yes) openmcl=true 
478                      lisps_enabled="${lisps_enabled} openmcl"
479                      explicit_lisp=true;;
480                 no)  openmcl=false ;;
481                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ccl) ;;
482         esac],
483         [openmcl=false])
484 AC_ARG_WITH(ccl,
485         [  --with-ccl=<prog>            Use OpenMCL executable <prog> (default ccl)],
486         [openmcl=true
487         lisps_enabled="${lisps_enabled} openmcl"
488         explicit_lisp=true
489         if test "$withval" = "yes"; then
490                 OPENMCL_NAME="${openmcl_default_name}"
491         else
492                 OPENMCL_NAME="$withval"
493         fi],
494         [OPENMCL_NAME=${openmcl_default_name}])
495 AC_ARG_ENABLE(ccl-exec,
496         [  --enable-ccl-exec            Create a maxima executable image using CCL.
497                                 No check is made if the version of 
498                                 CCL supports executable images],
499         [case "${enableval}" in
500             yes) openmcl_exec=true
501                  openmcl=true 
502                  lisps_enabled="${lisps_enabled} openmcl"
503                  explicit_lisp=true;;
504             no) openmcl_exec=false ;;
505             *) AC_MSG_ERROR(bad value ${enableval} for --enable-ccl-exec) ;;
506          esac
507          OPENMCL_EXEC=${openmcl_exec}],
508         [openmcl_exec=false
509          OPENMCL_EXEC=false])
511 if test x"${openmcl}" = xtrue ; then
512         if test `echo "$OPENMCL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
513                 if test -x "$OPENMCL_NAME" ; then
514                         openmcl_found=true
515                 else
516                         openmcl_found=false
517                 fi
518         else
519                 AC_CHECK_PROG(openmcl_found,$OPENMCL_NAME,true,false)
520         fi
521         if test x"${openmcl_found}" = xfalse ; then
522                 AC_MSG_WARN(openmcl executable ${OPENMCL_NAME} not found in PATH)
523         fi
526 dnl n.b. ccl64_default_name is hardcoded in "with" message
527 dnl We assume we're running on an x86 processor.  The user has to
528 dnl select a different executable name to match his system, if neceessary.
530 ccl64_default_name=dx86cl64
531 AC_ARG_ENABLE(ccl64,
532         [  --enable-ccl64               Use CCL (Clozure Common Lisp), 64-bit],
533         [case "${enableval}" in
534                 yes) ccl64=true 
535                      lisps_enabled="${lisps_enabled} ccl64"
536                      explicit_lisp=true;;
537                 no)  ccl64=false ;;
538                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ccl64) ;;
539         esac],
540         [ccl64=false])
541 AC_ARG_WITH(ccl64,
542         [  --with-ccl64=<prog>          Use ccl64 executable <prog> (default dx86cl64)],
543         [ccl64=true
544         lisps_enabled="${lisps_enabled} ccl64"
545         explicit_lisp=true
546         if test "$withval" = "yes"; then
547                 CCL64_NAME="${ccl64_default_name}"
548         else
549                 CCL64_NAME="$withval"
550         fi],
551         [CCL64_NAME=${ccl64_default_name}])
552 AC_ARG_ENABLE(ccl64-exec,
553         [  --enable-ccl64-exec          Create a maxima executable image using CCL.
554                                 No check is made if the version of 
555                                 CCL supports executable images],
556         [case "${enableval}" in
557             yes) ccl64_exec=true
558                  ccl64=true 
559                  lisps_enabled="${lisps_enabled} ccl64"
560                  explicit_lisp=true;;
561             no) ccl64_exec=false ;;
562             *) AC_MSG_ERROR(bad value ${enableval} for --enable-ccl64-exec) ;;
563          esac
564          CCL64_EXEC=${ccl64_exec}],
565         [ccl64_exec=false
566          CCL64_EXEC=false])
568 dnl n.b. ecl_default_name is hardcoded in "with" message
569 ecl_default_name=ecl
570 AC_ARG_ENABLE(ecl,
571         [  --enable-ecl                 Use ECL],
572         [case "${enableval}" in
573                 yes) ecl=true 
574                      lisps_enabled="${lisps_enabled} ecl"
575                      explicit_lisp=true;;
576                 no)  ecl=false ;;
577                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ecl) ;;
578         esac],
579         [ecl=false])
580 AC_ARG_WITH(ecl,
581         [  --with-ecl=<prog>            Use ECL executable <prog> (default ecl)],
582         [ecl=true
583         lisps_enabled="${lisps_enabled} ecl"
584         explicit_lisp=true
585         if test "$withval" = "yes"; then
586                 ECL_NAME="${ecl_default_name}"
587         else
588                 ECL_NAME="$withval"
589         fi],
590         [ECL_NAME=${ecl_default_name}])
591 if test x"${ecl}" = xtrue ; then
592         if test `echo "$ECL_NAME" | sed 's/\(.\).*/\1/'` = "/" ; then
593                 if test -x "$ECL_NAME" ; then
594                         ecl_found=true
595                 else
596                         ecl_found=false
597                 fi
598         else
599                 AC_CHECK_PROG(ecl_found,$ECL_NAME,true,false)
600         fi
601         if test x"${ecl_found}" = xfalse ; then
602                 AC_MSG_WARN(ecl executable ${ECL_NAME} not found in PATH)
603         fi
606 dnl xgettext
607 AC_ARG_ENABLE(gettext,
608         [  --enable-gettext             Locale support],
609         [case "${enableval}" in
610                yes) enable_gettext=true  ;;
611                no)  enable_gettext=false ;;
612                *) AC_MSG_ERROR(bad value ${enableval} for --enable-gettext) ;;
613          esac],
614          [enable_gettext=false])
617 AM_CONDITIONAL(ENABLE_GETTEXT, test x$enable_gettext = xtrue)
619 AC_ARG_ENABLE(build-docs,
620         [  --enable-build-docs        Execute make in doc directories],
621         [case "${enableval}" in
622                yes) enable_build_docs=true  ;;
623                no)  enable_build_docs=false ;;
624                *) AC_MSG_ERROR(bad value ${enableval} for --enable-build-docs) ;;
625          esac],
626          [enable_build_docs=true])
629 AM_CONDITIONAL(ENABLE_BUILD_DOCS, test x$enable_build_docs = xtrue)
631 AC_CHECK_PROG(makeinfo_found,makeinfo,true,false)
633 if test x"${enable_build_docs}" = xtrue ; then
634     if test x"${makeinfo_found}" = xfalse ; then
635         AC_MSG_ERROR(No makeinfo found; consider --disable-build-docs)
636     fi
638     dnl Check the version number.  First get the first line from
639     dnl 'makeinfo --version' and extract out the version digits.
640     makeinfo_old=false
641     if test x"${makeinfo_found}" = xtrue; then
642         AC_MSG_CHECKING([if makeinfo version >= 5.1])
643         dnl expr is looking for something like "junk<digits>.<digits>junk"
644         dnl and extracting out the "<digits>.<digits>"
645         makeinfo_version=`expr "\`makeinfo --version | head -1\`" : '.*\([[0-9]]\+\.[[0-9]]\+\)'`
646         dnl echo Makeinfo version ${makeinfo_version}
647         dnl From makeinfo_version, extract out the major and minor version numbers.
648         makeinfo_major=`expr $makeinfo_version : '\([[0-9]]\+\)'`
649         makeinfo_minor=`expr $makeinfo_version : '.*\.\([[0-9]]\+\)'`
650         dnl echo major ${makeinfo_major}
651         dnl echo minor ${makeinfo_minor}
652         if test $makeinfo_major -lt 5; then
653             dnl Major version < 5, so too old
654             makeinfo_old=true
655         elif test $makeinfo_major -eq 5; then
656             dnl Major version is 5.  If the minor version is < 1, too old
657             if test $makeinfo_minor -lt 1; then
658                 makeinfo_old=true
659             fi
660         fi
661         if test x"${makeinfo_old}" = xtrue; then
662             AC_MSG_ERROR([Makeinfo version (${makeinfo_version}) too old; consider --disable-build-docs])
663         else
664             AC_MSG_RESULT([${makeinfo_version}])
665         fi
666         dnl If the makeinfo version is older than 6.8, we need to
667         dnl include MathJax ourselves when building the HTML files.
668         if test $makeinfo_major -gt 6; then
669             dnl Nothing needed
670             true
671         elif test $makeinfo_major -eq 6; then
672              dnl If it's less than 6.8 we need to include MathJax
673              if test $makeinfo_minor -lt 8; then
674                  dnl Need to include Mathjax
675                  NEED_MATHJAX='<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>'
676                  AC_SUBST(NEED_MATHJAX)
677              fi
678         fi
679     fi
682 dnl languages
683 AC_ARG_ENABLE(lang-de,
684         [  --enable-lang-de             German language support],
685         [case "${enableval}" in
686                 yes) lang_de=true  ;;
687                 no)  lang_de=false ;;
688                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-de) ;;
689         esac],
690         [lang_de=false])
692 AM_CONDITIONAL(LANG_DE, test x$lang_de = xtrue)
694 AC_ARG_ENABLE(lang-ja,
695         [  --enable-lang-ja             Japanese language support],
696         [case "${enableval}" in
697                 yes) lang_ja=true  ;;
698                 no)  lang_ja=false ;;
699                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-ja) ;;
700         esac],
701         [lang_ja=false])
703 AM_CONDITIONAL(LANG_JA, test x$lang_ja = xtrue)
705 AC_ARG_ENABLE(lang-es,
706         [  --enable-lang-es             Spanish language support],
707         [case "${enableval}" in
708                 yes) lang_es=true  ;;
709                 no)  lang_es=false ;;
710                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-es) ;;
711         esac],
712         [lang_es=false])
714 AC_SUBST(lang_es)
715 AM_CONDITIONAL(LANG_ES, test x$lang_es = xtrue)
717 AC_ARG_ENABLE(lang-pt,
718         [  --enable-lang-pt             Portuguese language support],
719         [case "${enableval}" in
720                 yes) lang_pt=true  ;;
721                 no)  lang_pt=false ;;
722                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-pt) ;;
723         esac],
724         [lang_pt=false])
726 AC_SUBST(lang_pt)
727 AM_CONDITIONAL(LANG_PT, test x$lang_pt = xtrue)
729 AC_ARG_ENABLE(lang-pt_BR,
730         [  --enable-lang-pt_BR          Brazilian Portuguese language support],
731         [case "${enableval}" in
732                 yes) lang_pt_br=true  ;;
733                 no)  lang_pt_br=false ;;
734                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-pt_BR) ;;
735         esac],
736         [lang_pt_br=false])
738 AC_SUBST(lang_pt_br)
739 AM_CONDITIONAL(LANG_PT_BR, test x$lang_pt_br = xtrue)
741 AC_ARG_ENABLE(lang-ru,
742         [  --enable-lang-ru             Russian language support],
743         [case "${enableval}" in
744                 yes) lang_ru=true  ;;
745                 no)  lang_ru=false ;;
746                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lang-ru) ;;
747         esac],
748         [lang_ru=false])
750 AM_CONDITIONAL(LANG_RU, test x$lang_ru = xtrue)
752 dnl Optionally build the windows CHM help files
753 dnl default to false as requires win32 and Microsoft HTML Help Workshop
754 AC_ARG_ENABLE(chm,
755   [  --enable-chm                 Build Windows CHM help files],
756   [case "${enableval}" in
757                 yes) chm=true ;;
758                 no)  chm=false ;;
759                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-chm) ;;
760    esac],
761    [chm=false])
762 AM_CONDITIONAL(CHM, test x$chm = xtrue)
763 dnl hhc is the HTML Help Compiler for CHM documentation
764 hhc_default_name=hhc$EXEEXT
765 AC_ARG_WITH(hhc,
766         [  --with-hhc=<prog>            Use HTML Help Compiler executable <prog> (default hhc)],
767         [hhc=true
768         if test "$withval" = "yes"; then
769                 HHC="${hhc_default_name}"
770         else
771                 HHC="$withval"
772         fi],
773         [HHC="${hhc_default_name}"])
775 # Check that hhc exists, using AC_CHECK_PROG
776 if test x$chm = xtrue; then
777   if test -x "${HHC}"; then
778     # HHC was a path to the executable, and it existed, which is
779     # great! We still say something to the caller, since this is
780     # probably less confusing.
781     AC_MSG_CHECKING([for hhc])
782     AC_MSG_RESULT([yes])
783   else
784     AC_CHECK_PROG(hhc_found, ${HHC}, yes)
785     if test x"${hhc_found}" != x"yes"; then
786       AC_MSG_ERROR([HTML Help Compiler executable ${HHC} not found])
787     fi
788   fi
791 dnl Make the build quiet
792 AC_ARG_ENABLE(quiet_build,
793   [  --enable-quiet-build         Make the build quieter],
794   [case "${enableval}" in
795      yes) quiet_build=true ;;
796      no)  quiet_build=false ;;
797      *) AC_MSG_ERROR(bad value ${enableval} for --enable-quiet-build) ;;
798    esac],
799   [quiet_build=false])
800 AM_CONDITIONAL(QUIET_BUILD, test x${quiet_build} = xtrue)
802 dnl Optionally build xmaxima.exe under windows
803 dnl default to false as additional software
804 AC_ARG_ENABLE(xmaxima_exe,
805   [  --enable-xmaxima-exe         Build Windows xmaxima.exe for installer],
806   [case "${enableval}" in
807                 yes) xmaxima_exe=true ;;
808                 no)  xmaxima_exe=false ;;
809                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-xmaxima-exe) ;;
810    esac],
811    [xmaxima_exe=false])
812 AM_CONDITIONAL(XMAXIMA_EXE, test x$xmaxima_exe = xtrue)
814 dnl Optionally build xmaxima.exe under windows
815 dnl default to false as additional software
816 AC_ARG_ENABLE(winkill_exe,
817   [  --enable-winkill             Build Windows winkill.exe and winkill_lib.dll for installer],
818   [case "${enableval}" in
819                 yes) winkill_exe=true ;;
820                 no)  winkill_exe=false ;;
821                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-winkill-exe) ;;
822    esac],
823    [winkill_exe=false])
824 AM_CONDITIONAL(WINKILL_EXE, test x$winkill_exe = xtrue)
826 dnl Should we build a win64 installer?
827 AC_ARG_ENABLE(win64-installer,
828   [  --enable-win64-installer     Build a 64bit installer on Windows],
829   [case "${enableval}" in
830                 yes) win64_installer=true ;;
831                 no) win64_installer=false ;;
832                 *) AC_MSG_ERROR(bad valu ${enableval} for --enable-win64-installer) ;;
833   esac],
834   [win64_installer=false])
835 AM_CONDITIONAL(WIN64_INSTALLER, test x$win64_installer = xtrue)
836 AC_SUBST(win64_installer)
838 dnl Tools for building xmaxima.exe on windows
839 dnl Hard code the filenames for now.  Can over-ride on make command line
840 GCCVER=undefined
841 if test x${xmaxima_exe} = xtrue ; then
842   GCCVER=`gcc -dumpversion`
843   dnl http://tclkits.rkeene.org/fossil/wiki?name=Downloads
844   dnl and http://www.tcl.tk/starkits/
845   TCLKITSH=/c/programs/star/tclkitsh-8.6.3-win32-ix86.exe
846   TCLKIT_RUNTIME=/c/programs/star/tclkit-8.6.3-win32-ix86.exe
847   SDXKIT=/c/programs/star/sdx.kit
848   IMGKIT=/c/programs/star/img.kit
851 AC_SUBST(GCCVER)
852 AC_SUBST(TCLKITSH)
853 AC_SUBST(TCLKIT_RUNTIME)
854 AC_SUBST(SDXKIT)
855 AC_SUBST(IMGKIT)
856 AM_CONDITIONAL(GCC331, test x${GCCVER} = x3.3.1)
858 if test x"${explicit_lisp}" = xfalse ; then
859         dnl See if any of the lisps can be found
860         AC_CHECK_PROG(clisp_found,${clisp_default_name},true,false)
861         AC_CHECK_PROG(gcl_found,${gcl_default_name},true,false)
862         AC_CHECK_PROG(cmucl_found,$CMUCL_NAME,true,false)
863         AC_CHECK_PROG(scl_found,$SCL_NAME,true,false)
864         AC_CHECK_PROG(sbcl_found,$SBCL_NAME,true,false)
865         AC_CHECK_PROG(acl_found,$ACL_NAME,true,false)
866         AC_CHECK_PROG(openmcl_found,$OPENMCL_NAME,true,false)
867         AC_CHECK_PROG(ccl64_found,$CCL64_NAME,true,false)
868         AC_CHECK_PROG(ecl_found,$ECL_NAME,true,false)
870         if test x"${clisp_found}" = xtrue ; then
871                 clisp=true
872                 lisps_enabled="${lisps_enabled} clisp"
873         elif test x"${gcl_found}" = xtrue ; then
874                 gcl=true
875                 lisps_enabled="${lisps_enabled} gcl"
876         elif test x"${cmucl_found}" = xtrue ; then
877                 cmucl=true
878                 lisps_enabled="${lisps_enabled} cmucl"
879         elif test x"${scl_found}" = xtrue ; then
880                 scl=true
881                 lisps_enabled="${lisps_enabled} scl"
882         elif test x"${sbcl_found}" = xtrue ; then
883                 sbcl=true
884                 lisps_enabled="${lisps_enabled} sbcl"
885         elif test x"${acl_found}" = xtrue ; then
886                 acl=true
887                 lisps_enabled="${lisps_enabled} acl"
888         elif test x"${ecl_found}" = xtrue ; then
889                 ecl=true
890                 lisps_enabled="${lisps_enabled} ecl"
891         else
892                 AC_MSG_ERROR(No lisp implementation specified and none of the default executables [${clisp_default_name}(clisp),${gcl_default_name}(GCL),${cmucl_default_name}(CMUCL),${scl_default_name}(SCL),${sbcl_default_name}(SBCL),${acl_default_name}(ACL),${openmcl_default_name}(OpenMCL),${ecl_default_name}(ECL)] were found in PATH)
893         fi
896 AM_CONDITIONAL(ABCL, test x$abcl = xtrue)
897 AM_CONDITIONAL(CLISP, test x$clisp = xtrue)
898 AM_CONDITIONAL(CLISP_EXEC, test x$clisp_exec = xtrue)
899 AM_CONDITIONAL(GCL, test x$gcl = xtrue)
900 AM_CONDITIONAL(CMUCL, test x$cmucl = xtrue)
901 AM_CONDITIONAL(CMUCL_EXEC, test x${cmucl_exec} = xtrue)
902 AM_CONDITIONAL(SCL, test x$scl = xtrue)
903 AM_CONDITIONAL(SBCL, test x$sbcl = xtrue)
904 AM_CONDITIONAL(SBCL_EXEC, test x$sbcl_exec = xtrue)
905 AM_CONDITIONAL(ACL, test x$acl = xtrue)
906 AM_CONDITIONAL(OPENMCL, test x$openmcl = xtrue)
907 AM_CONDITIONAL(OPENMCL_EXEC, test x${openmcl_exec} = xtrue)
908 AM_CONDITIONAL(ECL, test x$ecl = xtrue)
909 AM_CONDITIONAL(CCL64, test x$ccl64 = xtrue)
910 AM_CONDITIONAL(CCL64_EXEC, test x${ccl64_exec} = xtrue)
912 if test x"${clisp}" = xtrue; then
913     if test x"${CLISP_RUNTIME_PATH}" = x"" ; then
914         if test x"${mingw}" = xtrue ; then
915             CLISP_RUNTIME_PATH=`${CLISP_NAME} -norc -q -x "(format nil \"~a${CLISP_RUNTIME}\" (namestring *lib-directory*))"|sed 's/\"\\(.*\\)\"/\\1/'`
916         else
917             CLISP_RUNTIME_PATH=`${CLISP_NAME} -norc -q -x "(format nil \"~abase/${CLISP_RUNTIME}\" (namestring *lib-directory*))"|sed 's/\"\\(.*\\)\"/\\1/'`
918         fi
919     fi
920     if test -x ${CLISP_RUNTIME_PATH} ; then
921         echo "clisp runtime is \"${CLISP_RUNTIME_PATH}\""
922     else
923         AC_MSG_ERROR(clisp runtime "${CLISP_RUNTIME_PATH}" is not an executable)
924     fi
925     CLISP_RUNTIME=`basename ${CLISP_RUNTIME_PATH}`
928 if test x"${cmucl}" = xtrue; then
929     if test x"${CMUCL_RUNTIME_PATH}" = x"" ; then
930         CMUCL_RUNTIME_PATH=`${CMUCL_NAME} -noinit -nositeinit -quiet -batch -eval '#-cmu18 (progn (setf (search-list "cmuclbin:") (append (lisp::parse-unix-search-path lisp::*cmucl-lib*) (mapcar (function (lambda (p) (concatenate (quote string) p "../bin/"))) (lisp::parse-unix-search-path lisp::*cmucl-lib*))))(enumerate-search-list (s "cmuclbin:lisp") (when (probe-file s) (format t "~A~%" s) (quit)))) #+cmu18 (format t "~a/../bin/lisp~%" common-lisp::*cmucl-lib*)(quit)'`
931     fi
932     if test -x "${CMUCL_RUNTIME_PATH}" ; then
933         echo "cmucl runtime is \"${CMUCL_RUNTIME_PATH}\""
934     else
935 dnl last chance: find CMUCL_NAME in path. Use it if it doesn't appear to
936 dnl be a shell script.
937         cmucl_path=`type -p "${CMUCL_NAME}"`
938         if test x"`grep -c '#!.*bin.*sh.*' ${cmucl_path}`" = x"0" ; then
939                 CMUCL_RUNTIME_PATH="${cmucl_path}"
940         else
941                 AC_MSG_ERROR([Unable to determine CMUCL runtime path.
942 The best guess for CMUCL runtime, "${CMUCL_RUNTIME_PATH}", is not
943 an executable. Use the argument
944    --with-cmucl-runtime=<path>
945 to set the actual CMUCL executable. If the CMUCL lisp command is a shell
946 script the CMUCL executable is the program exec'd by that shell script.])
947         fi
948     fi
949     CMUCL_RUNTIME=`basename ${CMUCL_RUNTIME_PATH}`
951 dnl cmucl final check
952    result=`"${CMUCL_RUNTIME_PATH}" -quiet -eval '(format t "MAXIMA_CMUCL_TEST_SUCCESS%")(quit)'`
953    retval=$?
954    if test ! x"${retval}" = x"0" ; then
955       AC_MSG_ERROR(unable to run cmucl runtime = "${CMUCL_RUNTIME_PATH}". 
956 Please specify the full path of the cmucl runtime using the 
957     --with-cmucl-runtime=<path>
958 flag.)
959    fi
960    count=`echo "${result}" | grep -c "MAXIMA_CMUCL_TEST_SUCCESS"`
961    if test ! "${count}" = "1" ; then
962       AC_MSG_ERROR(an error occurred while checking cmucl runtime)
963    fi
966 if test x"${scl}" = xtrue; then
967     if test x"${SCL_RUNTIME_PATH}" = x"" ; then
968         SCL_RUNTIME_PATH=`${SCL_NAME} -noinit -nositeinit -quiet -batch -eval '(progn (enumerate-pathname-translations (pathname "file://library/../bin/lisp") (when (probe-file pathname) (format t "~A~%" (unix-namestring pathname)))) (quit))'`
969     fi
970     if test -x "${SCL_RUNTIME_PATH}" ; then
971         echo "scl runtime is \"${SCL_RUNTIME_PATH}\""
972     else
973 dnl last chance: find SCL_NAME in path. Use it if it doesn't appear to
974 dnl be a shell script.
975         scl_path=`type -p "${SCL_NAME}"`
976         if test x"`grep -c '#!.*bin.*sh.*' ${scl_path}`" = x"0" ; then
977                 SCL_RUNTIME_PATH="${scl_path}"
978         else
979                 AC_MSG_ERROR([Unable to determine SCL runtime path.
980 The best guess for SCL runtime, "${SCL_RUNTIME_PATH}", is not
981 an executable. Use the argument
982    --with-scl-runtime=<path>
983 to set the actual SCL executable. If the SCL lisp command is a shell
984 script the SCL executable is the program exec'd by that shell script.])
985         fi
986     fi
987     SCL_RUNTIME=`basename ${SCL_RUNTIME_PATH}`
990 if test x"${gcl}" = xtrue; then
991    result=`"${GCL_NAME}" -batch -eval '#+ansi-cl (format t "MAXIMA_GCL_ANSI_TEST_SUCCESS~%") #-ansi-cl (format t "MAXIMA_GCL_ANSI_TEST_FAILURE~%")' -eval '(si::bye)'`
992    retval=$?
993    if test ! x"${retval}" = x"0" ; then
994       AC_MSG_ERROR(unable to run gcl executable "${GCL_NAME}".)
995    fi
996    count=`echo "${result}" | grep -c "MAXIMA_GCL_ANSI_TEST_SUCCESS"`
997    if test ! "${count}" = "1" ; then
998       AC_MSG_ERROR([The gcl executable "${GCL_NAME}" was not compiled with
999 the --enable-ansi flag, which is required for Maxima.
1000 The gcl ANSI-CL check returned
1001 "${result}".])
1002    fi
1005 AC_ARG_ENABLE(gcl-alt-link,
1006         [  --enable-gcl-alt-link        Use GCL's alternate linking mechanism],
1007         [case "${enableval}" in
1008                 yes) gcl_alt_link=true ;;
1009                 no)  gcl_alt_link=false ;;
1010                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gcl-alt-link) ;;
1011         esac],
1012         [gcl_alt_link=false])
1014 AM_CONDITIONAL(GCL_ALT_LINK, test x$gcl_alt_link = xtrue)
1016 AC_ARG_WITH(default-lisp,
1017         [  --with-default-lisp=<lisp>   Set default lisp implementation to <lisp>],
1018         [case "${withval}" in
1019                 clisp)
1020                         if test x"${clisp}" = xtrue ; then
1021                                 DEFAULTLISP=clisp
1022                         else
1023                                 AC_MSG_ERROR(clisp not enabled)
1024                         fi
1025                         ;;
1026                 cmucl)
1027                         if test x"${cmucl}" = xtrue ; then
1028                                 DEFAULTLISP=cmucl
1029                         else
1030                                 AC_MSG_ERROR(cmucl not enabled)
1031                         fi
1032                         ;;
1033                 scl)
1034                         if test x"${scl}" = xtrue ; then
1035                                 DEFAULTLISP=scl
1036                         else
1037                                 AC_MSG_ERROR(scl not enabled)
1038                         fi
1039                         ;;
1040                 sbcl)
1041                         if test x"${sbcl}" = xtrue ; then
1042                                 DEFAULTLISP=sbcl
1043                         else
1044                                 AC_MSG_ERROR(sbcl not enabled)
1045                         fi
1046                         ;;
1047                 gcl)
1048                         if test x"${gcl}" = xtrue ; then
1049                                 DEFAULTLISP=gcl
1050                         else
1051                                 AC_MSG_ERROR(gcl not enabled)
1052                         fi
1053                         ;;      
1054                 acl)
1055                         if test x"${acl}" = xtrue ; then
1056                                 DEFAULTLISP=acl
1057                         else
1058                                 AC_MSG_ERROR(acl not enabled)
1059                         fi
1060                         ;;      
1061                 openmcl)
1062                         if test x"${openmcl}" = xtrue ; then
1063                                 DEFAULTLISP=openmcl
1064                         else
1065                                 AC_MSG_ERROR(openmcl not enabled)
1066                         fi
1067                         ;;              
1068                 ecl)
1069                         if test x"${ecl}" = xtrue ; then
1070                                 DEFAULTLISP=ecl
1071                         else
1072                                 AC_MSG_ERROR(ecl not enabled)
1073                         fi
1074                         ;;
1075                 ccl64)          
1076                         if test x"${ccl64}" = xtrue ; then
1077                                 DEFAULTLISP=ccl64
1078                         else
1079                                 AC_MSG_ERROR(ccl64 not enabled)
1080                         fi
1081                         ;;              
1082                 abcl)           
1083                         if test x"${abcl}" = xtrue ; then
1084                                 DEFAULTLISP=abcl
1085                         else
1086                                 AC_MSG_ERROR(abcl not enabled)
1087                         fi
1088                         ;;              
1089                 *) 
1090                         AC_MSG_ERROR(Unknown argument ${DEFAULTLISP} to --with-default-lisp) 
1091                         ;;
1092         esac],
1093         [if test x"${sbcl}" = xtrue ; then
1094                 DEFAULTLISP=sbcl
1095         elif test x"${cmucl}" = xtrue ; then
1096                 DEFAULTLISP=cmucl
1097         elif test x"${scl}" = xtrue ; then
1098                 DEFAULTLISP=scl
1099         elif test x"${clisp}" = xtrue ; then
1100                 DEFAULTLISP=clisp
1101         elif test x"${gcl}" = xtrue ; then
1102                 DEFAULTLISP=gcl
1103         elif test x"${acl}" = xtrue ; then
1104                 DEFAULTLISP=acl
1105         elif test x"${openmcl}" = xtrue ; then
1106                 DEFAULTLISP=openmcl
1107         elif test x"${ecl}" = xtrue ; then
1108                 DEFAULTLISP=ecl
1109         elif test x"${ccl64}" = xtrue ; then
1110                 DEFAULTLISP=ccl64
1111         elif test x"${abcl}" = xtrue ; then
1112                 DEFAULTLISP=abcl
1113         else
1114                 AC_MSG_ERROR(Internal error. No lisp enabled. Please contact maintainer.)
1115         fi])
1117 AC_SUBST(CLISP_NAME)
1118 AC_SUBST(CLISP_RUNTIME)
1119 AC_SUBST(CLISP_RUNTIME_PATH)
1120 AC_SUBST(CMUCL_NAME)
1121 AC_SUBST(CMUCL_RUNTIME)
1122 AC_SUBST(CMUCL_RUNTIME_PATH)
1123 AC_SUBST(CMUCL_EXEC)
1124 AC_SUBST(SCL_NAME)
1125 AC_SUBST(SCL_RUNTIME)
1126 AC_SUBST(SCL_RUNTIME_PATH)
1127 AC_SUBST(SBCL_NAME)
1128 AC_SUBST(GCL_NAME)
1129 AC_SUBST(ACL_NAME)
1130 AC_SUBST(OPENMCL_NAME)
1131 AC_SUBST(ECL_NAME)
1132 AC_SUBST(CCL64_NAME)
1133 AC_SUBST(DEFAULTLISP)
1134 AC_SUBST(HHC)
1135 AC_SUBST(lisps_enabled)
1136 AC_SUBST(ABCL_JAR)
1137 AC_SUBST(JRE)
1139 AC_ARG_WITH(posix-shell,
1140         [  --with-posix-shell=<path>    Use <shell> for maxima script (default /bin/sh)],
1141         [posix_shell_list="${withval}"],
1142         [posix_shell_list="/bin/sh /bin/bash /usr/bin/bash /usr/local/bin/bash"])
1144 AC_ARG_WITH(wish,
1145         [  --with-wish=<prog>           Use <prog> for Tk wish shell (default wish)],
1146         [WISH="${withval}"],
1147         [WISH="wish"])
1148 AC_SUBST(WISH)
1151 AC_MSG_CHECKING(POSIX shell to see that it contains getopts)
1152 cat <<EOF > conftest-posix-shell.sh
1153 getopts "ab:" opt
1154 result="\$?"
1155 echo "result is \$result"
1156 exit "\$result"
1158 POSIX_SHELL=""
1159 for shell in $posix_shell_list
1161         if test -z "$POSIX_SHELL" ; then
1162                 echo "trying $shell"
1163                 $shell conftest-posix-shell.sh -a > /dev/null 2>&1
1164                 if test "$?" = "0" ; then
1165                         POSIX_SHELL="$shell"
1166                 fi
1167         fi
1168 done
1169 rm -f conftest-posix-shell.sh
1170 if test -n "$POSIX_SHELL" ; then
1171         AC_MSG_RESULT(POSIX shell is $POSIX_SHELL)
1172 else
1173         AC_MSG_WARN(Could not find a shell that supports getopts. 
1174 The maxima wrapper script will be unusable. The shell may be specified
1175 with --with-posix-shell=</path/to/shell>)
1177 AC_SUBST(POSIX_SHELL)
1179 if test x"${prefix}" = xNONE ; then
1180         tmp_prefix="/usr/local"
1181 else
1182         tmp_prefix="${prefix}"
1184 if test x"${exec_prefix}" = xNONE ; then
1185         tmp_exec_prefix="${tmp_prefix}"
1186 else
1187         tmp_exec_prefix="${exec_prefix}"
1189 expanded_top_srcdir="$(cd "$top_srcdir" 1>/dev/null 2>/dev/null; pwd)"
1190 expanded_exec_prefix="${tmp_exec_prefix}"
1191 expanded_libdir="$(eval "exec_prefix=\"${tmp_exec_prefix}\";echo ${libdir}")"
1192 expanded_libexecdir="$(eval "exec_prefix=\"${tmp_exec_prefix}\";echo ${libexecdir}")"
1193 expanded_datadir="$(eval "prefix=\"${tmp_prefix}\";datarootdir=\"${datarootdir}\";echo ${datadir}")"
1194 expanded_infodir="$(eval "prefix=\"${tmp_prefix}\";datarootdir=\"${datarootdir}\";echo ${infodir}")"
1197 dnl Find all the directories in share, but remove the share directory
1198 dnl itself and all CVS directories (if any) and fortran directories
1199 dnl and *.t2p directories (created when generating pdf documentation).
1200 dnl Remove the leading "share" part of the path, and add double-quotes
1201 dnl around it.
1203 #default_sharedirs=`find share -type d | sort | egrep -v 'share$|CVS|/fortran' | sed 's;share/\(.*\);        "\1" \\\\;' | sed '$s;\\\\;;'`
1204 default_sharedirs=`cd $srcdir;find share -type d | sort | egrep -v 'share$|CVS|/fortran' | sed 's;share/\(.*\);"\1";' | tr '\n' ' '`
1206 AC_SUBST(top_srcdir)
1207 AC_SUBST(abs_top_builddir)
1208 AC_SUBST(abs_top_srcdir)
1209 AC_SUBST(top_builddir)
1210 AC_SUBST(expanded_top_srcdir)
1211 AC_SUBST(expanded_exec_prefix)
1212 AC_SUBST(expanded_libdir)
1213 AC_SUBST(expanded_libexecdir)
1214 AC_SUBST(expanded_datadir)
1215 AC_SUBST(expanded_infodir)
1216 default_layout_autotools="true"
1217 AC_SUBST(default_layout_autotools)
1218 AC_SUBST(LDFLAGS)
1219 AC_SUBST(default_sharedirs)
1221 AC_ARG_WITH(emacs-prefix,
1222         [  --emacs-prefix=<path>        Where to install the emacs modes to],
1223         [EMACSDIR="$withval"],
1224         [EMACSDIR="${datarootdir}/emacs/site-lisp"])
1225 AC_SUBST(EMACSDIR)
1227 dnl Tell defsystem that this isn't a lisp-only build
1228 lisp_only_build="nil"
1229 AC_SUBST(lisp_only_build)
1230 dnl Extra files we want to clean from the src dir
1231 if test x"$srcdir" = x"." ; then
1232    DISTCLEAN_EXTRA_SRC_FILES=""
1233 else
1234    DISTCLEAN_EXTRA_SRC_FILES=share_subdirs.lisp
1236 AC_SUBST(DISTCLEAN_EXTRA_SRC_FILES)
1239 dnl Look for grep that can handle long lines and -e.
1240 AC_PROG_EGREP
1241 AC_SUBST(EGREP)
1242 AC_PATH_PROG([CAT],[cat])
1243 AC_PROG_SED
1244 AC_PROG_AWK
1245 AC_SUBST(SED)
1247 # Configure these files and make them executable
1248 AC_CONFIG_FILES([maxima-local], chmod +x maxima-local)
1249 AC_CONFIG_FILES([src/startmaxima_abcl.sh], chmod +x src/startmaxima_abcl.sh)
1250 AC_CONFIG_FILES([xmaxima-local], chmod +x xmaxima-local)
1251 AC_CONFIG_FILES([tests/test.sh], chmod +x tests/test.sh)
1252 AC_CONFIG_FILES([doc/info/build_html.sh], chmod +x doc/info/build_html.sh)
1253 AC_CONFIG_FILES([src/maxima], chmod +x src/maxima)
1254 AC_CONFIG_FILES([src/maxima.bat])
1256 AC_CONFIG_FILES([Makefile maxima.spec maxima.iss \
1257 admin/Makefile src/Makefile src/rmaxima src/autoconf-variables.lisp \
1258 src/share-subdirs_autogenerated.lisp \
1259 lisp-utils/Makefile tests/Makefile doc/Makefile \
1260 crosscompile-windows/Makefile \
1261 doc/emaxima/Makefile doc/info/Makefile doc/info/include-maxima.texi \
1262 desktopintegration/Makefile \
1263 doc/info/category-macros.texi \
1264 doc/info/texi2html.init \
1265 doc/info/figures/Makefile \
1266 doc/info/de/Makefile \
1267 doc/info/de/include-maxima.texi \
1268 doc/info/es/Makefile \
1269 doc/info/ja/Makefile \
1270 doc/info/ja/include-maxima.texi \
1271 doc/info/pt_BR/include-maxima.texi \
1272 doc/info/pt/Makefile \
1273 doc/info/pt/include-maxima.texi \
1274 doc/info/pt_BR/Makefile \
1275 doc/info/ru/Makefile \
1276 doc/info/ru/include-maxima.texi \
1277 doc/intromax/Makefile doc/man/Makefile doc/man/maxima.1 doc/man/ru/Makefile doc/man/ru/maxima.1 doc/man/de/Makefile doc/man/de/maxima.1 \
1278 doc/share/Makefile interfaces/Makefile interfaces/emacs/Makefile \
1279 interfaces/emacs/emaxima/Makefile interfaces/emacs/imaxima/Makefile \
1280 interfaces/emacs/misc/Makefile interfaces/xmaxima/Makefile \
1281 interfaces/xmaxima/autoconf-variables.tcl interfaces/xmaxima/Tkmaxima/Header.tcl \
1282 interfaces/xmaxima/doc/Makefile interfaces/xmaxima/doc/figures/Makefile \
1283 interfaces/xmaxima/msgs/Makefile interfaces/xmaxima/win32/Makefile \
1284 plotting/mgnuplot share/Makefile demo/Makefile plotting/Makefile locale/Makefile \
1285 share/contrib/Makefile share/contrib/integration/Makefile \
1286 share/contrib/maxima-odesolve/Makefile \
1287 share/contrib/symplectic_ode/Makefile \
1288 share/nelder_mead/Makefile \
1289 share/draw/Makefile share/logic/Makefile  doc/info/es/include-maxima.texi \
1290 src/lisp])
1291 AC_OUTPUT
1293 # The default of 4096 is sometimes too little for the test suite.
1294 if test x"${sbcl}" = xtrue ; then
1295    AC_MSG_CHECKING(if sbcl complains if we try to enlarge the thread-local storage)
1296    echo "(quit)" | ${SBCL_NAME} --tls-limit 8192 > /dev/null 2>&1
1297    if test "$?" = "0" ; then
1298         SBCL_EXTRA_ARGS="--tls-limit 8192"
1299         AC_MSG_RESULT(Yes)
1300    else
1301         SBCL_EXTRA_ARGS=""
1302         AC_MSG_RESULT(No)
1303    fi
1305 AC_SUBST(SBCL_EXTRA_ARGS)
1307 if test x"${clisp}" = xtrue ; then
1308         echo
1309         AC_MSG_WARN("CLISP 2.49 is known to sporadically produce garbled data if the front-end is fast enough to acknowledge a data packet while a next data packet is still being prepared.")
1311 echo
1312 echo "Summary:"
1313 if test x"${clisp}" = xtrue ; then
1314         echo "Compiling a maxima image using \"${CLISP_NAME}\"",
1315         echo "clisp runtime is \"${CLISP_RUNTIME_PATH}\""
1316         if test x"${clisp_exec}" = xtrue ; then
1317                 echo "clisp executable image enabled for maxima."
1318         else
1319                 echo Use "--enable-clisp-exec to build a standalone executable instead."
1320         fi
1322 if test x"${cmucl}" = xtrue ; then
1323         echo "Compiling a maxima image using \"${CMUCL_NAME}\""
1324         echo "cmucl runtime is \"${CMUCL_RUNTIME_PATH}\""
1325         if test x"${cmucl_exec}" = xtrue; then
1326                 echo "CMUCL executable image enabled for maxima."
1327         else
1328                 echo Use "--enable-cmucl-exec to build a standalone executable instead."
1329         fi
1331 if test x"${scl}" = xtrue ; then
1332         echo "SCL enabled, using \"${SCL_NAME}\""
1333         echo "SCL runtime is \"${SCL_RUNTIME_PATH}\""
1335 if test x"${sbcl}" = xtrue ; then
1336         echo "Compiling a maxima image using \"${SBCL_NAME}\""
1337         if test x"${sbcl_exec}" = xtrue ; then
1338                 echo "sbcl executable image enabled for maxima."
1339         else
1340                 echo Use "--enable-sbcl-exec to build a standalone executable instead."
1341         fi
1343 if test x"${gcl}" = xtrue ; then
1344         echo "Compiling a maxima image using \"${GCL_NAME}\""
1345         if test x"${gcl_alt_link}" = xtrue ; then
1346                 echo "    GCL alternative linking method enabled."
1347         fi
1349 if test x"${acl}" = xtrue ; then
1350         echo "ACL enabled. Executable name: \"${ACL_NAME}\""
1352 if test x"${openmcl}" = xtrue ; then
1353         echo "Compiling a maxima image using \"${OPENMCL_NAME}\""
1354         if test x"${openmcl_exec}" = xtrue ; then
1355                 echo "OpenMCL executable image enabled for maxima."
1356         else
1357                 echo Use "--enable-openmcl-exec to build a standalone executable instead."
1358         fi
1360 if test x"${ccl64}" = xtrue ; then
1361         echo "Compiling a maxima image using \"${CCL64_NAME}\""
1362         if test x"${ccl64_exec}" = xtrue ; then
1363                 echo "CCL64 executable image enabled for maxima."
1364         else
1365                 echo Use "--enable-ccl64-exec to build a standalone executable instead."
1366         fi
1369 if test x"${ecl}" = xtrue ; then
1370         if test x"$srcdir" = x"." ; then
1371                 echo "Compiling maxima using \"${ECL_NAME}\""
1372         else
1373                 echo "ECL enabled. Executable name: \"${ECL_NAME}\""
1374                 AC_MSG_ERROR(For ECL out-of-tree builds aren't supported. See src/maxima.system for details.)
1375         fi
1378 if test x"${abcl}" = xtrue ; then
1379         if test x"$srcdir" = x"." ; then
1380                 echo "Compiling maxima using \"${ABCL_JAR}\""
1381         else
1382                 echo "ABCL enabled. ABCL jarfile: \"${ABCL_JAR}\""
1383                 AC_MSG_ERROR(For ABCL out-of-tree builds aren't supported. See src/maxima.system for details.)
1384         fi
1387 echo "default lisp: $DEFAULTLISP"
1388 echo "wish executable name: \"${WISH}\""
1390 if test x"${chm}" = xtrue ; then
1391   echo "CHM help files enabled"
1392   echo "  HHC: \"${HHC}\""
1394 if test x"${xmaxima_exe}" = xtrue ; then
1395    echo "Windows xmaxima.exe enabled"
1396    echo "  GCC version GCCVER: ${GCCVER}"
1397    echo "  TCLKITSH: ${TCLKITSH}"
1398    if ! test -f "${TCLKITSH}" ; then
1399      AC_MSG_WARN(*** TCLKITSH ${TCLKITSH} not found)
1400      xmaxima_exe_prerequisite=notfound
1401    fi
1402    echo "  TCLKIT_RUNTIME: ${TCLKIT_RUNTIME}"
1403    if ! test -f "${TCLKIT_RUNTIME}" ; then
1404      AC_MSG_WARN(*** TCLKIT_RUNTIME ${TCLKIT_RUNTIME} not found)
1405      xmaxima_exe_prerequisite=notfound
1406    fi
1407    echo "  SDXKIT: ${SDXKIT}"
1408    if ! test -f "${SDXKIT}" ; then
1409      AC_MSG_WARN(*** SDXKIT ${SDXKIT} not found)
1410      xmaxima_exe_prerequisite=notfound
1411    fi
1412    echo "  IMGKIT: ${IMGKIT}"
1413    if ! test -f "${IMGKIT}" ; then
1414      AC_MSG_WARN(*** IMGKIT ${IMGKIT} not found)
1415      xmaxima_exe_prerequisite=notfound
1416    fi
1417    if test x${xmaxima_exe_prerequisite} = xnotfound ; then
1418      AC_MSG_WARN([A prerequisite for xmaxima.exe not found.  The missing components can be defined on the make command line.])
1419    fi