Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git] / configure.ac
index 85e3170..3cbd960 100644 (file)
@@ -734,8 +734,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
 #   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
@@ -751,17 +749,18 @@ AC_CHECK_HEADERS([assert.h crt_externs.h])
 #
 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                \
-  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        \
+  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([HAVE_FORK], [test "x$ac_cv_func_fork" = "xyes"])
+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
@@ -872,6 +871,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 <gmp.h>]])
+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.])
@@ -1295,8 +1302,11 @@ if test $scm_cv_struct_linger = yes; then
 fi
 
 
-# On mingw, struct timespec is in <pthread.h>.
-#
+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 <pthread.h>.
 AC_MSG_CHECKING(for struct timespec)
 AC_CACHE_VAL(scm_cv_struct_timespec,
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -1308,7 +1318,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 <pthread.h> checks whether that macro is defined.
+  AC_DEFINE([HAVE_SYSTEM_STRUCT_TIMESPEC], 1,
     [Define this if your system defines struct timespec via either <time.h> or <pthread.h>.])
 fi