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