(AC_CHECK_FUNCS): Add asinh, acosh, atanh and trunc.
[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 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([extern char *__libc_stack_end;],
607 [char *p = __libc_stack_end;],
608 guile_cv_have_libc_stack_end=yes,
609 guile_cv_have_libc_stack_end=no)])
610 AC_MSG_RESULT($guile_cv_have_libc_stack_end)
611
612 if test $guile_cv_have_libc_stack_end = yes; then
613 AC_DEFINE(HAVE_LIBC_STACK_END, 1,
614 [Define if you have the __libc_stack_end variable.])
615 fi
616
617 dnl Some systems do not declare this. Some systems do declare it, as a
618 dnl macro. With cygwin it may be in a DLL.
619
620 AC_MSG_CHECKING(whether netdb.h declares h_errno)
621 AC_CACHE_VAL(guile_cv_have_h_errno,
622 [AC_TRY_COMPILE([#include <netdb.h>],
623 [int a = h_errno;],
624 guile_cv_have_h_errno=yes, guile_cv_have_h_errno=no)])
625 AC_MSG_RESULT($guile_cv_have_h_errno)
626 if test $guile_cv_have_h_errno = yes; then
627 AC_DEFINE(HAVE_H_ERRNO, 1, [Define if h_errno is declared in netdb.h.])
628 fi
629
630 AC_MSG_CHECKING(whether uint32_t is defined)
631 AC_CACHE_VAL(guile_cv_have_uint32_t,
632 [AC_TRY_COMPILE([#include <sys/types.h>
633 #if HAVE_STDINT_H
634 #include <stdint.h>
635 #endif
636 #ifndef __MINGW32__
637 #include <netdb.h>
638 #endif],
639 [uint32_t a;],
640 guile_cv_have_uint32_t=yes, guile_cv_have_uint32_t=no)])
641 AC_MSG_RESULT($guile_cv_have_uint32_t)
642 if test $guile_cv_have_uint32_t = yes; then
643 AC_DEFINE(HAVE_UINT32_T, 1,
644 [Define if uint32_t typedef is defined when netdb.h is include.])
645 fi
646
647 AC_MSG_CHECKING(for working IPv6 support)
648 AC_CACHE_VAL(guile_cv_have_ipv6,
649 [AC_TRY_COMPILE([
650 #ifdef HAVE_SYS_TYPES_H
651 #include <sys/types.h>
652 #endif
653 #include <netinet/in.h>
654 #include <sys/socket.h>],
655 [struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
656 guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
657 AC_MSG_RESULT($guile_cv_have_ipv6)
658 if test $guile_cv_have_ipv6 = yes; then
659 AC_DEFINE(HAVE_IPV6, 1, [Define if you want support for IPv6.])
660 fi
661
662 # included in rfc2553 but not in older implementations, e.g., glibc 2.1.3.
663 AC_MSG_CHECKING(whether sockaddr_in6 has sin6_scope_id)
664 AC_CACHE_VAL(guile_cv_have_sin6_scope_id,
665 [AC_TRY_COMPILE([
666 #ifdef HAVE_SYS_TYPES_H
667 #include <sys/types.h>
668 #endif
669 #include <netinet/in.h>],
670 [struct sockaddr_in6 sok; sok.sin6_scope_id = 0;],
671 guile_cv_have_sin6_scope_id=yes, guile_cv_have_sin6_scope_id=no)])
672 AC_MSG_RESULT($guile_cv_have_sin6_scope_id)
673 if test $guile_cv_have_sin6_scope_id = yes; then
674 AC_DEFINE(HAVE_SIN6_SCOPE_ID, 1,
675 [Define this if your IPv6 has sin6_scope_id in sockaddr_in6 struct.])
676 fi
677
678 AC_MSG_CHECKING(whether localtime caches TZ)
679 AC_CACHE_VAL(guile_cv_localtime_cache,
680 [if test x$ac_cv_func_tzset = xyes; then
681 AC_TRY_RUN([#include <time.h>
682 #if STDC_HEADERS
683 # include <stdlib.h>
684 #endif
685 extern char **environ;
686 unset_TZ ()
687 {
688 char **from, **to;
689 for (to = from = environ; (*to = *from); from++)
690 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
691 to++;
692 }
693 char TZ_GMT0[] = "TZ=GMT0";
694 char TZ_PST8[] = "TZ=PST8";
695 main()
696 {
697 time_t now = time ((time_t *) 0);
698 int hour_GMT0, hour_unset;
699 if (putenv (TZ_GMT0) != 0)
700 exit (1);
701 hour_GMT0 = localtime (&now)->tm_hour;
702 unset_TZ ();
703 hour_unset = localtime (&now)->tm_hour;
704 if (putenv (TZ_PST8) != 0)
705 exit (1);
706 if (localtime (&now)->tm_hour == hour_GMT0)
707 exit (1);
708 unset_TZ ();
709 if (localtime (&now)->tm_hour != hour_unset)
710 exit (1);
711 exit (0);
712 }], guile_cv_localtime_cache=no, guile_cv_localtime_cache=yes,
713 [# If we have tzset, assume the worst when cross-compiling.
714 guile_cv_localtime_cache=yes])
715 else
716 # If we lack tzset, report that localtime does not cache TZ,
717 # since we can't invalidate the cache if we don't have tzset.
718 guile_cv_localtime_cache=no
719 fi])dnl
720 AC_MSG_RESULT($guile_cv_localtime_cache)
721 if test $guile_cv_localtime_cache = yes; then
722 AC_DEFINE(LOCALTIME_CACHE, 1, [Define if localtime caches the TZ setting.])
723 fi
724
725 dnl Test whether system calls are restartable by default on the
726 dnl current system. If they are not, we put a loop around every system
727 dnl call to check for EINTR (see SCM_SYSCALL) and do not attempt to
728 dnl change from the default behaviour. On the other hand, if signals
729 dnl are restartable then the loop is not installed and when libguile
730 dnl initialises it also resets the behaviour of each signal to cause a
731 dnl restart (in case a different runtime had a different default
732 dnl behaviour for some reason: e.g., different versions of linux seem
733 dnl to behave differently.)
734
735 AC_SYS_RESTARTABLE_SYSCALLS
736
737 if test "$enable_regex" = yes; then
738 if test "$ac_cv_header_regex_h" = yes ||
739 test "$ac_cv_header_rxposix_h" = yes ||
740 test "$ac_cv_header_rx_rxposix_h" = yes; then
741 GUILE_NAMED_CHECK_FUNC(regcomp, norx, [AC_LIBOBJ([regex-posix])],
742 [AC_CHECK_LIB(rx, main)
743 GUILE_NAMED_CHECK_FUNC(regcomp, rx, [AC_LIBOBJ([regex-posix])],
744 [AC_CHECK_LIB(regex, main)
745 GUILE_NAMED_CHECK_FUNC(regcomp, regex, [AC_LIBOBJ([regex-posix])])])]
746 )
747 dnl The following should not be necessary, but for some reason
748 dnl autoheader misses it if we don't include it!
749 if test "$ac_cv_func_regcomp_norx" = yes ||
750 test "$ac_cv_func_regcomp_regex" = yes ||
751 test "$ac_cv_func_regcomp_rx" = yes; then
752 AC_DEFINE(HAVE_REGCOMP, 1,
753 [This is included as part of a workaround for a autoheader bug.])
754 fi
755 fi
756 fi
757
758 AC_REPLACE_FUNCS(inet_aton putenv strerror memmove mkstemp)
759
760 AC_CHECK_HEADERS(floatingpoint.h ieeefp.h nan.h)
761
762 # asinh, acosh, atanh and trunc (all in -lm) are only C99 standard and older
763 # systems generally don't have them.
764 #
765 AC_CHECK_FUNCS(asinh acosh atanh copysign finite isinf isnan trunc)
766
767 # When testing for the presence of alloca, we need to add alloca.o
768 # explicitly to LIBOBJS to make sure that it is translated to
769 # `alloca.lo' for libtool later on. This can and should be done more cleanly.
770 AC_FUNC_ALLOCA
771 if test "$ALLOCA" = "alloca.o"; then AC_LIBOBJ([alloca]); fi
772
773 AC_CHECK_MEMBERS([struct stat.st_rdev])
774 AC_CHECK_MEMBERS([struct stat.st_blksize])
775
776 AC_STRUCT_ST_BLOCKS
777
778 AC_CACHE_CHECK([for S_ISLNK in sys/stat.h], ac_cv_macro_S_ISLNK,
779 [AC_TRY_CPP([#include <sys/stat.h>
780 #ifndef S_ISLNK
781 #error no S_ISLNK
782 #endif],
783 ac_cv_macro_S_ISLNK=yes,
784 ac_cv_macro_S_ISLNK=no)])
785 if test $ac_cv_macro_S_ISLNK = yes; then
786 AC_DEFINE(HAVE_S_ISLNK, 1,
787 [Define this if your system defines S_ISLNK in sys/stat.h.])
788 fi
789
790 AC_STRUCT_TIMEZONE
791 GUILE_STRUCT_UTIMBUF
792
793 #--------------------------------------------------------------------
794 #
795 # Which way does the stack grow?
796 #
797 #--------------------------------------------------------------------
798
799 SCM_I_GSC_STACK_GROWS_UP=0
800 AC_TRY_RUN(aux (l) unsigned long l;
801 { int x; exit (l >= ((unsigned long)&x)); }
802 main () { int q; aux((unsigned long)&q); },
803 [SCM_I_GSC_STACK_GROWS_UP=1],
804 [],
805 [AC_MSG_WARN(Guessing that stack grows down -- see scmconfig.h)])
806
807 AC_CHECK_SIZEOF(float)
808 if test "$ac_cv_sizeof_float" -le "$ac_cv_sizeof_long"; then
809 AC_DEFINE(SCM_SINGLES, 1,
810 [Define this if floats are the same size as longs.])
811 fi
812
813 AC_MSG_CHECKING(for struct linger)
814 AC_CACHE_VAL(scm_cv_struct_linger,
815 AC_TRY_COMPILE([
816 #include <sys/types.h>
817 #include <sys/socket.h>],
818 [struct linger lgr; lgr.l_linger = 100],
819 scm_cv_struct_linger="yes",
820 scm_cv_struct_linger="no"))
821 AC_MSG_RESULT($scm_cv_struct_linger)
822 if test $scm_cv_struct_linger = yes; then
823 AC_DEFINE(HAVE_STRUCT_LINGER, 1,
824 [Define this if your system defines struct linger, for use with the
825 getsockopt and setsockopt system calls.])
826 fi
827
828
829 AC_MSG_CHECKING(for struct timespec)
830 AC_CACHE_VAL(scm_cv_struct_timespec,
831 AC_TRY_COMPILE([
832 #include <time.h>],
833 [struct timespec t; t.tv_nsec = 100],
834 scm_cv_struct_timespec="yes",
835 scm_cv_struct_timespec="no"))
836 AC_MSG_RESULT($scm_cv_struct_timespec)
837 if test $scm_cv_struct_timespec = yes; then
838 AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
839 [Define this if your system defines struct timespec via <time.h>.])
840 fi
841
842 #--------------------------------------------------------------------
843 #
844 # Flags for thread support
845 #
846 #--------------------------------------------------------------------
847
848 SCM_I_GSC_USE_PTHREAD_THREADS=0
849 SCM_I_GSC_USE_NULL_THREADS=0
850 SCM_I_GSC_USE_COOP_THREADS=0
851 AC_SUBST([SCM_I_GSC_USE_PTHREAD_THREADS])
852 AC_SUBST([SCM_I_GSC_USE_NULL_THREADS])
853 AC_SUBST([SCM_I_GSC_USE_COOP_THREADS])
854
855 ### What thread package has the user asked for?
856 AC_ARG_WITH(threads, [ --with-threads thread interface],
857 , with_threads=yes)
858
859 case "$with_threads" in
860 "yes" | "pthread" | "pthreads" | "pthread-threads" | "")
861 AC_CHECK_LIB(pthread, main,
862 LIBS="-lpthread $LIBS"
863 SCM_I_GSC_USE_PTHREAD_THREADS=1
864 with_threads="pthreads",
865 with_threads="null")
866
867 if test $GCC = yes; then
868 AC_DEFINE(_THREAD_SAFE, 1,
869 [Use thread safe versions of GNU Libc functions.])
870 fi
871
872 AC_MSG_CHECKING(if pthread_mutexattr_settype is declared)
873 AC_CACHE_VAL(guile_cv_mutexattr_settype_declared,
874 [AC_TRY_COMPILE([#include <pthread.h>],
875 [int pthread_mutexattr_settype (int, int);],
876 guile_cv_mutexattr_settype_declared=no,
877 guile_cv_mutexattr_settype_declared=yes)])
878 AC_MSG_RESULT($guile_cv_mutexattr_settype_declared)
879 if test $guile_cv_mutexattr_settype_declared = yes; then
880 AC_DEFINE(SCM_MUTEXATTR_SETTYPE_DECLARED, 1,
881 [Define if pthread.h declares pthread_mutexattr_settype.])
882 fi
883
884 AC_MSG_CHECKING(how to get a fast mutex)
885 AC_CACHE_VAL(guile_cv_have_mutex_fast,
886 [AC_TRY_COMPILE([#include <pthread.h>],
887 [int a = PTHREAD_MUTEX_ADAPTIVE_NP;],
888 guile_cv_have_mutex_fast=PTHREAD_MUTEX_ADAPTIVE_NP,
889 guile_cv_have_mutex_fast=none)])
890 AC_MSG_RESULT($guile_cv_have_mutex_fast)
891 if test ! $guile_cv_have_mutex_fast = none; then
892 AC_DEFINE_UNQUOTED(SCM_MUTEX_FAST, $guile_cv_have_mutex_fast,
893 [The mutex kind enum for fast mutexes.])
894 fi
895
896 AC_MSG_CHECKING(how to get a recursive mutex)
897 AC_CACHE_VAL(guile_cv_have_mutex_recursive,
898 [AC_TRY_COMPILE([#include <pthread.h>],
899 [int a = PTHREAD_MUTEX_RECURSIVE_NP;],
900 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE_NP)
901 if test -z "$guile_cv_have_mutex_recursive"; then
902 AC_TRY_COMPILE([#include <pthread.h>],
903 [int a = PTHREAD_MUTEX_RECURSIVE;],
904 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE,
905 guile_cv_have_mutex_recursive=none)
906 fi])
907 AC_MSG_RESULT($guile_cv_have_mutex_recursive)
908 if test ! $guile_cv_have_mutex_recursive = none; then
909 AC_DEFINE_UNQUOTED(SCM_MUTEX_RECURSIVE, $guile_cv_have_mutex_recursive,
910 [The mutex kind enum for recursive mutexes.])
911 fi
912 ;;
913 esac
914
915 case "$with_threads" in
916 "pthreads")
917 ;;
918 "no" | "null")
919 SCM_I_GSC_USE_NULL_THREADS=1
920 with_threads="null-threads"
921 ;;
922 * )
923 AC_MSG_ERROR(invalid value for --with-threads: $with_threads)
924 ;;
925 esac
926
927 AC_MSG_CHECKING(what kind of threads to support)
928 AC_MSG_RESULT($with_threads)
929
930 ## Cross building
931 if test "$cross_compiling" = "yes"; then
932 AC_MSG_CHECKING(cc for build)
933 ## /usr/bin/cc still uses wrong assembler
934 ## CC_FOR_BUILD="${CC_FOR_BUILD-/usr/bincc}"
935 CC_FOR_BUILD="${CC_FOR_BUILD-PATH=/usr/bin:$PATH cc}"
936 else
937 CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
938 fi
939
940 ## AC_MSG_CHECKING("if we are cross compiling")
941 ## AC_MSG_RESULT($cross_compiling)
942 if test "$cross_compiling" = "yes"; then
943 AC_MSG_RESULT($CC_FOR_BUILD)
944 fi
945
946 ## No need as yet to be more elaborate
947 CCLD_FOR_BUILD="$CC_FOR_BUILD"
948
949 AC_SUBST(cross_compiling)
950 AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
951 AC_SUBST(CCLD_FOR_BUILD)
952
953 ## libtool erroneously calls CC_FOR_BUILD HOST_CC;
954 ## --HOST is the platform that PACKAGE is compiled for.
955 HOST_CC="$CC_FOR_BUILD"
956 AC_SUBST(HOST_CC)
957
958 if test "$cross_compiling" = "yes"; then
959 AC_MSG_CHECKING(guile for build)
960 GUILE_FOR_BUILD="${GUILE_FOR_BUILD-guile}"
961 else
962 GUILE_FOR_BUILD='$(preinstguile)'
963 fi
964 AC_ARG_WITH(guile-for-build,
965 [ --with-guile-for-build=guile native guile executable, to be used during build])
966 test -n "$with_guile_for_build" && GUILE_FOR_BUILD="$with_guile_for_build"
967
968 ## AC_MSG_CHECKING("if we are cross compiling")
969 ## AC_MSG_RESULT($cross_compiling)
970 if test "$cross_compiling" = "yes"; then
971 AC_MSG_RESULT($GUILE_FOR_BUILD)
972 fi
973 AC_SUBST(GUILE_FOR_BUILD)
974
975 ## If we're using GCC, ask for aggressive warnings.
976 case "$GCC" in
977 yes )
978 ## We had -Wstrict-prototypes in here for a bit, but Guile does too
979 ## much stuff with generic function pointers for that to really be
980 ## less than exasperating.
981 ## -Wpointer-arith was here too, but something changed in gcc/glibc
982 ## and it became equally exasperating (gcc 2.95 and/or glibc 2.1.2).
983 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes"
984 # Do this here so we don't screw up any of the tests above that might
985 # not be "warning free"
986 if test "${GUILE_ERROR_ON_WARNING}" = yes
987 then
988 CFLAGS="${CFLAGS} -Werror"
989 enable_compile_warnings=no
990 fi
991 ;;
992 esac
993
994 ## NOTE the code below sets LIBOBJS directly and so is now forbidden
995 ## -- I'm disabling it for now in the hopes that the newer autoconf
996 ## will DTRT -- if not, we need to fix up the sed command to match the
997 ## others...
998 ##
999 ## Remove fileblocks.o from the object list. This file gets added by
1000 ## the Autoconf macro AC_STRUCT_ST_BLOCKS. But there is no need.
1001 #LIBOBJS="`echo ${LIBOBJS} | sed 's/fileblocks\.o//g'`"
1002
1003 ## If we're creating a shared library (using libtool!), then we'll
1004 ## need to generate a list of .lo files corresponding to the .o files
1005 ## given in LIBOBJS. We'll call it LIBLOBJS.
1006 LIBLOBJS="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`"
1007
1008 ## We also need to create corresponding .doc and .x files
1009 EXTRA_DOT_DOC_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.doc ,g;s,\.[[^.]]*$,.doc,'`"
1010 EXTRA_DOT_X_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.x ,g;s,\.[[^.]]*$,.x,'`"
1011
1012 AC_SUBST(GUILE_MAJOR_VERSION)
1013 AC_SUBST(GUILE_MINOR_VERSION)
1014 AC_SUBST(GUILE_MICRO_VERSION)
1015 AC_SUBST(GUILE_EFFECTIVE_VERSION)
1016 AC_SUBST(GUILE_VERSION)
1017
1018 #######################################################################
1019 # library versioning
1020
1021 AC_SUBST(LIBQTHREADS_INTERFACE_CURRENT)
1022 AC_SUBST(LIBQTHREADS_INTERFACE_REVISION)
1023 AC_SUBST(LIBQTHREADS_INTERFACE_AGE)
1024 AC_SUBST(LIBQTHREADS_INTERFACE)
1025
1026 AC_SUBST(LIBGUILE_INTERFACE_CURRENT)
1027 AC_SUBST(LIBGUILE_INTERFACE_REVISION)
1028 AC_SUBST(LIBGUILE_INTERFACE_AGE)
1029 AC_SUBST(LIBGUILE_INTERFACE)
1030
1031 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_CURRENT)
1032 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_REVISION)
1033 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_AGE)
1034 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE)
1035
1036 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_CURRENT)
1037 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_REVISION)
1038 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_AGE)
1039 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE)
1040
1041 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_CURRENT)
1042 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_REVISION)
1043 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_AGE)
1044 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE)
1045
1046 #######################################################################
1047
1048 dnl Tell guile-config what flags guile users should link against.
1049 GUILE_LIBS="$LDFLAGS $THREAD_LIBS_INSTALLED $LIBS"
1050 AC_SUBST(GUILE_LIBS)
1051
1052 AC_SUBST(AWK)
1053 AC_SUBST(LIBLOBJS)
1054 AC_SUBST(EXTRA_DOT_DOC_FILES)
1055 AC_SUBST(EXTRA_DOT_X_FILES)
1056
1057 dnl See also top_builddir in info node: (libtool)AC_PROG_LIBTOOL
1058 top_builddir_absolute=`pwd`
1059 AC_SUBST(top_builddir_absolute)
1060 top_srcdir_absolute=`(cd $srcdir && pwd)`
1061 AC_SUBST(top_srcdir_absolute)
1062
1063 # Additional SCM_I_GSC definitions are above.
1064 AC_SUBST([SCM_I_GSC_GUILE_DEBUG])
1065 AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST])
1066 AC_SUBST([SCM_I_GSC_ENABLE_DEPRECATED])
1067 AC_SUBST([SCM_I_GSC_ENABLE_ELISP])
1068 AC_SUBST([SCM_I_GSC_HAVE_ARRAYS])
1069 AC_SUBST([SCM_I_GSC_STACK_GROWS_UP])
1070 AC_SUBST([SCM_I_GSC_C_INLINE])
1071 AC_CONFIG_FILES([libguile/gen-scmconfig.h])
1072
1073 AC_CONFIG_FILES([
1074 Makefile
1075 am/Makefile
1076 benchmark-suite/Makefile
1077 doc/Makefile
1078 doc/goops/Makefile
1079 doc/r5rs/Makefile
1080 doc/ref/Makefile
1081 doc/tutorial/Makefile
1082 examples/Makefile
1083 examples/box-dynamic-module/Makefile
1084 examples/box-dynamic/Makefile
1085 examples/box-module/Makefile
1086 examples/box/Makefile
1087 examples/modules/Makefile
1088 examples/safe/Makefile
1089 examples/scripts/Makefile
1090 guile-config/Makefile
1091 ice-9/Makefile
1092 ice-9/debugger/Makefile
1093 ice-9/debugger/breakpoints/Makefile
1094 lang/Makefile
1095 lang/elisp/Makefile
1096 lang/elisp/internals/Makefile
1097 lang/elisp/primitives/Makefile
1098 libguile-ltdl/Makefile
1099 libguile-ltdl/upstream/Makefile
1100 libguile/Makefile
1101 oop/Makefile
1102 oop/goops/Makefile
1103 scripts/Makefile
1104 srfi/Makefile
1105 test-suite/Makefile
1106 test-suite/standalone/Makefile
1107 ])
1108
1109 AC_CONFIG_FILES([check-guile], [chmod +x check-guile])
1110 AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
1111 AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools])
1112 AC_CONFIG_FILES([pre-inst-guile], [chmod +x pre-inst-guile])
1113 AC_CONFIG_FILES([pre-inst-guile-env], [chmod +x pre-inst-guile-env])
1114 AC_CONFIG_FILES([libguile/guile-snarf],
1115 [chmod +x libguile/guile-snarf])
1116 AC_CONFIG_FILES([libguile/guile-doc-snarf],
1117 [chmod +x libguile/guile-doc-snarf])
1118 AC_CONFIG_FILES([libguile/guile-func-name-check],
1119 [chmod +x libguile/guile-func-name-check])
1120 AC_CONFIG_FILES([libguile/guile-snarf-docs],
1121 [chmod +x libguile/guile-snarf-docs])
1122
1123 AC_OUTPUT
1124
1125 dnl Local Variables:
1126 dnl comment-start: "dnl "
1127 dnl comment-end: ""
1128 dnl comment-start-skip: "\\bdnl\\b\\s *"
1129 dnl End: