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