dnl configuration script for Guile
dnl Process this file with autoconf to produce configure.
dnl
-dnl Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+dnl Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
dnl
dnl This file is part of GUILE
dnl
#
#--------------------------------------------------------------------
+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
+ AC_DEFINE(GUILE_DEBUG_FREELIST)
+ 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)
+ fi)
+
AC_ARG_ENABLE(guile-debug,
[ --enable-guile-debug include internal debugging functions],
if test "$enable_guile_debug" = y || test "$enable_guile_debug" = yes; then
AC_DEFINE(GUILE_DEBUG)
fi)
-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
- AC_DEFINE(GUILE_DEBUG_FREELIST)
- fi)
-
AC_ARG_ENABLE(arrays,
[ --disable-arrays omit array and uniform array support],,
enable_arrays=yes)
AC_DEFINE(HAVE_NETWORKING)
fi
+if test "$enable_debug_malloc" = yes; then
+ LIBOBJS="$LIBOBJS debug-malloc.o"
+fi
+
#--------------------------------------------------------------------
AC_LIBLTDL_CONVENIENCE
;;
esac
-dnl <GNU-WIN32 hacks>
-
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)
AC_CHECK_FUNCS(socketpair getgroups setpwent pause tzset)
-dnl I don't know what this prefixing of cygwin32_ is for.
-dnl scmconfig.h wasn't updated with the test results.
-dnl so use AC_CHECK_FUNCS for now.
-
-dnl how about:
-dnl save confdefs.h
-dnl if test $ac_cv_cigwin = yes; then
-dnl modify confdefs.h
-dnl fi
-dnl AC_CHECK_FUNCS...
-dnl restore confdefs.h
-
-dnl cp confdefs.h confdefs.h.bak
-dnl for func in gethostent sethostent endhostent getnetent setnetent endnetent getprotoent setprotoent endprotoent getservent setservent endservent getnetbyaddr getnetbyname inet_lnaof inet_makeaddr inet_netof hstrerror; do
-dnl cp confdefs.h.bak confdefs.h
-dnl cat >> confdefs.h << EOF
-dnl #ifdef __CYGWIN32__
-dnl #define $func cygwin32_$func
-dnl #endif
-dnl EOF
-dnl AC_CHECK_FUNC($func)
-dnl done
-dnl cp confdefs.h.bak confdefs.h
-
AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
setnetent getnetent endnetent dnl
setprotoent getprotoent endprotoent dnl
getnetbyaddr getnetbyname dnl
inet_lnaof inet_makeaddr inet_netof hstrerror)
-dnl </GNU-WIN32 hacks>
+dnl Some systems do not declare this. Some systems do declare it, as a
+dnl macro. With cygwin it may be in a DLL.
+
+AC_MSG_CHECKING(whether netdb.h declares h_errno)
+AC_CACHE_VAL(guile_cv_have_h_errno,
+[AC_TRY_COMPILE([#include <netdb.h>],
+[int a = h_errno;],
+guile_cv_have_h_errno=yes, 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)
+fi
AC_MSG_CHECKING(whether localtime caches TZ)
AC_CACHE_VAL(guile_cv_localtime_cache,
AC_DEFINE(HAVE_STRUCT_LINGER)
fi
+
+AC_MSG_CHECKING(for struct timespec)
+AC_CACHE_VAL(scm_cv_struct_timespec,
+ AC_TRY_COMPILE([
+#include <time.h>],
+ [struct timespec t; t.tv_nsec = 100],
+ scm_cv_struct_timespec="yes",
+ 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)
+fi
+
#--------------------------------------------------------------------
#
# Flags for thread support
## Include the Guile thread interface in the library...
LIBOBJS="$LIBOBJS threads.o"
+ EXTRA_DOT_DOC_FILES="$EXTRA_DOT_DOC_FILES threads.doc"
## ... and tell it which package to talk to.
case "${THREAD_PACKAGE}" in
## Bring in scm_internal_select, if appropriate.
if test $ac_cv_func_gettimeofday = yes &&
test $ac_cv_func_select = yes; then
- LIBOBJS="$LIBOBJS iselect.o"
AC_DEFINE(GUILE_ISELECT, 1)
fi
+
+ ## Workaround for linuxthreads (currently disabled)
+ if test $host_os = linux-gnu; then
+ AC_DEFINE(GUILE_PTHREAD_COMPAT, 1)
+ AC_CHECK_LIB(pthread, main)
+ fi
fi
## If we're using GCC, ask for aggressive warnings.
## given in LIBOBJS. We'll call it LIBLOBJS.
LIBLOBJS="`echo ${LIBOBJS} | sed 's/\.o/.lo/g'`"
+## We also need to create corresponding .doc files
+EXTRA_DOT_DOC_FILES="`echo ${LIBOBJS} | sed 's/\.o/.doc/g'`"
+
AC_SUBST(GUILE_MAJOR_VERSION)
AC_SUBST(GUILE_MINOR_VERSION)
AC_SUBST(GUILE_VERSION)
+AC_SUBST(LIBGUILE_MAJOR_VERSION)
+AC_SUBST(LIBGUILE_MINOR_VERSION)
+AC_SUBST(LIBGUILE_REVISION_VERSION)
+AC_SUBST(LIBGUILE_VERSION)
dnl Tell guile-config what flags guile users should link against.
GUILE_LIBS="$LDFLAGS $THREAD_LIBS_INSTALLED $LIBS"
AC_SUBST(AWK)
AC_SUBST(LIBLOBJS)
+AC_SUBST(EXTRA_DOT_DOC_FILES)
+
+# Support for "make check"
+test_suite_dir="`(cd $srcdir ; pwd)`/test-suite"
+AC_SUBST(test_suite_dir)
-AC_OUTPUT([Makefile libguile/Makefile libguile/guile-snarf libguile/guile-doc-snarf libguile/guile-func-name-check libguile/guile-snarf.awk libguile/versiondat.h ice-9/Makefile qt/Makefile qt/qt.h qt/md/Makefile qt/time/Makefile guile-config/Makefile doc/Makefile], [chmod +x libguile/guile-snarf libguile/guile-doc-snarf libguile/guile-func-name-check])
+AC_OUTPUT([Makefile libguile/Makefile libguile/guile-snarf libguile/guile-doc-snarf libguile/guile-func-name-check libguile/guile-snarf.awk libguile/versiondat.h ice-9/Makefile oop/Makefile oop/goops/Makefile qt/Makefile qt/qt.h qt/md/Makefile qt/time/Makefile guile-config/Makefile doc/Makefile check-guile], [chmod +x libguile/guile-snarf libguile/guile-doc-snarf libguile/guile-func-name-check check-guile])
dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
-dnl
+dnl End: