X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/a8fa310b0493cd2e88a7d7f08b1ee3183a81b455..8f5dbecb4bfe9862d3603b2848cd115d5a164a4f:/configure.ac?ds=sidebyside diff --git a/configure.ac b/configure.ac index 8848339f8..e99b27290 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl define(GUILE_CONFIGURE_COPYRIGHT,[[ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. This file is part of GUILE @@ -51,6 +51,10 @@ GUILE_VERSION="$PACKAGE_VERSION" AC_CONFIG_HEADERS([config.h]) AH_TOP(/*GUILE_CONFIGURE_COPYRIGHT*/) +dnl We require the pkg.m4 set of macros from pkg-config. +dnl Make sure it's available. +m4_pattern_forbid([PKG_CHECK_MODULES]) + #-------------------------------------------------------------------- AC_LANG([C]) @@ -647,12 +651,13 @@ AC_SUBST([SCM_I_GSC_HAVE_STRUCT_DIRENT64]) # this file instead of # process.h - mingw specific # sched.h - missing on MinGW +# sys/sendfile.h - non-POSIX, found in glibc # AC_CHECK_HEADERS([complex.h fenv.h io.h libc.h limits.h memory.h process.h string.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 machine/fpu.h poll.h sched.h]) +direct.h machine/fpu.h sched.h sys/sendfile.h]) # "complex double" is new in C99, and "complex" is only a keyword if # is included @@ -705,9 +710,6 @@ case $host in [Define if you have the header file.])]) AC_CHECK_LIB(ws2_32, main) AC_LIBOBJ([win32-uname]) - if test "$enable_networking" = yes ; then - AC_LIBOBJ([win32-socket]) - fi if test "$enable_shared" = yes ; then EXTRA_DEFS="-DSCM_IMPORT" AC_DEFINE([USE_DLL_IMPORT], 1, @@ -736,9 +738,6 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) # has it as an inline for chsize) # ioctl - not in mingw. # 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 @@ -748,12 +747,24 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) # _NSGetEnviron - Darwin specific # strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin # fork - unavailable on Windows -# utimensat: posix.1-2008 -# sched_getaffinity, sched_setaffinity: GNU extensions (glibc) +# utimensat - posix.1-2008 +# sched_getaffinity, sched_setaffinity - GNU extensions (glibc) +# sendfile - non-POSIX, found in glibc # -AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime ftruncate fchown fchmod 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 utimensat sched_getaffinity sched_setaffinity]) - -AM_CONDITIONAL([HAVE_FORK], [test "x$ac_cv_func_fork" = "xyes"]) +AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid \ + fesetround ftime ftruncate fchown fchmod getcwd geteuid getsid \ + gettimeofday gmtime_r ioctl lstat mkdir mknod nice \ + readdir_r readdir64_r readlink rename rmdir setegid seteuid \ + setlocale setpgid setsid sigaction siginterrupt stat64 \ + strptime symlink sync sysconf tcgetpgrp tcsetpgrp 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 utimensat sched_getaffinity \ + sched_setaffinity sendfile]) + +AM_CONDITIONAL([BUILD_ICE_9_POPEN], + [test "x$enable_posix" = "xyes" && test "x$ac_cv_func_fork" = "xyes"]) # Reasons for testing: # netdb.h - not in mingw @@ -864,6 +875,14 @@ if test "x$HAVE_LIBGMP" != "xyes"; then AC_MSG_ERROR([GNU MP 4.1 or greater not found, see README]) fi +dnl `mpz_inits' and `mpz_clears' appeared in GMP 5.0.0. +save_CPPFLAGS="$CPPFLAGS" +if test "x$LIBGMP_PREFIX" != "x"; then + CPPFLAGS="-I$LIBGMP_PREFIX $CPPFLAGS" +fi +AC_CHECK_DECLS([mpz_inits], [], [], [[#include ]]) +CPPFLAGS="$save_CPPFLAGS" + dnl GNU libunistring is checked for by Gnulib's `libunistring' module. if test "x$LTLIBUNISTRING" = "x"; then AC_MSG_ERROR([GNU libunistring is required, please install it.]) @@ -920,6 +939,8 @@ AC_DEFUN([GUILE_FUNC_DECLARED], [ GUILE_FUNC_DECLARED(sleep, unistd.h) GUILE_FUNC_DECLARED(usleep, unistd.h) +AC_CHECK_DECLS([getlogin, alarm]) + AC_CHECK_DECLS([strptime],,, [#define _GNU_SOURCE /* ask glibc to give strptime prototype */ #include ]) @@ -1229,7 +1250,12 @@ save_LIBS="$LIBS" LIBS="$BDW_GC_LIBS $LIBS" CFLAGS="$BDW_GC_CFLAGS $CFLAGS" -AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask GC_set_start_callback GC_get_heap_usage_safe GC_get_free_space_divisor GC_gcollect_and_unmap GC_get_unmapped_bytes GC_set_finalizer_notifier GC_set_finalize_on_demand]) +AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit \ + GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask \ + GC_set_start_callback GC_get_heap_usage_safe \ + GC_get_free_space_divisor GC_gcollect_and_unmap GC_get_unmapped_bytes \ + GC_set_finalizer_notifier GC_set_finalize_on_demand \ + GC_set_all_interior_pointers GC_get_gc_no GC_set_java_finalization]) # Though the `GC_do_blocking ()' symbol is present in GC 7.1, it is not # declared, and has a different type (returning void instead of @@ -1279,8 +1305,11 @@ if test $scm_cv_struct_linger = yes; then fi -# On mingw, struct timespec is in . -# +dnl Check for `struct timespec', for the sake of `gen-scmconfig'. When +dnl building Guile, we always have it, thanks to Gnulib; but scmconfig.h +dnl must tell whether the system has it. +dnl +dnl On MinGW, struct timespec is in . AC_MSG_CHECKING(for struct timespec) AC_CACHE_VAL(scm_cv_struct_timespec, AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @@ -1292,7 +1321,9 @@ 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, + dnl Don't call it `HAVE_STRUCT_TIMESPEC' because pthread-win32's + dnl checks whether that macro is defined. + AC_DEFINE([HAVE_SYSTEM_STRUCT_TIMESPEC], 1, [Define this if your system defines struct timespec via either or .]) fi @@ -1523,10 +1554,11 @@ AC_SUBST(GCC_CFLAGS) GUILE_GNU_LD_RELRO -## If we're creating a shared library (using libtool!), then we'll -## need to generate a list of .lo files corresponding to the .o files -## given in LIBOBJS. We'll call it LIBLOBJS. -LIBLOBJS="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`" +LIBLOBJS="" +for file in $LIBOBJS; do + file=`echo "$file" | sed 's,\.[[^.]]*$,.lo,'` + LIBLOBJS="$LIBLOBJS libguile_${GUILE_EFFECTIVE_VERSION}_la-$file" +done ## We also need to create corresponding .doc and .x files EXTRA_DOT_DOC_FILES="`echo ${LIB@&t@OBJS} | sed 's,\.[[^.]]* ,.doc ,g;s,\.[[^.]]*$,.doc,'`" @@ -1632,7 +1664,6 @@ AC_CONFIG_FILES([ AC_CONFIG_FILES([meta/guile-2.0.pc]) AC_CONFIG_FILES([meta/guile-2.0-uninstalled.pc]) -AC_CONFIG_FILES([doc/ref/effective-version.texi]) GUILE_CONFIG_SCRIPT([check-guile]) GUILE_CONFIG_SCRIPT([benchmark-guile])