X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/0c1eb9b68c7759383340c3f91517c7f7a87fc559..6d6b2d4fcd3fa1cf5f5d0be7cf6f35cb7287a682:/configure.ac diff --git a/configure.ac b/configure.ac index fc9479d6a..1aa6f057a 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl define(GUILE_CONFIGURE_COPYRIGHT,[[ -Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GUILE @@ -27,25 +27,23 @@ Floor, Boston, MA 02110-1301, USA. AC_PREREQ(2.61) -dnl `patsubst' here deletes the newline which "echo" prints. We can't use -dnl "echo -n" since -n is not portable (see autoconf manual "Limitations of -dnl Builtins"), in particular on solaris it results in a literal "-n" in -dnl the output. -dnl AC_INIT([GNU Guile], - patsubst(m4_esyscmd(. ./GUILE-VERSION && echo ${GUILE_VERSION}),[ -]), + m4_esyscmd([build-aux/git-version-gen \ + .tarball-version \ + 's/^release_\([0-9][0-9]*\)-\([0-9][0-9]*\)-\([0-9][0-9]*\)/v\1.\2\.\3/g']), [bug-guile@gnu.org]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR(GUILE-VERSION) -AM_INIT_AUTOMAKE([gnu no-define check-news -Wall -Wno-override]) +AM_INIT_AUTOMAKE([gnu no-define -Wall -Wno-override]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY],1)]) AC_COPYRIGHT(GUILE_CONFIGURE_COPYRIGHT) AC_CONFIG_SRCDIR([GUILE-VERSION]) . $srcdir/GUILE-VERSION +GUILE_VERSION="$PACKAGE_VERSION" AC_CONFIG_HEADERS([config.h]) AH_TOP(/*GUILE_CONFIGURE_COPYRIGHT*/) @@ -76,10 +74,13 @@ AM_PROG_CC_C_O AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL -AC_CHECK_LIB([ltdl], [lt_dlinit], , - [AC_MSG_ERROR([libltdl not found. See README.])]) -AC_CHECK_HEADER([ltdl.h], [], - [AC_MSG_ERROR([ not found. See README.])]) + +dnl Check for libltdl. +AC_LIB_HAVE_LINKFLAGS([ltdl], [], [#include ], + [lt_dlopenext ("foo");]) +if test "x$HAVE_LIBLTDL" != "xyes"; then + AC_MSG_ERROR([GNU libltdl (Libtool) not found, see README.]) +fi AC_CHECK_PROG(have_makeinfo, makeinfo, yes, no) AM_CONDITIONAL(HAVE_MAKEINFO, test "$have_makeinfo" = yes) @@ -105,18 +106,10 @@ AC_ARG_ENABLE(error-on-warning, *) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;; esac]) -SCM_I_GSC_GUILE_DEBUG_FREELIST=0 -AC_ARG_ENABLE(debug-freelist, - [ --enable-debug-freelist include garbage collector freelist debugging code], - if test "$enable_debug_freelist" = y \ - || test "$enable_debug_freelist" = yes; then - SCM_I_GSC_GUILE_DEBUG_FREELIST=1 - fi) - AC_ARG_ENABLE(debug-malloc, [ --enable-debug-malloc include malloc debugging code], if test "$enable_debug_malloc" = y || test "$enable_debug_malloc" = yes; then - AC_DEFINE(GUILE_DEBUG_MALLOC, 1, + AC_DEFINE([GUILE_DEBUG_MALLOC], 1, [Define this if you want to debug scm_must_malloc/realloc/free calls.]) fi) @@ -140,15 +133,6 @@ AC_ARG_ENABLE(regex, [ --disable-regex omit regular expression interfaces],, enable_regex=yes) -AC_ARG_ENABLE([discouraged], - AS_HELP_STRING([--disable-discouraged],[omit discouraged features])) - -if test "$enable_discouraged" = no; then - SCM_I_GSC_ENABLE_DISCOURAGED=0 -else - SCM_I_GSC_ENABLE_DISCOURAGED=1 -fi - AC_ARG_ENABLE([deprecated], AS_HELP_STRING([--disable-deprecated],[omit deprecated features])) @@ -165,13 +149,9 @@ else fi SCM_I_GSC_ENABLE_DEPRECATED=1 fi -AC_DEFINE_UNQUOTED(SCM_WARN_DEPRECATED_DEFAULT, "$warn_default", +AC_DEFINE_UNQUOTED([SCM_WARN_DEPRECATED_DEFAULT], "$warn_default", [Define this to control the default warning level for deprecated features.]) -AC_ARG_ENABLE(elisp, - [ --disable-elisp omit Emacs Lisp support],, - enable_elisp=yes) - dnl Added the following configure option in January 2008 following dnl investigation of problems with "64" system and library calls on dnl Darwin (MacOS X). The libguile code (_scm.h) assumes that if a @@ -212,7 +192,7 @@ AC_ARG_WITH([64-calls], AC_MSG_RESULT($use_64_calls) case "$use_64_calls" in y* ) - AC_DEFINE(GUILE_USE_64_CALLS, 1, + AC_DEFINE([GUILE_USE_64_CALLS], 1, [Define to 1 in order to try to use "64" versions of system and library calls.]) ;; esac @@ -247,14 +227,14 @@ fi if test "$enable_posix" = yes; then AC_LIBOBJ([filesys]) AC_LIBOBJ([posix]) - AC_DEFINE(HAVE_POSIX, 1, + AC_DEFINE([HAVE_POSIX], 1, [Define this if you want support for POSIX system calls in Guile.]) fi if test "$enable_networking" = yes; then AC_LIBOBJ([net_db]) AC_LIBOBJ([socket]) - AC_DEFINE(HAVE_NETWORKING, 1, + AC_DEFINE([HAVE_NETWORKING], 1, [Define this if you want support for networking in Guile.]) fi @@ -262,11 +242,6 @@ if test "$enable_debug_malloc" = yes; then AC_LIBOBJ([debug-malloc]) fi -if test "$enable_elisp" = yes; then - SCM_I_GSC_ENABLE_ELISP=1 -else - SCM_I_GSC_ENABLE_ELISP=0 -fi AC_CHECK_LIB(uca, __uc_get_ar_bsp) AC_C_CONST @@ -306,8 +281,8 @@ AC_CHECK_SIZEOF(ptrdiff_t) AC_CHECK_SIZEOF(size_t) AC_CHECK_SIZEOF(off_t) -if test "$ac_cv_sizeof_long" -ne "$ac_cv_sizeof_void_p"; then - AC_MSG_ERROR(sizes of long and void* are not identical) +if test "$ac_cv_sizeof_long" -gt "$ac_cv_sizeof_void_p"; then + AC_MSG_ERROR(long does not fit into a void*) fi if test "$ac_cv_sizeof_ptrdiff_t" -ne 0; then @@ -355,6 +330,8 @@ if test "$ac_cv_header_stdint_h" = yes; then AC_CHECK_TYPE([uint64_t],[scm_stdint_has_uint64=1],,[#include ]) AC_CHECK_TYPE([intmax_t],[scm_stdint_has_intmax=1],,[#include ]) AC_CHECK_TYPE([uintmax_t],[scm_stdint_has_uintmax=1],,[#include ]) + AC_CHECK_TYPE([intptr_t],[scm_stdint_has_intptr=1],,[#include ]) + AC_CHECK_TYPE([uintptr_t],[scm_stdint_has_uintptr=1],,[#include ]) fi # so we don't get confused by the cache (wish there was a better way @@ -383,6 +360,8 @@ if test "$ac_cv_header_inttypes_h" = yes; then AC_CHECK_TYPE([uint64_t],[scm_inttypes_has_uint64=1],,[#include ]) AC_CHECK_TYPE([intmax_t],[scm_inttypes_has_intmax=1],,[#include ]) AC_CHECK_TYPE([uintmax_t],[scm_inttypes_has_uintmax=1],,[#include ]) + AC_CHECK_TYPE([intptr_t],[scm_inttypes_has_intptr=1],,[#include ]) + AC_CHECK_TYPE([uintptr_t],[scm_inttypes_has_uintptr=1],,[#include ]) fi # Try hard to find definitions for some required scm_t_*int* types. @@ -575,6 +554,46 @@ else fi AC_SUBST([SCM_I_GSC_T_UINTMAX]) +### Required type scm_t_intptr +### +SCM_I_GSC_T_INTPTR=0 +if test "$scm_stdint_has_intptr"; then + SCM_I_GSC_T_INTPTR='"intptr_t"' + SCM_I_GSC_NEEDS_STDINT_H=1 +elif test "$scm_inttypes_has_intptr"; then + SCM_I_GSC_T_INTPTR='"intptr_t"' + SCM_I_GSC_NEEDS_INTTYPES_H=1 +elif test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_INTPTR='"int"' +elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_INTPTR='"long"' +elif test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_INTPTR='"long long"' +else + AC_MSG_ERROR([Can't find appropriate type for `scm_t_intptr'.]) +fi +AC_SUBST([SCM_I_GSC_T_INTPTR]) + +### Required type scm_t_uintptr +### +SCM_I_GSC_T_UINTPTR=0 +if test "$scm_stdint_has_uintptr"; then + SCM_I_GSC_T_UINTPTR='"uintptr_t"' + SCM_I_GSC_NEEDS_STDINT_H=1 +elif test "$scm_inttypes_has_uintptr"; then + SCM_I_GSC_T_UINTPTR='"uintptr_t"' + SCM_I_GSC_NEEDS_INTTYPES_H=1 +elif test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_UINTPTR='"unsigned int"' +elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_UINTPTR='"unsigned long"' +elif test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_void_p"; then + SCM_I_GSC_T_UINTPTR='"unsigned long long"' +else + AC_MSG_ERROR([Can't find appropriate type for `scm_t_uintptr'.]) +fi +AC_SUBST([SCM_I_GSC_T_UINTPTR]) + AC_SUBST([SCM_I_GSC_NEEDS_STDINT_H]) AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H]) @@ -625,7 +644,17 @@ AC_CHECK_HEADERS([complex.h fenv.h io.h libc.h limits.h malloc.h memory.h proces regex.h rxposix.h rx/rxposix.h sys/dir.h sys/ioctl.h sys/select.h \ sys/time.h sys/timeb.h sys/times.h sys/stdtypes.h sys/types.h \ sys/utime.h time.h unistd.h utime.h pwd.h grp.h sys/utsname.h \ -direct.h langinfo.h nl_types.h machine/fpu.h]) +direct.h langinfo.h nl_types.h machine/fpu.h poll.h]) + +# Reasons for testing: +# nl_item - lacking on Cygwin +AC_CHECK_TYPES([nl_item], [], [], + [[#ifdef HAVE_LANGINFO_H + # include + #endif + #ifdef HAVE_NL_TYPES_H + # include + #endif]]) # "complex double" is new in C99, and "complex" is only a keyword if # is included @@ -637,14 +666,15 @@ AC_CHECK_TYPES(complex double,,, # On MacOS X contains socklen_t, so must include that # when testing. AC_CHECK_TYPE(socklen_t, , - [AC_DEFINE_UNQUOTED(socklen_t, int, + [AC_DEFINE_UNQUOTED([socklen_t], int, [Define to `int' if does not define.])], [#if HAVE_SYS_TYPES_H #include #endif #include ]) -AC_CHECK_TYPE(struct ip_mreq) + +AC_CHECK_TYPES([struct ip_mreq], , , [#include ]) GUILE_HEADER_LIBC_WITH_UNISTD @@ -683,7 +713,7 @@ case $host in fi if test "$enable_shared" = yes ; then EXTRA_DEFS="-DSCM_IMPORT" - AC_DEFINE(USE_DLL_IMPORT, 1, + AC_DEFINE([USE_DLL_IMPORT], 1, [Define if you need additional CPP macros on Win32 platforms.]) fi ;; @@ -711,6 +741,7 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) # gmtime_r - recent posix, not on old systems # pipe - not in mingw # _pipe - specific to mingw, taking 3 args +# poll - since posix 2001 # readdir_r - recent posix, not on old systems # readdir64_r - not available on HP-UX 11.11 # stat64 - SuS largefile stuff, not on old systems @@ -720,8 +751,10 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) # _NSGetEnviron - Darwin specific # strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin # nl_langinfo - X/Open, not available on Windows. +# utimensat: posix.1-2008 +# sched_getaffinity, sched_setaffinity: GNU extensions (glibc) # -AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime ftruncate fchown getcwd geteuid gettimeofday gmtime_r ioctl lstat mkdir mknod nice pipe _pipe readdir_r readdir64_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt stat64 strftime strptime symlink sync sysconf 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 truncate unsetenv isblank _NSGetEnviron strcoll strcoll_l newlocale nl_langinfo]) +AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime ftruncate fchown getcwd geteuid getsid gettimeofday gmtime_r ioctl lstat mkdir mknod nice pipe _pipe poll readdir_r readdir64_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt stat64 strftime strptime symlink sync sysconf 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 truncate unsetenv isblank _NSGetEnviron strcoll strcoll_l newlocale nl_langinfo utimensat sched_getaffinity sched_setaffinity]) # Reasons for testing: # netdb.h - not in mingw @@ -730,13 +763,12 @@ AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime # check this specifically, we need it for the timespec test below. # sethostname - the function itself check because it's not in mingw, # the DECL is checked because Solaris 10 doens't have in any header -# xlocale.h - needed on Darwin for the `locale_t' API # hstrerror - on Tru64 5.1b the symbol is available in libc but the # declaration isn't anywhere. # cuserid - on Tru64 5.1b the declaration is documented to be available # only with `_XOPEN_SOURCE' or some such. # -AC_CHECK_HEADERS(crypt.h netdb.h pthread.h sys/param.h sys/resource.h sys/file.h xlocale.h) +AC_CHECK_HEADERS([crypt.h netdb.h pthread.h sys/param.h sys/resource.h sys/file.h]) AC_CHECK_FUNCS(chroot flock getlogin cuserid getpriority setpriority getpass sethostname gethostname) AC_CHECK_DECLS([sethostname, hstrerror, cuserid]) @@ -754,7 +786,7 @@ AC_CHECK_DECLS([sethostname, hstrerror, cuserid]) # libraries already in that list. # AC_SEARCH_LIBS(crypt, crypt, - [AC_DEFINE(HAVE_CRYPT,1, + [AC_DEFINE([HAVE_CRYPT],1, [Define to 1 if you have the `crypt' function.])]) # When compiling with GCC on some OSs (Solaris, AIX), _Complex_I doesn't @@ -772,7 +804,7 @@ complex double z; ]], [[ z = _Complex_I; ]])], - [AC_DEFINE(GUILE_I,_Complex_I,[The imaginary unit (positive square root of -1).]) + [AC_DEFINE([GUILE_I],_Complex_I,[The imaginary unit (positive square root of -1).]) AC_MSG_RESULT([_Complex_I])], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #if HAVE_COMPLEX_H @@ -782,7 +814,7 @@ complex double z; ]],[[ z = 1.0fi; ]])], - [AC_DEFINE(GUILE_I,1.0fi) + [AC_DEFINE([GUILE_I],1.0fi) AC_MSG_RESULT([1.0fi])], [ac_cv_type_complex_double=no AC_MSG_RESULT([not available])])]) @@ -815,26 +847,43 @@ main (void) [guile_cv_use_csqrt="yes, hopefully (cross-compiling)"])]) case $guile_cv_use_csqrt in yes*) - AC_DEFINE(HAVE_USABLE_CSQRT, 1, [Define to 1 if csqrt is bug-free]) + AC_DEFINE([HAVE_USABLE_CSQRT], 1, [Define to 1 if csqrt is bug-free]) ;; esac fi dnl GMP tests -AC_LIB_HAVE_LINKFLAGS(gmp, +AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include ], - [mpz_import (0, 0, 0, 0, 0, 0, 0);], - AC_MSG_ERROR([GNU MP 4.1 or greater not found, see README])) + [mpz_import (0, 0, 0, 0, 0, 0, 0);]) + +if test "x$HAVE_LIBGMP" != "xyes"; then + AC_MSG_ERROR([GNU MP 4.1 or greater not found, see README]) +fi dnl GNU libunistring is checked for by Gnulib's `libunistring' module. -if test "x$LTLIBUNISTRING" != "x"; then - LIBS="$LTLIBUNISTRING $LIBS" -else +if test "x$LTLIBUNISTRING" = "x"; then AC_MSG_ERROR([GNU libunistring is required, please install it.]) fi +dnl Libffi is needed to compile Guile's foreign function interface, but its +dnl interface isn't exposed in Guile's API. +PKG_CHECK_MODULES(LIBFFI, libffi) +AC_SUBST(LIBFFI_CFLAGS) +AC_SUBST(LIBFFI_LIBS) + +dnl figure out approriate ffi type for size_t +AC_CHECK_SIZEOF(size_t) +AC_CHECK_SIZEOF(ssize_t) +ffi_size_type=uint$(($ac_cv_sizeof_size_t*8)) +ffi_ssize_type=sint$(($ac_cv_sizeof_ssize_t*8)) +AC_DEFINE_UNQUOTED([ffi_type_size_t], ffi_type_${ffi_size_type}, + [ffi type for size_t]) +AC_DEFINE_UNQUOTED([ffi_type_ssize_t], ffi_type_${ffi_ssize_type}, + [ffi type for ssize_t]) + dnl i18n tests #AC_CHECK_HEADERS([libintl.h]) #AC_CHECK_FUNCS(gettext) @@ -878,14 +927,14 @@ AC_CACHE_CHECK([return type of usleep], guile_cv_func_usleep_return_type, [guile_cv_func_usleep_return_type=int])]) case "$guile_cv_func_usleep_return_type" in "void" ) - AC_DEFINE(USLEEP_RETURNS_VOID, 1, + AC_DEFINE([USLEEP_RETURNS_VOID], 1, [Define if the system headers declare usleep to return void.]) ;; esac AC_CHECK_HEADER(sys/un.h, have_sys_un_h=1) if test -n "$have_sys_un_h" ; then - AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS, 1, + AC_DEFINE([HAVE_UNIX_DOMAIN_SOCKETS], 1, [Define if the system supports Unix-domain (file-domain) sockets.]) fi @@ -919,7 +968,7 @@ extern char *__libc_stack_end;]], AC_MSG_RESULT($guile_cv_have_libc_stack_end) if test $guile_cv_have_libc_stack_end = yes; then - AC_DEFINE(HAVE_LIBC_STACK_END, 1, + AC_DEFINE([HAVE_LIBC_STACK_END], 1, [Define if you have the __libc_stack_end variable.]) fi @@ -934,7 +983,7 @@ AC_CACHE_VAL(guile_cv_have_h_errno, [guile_cv_have_h_errno=no])]) AC_MSG_RESULT($guile_cv_have_h_errno) if test $guile_cv_have_h_errno = yes; then - AC_DEFINE(HAVE_H_ERRNO, 1, [Define if h_errno is declared in netdb.h.]) + AC_DEFINE([HAVE_H_ERRNO], 1, [Define if h_errno is declared in netdb.h.]) fi AC_MSG_CHECKING(whether uint32_t is defined) @@ -951,7 +1000,7 @@ AC_CACHE_VAL(guile_cv_have_uint32_t, [guile_cv_have_uint32_t=no])]) AC_MSG_RESULT($guile_cv_have_uint32_t) if test $guile_cv_have_uint32_t = yes; then - AC_DEFINE(HAVE_UINT32_T, 1, + AC_DEFINE([HAVE_UINT32_T], 1, [Define if uint32_t typedef is defined when netdb.h is include.]) fi @@ -968,7 +1017,7 @@ AC_CACHE_VAL(guile_cv_have_ipv6, [guile_cv_have_ipv6=no])]) AC_MSG_RESULT($guile_cv_have_ipv6) if test $guile_cv_have_ipv6 = yes; then - AC_DEFINE(HAVE_IPV6, 1, [Define if you want support for IPv6.]) + AC_DEFINE([HAVE_IPV6], 1, [Define if you want support for IPv6.]) fi # included in rfc2553 but not in older implementations, e.g., glibc 2.1.3. @@ -984,7 +1033,7 @@ AC_CACHE_VAL(guile_cv_have_sin6_scope_id, [guile_cv_have_sin6_scope_id=no])]) AC_MSG_RESULT($guile_cv_have_sin6_scope_id) if test $guile_cv_have_sin6_scope_id = yes; then - AC_DEFINE(HAVE_SIN6_SCOPE_ID, 1, + AC_DEFINE([HAVE_SIN6_SCOPE_ID], 1, [Define this if your IPv6 has sin6_scope_id in sockaddr_in6 struct.]) fi @@ -1041,7 +1090,7 @@ else fi])dnl AC_MSG_RESULT($guile_cv_localtime_cache) if test $guile_cv_localtime_cache = yes; then - AC_DEFINE(LOCALTIME_CACHE, 1, [Define if localtime caches the TZ setting.]) + AC_DEFINE([LOCALTIME_CACHE], 1, [Define if localtime caches the TZ setting.]) fi if test "$enable_regex" = yes; then @@ -1059,15 +1108,13 @@ if test "$enable_regex" = yes; then if test "$ac_cv_func_regcomp_norx" = yes || test "$ac_cv_func_regcomp_regex" = yes || test "$ac_cv_func_regcomp_rx" = yes; then - AC_DEFINE(HAVE_REGCOMP, 1, + AC_DEFINE([HAVE_REGCOMP], 1, [This is included as part of a workaround for a autoheader bug.]) fi fi fi -AC_REPLACE_FUNCS(inet_aton putenv strerror memmove mkstemp) - -AC_CHECK_HEADERS(floatingpoint.h ieeefp.h nan.h) +AC_REPLACE_FUNCS([strerror memmove mkstemp]) # Reasons for testing: # asinh, acosh, atanh, trunc - C99 standard, generally not available on @@ -1091,7 +1138,7 @@ AC_LINK_IFELSE(AC_LANG_SOURCE( volatile double x = 0.0; int main () { return (isinf(x) != 0); }]]), [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_ISINF, 1, + AC_DEFINE([HAVE_ISINF], 1, [Define to 1 if you have the `isinf' macro or function.])], [AC_MSG_RESULT([no])]) AC_MSG_CHECKING([for isnan]) @@ -1100,7 +1147,7 @@ AC_LINK_IFELSE(AC_LANG_SOURCE( volatile double x = 0.0; int main () { return (isnan(x) != 0); }]]), [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_ISNAN, 1, + AC_DEFINE([HAVE_ISNAN], 1, [Define to 1 if you have the `isnan' macro or function.])], [AC_MSG_RESULT([no])]) @@ -1114,7 +1161,10 @@ int main () { return (isnan(x) != 0); }]]), # Note AC_STRUCT_ST_BLOCKS is not used here because we don't want the # AC_LIBOBJ(fileblocks) replacement which that macro gives. # -AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize, struct stat.st_blocks]) +AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize, struct stat.st_blocks, struct stat.st_atim, struct stat.st_mtim, struct stat.st_ctim],,, + [#define _GNU_SOURCE +AC_INCLUDES_DEFAULT +]) AC_STRUCT_TIMEZONE AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,, @@ -1181,8 +1231,9 @@ main () #-------------------------------------------------------------------- PKG_CHECK_MODULES([BDW_GC], [bdw-gc]) -CFLAGS="$BDW_GC_CFLAGS $CFLAGS" +save_LIBS="$LIBS" LIBS="$BDW_GC_LIBS $LIBS" +CFLAGS="$BDW_GC_CFLAGS $CFLAGS" # `GC_do_blocking ()' is available in GC 7.1 but not declared. AC_CHECK_FUNCS([GC_do_blocking]) @@ -1199,10 +1250,12 @@ AC_CHECK_TYPE([GC_fn_type], [], [#include ]) +LIBS="$save_LIBS" + AC_CHECK_SIZEOF(float) if test "$ac_cv_sizeof_float" -le "$ac_cv_sizeof_long"; then - AC_DEFINE(SCM_SINGLES, 1, + AC_DEFINE([SCM_SINGLES], 1, [Define this if floats are the same size as longs.]) fi @@ -1216,7 +1269,7 @@ AC_CACHE_VAL(scm_cv_struct_linger, [scm_cv_struct_linger="no"])) AC_MSG_RESULT($scm_cv_struct_linger) if test $scm_cv_struct_linger = yes; then - AC_DEFINE(HAVE_STRUCT_LINGER, 1, + AC_DEFINE([HAVE_STRUCT_LINGER], 1, [Define this if your system defines struct linger, for use with the getsockopt and setsockopt system calls.]) fi @@ -1235,7 +1288,7 @@ AC_CACHE_VAL(scm_cv_struct_timespec, [scm_cv_struct_timespec="no"])) AC_MSG_RESULT($scm_cv_struct_timespec) if test $scm_cv_struct_timespec = yes; then - AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1, + AC_DEFINE([HAVE_STRUCT_TIMESPEC], 1, [Define this if your system defines struct timespec via either or .]) fi @@ -1332,6 +1385,7 @@ case "$with_threads" in ;; "no" | "null") SCM_I_GSC_USE_NULL_THREADS=1 + SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS=0 with_threads="null-threads" ;; * ) @@ -1350,39 +1404,43 @@ AM_CONDITIONAL([BUILD_PTHREAD_SUPPORT], if test "$with_threads" = pthreads; then -AC_MSG_CHECKING(whether pthread_attr_getstack works for the main thread) +AC_MSG_CHECKING([whether pthread_attr_getstack works for the main thread]) old_CFLAGS="$CFLAGS" CFLAGS="$PTHREAD_CFLAGS $CFLAGS" -AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#if HAVE_PTHREAD_ATTR_GETSTACK -#include - -int main () -{ - pthread_attr_t attr; - void *start, *end; - size_t size; - - pthread_getattr_np (pthread_self (), &attr); - pthread_attr_getstack (&attr, &start, &size); - end = (char *)start + size; - - if ((void *)&attr < start || (void *)&attr >= end) +if test "$cross_compiling" = "no"; then + AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #if HAVE_PTHREAD_ATTR_GETSTACK + #include + + int main () + { + pthread_attr_t attr; + void *start, *end; + size_t size; + + pthread_getattr_np (pthread_self (), &attr); + pthread_attr_getstack (&attr, &start, &size); + end = (char *)start + size; + + if ((void *)&attr < start || (void *)&attr >= end) + return 1; + else + return 0; + } + #else + int main () + { return 1; - else - return 0; -} -#else -int main () -{ - return 1; -} -#endif -]])], -[works=yes -AC_DEFINE(PTHREAD_ATTR_GETSTACK_WORKS, [1], [Define when pthread_att_get_stack works for the main thread])], -[works=no], -[]) + } + #endif + ]])], + [works=yes + AC_DEFINE([PTHREAD_ATTR_GETSTACK_WORKS], [1], [Define when pthread_att_get_stack works for the main thread])], + [works=no], + []) +else + works="assuming it doesn't" +fi CFLAGS="$old_CFLAGS" AC_MSG_RESULT($works) @@ -1493,30 +1551,6 @@ AC_SUBST(LIBGUILE_INTERFACE_REVISION) AC_SUBST(LIBGUILE_INTERFACE_AGE) AC_SUBST(LIBGUILE_INTERFACE) -AC_SUBST(LIBGUILE_SRFI_SRFI_1_MAJOR) -AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_CURRENT) -AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_REVISION) -AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE_AGE) -AC_SUBST(LIBGUILE_SRFI_SRFI_1_INTERFACE) - -AC_SUBST(LIBGUILE_SRFI_SRFI_4_MAJOR) -AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_CURRENT) -AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_REVISION) -AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE_AGE) -AC_SUBST(LIBGUILE_SRFI_SRFI_4_INTERFACE) - -AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_MAJOR) -AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_CURRENT) -AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_REVISION) -AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE_AGE) -AC_SUBST(LIBGUILE_SRFI_SRFI_13_14_INTERFACE) - -AC_SUBST(LIBGUILE_SRFI_SRFI_60_MAJOR) -AC_SUBST(LIBGUILE_SRFI_SRFI_60_INTERFACE_CURRENT) -AC_SUBST(LIBGUILE_SRFI_SRFI_60_INTERFACE_REVISION) -AC_SUBST(LIBGUILE_SRFI_SRFI_60_INTERFACE_AGE) -AC_SUBST(LIBGUILE_SRFI_SRFI_60_INTERFACE) - AC_SUBST(LIBGUILE_I18N_MAJOR) AC_SUBST(LIBGUILE_I18N_INTERFACE_CURRENT) AC_SUBST(LIBGUILE_I18N_INTERFACE_REVISION) @@ -1543,18 +1577,14 @@ AC_SUBST(top_builddir_absolute) top_srcdir_absolute=`(cd $srcdir && pwd)` AC_SUBST(top_srcdir_absolute) -dnl We need `sitedir' in `guile-1.8.pc'. -dnl Note: `sitedir' must be kept in sync with `GUILE_SITE_DIR' in `guile.m4'. +dnl `sitedir' goes into libpath.h and the pkg-config file. pkgdatadir="$datadir/$PACKAGE_TARNAME" -sitedir="$pkgdatadir/site" +sitedir="$pkgdatadir/site/$GUILE_EFFECTIVE_VERSION" AC_SUBST([sitedir]) # Additional SCM_I_GSC definitions are above. AC_SUBST([SCM_I_GSC_GUILE_DEBUG]) -AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST]) -AC_SUBST([SCM_I_GSC_ENABLE_DISCOURAGED]) AC_SUBST([SCM_I_GSC_ENABLE_DEPRECATED]) -AC_SUBST([SCM_I_GSC_ENABLE_ELISP]) AC_SUBST([SCM_I_GSC_STACK_GROWS_UP]) AC_SUBST([SCM_I_GSC_C_INLINE]) AC_CONFIG_FILES([libguile/gen-scmconfig.h]) @@ -1567,42 +1597,33 @@ AC_CONFIG_FILES([ doc/Makefile doc/r5rs/Makefile doc/ref/Makefile - doc/tutorial/Makefile emacs/Makefile examples/Makefile - lang/Makefile libguile/Makefile - srfi/Makefile + libguile/version.h guile-readline/Makefile test-suite/Makefile test-suite/standalone/Makefile + test-suite/vm/Makefile meta/Makefile module/Makefile - testsuite/Makefile ]) AC_CONFIG_FILES([meta/guile-2.0.pc]) AC_CONFIG_FILES([meta/guile-2.0-uninstalled.pc]) -AC_CONFIG_FILES([check-guile], [chmod +x check-guile]) -AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile]) -AC_CONFIG_FILES([meta/guile], [chmod +x meta/guile]) -AC_CONFIG_FILES([meta/uninstalled-env], [chmod +x meta/uninstalled-env]) -AC_CONFIG_FILES([meta/gdb-uninstalled-guile], [chmod +x meta/gdb-uninstalled-guile]) -AC_CONFIG_FILES([meta/guile-tools], [chmod +x meta/guile-tools]) -AC_CONFIG_FILES([libguile/guile-snarf], - [chmod +x libguile/guile-snarf]) -AC_CONFIG_FILES([libguile/guile-doc-snarf], - [chmod +x libguile/guile-doc-snarf]) -AC_CONFIG_FILES([libguile/guile-func-name-check], - [chmod +x libguile/guile-func-name-check]) -AC_CONFIG_FILES([libguile/guile-snarf-docs], - [chmod +x libguile/guile-snarf-docs]) -AC_CONFIG_FILES([test-suite/standalone/test-use-srfi], - [chmod +x test-suite/standalone/test-use-srfi]) -AC_CONFIG_FILES([test-suite/standalone/test-fast-slot-ref], - [chmod +x test-suite/standalone/test-fast-slot-ref]) AC_CONFIG_FILES([doc/ref/effective-version.texi]) +GUILE_CONFIG_SCRIPT([check-guile]) +GUILE_CONFIG_SCRIPT([benchmark-guile]) +GUILE_CONFIG_SCRIPT([meta/guile]) +GUILE_CONFIG_SCRIPT([meta/uninstalled-env]) +GUILE_CONFIG_SCRIPT([meta/gdb-uninstalled-guile]) +GUILE_CONFIG_SCRIPT([meta/guile-tools]) +GUILE_CONFIG_SCRIPT([libguile/guile-snarf]) +GUILE_CONFIG_SCRIPT([libguile/guile-snarf-docs]) +GUILE_CONFIG_SCRIPT([test-suite/standalone/test-use-srfi]) +GUILE_CONFIG_SCRIPT([test-suite/standalone/test-fast-slot-ref]) + AC_OUTPUT dnl Local Variables: