*** empty log message ***
[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(void *)
246 AC_CHECK_SIZEOF(intptr_t)
247 AC_CHECK_SIZEOF(uintptr_t)
248 AC_CHECK_SIZEOF(ptrdiff_t)
249
250 if test "$ac_cv_sizeof_long" -ne "$ac_cv_sizeof_void_p"; then
251 AC_MSG_ERROR(sizes of long and void* are not identical)
252 fi
253
254 if test "$ac_cv_sizeof_ptrdiff_t" -eq 0; then
255 SCM_I_GSC_T_PTRDIFF='"ptrdiff_t"'
256 else
257 SCM_I_GSC_T_PTRDIFF='"long"'
258 fi
259 AC_SUBST([SCM_I_GSC_T_PTRDIFF])
260
261 AC_CHECK_HEADERS([stdint.h])
262 AC_CHECK_HEADERS([inttypes.h])
263
264 SCM_I_GSC_NEEDS_STDINT_H=0
265 SCM_I_GSC_NEEDS_INTTYPES_H=0
266
267 ### intptr and uintptr (try not to use inttypes if we don't have to)
268 if test "$ac_cv_header_inttypes_h" = yes; then
269 if test "$ac_cv_sizeof_intptr_t" -eq 0; then
270 AC_CHECK_SIZEOF([intptr_t],,[#include <inttypes.h>
271 #include <stdio.h>])
272 if test "$ac_cv_sizeof_intptr_t" -ne 0; then
273 SCM_I_GSC_NEEDS_INTTYPES_H=1
274 fi
275 fi
276 if test "$ac_cv_sizeof_uintptr_t" -eq 0; then
277 AC_CHECK_SIZEOF([uintptr_t],,[#include <inttypes.h>
278 #include <stdio.h>])
279 if test "$ac_cv_sizeof_uintptr_t" -ne 0; then
280 SCM_I_GSC_NEEDS_INTTYPES_H=1
281 fi
282 fi
283 fi
284
285 ### See what's provided by stdint.h
286 if test "$ac_cv_header_stdint_h" = yes; then
287 AC_CHECK_TYPE([int8_t],[scm_stdint_has_int8=1],,[#include <stdint.h>])
288 AC_CHECK_TYPE([uint8_t],[scm_stdint_has_uint8=1],,[#include <stdint.h>])
289 AC_CHECK_TYPE([int16_t],[scm_stdint_has_int16=1],,[#include <stdint.h>])
290 AC_CHECK_TYPE([uint16_t],[scm_stdint_has_uint16=1],,[#include <stdint.h>])
291 AC_CHECK_TYPE([int32_t],[scm_stdint_has_int32=1],,[#include <stdint.h>])
292 AC_CHECK_TYPE([uint32_t],[scm_stdint_has_uint32=1],,[#include <stdint.h>])
293 AC_CHECK_TYPE([int64_t],[scm_stdint_has_int64=1],,[#include <stdint.h>])
294 AC_CHECK_TYPE([uint64_t],[scm_stdint_has_uint64=1],,[#include <stdint.h>])
295 fi
296
297 # so we don't get confused by the cache (wish there was a better way
298 # to check particular headers for the same type...)
299
300 unset ac_cv_type_int8_t
301 unset ac_cv_type_uint8_t
302 unset ac_cv_type_int16_t
303 unset ac_cv_type_uint16_t
304 unset ac_cv_type_int32_t
305 unset ac_cv_type_uint32_t
306 unset ac_cv_type_int64_t
307 unset ac_cv_type_uint64_t
308
309 ### See what's provided by inttypes.h
310 if test "$ac_cv_header_inttypes_h" = yes; then
311 AC_CHECK_TYPE([int8_t],[scm_inttypes_has_int8=1],,[#include <inttypes.h>])
312 AC_CHECK_TYPE([uint8_t],[scm_inttypes_has_uint8=1],,[#include <inttypes.h>])
313 AC_CHECK_TYPE([int16_t],[scm_inttypes_has_int16=1],,[#include <inttypes.h>])
314 AC_CHECK_TYPE([uint16_t],[scm_inttypes_has_uint16=1],,[#include <inttypes.h>])
315 AC_CHECK_TYPE([int32_t],[scm_inttypes_has_int32=1],,[#include <inttypes.h>])
316 AC_CHECK_TYPE([uint32_t],[scm_inttypes_has_uint32=1],,[#include <inttypes.h>])
317 AC_CHECK_TYPE([int64_t],[scm_inttypes_has_int64=1],,[#include <inttypes.h>])
318 AC_CHECK_TYPE([uint64_t],[scm_inttypes_has_uint64=1],,[#include <inttypes.h>])
319 fi
320
321 # Try hard to find definitions for some required scm_t_*int* types.
322
323 ### Required type scm_t_int8
324 if test "$ac_cv_sizeof_char" -eq 1; then
325 SCM_I_GSC_T_INT8='"char"'
326 elif test "$scm_stdint_has_int8"; then
327 SCM_I_GSC_T_INT8='"int8_t"'
328 SCM_I_GSC_NEEDS_STDINT_H=1
329 elif test "$scm_inttypes_has_int8"; then
330 SCM_I_GSC_T_INT8='"int8_t"'
331 SCM_I_GSC_NEEDS_INTTYPES_H=1
332 else
333 AC_MSG_ERROR([Can't find appropriate type for scm_t_int8.])
334 fi
335 AC_SUBST([SCM_I_GSC_T_INT8])
336
337 ### Required type scm_t_uint8
338 if test "$ac_cv_sizeof_unsigned_char" -eq 1; then
339 SCM_I_GSC_T_UINT8='"unsigned char"'
340 elif test "$scm_stdint_has_uint8"; then
341 SCM_I_GSC_T_UINT8='"uint8_t"'
342 SCM_I_GSC_NEEDS_STDINT_H=1
343 elif test "$scm_inttypes_has_uint8"; then
344 SCM_I_GSC_T_UINT8='"uint8_t"'
345 SCM_I_GSC_NEEDS_INTTYPES_H=1
346 else
347 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint8.])
348 fi
349 AC_SUBST([SCM_I_GSC_T_UINT8])
350
351
352 ### Required type scm_t_int16 (ANSI C says int or short might work)
353 if test "$ac_cv_sizeof_int" -eq 2; then
354 SCM_I_GSC_T_INT16='"int"'
355 elif test "$ac_cv_sizeof_short" -eq 2; then
356 SCM_I_GSC_T_INT16='"short"'
357 elif test "$scm_stdint_has_int16"; then
358 SCM_I_GSC_T_INT16='"int16_t"'
359 SCM_I_GSC_NEEDS_STDINT_H=1
360 elif test "$scm_inttypes_has_int16"; then
361 SCM_I_GSC_T_INT16='"int16_t"'
362 SCM_I_GSC_NEEDS_INTTYPES_H=1
363 else
364 AC_MSG_ERROR([Can't find appropriate type for scm_t_int16.])
365 fi
366 AC_SUBST([SCM_I_GSC_T_INT16])
367
368 ### Required type scm_t_uint16 (ANSI C says int or short might work)
369 if test "$ac_cv_sizeof_unsigned_int" -eq 2; then
370 SCM_I_GSC_T_UINT16='"unsigned int"'
371 elif test "$ac_cv_sizeof_unsigned_short" -eq 2; then
372 SCM_I_GSC_T_UINT16='"unsigned short"'
373 elif test "$scm_stdint_has_uint16"; then
374 SCM_I_GSC_T_UINT16='"uint16_t"'
375 SCM_I_GSC_NEEDS_STDINT_H=1
376 elif test "$scm_inttypes_has_uint16"; then
377 SCM_I_GSC_T_UINT16='"uint16_t"'
378 SCM_I_GSC_NEEDS_INTTYPES_H=1
379 else
380 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint16.])
381 fi
382 AC_SUBST([SCM_I_GSC_T_UINT16])
383
384
385 ### Required type scm_t_int32 (ANSI C says int, short, or long might work)
386 if test "$ac_cv_sizeof_int" -eq 4; then
387 SCM_I_GSC_T_INT32='"int"'
388 elif test "$ac_cv_sizeof_long" -eq 4; then
389 SCM_I_GSC_T_INT32='"long"'
390 elif test "$ac_cv_sizeof_short" -eq 4; then
391 SCM_I_GSC_T_INT32='"short"'
392 elif test "$scm_stdint_has_int32"; then
393 SCM_I_GSC_T_INT32='"int32_t"'
394 SCM_I_GSC_NEEDS_STDINT_H=1
395 elif test "$scm_inttypes_has_int32"; then
396 SCM_I_GSC_T_INT32='"int32_t"'
397 SCM_I_GSC_NEEDS_INTTYPES_H=1
398 else
399 AC_MSG_ERROR([Can't find appropriate type for scm_t_int32.])
400 fi
401 AC_SUBST([SCM_I_GSC_T_INT32])
402
403 ### Required type scm_t_uint32 (ANSI C says int, short, or long might work)
404 if test "$ac_cv_sizeof_unsigned_int" -eq 4; then
405 SCM_I_GSC_T_UINT32='"unsigned int"'
406 elif test "$ac_cv_sizeof_unsigned_long" -eq 4; then
407 SCM_I_GSC_T_UINT32='"unsigned long"'
408 elif test "$ac_cv_sizeof_unsigned_short" -eq 4; then
409 SCM_I_GSC_T_UINT32='"unsigned short"'
410 elif test "$scm_stdint_has_uint32"; then
411 SCM_I_GSC_T_UINT32='"uint32_t"'
412 SCM_I_GSC_NEEDS_STDINT_H=1
413 elif test "$scm_inttypes_has_uint32"; then
414 SCM_I_GSC_T_UINT32='"uint32_t"'
415 SCM_I_GSC_NEEDS_INTTYPES_H=1
416 else
417 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint32.])
418 fi
419 AC_SUBST([SCM_I_GSC_T_UINT32])
420
421 ### Optional type scm_t_int64 (ANSI C says int, short, or long might work)
422 ### Also try long long if we have it.
423 SCM_I_GSC_T_INT64=0
424 if test "$ac_cv_sizeof_int" -eq 8; then
425 SCM_I_GSC_T_INT64='"int"'
426 elif test "$ac_cv_sizeof_long" -eq 8; then
427 SCM_I_GSC_T_INT64='"long"'
428 elif test "$ac_cv_sizeof_short" -eq 8; then
429 SCM_I_GSC_T_INT64='"short"'
430 elif test "$ac_cv_sizeof_long_long" -eq 8; then
431 SCM_I_GSC_T_INT64='"long long"'
432 elif test "$scm_stdint_has_int64"; then
433 SCM_I_GSC_T_INT64='"int64_t"'
434 SCM_I_GSC_NEEDS_STDINT_H=1
435 elif test "$scm_inttypes_has_int64"; then
436 SCM_I_GSC_T_INT64='"int64_t"'
437 SCM_I_GSC_NEEDS_INTTYPES_H=1
438 else
439 AC_MSG_ERROR([Can't find appropriate type for scm_t_int64.])
440 fi
441 AC_SUBST([SCM_I_GSC_T_INT64])
442
443 ### Optional type scm_t_uint64 (ANSI C says int, short, or long might work)
444 ### Also try long long if we have it.
445 SCM_I_GSC_T_UINT64=0
446 if test "$ac_cv_sizeof_unsigned_int" -eq 8; then
447 SCM_I_GSC_T_UINT64='"unsigned int"'
448 elif test "$ac_cv_sizeof_unsigned_long" -eq 8; then
449 SCM_I_GSC_T_UINT64='"unsigned long"'
450 elif test "$ac_cv_sizeof_unsigned_short" -eq 8; then
451 SCM_I_GSC_T_UINT64='"unsigned short"'
452 elif test "$ac_cv_sizeof_unsigned_long_long" -eq 8; then
453 SCM_I_GSC_T_UINT64='"unsigned long long"'
454 elif test "$scm_stdint_has_uint64"; then
455 SCM_I_GSC_T_UINT64='"uint64_t"'
456 SCM_I_GSC_NEEDS_STDINT_H=1
457 elif test "$scm_inttypes_has_uint64"; then
458 SCM_I_GSC_T_UINT64='"uint64_t"'
459 SCM_I_GSC_NEEDS_INTTYPES_H=1
460 else
461 AC_MSG_ERROR([Can't find appropriate type for scm_t_uint64.])
462 fi
463 AC_SUBST([SCM_I_GSC_T_UINT64])
464
465
466 AC_SUBST([SCM_I_GSC_NEEDS_STDINT_H])
467 AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H])
468
469 AC_HEADER_STDC
470 AC_HEADER_DIRENT
471 AC_HEADER_TIME
472 AC_HEADER_SYS_WAIT
473
474 AC_CHECK_HEADERS([io.h libc.h limits.h malloc.h memory.h string.h \
475 regex.h rxposix.h rx/rxposix.h sys/dir.h sys/ioctl.h sys/select.h \
476 sys/time.h sys/timeb.h sys/times.h sys/stdtypes.h sys/types.h \
477 sys/utime.h time.h unistd.h utime.h pwd.h grp.h sys/utsname.h \
478 direct.h])
479
480 GUILE_HEADER_LIBC_WITH_UNISTD
481
482 AC_TYPE_GETGROUPS
483 AC_TYPE_SIGNAL
484 AC_TYPE_MODE_T
485
486 AC_CHECK_LIB(m, main)
487 AC_CHECK_FUNCS(gethostbyname)
488 if test $ac_cv_func_gethostbyname = no; then
489 AC_CHECK_LIB(nsl, gethostbyname)
490 fi
491
492 AC_CHECK_FUNCS(connect)
493 if test $ac_cv_func_connect = no; then
494 AC_CHECK_LIB(socket, connect)
495 fi
496
497 dnl
498 dnl Check for Winsock and other functionality on Win32 (*not* CygWin)
499 dnl
500 EXTRA_DEFS=""
501 if test "$MINGW32" = "yes" ; then
502 AC_CHECK_HEADER(winsock2.h, [AC_DEFINE([HAVE_WINSOCK2_H], 1,
503 [Define if you have the <winsock2.h> header file.])])
504 AC_CHECK_LIB(ws2_32, main)
505 AC_LIBOBJ([win32-uname])
506 AC_LIBOBJ([win32-dirent])
507 if test "$enable_networking" = yes ; then
508 AC_LIBOBJ([win32-socket])
509 fi
510 if test "$enable_shared" = yes ; then
511 EXTRA_DEFS="-DSCM_IMPORT"
512 AC_DEFINE(USE_DLL_IMPORT, 1,
513 [Define if you need additional CPP macros on Win32 platforms.])
514 fi
515 if test x"$enable_ltdl_install" = x"yes" ; then
516 INCLTDL="-DLIBLTDL_DLL_IMPORT $INCLTDL"
517 fi
518 fi
519 AC_SUBST(EXTRA_DEFS)
520
521 # FIXME: check to see if we still need these.
522 #AC_SUBST(INCLTDL)
523 #AC_SUBST(LIBLTDL)
524
525 AC_SUBST(DLPREOPEN)
526
527 AC_CHECK_HEADERS([assert.h])
528
529 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])
530
531 AC_CHECK_HEADERS(crypt.h sys/resource.h sys/file.h)
532 AC_CHECK_FUNCS(chroot flock getlogin cuserid getpriority setpriority getpass sethostname gethostname)
533 AC_CHECK_LIB(crypt, crypt)
534
535 dnl GMP tests
536 AC_CHECK_LIB([gmp], [__gmpz_init], ,
537 [AC_MSG_ERROR([GNU MP not found, see http://swox.com/gmp])])
538
539 # mpz_import is a macro so we need to include <gmp.h>
540 AC_TRY_LINK([#include <gmp.h>],
541 [mpz_import (0, 0, 0, 0, 0, 0, 0);] , ,
542 [AC_MSG_ERROR([At least GNU MP 4.1 is required, see http://swox.com/gmp])])
543
544 ### Some systems don't declare some functions. On such systems, we
545 ### need to at least provide our own K&R-style declarations.
546
547 ### GUILE_FUNC_DECLARED(function, headerfile)
548
549 ### Check for a declaration of FUNCTION in HEADERFILE; if it is
550 ### not there, #define MISSING_FUNCTION_DECL.
551 AC_DEFUN(GUILE_FUNC_DECLARED, [
552 AC_CACHE_CHECK(for $1 declaration, guile_cv_func_$1_declared,
553 AC_EGREP_HEADER($1, $2,
554 guile_cv_func_$1_declared=yes,
555 guile_cv_func_$1_declared=no))
556 if test [x$guile_cv_func_]$1[_declared] = xno; then
557 AC_DEFINE([MISSING_]translit($1, [a-z], [A-Z])[_DECL], 1,
558 [Define if the operating system supplies $1 without declaring it.])
559 fi
560 ])
561
562 GUILE_FUNC_DECLARED(strptime, time.h)
563 GUILE_FUNC_DECLARED(sleep, unistd.h)
564 GUILE_FUNC_DECLARED(usleep, unistd.h)
565
566 ### On some systems usleep has no return value. If it does have one,
567 ### we'd like to return it; otherwise, we'll fake it.
568 AC_CACHE_CHECK([return type of usleep], guile_cv_func_usleep_return_type,
569 [AC_EGREP_HEADER(changequote(<, >)<void[ ]+usleep>changequote([, ]),
570 unistd.h,
571 [guile_cv_func_usleep_return_type=void],
572 [guile_cv_func_usleep_return_type=int])])
573 case "$guile_cv_func_usleep_return_type" in
574 "void" )
575 AC_DEFINE(USLEEP_RETURNS_VOID, 1,
576 [Define if the system headers declare usleep to return void.])
577 ;;
578 esac
579
580 AC_CHECK_HEADER(sys/un.h, have_sys_un_h=1)
581 if test -n "$have_sys_un_h" ; then
582 AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS, 1,
583 [Define if the system supports Unix-domain (file-domain) sockets.])
584 fi
585
586 AC_CHECK_FUNCS(socketpair getgroups setpwent pause tzset)
587
588 AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
589 setnetent getnetent endnetent dnl
590 setprotoent getprotoent endprotoent dnl
591 setservent getservent endservent dnl
592 getnetbyaddr getnetbyname dnl
593 inet_lnaof inet_makeaddr inet_netof hstrerror dnl
594 inet_pton inet_ntop)
595
596 AC_MSG_CHECKING(for __libc_stack_end)
597 AC_TRY_LINK([extern char *__libc_stack_end;],
598 [char *p = __libc_stack_end;],
599 have_libc_stack_end=yes,
600 have_libc_stack_end=no)
601 AC_MSG_RESULT($have_libc_stack_end)
602
603 if test $have_libc_stack_end = yes; then
604 AC_DEFINE(HAVE_LIBC_STACK_END, 1,
605 [Define if you have the __libc_stack_end variable.])
606 fi
607
608 dnl Some systems do not declare this. Some systems do declare it, as a
609 dnl macro. With cygwin it may be in a DLL.
610
611 AC_MSG_CHECKING(whether netdb.h declares h_errno)
612 AC_CACHE_VAL(guile_cv_have_h_errno,
613 [AC_TRY_COMPILE([#include <netdb.h>],
614 [int a = h_errno;],
615 guile_cv_have_h_errno=yes, guile_cv_have_h_errno=no)])
616 AC_MSG_RESULT($guile_cv_have_h_errno)
617 if test $guile_cv_have_h_errno = yes; then
618 AC_DEFINE(HAVE_H_ERRNO, 1, [Define if h_errno is declared in netdb.h.])
619 fi
620
621 AC_MSG_CHECKING(whether uint32_t is defined)
622 AC_CACHE_VAL(guile_cv_have_uint32_t,
623 [AC_TRY_COMPILE([#include <sys/types.h>
624 #if HAVE_STDINT_H
625 #include <stdint.h>
626 #endif
627 #ifndef __MINGW32__
628 #include <netdb.h>
629 #endif],
630 [uint32_t a;],
631 guile_cv_have_uint32_t=yes, guile_cv_have_uint32_t=no)])
632 AC_MSG_RESULT($guile_cv_have_uint32_t)
633 if test $guile_cv_have_uint32_t = yes; then
634 AC_DEFINE(HAVE_UINT32_T, 1,
635 [Define if uint32_t typedef is defined when netdb.h is include.])
636 fi
637
638 AC_MSG_CHECKING(for working IPv6 support)
639 AC_CACHE_VAL(guile_cv_have_ipv6,
640 [AC_TRY_COMPILE([
641 #ifdef HAVE_SYS_TYPES_H
642 #include <sys/types.h>
643 #endif
644 #include <netinet/in.h>
645 #include <sys/socket.h>],
646 [struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
647 guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
648 AC_MSG_RESULT($guile_cv_have_ipv6)
649 if test $guile_cv_have_ipv6 = yes; then
650 AC_DEFINE(HAVE_IPV6, 1, [Define if you want support for IPv6.])
651 fi
652
653 # included in rfc2553 but not in older implementations, e.g., glibc 2.1.3.
654 AC_MSG_CHECKING(whether sockaddr_in6 has sin6_scope_id)
655 AC_CACHE_VAL(guile_cv_have_sin6_scope_id,
656 [AC_TRY_COMPILE([
657 #ifdef HAVE_SYS_TYPES_H
658 #include <sys/types.h>
659 #endif
660 #include <netinet/in.h>],
661 [struct sockaddr_in6 sok; sok.sin6_scope_id = 0;],
662 guile_cv_have_sin6_scope_id=yes, guile_cv_have_sin6_scope_id=no)])
663 AC_MSG_RESULT($guile_cv_have_sin6_scope_id)
664 if test $guile_cv_have_sin6_scope_id = yes; then
665 AC_DEFINE(HAVE_SIN6_SCOPE_ID, 1,
666 [Define this if your IPv6 has sin6_scope_id in sockaddr_in6 struct.])
667 fi
668
669 AC_MSG_CHECKING(whether localtime caches TZ)
670 AC_CACHE_VAL(guile_cv_localtime_cache,
671 [if test x$ac_cv_func_tzset = xyes; then
672 AC_TRY_RUN([#include <time.h>
673 #if STDC_HEADERS
674 # include <stdlib.h>
675 #endif
676 extern char **environ;
677 unset_TZ ()
678 {
679 char **from, **to;
680 for (to = from = environ; (*to = *from); from++)
681 if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
682 to++;
683 }
684 char TZ_GMT0[] = "TZ=GMT0";
685 char TZ_PST8[] = "TZ=PST8";
686 main()
687 {
688 time_t now = time ((time_t *) 0);
689 int hour_GMT0, hour_unset;
690 if (putenv (TZ_GMT0) != 0)
691 exit (1);
692 hour_GMT0 = localtime (&now)->tm_hour;
693 unset_TZ ();
694 hour_unset = localtime (&now)->tm_hour;
695 if (putenv (TZ_PST8) != 0)
696 exit (1);
697 if (localtime (&now)->tm_hour == hour_GMT0)
698 exit (1);
699 unset_TZ ();
700 if (localtime (&now)->tm_hour != hour_unset)
701 exit (1);
702 exit (0);
703 }], guile_cv_localtime_cache=no, guile_cv_localtime_cache=yes,
704 [# If we have tzset, assume the worst when cross-compiling.
705 guile_cv_localtime_cache=yes])
706 else
707 # If we lack tzset, report that localtime does not cache TZ,
708 # since we can't invalidate the cache if we don't have tzset.
709 guile_cv_localtime_cache=no
710 fi])dnl
711 AC_MSG_RESULT($guile_cv_localtime_cache)
712 if test $guile_cv_localtime_cache = yes; then
713 AC_DEFINE(LOCALTIME_CACHE, 1, [Define if localtime caches the TZ setting.])
714 fi
715
716 dnl Test whether system calls are restartable by default on the
717 dnl current system. If they are not, we put a loop around every system
718 dnl call to check for EINTR (see SCM_SYSCALL) and do not attempt to
719 dnl change from the default behaviour. On the other hand, if signals
720 dnl are restartable then the loop is not installed and when libguile
721 dnl initialises it also resets the behaviour of each signal to cause a
722 dnl restart (in case a different runtime had a different default
723 dnl behaviour for some reason: e.g., different versions of linux seem
724 dnl to behave differently.)
725
726 AC_SYS_RESTARTABLE_SYSCALLS
727
728 if test "$enable_regex" = yes; then
729 if test "$ac_cv_header_regex_h" = yes ||
730 test "$ac_cv_header_rxposix_h" = yes ||
731 test "$ac_cv_header_rx_rxposix_h" = yes; then
732 GUILE_NAMED_CHECK_FUNC(regcomp, norx, [AC_LIBOBJ([regex-posix])],
733 [AC_CHECK_LIB(rx, main)
734 GUILE_NAMED_CHECK_FUNC(regcomp, rx, [AC_LIBOBJ([regex-posix])],
735 [AC_CHECK_LIB(regex, main)
736 GUILE_NAMED_CHECK_FUNC(regcomp, regex, [AC_LIBOBJ([regex-posix])])])]
737 )
738 dnl The following should not be necessary, but for some reason
739 dnl autoheader misses it if we don't include it!
740 if test "$ac_cv_func_regcomp_norx" = yes ||
741 test "$ac_cv_func_regcomp_regex" = yes ||
742 test "$ac_cv_func_regcomp_rx" = yes; then
743 AC_DEFINE(HAVE_REGCOMP, 1,
744 [This is included as part of a workaround for a autoheader bug.])
745 fi
746 fi
747 fi
748
749 AC_REPLACE_FUNCS(inet_aton putenv strerror memmove mkstemp)
750
751 AC_CHECK_HEADERS(floatingpoint.h ieeefp.h nan.h)
752
753 AC_CHECK_FUNCS(finite isinf isnan copysign)
754
755 # When testing for the presence of alloca, we need to add alloca.o
756 # explicitly to LIBOBJS to make sure that it is translated to
757 # `alloca.lo' for libtool later on. This can and should be done more cleanly.
758 AC_FUNC_ALLOCA
759 if test "$ALLOCA" = "alloca.o"; then AC_LIBOBJ([alloca]); fi
760
761 AC_CHECK_MEMBERS([struct stat.st_rdev])
762 AC_CHECK_MEMBERS([struct stat.st_blksize])
763
764 AC_STRUCT_ST_BLOCKS
765
766 AC_CACHE_CHECK([for S_ISLNK in sys/stat.h], ac_cv_macro_S_ISLNK,
767 [AC_TRY_CPP([#include <sys/stat.h>
768 #ifndef S_ISLNK
769 #error no S_ISLNK
770 #endif],
771 ac_cv_macro_S_ISLNK=yes,
772 ac_cv_macro_S_ISLNK=no)])
773 if test $ac_cv_macro_S_ISLNK = yes; then
774 AC_DEFINE(HAVE_S_ISLNK, 1,
775 [Define this if your system defines S_ISLNK in sys/stat.h.])
776 fi
777
778 AC_STRUCT_TIMEZONE
779 GUILE_STRUCT_UTIMBUF
780
781 #--------------------------------------------------------------------
782 #
783 # Which way does the stack grow?
784 #
785 #--------------------------------------------------------------------
786
787 SCM_I_GSC_STACK_GROWS_UP=0
788 AC_TRY_RUN(aux (l) unsigned long l;
789 { int x; exit (l >= ((unsigned long)&x)); }
790 main () { int q; aux((unsigned long)&q); },
791 SCM_I_GSC_STACK_GROWS_UP=1
792 [],
793 [AC_MSG_WARN(Guessing that stack grows down -- see scmconfig.h)])
794
795 AH_TEMPLATE([SCM_SINGLES],
796 [Define this if floats are the same size as longs.])
797
798 AC_CACHE_CHECK([whether floats fit in longs], guile_cv_type_float_fits_long,
799 [AC_TRY_RUN([main () { exit (sizeof(float) > sizeof(long)); }],
800 [guile_cv_type_float_fits_long=yes],
801 [guile_cv_type_float_fits_long=no],
802 [guile_cv_type_float_fits_long=guess-yes])])
803 case $guile_cv_type_float_fits_long in
804 "yes" )
805 AC_DEFINE(SCM_SINGLES)
806 ;;
807 "guess-yes" )
808 AC_DEFINE(SCM_SINGLES)
809 AC_MSG_WARN([guessing that sizeof(long) == sizeof(float)])
810 AC_MSG_WARN([see SCM_SINGLES in scmconfig.h.in])
811 ;;
812 esac
813
814
815 AC_MSG_CHECKING(for struct linger)
816 AC_CACHE_VAL(scm_cv_struct_linger,
817 AC_TRY_COMPILE([
818 #include <sys/types.h>
819 #include <sys/socket.h>],
820 [struct linger lgr; lgr.l_linger = 100],
821 scm_cv_struct_linger="yes",
822 scm_cv_struct_linger="no"))
823 AC_MSG_RESULT($scm_cv_struct_linger)
824 if test $scm_cv_struct_linger = yes; then
825 AC_DEFINE(HAVE_STRUCT_LINGER, 1,
826 [Define this if your system defines struct linger, for use with the
827 getsockopt and setsockopt system calls.])
828 fi
829
830
831 AC_MSG_CHECKING(for struct timespec)
832 AC_CACHE_VAL(scm_cv_struct_timespec,
833 AC_TRY_COMPILE([
834 #include <time.h>],
835 [struct timespec t; t.tv_nsec = 100],
836 scm_cv_struct_timespec="yes",
837 scm_cv_struct_timespec="no"))
838 AC_MSG_RESULT($scm_cv_struct_timespec)
839 if test $scm_cv_struct_timespec = yes; then
840 AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
841 [Define this if your system defines struct timespec via <time.h>.])
842 fi
843
844 #--------------------------------------------------------------------
845 #
846 # Flags for thread support
847 #
848 #--------------------------------------------------------------------
849
850 SCM_I_GSC_USE_PTHREAD_THREADS=0
851 SCM_I_GSC_USE_NULL_THREADS=0
852 SCM_I_GSC_USE_COOP_THREADS=0
853 AC_SUBST([SCM_I_GSC_USE_PTHREAD_THREADS])
854 AC_SUBST([SCM_I_GSC_USE_NULL_THREADS])
855 AC_SUBST([SCM_I_GSC_USE_COOP_THREADS])
856
857 ### What thread package has the user asked for?
858 AC_ARG_WITH(threads, [ --with-threads thread interface],
859 , with_threads=yes)
860
861 case "$with_threads" in
862 "yes" | "pthread" | "pthreads" | "pthread-threads" | "")
863 AC_CHECK_LIB(pthread, main,
864 LIBS="-lpthread $LIBS"
865 SCM_I_GSC_USE_PTHREAD_THREADS=1
866 with_threads="pthreads",
867 with_threads="null")
868
869 if test $GCC = yes; then
870 AC_DEFINE(_THREAD_SAFE, 1,
871 [Use thread safe versions of GNU Libc functions.])
872 fi
873
874 AC_MSG_CHECKING(if pthread_mutexattr_settype is declared)
875 AC_CACHE_VAL(guile_cv_mutexattr_settype_declared,
876 [AC_TRY_COMPILE([#include <pthread.h>],
877 [int pthread_mutexattr_settype (int, int);],
878 guile_cv_mutexattr_settype_declared=no,
879 guile_cv_mutexattr_settype_declared=yes)])
880 AC_MSG_RESULT($guile_cv_mutexattr_settype_declared)
881 if test $guile_cv_mutexattr_settype_declared = yes; then
882 AC_DEFINE(SCM_MUTEXATTR_SETTYPE_DECLARED, 1,
883 [Define if pthread.h declares pthread_mutexattr_settype.])
884 fi
885
886 AC_MSG_CHECKING(how to get a fast mutex)
887 AC_CACHE_VAL(guile_cv_have_mutex_fast,
888 [AC_TRY_COMPILE([#include <pthread.h>],
889 [int a = PTHREAD_MUTEX_ADAPTIVE_NP;],
890 guile_cv_have_mutex_fast=PTHREAD_MUTEX_ADAPTIVE_NP,
891 guile_cv_have_mutex_fast=none)])
892 AC_MSG_RESULT($guile_cv_have_mutex_fast)
893 if test ! $guile_cv_have_mutex_fast = none; then
894 AC_DEFINE_UNQUOTED(SCM_MUTEX_FAST, $guile_cv_have_mutex_fast,
895 [The mutex kind enum for fast mutexes.])
896 fi
897
898 AC_MSG_CHECKING(how to get a recursive mutex)
899 AC_CACHE_VAL(guile_cv_have_mutex_recursive,
900 [AC_TRY_COMPILE([#include <pthread.h>],
901 [int a = PTHREAD_MUTEX_RECURSIVE_NP;],
902 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE_NP)
903 if test -z "$guile_cv_have_mutex_recursive"; then
904 AC_TRY_COMPILE([#include <pthread.h>],
905 [int a = PTHREAD_MUTEX_RECURSIVE;],
906 guile_cv_have_mutex_recursive=PTHREAD_MUTEX_RECURSIVE,
907 guile_cv_have_mutex_recursive=none)
908 fi])
909 AC_MSG_RESULT($guile_cv_have_mutex_recursive)
910 if test ! $guile_cv_have_mutex_recursive = none; then
911 AC_DEFINE_UNQUOTED(SCM_MUTEX_RECURSIVE, $guile_cv_have_mutex_recursive,
912 [The mutex kind enum for recursive mutexes.])
913 fi
914 ;;
915 esac
916
917 case "$with_threads" in
918 "pthreads")
919 ;;
920 "no" | "null")
921 SCM_I_GSC_USE_NULL_THREADS=1
922 with_threads="null-threads"
923 ;;
924 * )
925 AC_MSG_ERROR(invalid value for --with-threads: $with_threads)
926 ;;
927 esac
928
929 AC_MSG_CHECKING(what kind of threads to support)
930 AC_MSG_RESULT($with_threads)
931
932 ## Cross building
933 if test "$cross_compiling" = "yes"; then
934 AC_MSG_CHECKING(cc for build)
935 ## /usr/bin/cc still uses wrong assembler
936 ## CC_FOR_BUILD="${CC_FOR_BUILD-/usr/bincc}"
937 CC_FOR_BUILD="${CC_FOR_BUILD-PATH=/usr/bin:$PATH cc}"
938 else
939 CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
940 fi
941 AC_ARG_WITH(cc-for-build,
942 [ --with-cc-for-build=CC native C compiler, to be used during build])
943 test -n "$with_cc_for_build" && CC_FOR_BUILD="$with_cc_for_build"
944
945 ## AC_MSG_CHECKING("if we are cross compiling")
946 ## AC_MSG_RESULT($cross_compiling)
947 if test "$cross_compiling" = "yes"; then
948 AC_MSG_RESULT($CC_FOR_BUILD)
949 fi
950
951 ## No need as yet to be more elaborate
952 CCLD_FOR_BUILD="$CC_FOR_BUILD"
953
954 AC_SUBST(cross_compiling)
955 AC_SUBST(CC_FOR_BUILD)
956 AC_SUBST(CCLD_FOR_BUILD)
957
958 ## libtool erroneously calls CC_FOR_BUILD HOST_CC;
959 ## --HOST is the platform that PACKAGE is compiled for.
960 HOST_CC="$CC_FOR_BUILD"
961 AC_SUBST(HOST_CC)
962
963 if test "$cross_compiling" = "yes"; then
964 AC_MSG_CHECKING(guile for build)
965 GUILE_FOR_BUILD="${GUILE_FOR_BUILD-guile}"
966 else
967 GUILE_FOR_BUILD='$(preinstguile)'
968 fi
969 AC_ARG_WITH(guile-for-build,
970 [ --with-guile-for-build=guile native guile executable, to be used during build])
971 test -n "$with_guile_for_build" && GUILE_FOR_BUILD="$with_guile_for_build"
972
973 ## AC_MSG_CHECKING("if we are cross compiling")
974 ## AC_MSG_RESULT($cross_compiling)
975 if test "$cross_compiling" = "yes"; then
976 AC_MSG_RESULT($GUILE_FOR_BUILD)
977 fi
978 AC_SUBST(GUILE_FOR_BUILD)
979
980 # Do this here so we don't screw up any of the tests above that might
981 # not be "warning free"
982
983 if test "${GUILE_ERROR_ON_WARNING}" = yes
984 then
985 CFLAGS="${CFLAGS} -Werror"
986 enable_compile_warnings=no
987 fi
988
989 ## If we're using GCC, ask for aggressive warnings.
990 case "$GCC" in
991 yes )
992 ## We had -Wstrict-prototypes in here for a bit, but Guile does too
993 ## much stuff with generic function pointers for that to really be
994 ## less than exasperating.
995 ## -Wpointer-arith was here too, but something changed in gcc/glibc
996 ## and it became equally exasperating (gcc 2.95 and/or glibc 2.1.2).
997 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes" ;;
998 esac
999
1000 ## NOTE the code below sets LIBOBJS directly and so is now forbidden
1001 ## -- I'm disabling it for now in the hopes that the newer autoconf
1002 ## will DTRT -- if not, we need to fix up the sed command to match the
1003 ## others...
1004 ##
1005 ## Remove fileblocks.o from the object list. This file gets added by
1006 ## the Autoconf macro AC_STRUCT_ST_BLOCKS. But there is no need.
1007 #LIBOBJS="`echo ${LIBOBJS} | sed 's/fileblocks\.o//g'`"
1008
1009 ## If we're creating a shared library (using libtool!), then we'll
1010 ## need to generate a list of .lo files corresponding to the .o files
1011 ## given in LIBOBJS. We'll call it LIBLOBJS.
1012 LIBLOBJS="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`"
1013
1014 ## We also need to create corresponding .doc and .x files
1015 EXTRA_DOT_DOC_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.doc ,g;s,\.[[^.]]*$,.doc,'`"
1016 EXTRA_DOT_X_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.x ,g;s,\.[[^.]]*$,.x,'`"
1017
1018 AC_SUBST(GUILE_MAJOR_VERSION)
1019 AC_SUBST(GUILE_MINOR_VERSION)
1020 AC_SUBST(GUILE_MICRO_VERSION)
1021 AC_SUBST(GUILE_EFFECTIVE_VERSION)
1022 AC_SUBST(GUILE_VERSION)
1023
1024 #######################################################################
1025 # library versioning
1026
1027 AC_SUBST(LIBQTHREADS_INTERFACE_CURRENT)
1028 AC_SUBST(LIBQTHREADS_INTERFACE_REVISION)
1029 AC_SUBST(LIBQTHREADS_INTERFACE_AGE)
1030 AC_SUBST(LIBQTHREADS_INTERFACE)
1031
1032 AC_SUBST(LIBGUILE_INTERFACE_CURRENT)
1033 AC_SUBST(LIBGUILE_INTERFACE_REVISION)
1034 AC_SUBST(LIBGUILE_INTERFACE_AGE)
1035 AC_SUBST(LIBGUILE_INTERFACE)
1036
1037 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_CURRENT)
1038 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_REVISION)
1039 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_AGE)
1040 AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE)
1041
1042 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_CURRENT)
1043 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_REVISION)
1044 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_AGE)
1045 AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE)
1046
1047 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_CURRENT)
1048 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_REVISION)
1049 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_AGE)
1050 AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE)
1051
1052 #######################################################################
1053
1054 dnl Tell guile-config what flags guile users should link against.
1055 GUILE_LIBS="$LDFLAGS $THREAD_LIBS_INSTALLED $LIBS"
1056 AC_SUBST(GUILE_LIBS)
1057
1058 AC_SUBST(AWK)
1059 AC_SUBST(LIBLOBJS)
1060 AC_SUBST(EXTRA_DOT_DOC_FILES)
1061 AC_SUBST(EXTRA_DOT_X_FILES)
1062
1063 dnl See also top_builddir in info node: (libtool)AC_PROG_LIBTOOL
1064 top_builddir_absolute=`pwd`
1065 AC_SUBST(top_builddir_absolute)
1066 top_srcdir_absolute=`(cd $srcdir && pwd)`
1067 AC_SUBST(top_srcdir_absolute)
1068
1069 # Additional SCM_I_GSC definitions are above.
1070 AC_SUBST([SCM_I_GSC_GUILE_DEBUG])
1071 AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST])
1072 AC_SUBST([SCM_I_GSC_ENABLE_DEPRECATED])
1073 AC_SUBST([SCM_I_GSC_ENABLE_ELISP])
1074 AC_SUBST([SCM_I_GSC_HAVE_ARRAYS])
1075 AC_SUBST([SCM_I_GSC_STACK_GROWS_UP])
1076 AC_SUBST([SCM_I_GSC_C_INLINE])
1077 AC_CONFIG_FILES([libguile/gen-scmconfig.h])
1078
1079 AC_CONFIG_FILES([
1080 Makefile
1081 am/Makefile
1082 benchmark-suite/Makefile
1083 doc/Makefile
1084 doc/goops/Makefile
1085 doc/r5rs/Makefile
1086 doc/ref/Makefile
1087 doc/tutorial/Makefile
1088 examples/Makefile
1089 examples/box-dynamic-module/Makefile
1090 examples/box-dynamic/Makefile
1091 examples/box-module/Makefile
1092 examples/box/Makefile
1093 examples/modules/Makefile
1094 examples/safe/Makefile
1095 examples/scripts/Makefile
1096 guile-config/Makefile
1097 ice-9/Makefile
1098 ice-9/debugger/Makefile
1099 ice-9/debugger/breakpoints/Makefile
1100 lang/Makefile
1101 lang/elisp/Makefile
1102 lang/elisp/internals/Makefile
1103 lang/elisp/primitives/Makefile
1104 libguile-ltdl/Makefile
1105 libguile-ltdl/upstream/Makefile
1106 libguile/Makefile
1107 oop/Makefile
1108 oop/goops/Makefile
1109 scripts/Makefile
1110 srfi/Makefile
1111 test-suite/Makefile
1112 test-suite/standalone/Makefile
1113 ])
1114
1115 AC_CONFIG_FILES([check-guile], [chmod +x check-guile])
1116 AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
1117 AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools])
1118 AC_CONFIG_FILES([pre-inst-guile], [chmod +x pre-inst-guile])
1119 AC_CONFIG_FILES([pre-inst-guile-env], [chmod +x pre-inst-guile-env])
1120 AC_CONFIG_FILES([libguile/guile-snarf],
1121 [chmod +x libguile/guile-snarf])
1122 AC_CONFIG_FILES([libguile/guile-doc-snarf],
1123 [chmod +x libguile/guile-doc-snarf])
1124 AC_CONFIG_FILES([libguile/guile-func-name-check],
1125 [chmod +x libguile/guile-func-name-check])
1126 AC_CONFIG_FILES([libguile/guile-snarf-docs],
1127 [chmod +x libguile/guile-snarf-docs])
1128
1129 AC_OUTPUT
1130
1131 dnl Local Variables:
1132 dnl comment-start: "dnl "
1133 dnl comment-end: ""
1134 dnl comment-start-skip: "\\bdnl\\b\\s *"
1135 dnl End: