(scm_append): Track argument number and use in error.
[bpt/guile.git] / configure.in
1 dnl configuration script for Guile
2 dnl Process this file with autoconf to produce configure.
3 dnl
4 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5 dnl
6 dnl This file is part of GUILE
7 dnl
8 dnl GUILE is free software; you can redistribute it and/or modify it
9 dnl under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 2, or (at your
11 dnl option) any later version.
12 dnl
13 dnl GUILE is distributed in the hope that it will be useful, but
14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 dnl General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with GUILE; see the file COPYING. If not, write to the
20 dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 dnl Boston, MA 02111-1307, USA.
22
23 AC_PREREQ(2.53)
24
25 AC_INIT
26 AC_CONFIG_SRCDIR([GUILE-VERSION])
27 . $srcdir/GUILE-VERSION
28 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
29 AM_MAINTAINER_MODE
30 AM_CONFIG_HEADER([config.h])
31
32 #--------------------------------------------------------------------
33 #
34 # Independent Subdirectories
35 #
36 #--------------------------------------------------------------------
37
38 AC_CONFIG_SUBDIRS(guile-readline)
39
40 #--------------------------------------------------------------------
41
42 dnl Some more checks for Win32
43 AC_CYGWIN
44 AC_MINGW32
45 AC_LIBTOOL_WIN32_DLL
46
47 AC_PROG_INSTALL
48 AC_PROG_CC
49 AC_PROG_CPP
50 AC_PROG_AWK
51
52 AC_AIX
53 AC_ISC_POSIX
54 AC_MINIX
55
56 AM_PROG_CC_STDC
57
58 AC_LIBTOOL_DLOPEN
59 AM_PROG_LIBTOOL
60 AC_LIB_LTDL
61
62 AC_CHECK_PROG(have_makeinfo, makeinfo, yes, no)
63 AM_CONDITIONAL(HAVE_MAKEINFO, test "$have_makeinfo" = yes)
64
65 #--------------------------------------------------------------------
66 #
67 # User options (after above tests that may set default CFLAGS etc.)
68 #
69 #--------------------------------------------------------------------
70
71 GUILE_ERROR_ON_WARNING="yes"
72
73 AC_ARG_ENABLE(error-on-warning,
74 [ --enable-error-on-warning treat compile warnings as errors],
75 [case "${enableval}" in
76 yes | y) GUILE_ERROR_ON_WARNING="yes" ;;
77 no | n) GUILE_ERROR_ON_WARNING="no" ;;
78 *) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;;
79 esac])
80
81 SCM_I_GSC_GUILE_DEBUG_FREELIST=0
82 AC_ARG_ENABLE(debug-freelist,
83 [ --enable-debug-freelist include garbage collector freelist debugging code],
84 if test "$enable_debug_freelist" = y \
85 || test "$enable_debug_freelist" = yes; then
86 SCM_I_GSC_GUILE_DEBUG_FREELIST=1
87 fi)
88
89 AC_ARG_ENABLE(debug-malloc,
90 [ --enable-debug-malloc include malloc debugging code],
91 if test "$enable_debug_malloc" = y || test "$enable_debug_malloc" = yes; then
92 AC_DEFINE(GUILE_DEBUG_MALLOC, 1,
93 [Define this if you want to debug scm_must_malloc/realloc/free calls.])
94 fi)
95
96 SCM_I_GSC_GUILE_DEBUG=0
97 AC_ARG_ENABLE(guile-debug,
98 [AC_HELP_STRING([--enable-guile-debug],
99 [include internal debugging functions])],
100 if test "$enable_guile_debug" = y || test "$enable_guile_debug" = yes; then
101 SCM_I_GSC_GUILE_DEBUG=1
102 fi)
103
104 AC_ARG_ENABLE(arrays,
105 [AC_HELP_STRING([--disable-arrays],[omit array and uniform array support])],
106 ,
107 enable_arrays=yes)
108
109 AC_ARG_ENABLE(posix,
110 [ --disable-posix omit posix interfaces],,
111 enable_posix=yes)
112
113 AC_ARG_ENABLE(networking,
114 [ --disable-networking omit networking interfaces],,
115 enable_networking=yes)
116
117 AC_ARG_ENABLE(regex,
118 [ --disable-regex omit regular expression interfaces],,
119 enable_regex=yes)
120
121 AC_ARG_ENABLE(htmldoc,
122 [ --enable-htmldoc build HTML documentation as well as Info],
123 [if test "$enable_htmldoc" = "" || test "$enable_htmldoc" = y || test "$enable_htmldoc" = yes; then
124 htmldoc_enabled=yes
125 AC_PATH_PROG(TEXI2HTML, texi2html, not found)
126 if test "$TEXI2HTML" = "not found"; then
127 echo
128 echo Building HTML documentation requires the \`texi2html\' program,
129 echo which appears not to be present on your machine.
130 echo
131 echo \`texi2html\' is available from
132 echo 'http://www.mathematik.uni-kl.de/~obachman/Texi2html/.'
133 echo
134 echo In the meantime, to build the guile-doc distribution
135 echo without HTML enabled, please rerun \`./configure\' without
136 echo the \`--enable-htmldoc\' option.
137 exit -1
138 fi
139 fi])
140
141 AM_CONDITIONAL(HTMLDOC, test x$htmldoc_enabled = xyes)
142
143 AC_ARG_ENABLE([deprecated],
144 AC_HELP_STRING([--disable-deprecated],[omit deprecated features]))
145
146 if test "$enable_deprecated" = no; then
147 SCM_I_GSC_ENABLE_DEPRECATED=0
148 else
149 if test "$enable_deprecated" = yes || test "$enable_deprecated" = ""; then
150 warn_default=summary
151 elif test "$enable_deprecated" = shutup; then
152 warn_default=no
153 else
154 warn_default=$enable_deprecated
155 fi
156 SCM_I_GSC_ENABLE_DEPRECATED=1
157 AC_DEFINE_UNQUOTED(SCM_WARN_DEPRECATED_DEFAULT, "$warn_default",
158 [Define this to control the default warning level for deprecated features.])
159 fi
160
161 AC_ARG_ENABLE(elisp,
162 [ --disable-elisp omit Emacs Lisp support],,
163 enable_elisp=yes)
164
165 #--------------------------------------------------------------------
166
167 dnl Check for dynamic linking
168
169 use_modules=yes
170 AC_ARG_WITH(modules,
171 [ --with-modules[=FILES] Add support for dynamic modules],
172 use_modules="$withval")
173 test -z "$use_modules" && use_modules=yes
174 DLPREOPEN=
175 if test "$use_modules" != no; then
176 if test "$use_modules" = yes; then
177 DLPREOPEN="-dlpreopen force"
178 else
179 DLPREOPEN="-export-dynamic"
180 for module in $use_modules; do
181 DLPREOPEN="$DLPREOPEN -dlopen $module"
182 done
183 fi
184 fi
185
186 dnl files which are destined for separate modules.
187
188 if test "$use_modules" != no; then
189 AC_LIBOBJ([dynl])
190 fi
191
192 SCM_I_GSC_HAVE_ARRAYS=0
193 if test "$enable_arrays" = yes; then
194 AC_LIBOBJ([ramap])
195 AC_LIBOBJ([unif])
196 SCM_I_GSC_HAVE_ARRAYS=1
197 fi
198
199 if test "$enable_posix" = yes; then
200 AC_LIBOBJ([filesys])
201 AC_LIBOBJ([posix])
202 AC_DEFINE(HAVE_POSIX, 1,
203 [Define this if you want support for POSIX system calls in Guile.])
204 fi
205
206 if test "$enable_networking" = yes; then
207 AC_LIBOBJ([net_db])
208 AC_LIBOBJ([socket])
209 AC_DEFINE(HAVE_NETWORKING, 1,
210 [Define this if you want support for networking in Guile.])
211 fi
212
213 if test "$enable_debug_malloc" = yes; then
214 AC_LIBOBJ([debug-malloc])
215 fi
216
217 if test "$enable_elisp" = yes; then
218 SCM_I_GSC_ENABLE_ELISP=1
219 else
220 SCM_I_GSC_ENABLE_ELISP=0
221 fi
222
223 AC_C_CONST
224
225 AC_C_INLINE
226 if test "$ac_cv_c_inline" != no; then
227 SCM_I_GSC_C_INLINE="\"${ac_cv_c_inline}\""
228 else
229 SCM_I_GSC_C_INLINE=NULL
230 fi
231
232 AC_C_BIGENDIAN
233
234 AC_CHECK_SIZEOF(char)
235 AC_CHECK_SIZEOF(unsigned char)
236 AC_CHECK_SIZEOF(short)
237 AC_CHECK_SIZEOF(unsigned short)
238 AC_CHECK_SIZEOF(int)
239 AC_CHECK_SIZEOF(unsigned int)
240 AC_CHECK_SIZEOF(long)
241 AC_CHECK_SIZEOF(unsigned long)
242 AC_CHECK_SIZEOF(size_t)
243 AC_CHECK_SIZEOF(long long)
244 AC_CHECK_SIZEOF(unsigned long long)
245 AC_CHECK_SIZEOF(__int64)
246 AC_CHECK_SIZEOF(unsigned __int64)
247 AC_CHECK_SIZEOF(void *)
248 AC_CHECK_SIZEOF(intptr_t)
249 AC_CHECK_SIZEOF(uintptr_t)
250 AC_CHECK_SIZEOF(ptrdiff_t)
251
252 if test "$ac_cv_sizeof_long" -ne "$ac_cv_sizeof_void_p"; then
253 AC_MSG_ERROR(sizes of long and void* are not identical)
254 fi
255
256 if test "$ac_cv_sizeof_ptrdiff_t" -eq 0; then
257 SCM_I_GSC_T_PTRDIFF='"ptrdiff_t"'
258 else
259 SCM_I_GSC_T_PTRDIFF='"long"'
260 fi
261 AC_SUBST([SCM_I_GSC_T_PTRDIFF])
262
263 AC_CHECK_HEADERS([stdint.h])
264 AC_CHECK_HEADERS([inttypes.h])
265
266 SCM_I_GSC_NEEDS_STDINT_H=0
267 SCM_I_GSC_NEEDS_INTTYPES_H=0
268
269 ### intptr and uintptr (try not to use inttypes if we don't have to)
270 if test "$ac_cv_header_inttypes_h" = yes; then
271 if test "$ac_cv_sizeof_intptr_t" -eq 0; then
272 AC_CHECK_SIZEOF([intptr_t],,[#include <inttypes.h>
273 #include <stdio.h>])
274 if test "$ac_cv_sizeof_intptr_t" -ne 0; then
275 SCM_I_GSC_NEEDS_INTTYPES_H=1
276 fi
277 fi
278 if test "$ac_cv_sizeof_uintptr_t" -eq 0; then
279 AC_CHECK_SIZEOF([uintptr_t],,[#include <inttypes.h>
280 #include <stdio.h>])
281 if test "$ac_cv_sizeof_uintptr_t" -ne 0; then
282 SCM_I_GSC_NEEDS_INTTYPES_H=1
283 fi
284 fi
285 fi
286
287 ### See what's provided by stdint.h
288 if test "$ac_cv_header_stdint_h" = yes; then
289 AC_CHECK_TYPE([int8_t],[scm_stdint_has_int8=1],,[#include <stdint.h>])
290 AC_CHECK_TYPE([uint8_t],[scm_stdint_has_uint8=1],,[#include <stdint.h>])
291 AC_CHECK_TYPE([int16_t],[scm_stdint_has_int16=1],,[#include <stdint.h>])
292 AC_CHECK_TYPE([uint16_t],[scm_stdint_has_uint16=1],,[#include <stdint.h>])
293 AC_CHECK_TYPE([int32_t],[scm_stdint_has_int32=1],,[#include <stdint.h>])
294 AC_CHECK_TYPE([uint32_t],[scm_stdint_has_uint32=1],,[#include <stdint.h>])
295 AC_CHECK_TYPE([int64_t],[scm_stdint_has_int64=1],,[#include <stdint.h>])
296 AC_CHECK_TYPE([uint64_t],[scm_stdint_has_uint64=1],,[#include <stdint.h>])
297 fi
298
299 # so we don't get confused by the cache (wish there was a better way
300 # to check particular headers for the same type...)
301
302 unset ac_cv_type_int8_t
303 unset ac_cv_type_uint8_t
304 unset ac_cv_type_int16_t
305 unset ac_cv_type_uint16_t
306 unset ac_cv_type_int32_t
307 unset ac_cv_type_uint32_t
308 unset ac_cv_type_int64_t
309 unset ac_cv_type_uint64_t
310
311 ### See what's provided by inttypes.h
312 if test "$ac_cv_header_inttypes_h" = yes; then
313 AC_CHECK_TYPE([int8_t],[scm_inttypes_has_int8=1],,[#include <inttypes.h>])
314 AC_CHECK_TYPE([uint8_t],[scm_inttypes_has_uint8=1],,[#include <inttypes.h>])
315 AC_CHECK_TYPE([int16_t],[scm_inttypes_has_int16=1],,[#include <inttypes.h>])
316 AC_CHECK_TYPE([uint16_t],[scm_inttypes_has_uint16=1],,[#include <inttypes.h>])
317 AC_CHECK_TYPE([int32_t],[scm_inttypes_has_int32=1],,[#include <inttypes.h>])
318 AC_CHECK_TYPE([uint32_t],[scm_inttypes_has_uint32=1],,[#include <inttypes.h>])
319 AC_CHECK_TYPE([int64_t],[scm_inttypes_has_int64=1],,[#include <inttypes.h>])
320 AC_CHECK_TYPE([uint64_t],[scm_inttypes_has_uint64=1],,[#include <inttypes.h>])
321 fi
322
323 # Try hard to find definitions for some required scm_t_*int* types.
324
325 ### Required type scm_t_int8
326 if test "$ac_cv_sizeof_char" -eq 1; then
327 SCM_I_GSC_T_INT8='"char"'
328 elif test "$scm_stdint_has_int8"; then
329 SCM_I_GSC_T_INT8='"int8_t"'
330 SCM_I_GSC_NEEDS_STDINT_H=1
331 elif test "$scm_inttypes_has_int8"; then
332 SCM_I_GSC_T_INT8='"int8_t"'
333 SCM_I_GSC_NEEDS_INTTYPES_H=1
334 else
335 AC_MSG_ERROR([Can't find appropriate type for scm_t_int8.])
336 fi
337 AC_SUBST([SCM_I_GSC_T_INT8])
338
339 ### Required type scm_t_uint8
340 if test "$ac_cv_sizeof_unsigned_char" -eq 1; then
341 SCM_I_GSC_T_UINT8='"unsigned char"'
342 elif test "$scm_stdint_has_uint8"; then
343 SCM_I_GSC_T_UINT8='"uint8_t"'
344 SCM_I_GSC_NEEDS_STDINT_H=1
345 elif test "$scm_inttypes_has_uint8"; then
346 SCM_I_GSC_T_UINT8='"uint8_t"'
347 SCM_I_GSC_NEEDS_INTTYPES_H=1
348 else
349 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint8.])
350 fi
351 AC_SUBST([SCM_I_GSC_T_UINT8])
352
353
354 ### Required type scm_t_int16 (ANSI C says int or short might work)
355 if test "$ac_cv_sizeof_int" -eq 2; then
356 SCM_I_GSC_T_INT16='"int"'
357 elif test "$ac_cv_sizeof_short" -eq 2; then
358 SCM_I_GSC_T_INT16='"short"'
359 elif test "$scm_stdint_has_int16"; then
360 SCM_I_GSC_T_INT16='"int16_t"'
361 SCM_I_GSC_NEEDS_STDINT_H=1
362 elif test "$scm_inttypes_has_int16"; then
363 SCM_I_GSC_T_INT16='"int16_t"'
364 SCM_I_GSC_NEEDS_INTTYPES_H=1
365 else
366 AC_MSG_ERROR([Can't find appropriate type for scm_t_int16.])
367 fi
368 AC_SUBST([SCM_I_GSC_T_INT16])
369
370 ### Required type scm_t_uint16 (ANSI C says int or short might work)
371 if test "$ac_cv_sizeof_unsigned_int" -eq 2; then
372 SCM_I_GSC_T_UINT16='"unsigned int"'
373 elif test "$ac_cv_sizeof_unsigned_short" -eq 2; then
374 SCM_I_GSC_T_UINT16='"unsigned short"'
375 elif test "$scm_stdint_has_uint16"; then
376 SCM_I_GSC_T_UINT16='"uint16_t"'
377 SCM_I_GSC_NEEDS_STDINT_H=1
378 elif test "$scm_inttypes_has_uint16"; then
379 SCM_I_GSC_T_UINT16='"uint16_t"'
380 SCM_I_GSC_NEEDS_INTTYPES_H=1
381 else
382 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint16.])
383 fi
384 AC_SUBST([SCM_I_GSC_T_UINT16])
385
386
387 ### Required type scm_t_int32 (ANSI C says int, short, or long might work)
388 if test "$ac_cv_sizeof_int" -eq 4; then
389 SCM_I_GSC_T_INT32='"int"'
390 elif test "$ac_cv_sizeof_long" -eq 4; then
391 SCM_I_GSC_T_INT32='"long"'
392 elif test "$ac_cv_sizeof_short" -eq 4; then
393 SCM_I_GSC_T_INT32='"short"'
394 elif test "$scm_stdint_has_int32"; then
395 SCM_I_GSC_T_INT32='"int32_t"'
396 SCM_I_GSC_NEEDS_STDINT_H=1
397 elif test "$scm_inttypes_has_int32"; then
398 SCM_I_GSC_T_INT32='"int32_t"'
399 SCM_I_GSC_NEEDS_INTTYPES_H=1
400 else
401 AC_MSG_ERROR([Can't find appropriate type for scm_t_int32.])
402 fi
403 AC_SUBST([SCM_I_GSC_T_INT32])
404
405 ### Required type scm_t_uint32 (ANSI C says int, short, or long might work)
406 if test "$ac_cv_sizeof_unsigned_int" -eq 4; then
407 SCM_I_GSC_T_UINT32='"unsigned int"'
408 elif test "$ac_cv_sizeof_unsigned_long" -eq 4; then
409 SCM_I_GSC_T_UINT32='"unsigned long"'
410 elif test "$ac_cv_sizeof_unsigned_short" -eq 4; then
411 SCM_I_GSC_T_UINT32='"unsigned short"'
412 elif test "$scm_stdint_has_uint32"; then
413 SCM_I_GSC_T_UINT32='"uint32_t"'
414 SCM_I_GSC_NEEDS_STDINT_H=1
415 elif test "$scm_inttypes_has_uint32"; then
416 SCM_I_GSC_T_UINT32='"uint32_t"'
417 SCM_I_GSC_NEEDS_INTTYPES_H=1
418 else
419 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint32.])
420 fi
421 AC_SUBST([SCM_I_GSC_T_UINT32])
422
423 ### Optional type scm_t_int64 (ANSI C says int, short, or long might work)
424 ### Also try 'long long' and '__int64' if we have it.
425 SCM_I_GSC_T_INT64=0
426 if test "$ac_cv_sizeof_int" -eq 8; then
427 SCM_I_GSC_T_INT64='"int"'
428 elif test "$ac_cv_sizeof_long" -eq 8; then
429 SCM_I_GSC_T_INT64='"long"'
430 elif test "$ac_cv_sizeof_short" -eq 8; then
431 SCM_I_GSC_T_INT64='"short"'
432 elif test "$ac_cv_sizeof_long_long" -eq 8; then
433 SCM_I_GSC_T_INT64='"long long"'
434 elif test "$ac_cv_sizeof___int64" -eq 8; then
435 SCM_I_GSC_T_INT64='"__int64"'
436 elif test "$scm_stdint_has_int64"; then
437 SCM_I_GSC_T_INT64='"int64_t"'
438 SCM_I_GSC_NEEDS_STDINT_H=1
439 elif test "$scm_inttypes_has_int64"; then
440 SCM_I_GSC_T_INT64='"int64_t"'
441 SCM_I_GSC_NEEDS_INTTYPES_H=1
442 else
443 AC_MSG_ERROR([Can't find appropriate type for scm_t_int64.])
444 fi
445 AC_SUBST([SCM_I_GSC_T_INT64])
446
447 ### Optional type scm_t_uint64 (ANSI C says int, short, or long might work)
448 ### Also try 'long long' and '__int64' if we have it.
449 SCM_I_GSC_T_UINT64=0
450 if test "$ac_cv_sizeof_unsigned_int" -eq 8; then
451 SCM_I_GSC_T_UINT64='"unsigned int"'
452 elif test "$ac_cv_sizeof_unsigned_long" -eq 8; then
453 SCM_I_GSC_T_UINT64='"unsigned long"'
454 elif test "$ac_cv_sizeof_unsigned_short" -eq 8; then
455 SCM_I_GSC_T_UINT64='"unsigned short"'
456 elif test "$ac_cv_sizeof_unsigned_long_long" -eq 8; then
457 SCM_I_GSC_T_UINT64='"unsigned long long"'
458 elif test "$ac_cv_sizeof_unsigned___int64" -eq 8; then
459 SCM_I_GSC_T_UINT64='"unsigned __int64"'
460 elif test "$scm_stdint_has_uint64"; then
461 SCM_I_GSC_T_UINT64='"uint64_t"'
462 SCM_I_GSC_NEEDS_STDINT_H=1
463 elif test "$scm_inttypes_has_uint64"; then
464 SCM_I_GSC_T_UINT64='"uint64_t"'
465 SCM_I_GSC_NEEDS_INTTYPES_H=1
466 else
467 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint64.])
468 fi
469 AC_SUBST([SCM_I_GSC_T_UINT64])
470
471
472 AC_SUBST([SCM_I_GSC_NEEDS_STDINT_H])
473 AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H])
474
475 AC_HEADER_STDC
476 AC_HEADER_DIRENT
477 AC_HEADER_TIME
478 AC_HEADER_SYS_WAIT
479
480 AC_CHECK_HEADERS([io.h libc.h limits.h malloc.h memory.h string.h \
481 regex.h rxposix.h rx/rxposix.h sys/dir.h sys/ioctl.h sys/select.h \
482 sys/time.h sys/timeb.h sys/times.h sys/stdtypes.h sys/types.h \
483 sys/utime.h time.h unistd.h utime.h pwd.h grp.h sys/utsname.h \
484 direct.h])
485
486 GUILE_HEADER_LIBC_WITH_UNISTD
487
488 AC_TYPE_GETGROUPS
489 AC_TYPE_SIGNAL
490 AC_TYPE_MODE_T
491
492 if test $MINGW32 = no; then
493 AC_CHECK_LIB(m, main)
494 fi
495 AC_CHECK_FUNCS(gethostbyname)
496 if test $ac_cv_func_gethostbyname = no; then
497 AC_CHECK_LIB(nsl, gethostbyname)
498 fi
499
500 AC_CHECK_FUNCS(connect)
501 if test $ac_cv_func_connect = no; then
502 AC_CHECK_LIB(socket, connect)
503 fi
504
505 dnl
506 dnl Check for Winsock and other functionality on Win32 (*not* CygWin)
507 dnl
508 EXTRA_DEFS=""
509 if test "$MINGW32" = "yes" ; then
510 AC_CHECK_HEADER(winsock2.h, [AC_DEFINE([HAVE_WINSOCK2_H], 1,
511 [Define if you have the <winsock2.h> header file.])])
512 AC_CHECK_LIB(ws2_32, main)
513 AC_LIBOBJ([win32-uname])
514 AC_LIBOBJ([win32-dirent])
515 if test "$enable_networking" = yes ; then
516 AC_LIBOBJ([win32-socket])
517 fi
518 if test "$enable_shared" = yes ; then
519 EXTRA_DEFS="-DSCM_IMPORT"
520 AC_DEFINE(USE_DLL_IMPORT, 1,
521 [Define if you need additional CPP macros on Win32 platforms.])
522 fi
523 if test x"$enable_ltdl_install" = x"yes" ; then
524 INCLTDL="-DLIBLTDL_DLL_IMPORT $INCLTDL"
525 fi
526 fi
527 AC_SUBST(EXTRA_DEFS)
528
529 # FIXME: check to see if we still need these.
530 #AC_SUBST(INCLTDL)
531 #AC_SUBST(LIBLTDL)
532
533 AC_SUBST(DLPREOPEN)
534
535 AC_CHECK_HEADERS([assert.h])
536
537 AC_CHECK_FUNCS([ctermid ftime fchown getcwd geteuid gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid strdup system usleep atexit on_exit chown link fcntl ttyname getpwent getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp index bcopy memcpy rindex unsetenv])
538
539 AC_CHECK_HEADERS(crypt.h sys/resource.h sys/file.h)
540 AC_CHECK_FUNCS(chroot flock getlogin cuserid getpriority setpriority getpass sethostname gethostname)
541 AC_CHECK_LIB(crypt, crypt)
542
543 dnl GMP tests
544 AC_CHECK_LIB([gmp], [__gmpz_init], ,
545 [AC_MSG_ERROR([GNU MP not found, see http://swox.com/gmp])])
546
547 # mpz_import is a macro so we need to include <gmp.h>
548 AC_TRY_LINK([#include <gmp.h>],
549 [mpz_import (0, 0, 0, 0, 0, 0, 0);] , ,
550 [AC_MSG_ERROR([At least GNU MP 4.1 is required, see http://swox.com/gmp])])
551
552 ### Some systems don't declare some functions. On such systems, we
553 ### need to at least provide our own K&R-style declarations.
554
555 ### GUILE_FUNC_DECLARED(function, headerfile)
556
557 ### Check for a declaration of FUNCTION in HEADERFILE; if it is
558 ### not there, #define MISSING_FUNCTION_DECL.
559 AC_DEFUN(GUILE_FUNC_DECLARED, [
560 AC_CACHE_CHECK(for $1 declaration, guile_cv_func_$1_declared,
561 AC_EGREP_HEADER($1, $2,
562 guile_cv_func_$1_declared=yes,
563 guile_cv_func_$1_declared=no))
564 if test [x$guile_cv_func_]$1[_declared] = xno; then
565 AC_DEFINE([MISSING_]translit($1, [a-z], [A-Z])[_DECL], 1,
566 [Define if the operating system supplies $1 without declaring it.])
567 fi
568 ])
569
570 GUILE_FUNC_DECLARED(strptime, time.h)
571 GUILE_FUNC_DECLARED(sleep, unistd.h)
572 GUILE_FUNC_DECLARED(usleep, unistd.h)
573
574 ### On some systems usleep has no return value. If it does have one,
575 ### we'd like to return it; otherwise, we'll fake it.
576 AC_CACHE_CHECK([return type of usleep], guile_cv_func_usleep_return_type,
577 [AC_EGREP_HEADER(changequote(<, >)<void[ ]+usleep>changequote([, ]),
578 unistd.h,
579 [guile_cv_func_usleep_return_type=void],
580 [guile_cv_func_usleep_return_type=int])])
581 case "$guile_cv_func_usleep_return_type" in
582 "void" )
583 AC_DEFINE(USLEEP_RETURNS_VOID, 1,
584 [Define if the system headers declare usleep to return void.])
585 ;;
586 esac
587
588 AC_CHECK_HEADER(sys/un.h, have_sys_un_h=1)
589 if test -n "$have_sys_un_h" ; then
590 AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS, 1,
591 [Define if the system supports Unix-domain (file-domain) sockets.])
592 fi
593
594 AC_CHECK_FUNCS(socketpair getgroups setgroups setpwent pause tzset)
595
596 AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
597 setnetent getnetent endnetent dnl
598 setprotoent getprotoent endprotoent dnl
599 setservent getservent endservent dnl
600 getnetbyaddr getnetbyname dnl
601 inet_lnaof inet_makeaddr inet_netof hstrerror dnl
602 inet_pton inet_ntop)
603
604 AC_MSG_CHECKING(for __libc_stack_end)
605 AC_CACHE_VAL(guile_cv_have_libc_stack_end,
606 [AC_TRY_LINK([#include <stdio.h>
607 extern char *__libc_stack_end;],
608 [printf("%p", (char*) __libc_stack_end);],
609 guile_cv_have_libc_stack_end=yes,
610 guile_cv_have_libc_stack_end=no)])
611 AC_MSG_RESULT($guile_cv_have_libc_stack_end)
612
613 if test $guile_cv_have_libc_stack_end = yes; then
614 AC_DEFINE(HAVE_LIBC_STACK_END, 1,
615 [Define if you have the __libc_stack_end variable.])
616 fi
617
618 dnl Some systems do not declare this. Some systems do declare it, as a
619 dnl macro. With cygwin it may be in a DLL.
620
621 AC_MSG_CHECKING(whether netdb.h declares h_errno)
622 AC_CACHE_VAL(guile_cv_have_h_errno,
623 [AC_TRY_COMPILE([#include <netdb.h>],
624 [int a = h_errno;],
625 guile_cv_have_h_errno=yes, guile_cv_have_h_errno=no)])
626 AC_MSG_RESULT($guile_cv_have_h_errno)
627 if test $guile_cv_have_h_errno = yes; then
628 AC_DEFINE(HAVE_H_ERRNO, 1, [Define if h_errno is declared in netdb.h.])
629 fi
630
631 AC_MSG_CHECKING(whether uint32_t is defined)
632 AC_CACHE_VAL(guile_cv_have_uint32_t,
633 [AC_TRY_COMPILE([#include <sys/types.h>
634 #if HAVE_STDINT_H
635 #include <stdint.h>
636 #endif
637 #ifndef __MINGW32__
638 #include <netdb.h>
639 #endif],
640 [uint32_t a;],
641 guile_cv_have_uint32_t=yes, guile_cv_have_uint32_t=no)])
642 AC_MSG_RESULT($guile_cv_have_uint32_t)
643 if test $guile_cv_have_uint32_t = yes; then
644 AC_DEFINE(HAVE_UINT32_T, 1,
645 [Define if uint32_t typedef is defined when netdb.h is include.])
646 fi
647
648 AC_MSG_CHECKING(for working IPv6 support)
649 AC_CACHE_VAL(guile_cv_have_ipv6,
650 [AC_TRY_COMPILE([
651 #ifdef HAVE_SYS_TYPES_H
652 #include <sys/types.h>
653 #endif
654 #include <netinet/in.h>
655 #include <sys/socket.h>],
656 [struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
657 guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
658 AC_MSG_RESULT($guile_cv_have_ipv6)
659 if test $guile_cv_have_ipv6 = yes; then
660 AC_DEFINE(HAVE_IPV6, 1, [Define if you want support for IPv6.])
661 fi
662
663 # included in rfc2553 but not in older implementations, e.g., glibc 2.1.3.
664 AC_MSG_CHECKING(whether sockaddr_in6 has sin6_scope_id)
665 AC_CACHE_VAL(guile_cv_have_sin6_scope_id,
666 [AC_TRY_COMPILE([
667 #ifdef HAVE_SYS_TYPES_H
668 #include <sys/types.h>
669 #endif
670 #include <netinet/in.h>],
671 [struct sockaddr_in6 sok; sok.sin6_scope_id = 0;],
672 guile_cv_have_sin6_scope_id=yes, guile_cv_have_sin6_scope_id=no)])
673 AC_MSG_RESULT($guile_cv_have_sin6_scope_id)
674 if test $guile_cv_have_sin6_scope_id = yes; then
675 AC_DEFINE(HAVE_SIN6_SCOPE_ID, 1,
676 [Define this if your IPv6 has sin6_scope_id in sockaddr_in6 struct.])
677 fi
678
679 AC_MSG_CHECKING(whether localtime caches TZ)
680 AC_CACHE_VAL(guile_cv_localtime_cache,
681 [if test x$ac_cv_func_tzset = xyes; then
682 AC_TRY_RUN([#include <time.h>
683 #if STDC_HEADERS
684 # include <stdlib.h>
685 #endif
686 extern char **environ;
687 unset_TZ ()
688 {
689 char **from, **to;
690 for (to = from = environ; (*to = *from); from++)
691 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
692 to++;
693 }
694 char TZ_GMT0[] = "TZ=GMT0";
695 char TZ_PST8[] = "TZ=PST8";
696 main()
697 {
698 time_t now = time ((time_t *) 0);
699 int hour_GMT0, hour_unset;
700 if (putenv (TZ_GMT0) != 0)
701 exit (1);
702 hour_GMT0 = localtime (&now)->tm_hour;
703 unset_TZ ();
704 hour_unset = localtime (&now)->tm_hour;
705 if (putenv (TZ_PST8) != 0)
706 exit (1);
707 if (localtime (&now)->tm_hour == hour_GMT0)
708 exit (1);
709 unset_TZ ();
710 if (localtime (&now)->tm_hour != hour_unset)
711 exit (1);
712 exit (0);
713 }], guile_cv_localtime_cache=no, guile_cv_localtime_cache=yes,
714 [# If we have tzset, assume the worst when cross-compiling.
715 guile_cv_localtime_cache=yes])
716 else
717 # If we lack tzset, report that localtime does not cache TZ,
718 # since we can't invalidate the cache if we don't have tzset.
719 guile_cv_localtime_cache=no
720 fi])dnl
721 AC_MSG_RESULT($guile_cv_localtime_cache)
722 if test $guile_cv_localtime_cache = yes; then
723 AC_DEFINE(LOCALTIME_CACHE, 1, [Define if localtime caches the TZ setting.])
724 fi
725
726 dnl Test whether system calls are restartable by default on the
727 dnl current system. If they are not, we put a loop around every system
728 dnl call to check for EINTR (see SCM_SYSCALL) and do not attempt to
729 dnl change from the default behaviour. On the other hand, if signals
730 dnl are restartable then the loop is not installed and when libguile
731 dnl initialises it also resets the behaviour of each signal to cause a
732 dnl restart (in case a different runtime had a different default
733 dnl behaviour for some reason: e.g., different versions of linux seem
734 dnl to behave differently.)
735
736 AC_SYS_RESTARTABLE_SYSCALLS
737
738 if test "$enable_regex" = yes; then
739 if test "$ac_cv_header_regex_h" = yes ||
740 test "$ac_cv_header_rxposix_h" = yes ||
741 test "$ac_cv_header_rx_rxposix_h" = yes; then
742 GUILE_NAMED_CHECK_FUNC(regcomp, norx, [AC_LIBOBJ([regex-posix])],
743 [AC_CHECK_LIB(rx, main)
744 GUILE_NAMED_CHECK_FUNC(regcomp, rx, [AC_LIBOBJ([regex-posix])],
745 [AC_CHECK_LIB(regex, main)
746 GUILE_NAMED_CHECK_FUNC(regcomp, regex, [AC_LIBOBJ([regex-posix])])])]
747 )
748 dnl The following should not be necessary, but for some reason
749 dnl autoheader misses it if we don't include it!
750 if test "$ac_cv_func_regcomp_norx" = yes ||
751 test "$ac_cv_func_regcomp_regex" = yes ||
752 test "$ac_cv_func_regcomp_rx" = yes; then
753 AC_DEFINE(HAVE_REGCOMP, 1,
754 [This is included as part of a workaround for a autoheader bug.])
755 fi
756 fi
757 fi
758
759 AC_REPLACE_FUNCS(inet_aton putenv strerror memmove mkstemp)
760
761 AC_CHECK_HEADERS(floatingpoint.h ieeefp.h nan.h)
762
763 # Reasons for testing:
764 # asinh, acosh, atanh, trunc - C99 standard, generally not available on
765 # older systems
766 # sincos - GLIBC extension
767 #
768 AC_CHECK_FUNCS(asinh acosh atanh copysign finite isinf isnan sincos trunc)
769
770 # When testing for the presence of alloca, we need to add alloca.o
771 # explicitly to LIBOBJS to make sure that it is translated to
772 # `alloca.lo' for libtool later on. This can and should be done more cleanly.
773 AC_FUNC_ALLOCA
774 if test "$ALLOCA" = "alloca.o"; then AC_LIBOBJ([alloca]); fi
775
776 AC_CHECK_MEMBERS([struct stat.st_rdev])
777 AC_CHECK_MEMBERS([struct stat.st_blksize])
778
779 AC_STRUCT_ST_BLOCKS
780
781 AC_CACHE_CHECK([for S_ISLNK in sys/stat.h], ac_cv_macro_S_ISLNK,
782 [AC_TRY_CPP([#include <sys/stat.h>
783 #ifndef S_ISLNK
784 #error no S_ISLNK
785 #endif],
786 ac_cv_macro_S_ISLNK=yes,
787 ac_cv_macro_S_ISLNK=no)])
788 if test $ac_cv_macro_S_ISLNK = yes; then
789 AC_DEFINE(HAVE_S_ISLNK, 1,
790 [Define this if your system defines S_ISLNK in sys/stat.h.])
791 fi
792
793 AC_STRUCT_TIMEZONE
794 GUILE_STRUCT_UTIMBUF
795
796 #--------------------------------------------------------------------
797 #
798 # Which way does the stack grow?
799 #
800 #--------------------------------------------------------------------
801
802 SCM_I_GSC_STACK_GROWS_UP=0
803 AC_TRY_RUN(aux (l) unsigned long l;
804 { int x; exit (l >= ((unsigned long)&x)); }
805 main () { int q; aux((unsigned long)&q); },
806 [SCM_I_GSC_STACK_GROWS_UP=1],
807 [],
808 [AC_MSG_WARN(Guessing that stack grows down -- see scmconfig.h)])
809
810 AC_CHECK_SIZEOF(float)
811 if test "$ac_cv_sizeof_float" -le "$ac_cv_sizeof_long"; then
812 AC_DEFINE(SCM_SINGLES, 1,
813 [Define this if floats are the same size as longs.])
814 fi
815
816 AC_MSG_CHECKING(for struct linger)
817 AC_CACHE_VAL(scm_cv_struct_linger,
818 AC_TRY_COMPILE([
819 #include <sys/types.h>
820 #include <sys/socket.h>],
821 [struct linger lgr; lgr.l_linger = 100],
822 scm_cv_struct_linger="yes",
823 scm_cv_struct_linger="no"))
824 AC_MSG_RESULT($scm_cv_struct_linger)
825 if test $scm_cv_struct_linger = yes; then
826 AC_DEFINE(HAVE_STRUCT_LINGER, 1,
827 [Define this if your system defines struct linger, for use with the
828 getsockopt and setsockopt system calls.])
829 fi
830
831
832 AC_MSG_CHECKING(for struct timespec)
833 AC_CACHE_VAL(scm_cv_struct_timespec,
834 AC_TRY_COMPILE([
835 #include <time.h>],
836 [struct timespec t; t.tv_nsec = 100],
837 scm_cv_struct_timespec="yes",
838 scm_cv_struct_timespec="no"))
839 AC_MSG_RESULT($scm_cv_struct_timespec)
840 if test $scm_cv_struct_timespec = yes; then
841 AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
842 [Define this if your system defines struct timespec via <time.h>.])
843 fi
844
845 #--------------------------------------------------------------------
846 #
847 # Flags for thread support
848 #
849 #--------------------------------------------------------------------
850
851 SCM_I_GSC_USE_PTHREAD_THREADS=0
852 SCM_I_GSC_USE_NULL_THREADS=0
853 SCM_I_GSC_USE_COOP_THREADS=0
854 AC_SUBST([SCM_I_GSC_USE_PTHREAD_THREADS])
855 AC_SUBST([SCM_I_GSC_USE_NULL_THREADS])
856 AC_SUBST([SCM_I_GSC_USE_COOP_THREADS])
857
858 ### What thread package has the user asked for?
859 AC_ARG_WITH(threads, [ --with-threads thread interface],
860 , with_threads=yes)
861
862 case "$with_threads" in
863 "yes" | "pthread" | "pthreads" | "pthread-threads" | "")
864 AC_CHECK_LIB(pthread, main,
865 LIBS="-lpthread $LIBS"
866 SCM_I_GSC_USE_PTHREAD_THREADS=1
867 with_threads="pthreads",
868 with_threads="null")
869
870 if test $GCC = yes; then
871 AC_DEFINE(_THREAD_SAFE, 1,
872 [Use thread safe versions of GNU Libc functions.])
873 fi
874
875 AC_MSG_CHECKING(if pthread_mutexattr_settype is declared)
876 AC_CACHE_VAL(guile_cv_mutexattr_settype_declared,
877 [AC_TRY_COMPILE([#include <pthread.h>],
878 [int pthread_mutexattr_settype (int, int);],
879 guile_cv_mutexattr_settype_declared=no,
880 guile_cv_mutexattr_settype_declared=yes)])
881 AC_MSG_RESULT($guile_cv_mutexattr_settype_declared)
882 if test $guile_cv_mutexattr_settype_declared = yes; then
883 AC_DEFINE(SCM_MUTEXATTR_SETTYPE_DECLARED, 1,
884 [Define if pthread.h declares pthread_mutexattr_settype.])
885 fi
886
887 AC_MSG_CHECKING(how to get a fast mutex)
888 AC_CACHE_VAL(guile_cv_have_mutex_fast,
889 [AC_TRY_COMPILE([#include <pthread.h>],
890 [int a = PTHREAD_MUTEX_ADAPTIVE_NP;],
891 guile_cv_have_mutex_fast=PTHREAD_MUTEX_ADAPTIVE_NP,
892 guile_cv_have_mutex_fast=none)])
893 AC_MSG_RESULT($guile_cv_have_mutex_fast)
894 if test ! $guile_cv_have_mutex_fast = none; then
895 AC_DEFINE_UNQUOTED(SCM_MUTEX_FAST, $guile_cv_have_mutex_fast,
896 [The mutex kind enum for fast mutexes.])
897 fi
898
899 AC_MSG_CHECKING(how to get a recursive mutex)
900 AC_CACHE_VAL(guile_cv_have_mutex_recursive,
901 [AC_TRY_COMPILE([#include <pthread.h>],
902 [int a = PTHREAD_MUTEX_RECURSIVE_NP;],
903 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE_NP)
904 if test -z "$guile_cv_have_mutex_recursive"; then
905 AC_TRY_COMPILE([#include <pthread.h>],
906 [int a = PTHREAD_MUTEX_RECURSIVE;],
907 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE,
908 guile_cv_have_mutex_recursive=none)
909 fi])
910 AC_MSG_RESULT($guile_cv_have_mutex_recursive)
911 if test ! $guile_cv_have_mutex_recursive = none; then
912 AC_DEFINE_UNQUOTED(SCM_MUTEX_RECURSIVE, $guile_cv_have_mutex_recursive,
913 [The mutex kind enum for recursive mutexes.])
914 fi
915
916 # On Solaris, sched_yield lives in -lrt.
917 AC_SEARCH_LIBS(sched_yield, rt)
918
919 ;;
920 esac
921
922 case "$with_threads" in
923 "pthreads")
924 ;;
925 "no" | "null")
926 SCM_I_GSC_USE_NULL_THREADS=1
927 with_threads="null-threads"
928 ;;
929 * )
930 AC_MSG_ERROR(invalid value for --with-threads: $with_threads)
931 ;;
932 esac
933
934 AC_MSG_CHECKING(what kind of threads to support)
935 AC_MSG_RESULT($with_threads)
936
937 ## Cross building
938 if test "$cross_compiling" = "yes"; then
939 AC_MSG_CHECKING(cc for build)
940 ## /usr/bin/cc still uses wrong assembler
941 ## CC_FOR_BUILD="${CC_FOR_BUILD-/usr/bincc}"
942 CC_FOR_BUILD="${CC_FOR_BUILD-PATH=/usr/bin:$PATH cc}"
943 else
944 CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
945 fi
946
947 ## AC_MSG_CHECKING("if we are cross compiling")
948 ## AC_MSG_RESULT($cross_compiling)
949 if test "$cross_compiling" = "yes"; then
950 AC_MSG_RESULT($CC_FOR_BUILD)
951 fi
952
953 ## No need as yet to be more elaborate
954 CCLD_FOR_BUILD="$CC_FOR_BUILD"
955
956 AC_SUBST(cross_compiling)
957 AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
958 AC_SUBST(CCLD_FOR_BUILD)
959
960 ## libtool erroneously calls CC_FOR_BUILD HOST_CC;
961 ## --HOST is the platform that PACKAGE is compiled for.
962 HOST_CC="$CC_FOR_BUILD"
963 AC_SUBST(HOST_CC)
964
965 if test "$cross_compiling" = "yes"; then
966 AC_MSG_CHECKING(guile for build)
967 GUILE_FOR_BUILD="${GUILE_FOR_BUILD-guile}"
968 else
969 GUILE_FOR_BUILD='$(preinstguile)'
970 fi
971 AC_ARG_WITH(guile-for-build,
972 [ --with-guile-for-build=guile native guile executable, to be used during build])
973 test -n "$with_guile_for_build" && GUILE_FOR_BUILD="$with_guile_for_build"
974
975 ## AC_MSG_CHECKING("if we are cross compiling")
976 ## AC_MSG_RESULT($cross_compiling)
977 if test "$cross_compiling" = "yes"; then
978 AC_MSG_RESULT($GUILE_FOR_BUILD)
979 fi
980 AC_SUBST(GUILE_FOR_BUILD)
981
982 ## If we're using GCC, ask for aggressive warnings.
983 case "$GCC" in
984 yes )
985 ## We had -Wstrict-prototypes in here for a bit, but Guile does too
986 ## much stuff with generic function pointers for that to really be
987 ## less than exasperating.
988 ## -Wpointer-arith was here too, but something changed in gcc/glibc
989 ## and it became equally exasperating (gcc 2.95 and/or glibc 2.1.2).
990 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes"
991 # Do this here so we don't screw up any of the tests above that might
992 # not be "warning free"
993 if test "${GUILE_ERROR_ON_WARNING}" = yes
994 then
995 CFLAGS="${CFLAGS} -Werror"
996 enable_compile_warnings=no
997 fi
998 ;;
999 esac
1000
1001 ## NOTE the code below sets LIBOBJS directly and so is now forbidden
1002 ## -- I'm disabling it for now in the hopes that the newer autoconf
1003 ## will DTRT -- if not, we need to fix up the sed command to match the
1004 ## others...
1005 ##
1006 ## Remove fileblocks.o from the object list. This file gets added by
1007 ## the Autoconf macro AC_STRUCT_ST_BLOCKS. But there is no need.
1008 #LIBOBJS="`echo ${LIBOBJS} | sed 's/fileblocks\.o//g'`"
1009
1010 ## If we're creating a shared library (using libtool!), then we'll
1011 ## need to generate a list of .lo files corresponding to the .o files
1012 ## given in LIBOBJS. We'll call it LIBLOBJS.
1013 LIBLOBJS="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`"
1014
1015 ## We also need to create corresponding .doc and .x files
1016 EXTRA_DOT_DOC_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.doc ,g;s,\.[[^.]]*$,.doc,'`"
1017 EXTRA_DOT_X_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.x ,g;s,\.[[^.]]*$,.x,'`"
1018
1019 AC_SUBST(GUILE_MAJOR_VERSION)
1020 AC_SUBST(GUILE_MINOR_VERSION)
1021 AC_SUBST(GUILE_MICRO_VERSION)
1022 AC_SUBST(GUILE_EFFECTIVE_VERSION)
1023 AC_SUBST(GUILE_VERSION)
1024
1025 #######################################################################
1026 # library versioning
1027
1028 AC_SUBST(LIBQTHREADS_INTERFACE_CURRENT)
1029 AC_SUBST(LIBQTHREADS_INTERFACE_REVISION)
1030 AC_SUBST(LIBQTHREADS_INTERFACE_AGE)
1031 AC_SUBST(LIBQTHREADS_INTERFACE)
1032
1033 AC_SUBST(LIBGUILE_INTERFACE_CURRENT)
1034 AC_SUBST(LIBGUILE_INTERFACE_REVISION)
1035 AC_SUBST(LIBGUILE_INTERFACE_AGE)
1036 AC_SUBST(LIBGUILE_INTERFACE)
1037
1038 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_CURRENT)
1039 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_REVISION)
1040 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_AGE)
1041 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE)
1042
1043 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_CURRENT)
1044 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_REVISION)
1045 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_AGE)
1046 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE)
1047
1048 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_CURRENT)
1049 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_REVISION)
1050 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_AGE)
1051 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE)
1052
1053 #######################################################################
1054
1055 dnl Tell guile-config what flags guile users should link against.
1056 GUILE_LIBS="$LDFLAGS $THREAD_LIBS_INSTALLED $LIBS"
1057 AC_SUBST(GUILE_LIBS)
1058
1059 AC_SUBST(AWK)
1060 AC_SUBST(LIBLOBJS)
1061 AC_SUBST(EXTRA_DOT_DOC_FILES)
1062 AC_SUBST(EXTRA_DOT_X_FILES)
1063
1064 dnl See also top_builddir in info node: (libtool)AC_PROG_LIBTOOL
1065 top_builddir_absolute=`pwd`
1066 AC_SUBST(top_builddir_absolute)
1067 top_srcdir_absolute=`(cd $srcdir && pwd)`
1068 AC_SUBST(top_srcdir_absolute)
1069
1070 # Additional SCM_I_GSC definitions are above.
1071 AC_SUBST([SCM_I_GSC_GUILE_DEBUG])
1072 AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST])
1073 AC_SUBST([SCM_I_GSC_ENABLE_DEPRECATED])
1074 AC_SUBST([SCM_I_GSC_ENABLE_ELISP])
1075 AC_SUBST([SCM_I_GSC_HAVE_ARRAYS])
1076 AC_SUBST([SCM_I_GSC_STACK_GROWS_UP])
1077 AC_SUBST([SCM_I_GSC_C_INLINE])
1078 AC_CONFIG_FILES([libguile/gen-scmconfig.h])
1079
1080 AC_CONFIG_FILES([
1081 Makefile
1082 am/Makefile
1083 benchmark-suite/Makefile
1084 doc/Makefile
1085 doc/goops/Makefile
1086 doc/r5rs/Makefile
1087 doc/ref/Makefile
1088 doc/tutorial/Makefile
1089 examples/Makefile
1090 examples/box-dynamic-module/Makefile
1091 examples/box-dynamic/Makefile
1092 examples/box-module/Makefile
1093 examples/box/Makefile
1094 examples/modules/Makefile
1095 examples/safe/Makefile
1096 examples/scripts/Makefile
1097 guile-config/Makefile
1098 ice-9/Makefile
1099 ice-9/debugger/Makefile
1100 ice-9/debugger/breakpoints/Makefile
1101 lang/Makefile
1102 lang/elisp/Makefile
1103 lang/elisp/internals/Makefile
1104 lang/elisp/primitives/Makefile
1105 libguile-ltdl/Makefile
1106 libguile-ltdl/upstream/Makefile
1107 libguile/Makefile
1108 oop/Makefile
1109 oop/goops/Makefile
1110 scripts/Makefile
1111 srfi/Makefile
1112 test-suite/Makefile
1113 test-suite/standalone/Makefile
1114 ])
1115
1116 AC_CONFIG_FILES([check-guile], [chmod +x check-guile])
1117 AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
1118 AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools])
1119 AC_CONFIG_FILES([pre-inst-guile], [chmod +x pre-inst-guile])
1120 AC_CONFIG_FILES([pre-inst-guile-env], [chmod +x pre-inst-guile-env])
1121 AC_CONFIG_FILES([libguile/guile-snarf],
1122 [chmod +x libguile/guile-snarf])
1123 AC_CONFIG_FILES([libguile/guile-doc-snarf],
1124 [chmod +x libguile/guile-doc-snarf])
1125 AC_CONFIG_FILES([libguile/guile-func-name-check],
1126 [chmod +x libguile/guile-func-name-check])
1127 AC_CONFIG_FILES([libguile/guile-snarf-docs],
1128 [chmod +x libguile/guile-snarf-docs])
1129
1130 AC_OUTPUT
1131
1132 dnl Local Variables:
1133 dnl comment-start: "dnl "
1134 dnl comment-end: ""
1135 dnl comment-start-skip: "\\bdnl\\b\\s *"
1136 dnl End: