*** empty log message ***
[bpt/guile.git] / configure.in
index 0ddff0e..6c6d441 100644 (file)
@@ -129,6 +129,10 @@ dnl a required part of the distribution.
 AC_DEFINE(DEBUG_EXTENSIONS)
 AC_DEFINE(READER_EXTENSIONS)
 
+AC_ARG_ENABLE(elisp,
+  [  --disable-elisp         omit Emacs Lisp support],,
+  enable_elisp=yes)
+
 dnl files which are destined for separate modules.
 
 if test "$enable_arrays" = yes; then
@@ -150,11 +154,21 @@ if test "$enable_debug_malloc" = yes; then
    LIBOBJS="$LIBOBJS debug-malloc.o"
 fi
 
+if test "$enable_elisp" = yes; then
+   AC_DEFINE(SCM_ENABLE_ELISP)
+fi
+
 #--------------------------------------------------------------------
 
-AC_LIBLTDL_CONVENIENCE
+dnl Some more checks for Win32
+AC_CYGWIN
+AC_MINGW32
+AC_LIBTOOL_WIN32_DLL
+
+AC_LIBLTDL_INSTALLABLE
 AC_CONFIG_SUBDIRS(libltdl)
 
+AC_PROG_INSTALL
 AC_PROG_CC
 AC_PROG_CPP
 AC_LIBTOOL_DLOPEN
@@ -166,12 +180,21 @@ AC_MINIX
 AM_PROG_CC_STDC
 AM_PROG_LIBTOOL
 
+AC_CHECK_PROG(have_makeinfo, makeinfo, yes, no)
+AM_CONDITIONAL(HAVE_MAKEINFO, test "$have_makeinfo" = yes)
+
 AC_C_CONST
 AC_C_INLINE
 AC_C_BIGENDIAN
 
+if test "$ac_cv_c_inline" != no; then
+  AC_DEFINE(HAVE_INLINE)
+fi
+
+AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(size_t)
 
 dnl Check for integral types that can represent the range of pointers.
 dnl If these types don't exist on this platform, they are replaced by
@@ -179,17 +202,10 @@ dnl "unsigned long" and "long", respectively.
 
 AC_CHECK_HEADERS(stdint.h)
 AC_CHECK_HEADERS(inttypes.h)
-AC_CHECK_TYPES([uintptr_t, ptrdiff_t])
-
-AC_CACHE_CHECK([for long longs], scm_cv_long_longs,
-              AC_TRY_COMPILE(,
-                             [long long a],
-                             scm_cv_long_longs=yes,
-                             scm_cv_long_longs=no))
-if test "$scm_cv_long_longs" = yes; then
-  AC_DEFINE(HAVE_LONG_LONGS)
-  AC_CHECK_SIZEOF(long long)
-fi
+AC_CHECK_SIZEOF(uintptr_t)
+AC_CHECK_SIZEOF(ptrdiff_t)
+
+AC_CHECK_SIZEOF(long long)
 
 AC_CHECK_SIZEOF(void *)
 
@@ -201,7 +217,7 @@ AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(io.h libc.h limits.h malloc.h memory.h string.h regex.h rxposix.h rx/rxposix.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 winsock2.h grp.h sys/utsname.h)
+AC_CHECK_HEADERS(io.h libc.h limits.h malloc.h memory.h string.h regex.h rxposix.h rx/rxposix.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)
 GUILE_HEADER_LIBC_WITH_UNISTD
 
 AC_TYPE_GETGROUPS
@@ -218,7 +234,30 @@ if test $ac_cv_func_connect = no; then
     AC_CHECK_LIB(socket, connect)
 fi
 
-# Check for dynamic linking
+dnl
+dnl Check for Winsock and other functionality on Win32 (*not* CygWin)
+dnl
+EXTRA_DEFS=""
+if test "$MINGW32" = "yes" ; then
+    AC_CHECK_HEADER(winsock2.h, [AC_DEFINE([HAVE_WINSOCK2_H], 1,
+      [Define if you have the <winsock2.h> header file.])])
+    AC_CHECK_LIB(ws2_32, main)
+    LIBOBJS="$LIBOBJS win32-uname.o win32-dirent.o"
+    if test "$enable_networking" = yes ; then
+      LIBOBJS="$LIBOBJS win32-socket.o"
+    fi
+    if test "$enable_shared" = yes ; then
+      EXTRA_DEFS="-DSCM_IMPORT"
+      AC_DEFINE(USE_DLL_IMPORT, 1,
+        [Define if you need additional CPP macros on Win32 platforms.])
+    fi
+    if test x"$enable_ltdl_install" = x"yes" ; then
+      INCLTDL="-DLIBLTDL_DLL_IMPORT $INCLTDL"
+    fi
+fi
+AC_SUBST(EXTRA_DEFS)
+
+dnl Check for dynamic linking
 
 use_modules=yes
 AC_ARG_WITH(modules,
@@ -237,6 +276,7 @@ if test "$use_modules" != no; then
     done
   fi
 fi
+
 AC_SUBST(INCLTDL)
 AC_SUBST(LIBLTDL)
 AC_SUBST(DLPREOPEN)
@@ -312,7 +352,12 @@ fi
 AC_MSG_CHECKING(whether uint32_t is defined)
 AC_CACHE_VAL(guile_cv_have_uint32_t,
   [AC_TRY_COMPILE([#include <sys/types.h>
-                  #include <netdb.h>],
+                  #if HAVE_STDINT_H
+                  #include <stdint.h>
+                   #endif
+                  #ifndef __MINGW32__
+                  #include <netdb.h>
+                  #endif],
                  [uint32_t a;],
                  guile_cv_have_uint32_t=yes, guile_cv_have_uint32_t=no)])
 AC_MSG_RESULT($guile_cv_have_uint32_t)
@@ -407,11 +452,14 @@ if test "$enable_regex" = yes; then
       test "$ac_cv_header_rx_rxposix_h" = yes; then
      GUILE_NAMED_CHECK_FUNC(regcomp, norx, [LIBOBJS="regex-posix.o $LIBOBJS"],
      [AC_CHECK_LIB(rx, main)
-      GUILE_NAMED_CHECK_FUNC(regcomp, rx, [LIBOBJS="regex-posix.o $LIBOBJS"])]
+      GUILE_NAMED_CHECK_FUNC(regcomp, rx, [LIBOBJS="regex-posix.o $LIBOBJS"],
+     [AC_CHECK_LIB(regex, main)
+      GUILE_NAMED_CHECK_FUNC(regcomp, regex, [LIBOBJS="regex-posix.o $LIBOBJS"])])]
      )
      dnl The following should not be necessary, but for some reason
      dnl autoheader misses it if we don't include it!
      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)
      fi
@@ -569,10 +617,6 @@ if test "${THREAD_PACKAGE}" != "" ; then
     AC_CHECK_LIB(pthread, main)
   fi
 fi
-AC_SUBST(LIBGUILEQTHREADS_INTERFACE_CURRENT)
-AC_SUBST(LIBGUILEQTHREADS_INTERFACE_REVISION)
-AC_SUBST(LIBGUILEQTHREADS_INTERFACE_AGE)
-AC_SUBST(LIBGUILEQTHREADS_INTERFACE)
 
 ## If we're using GCC, ask for aggressive warnings.
 case "$GCC" in
@@ -587,6 +631,10 @@ esac
 
 AC_PROG_AWK
 
+## Remove fileblocks.o from the object list.  This file gets added by
+## the Autoconf macro AC_STRUCT_ST_BLOCKS.  But there is no need.
+LIBOBJS="`echo ${LIBOBJS} | sed 's/fileblocks\.o//g'`"
+
 ## 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.
@@ -601,11 +649,31 @@ AC_SUBST(GUILE_MINOR_VERSION)
 AC_SUBST(GUILE_MICRO_VERSION)
 AC_SUBST(GUILE_VERSION)
 
+#######################################################################
+# library versioning
+
+AC_SUBST(LIBQTHREADS_INTERFACE_CURRENT)
+AC_SUBST(LIBQTHREADS_INTERFACE_REVISION)
+AC_SUBST(LIBQTHREADS_INTERFACE_AGE)
+AC_SUBST(LIBQTHREADS_INTERFACE)
+
 AC_SUBST(LIBGUILE_INTERFACE_CURRENT)
 AC_SUBST(LIBGUILE_INTERFACE_REVISION)
 AC_SUBST(LIBGUILE_INTERFACE_AGE)
 AC_SUBST(LIBGUILE_INTERFACE)
 
+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_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)
+
+#######################################################################
+
 dnl Tell guile-config what flags guile users should link against.
 GUILE_LIBS="$LDFLAGS $THREAD_LIBS_INSTALLED $LIBS"
 AC_SUBST(GUILE_LIBS)
@@ -615,16 +683,26 @@ AC_SUBST(LIBLOBJS)
 AC_SUBST(EXTRA_DOT_DOC_FILES)
 AC_SUBST(EXTRA_DOT_X_FILES)
 
+dnl See also top_builddir in info node: (libtool)AC_PROG_LIBTOOL
+top_builddir_absolute=`pwd`
+AC_SUBST(top_builddir_absolute)
+top_srcdir_absolute=`(cd $srcdir ; pwd)`
+AC_SUBST(top_srcdir_absolute)
+
 AC_CONFIG_FILES([
   Makefile
+  am/Makefile
   libguile/Makefile
   libguile/guile-snarf
   libguile/guile-doc-snarf
   libguile/guile-func-name-check
   libguile/guile-snarf-docs
-  libguile/guile-snarf-docs-texi
   libguile/version.h
   ice-9/Makefile
+  lang/Makefile
+  lang/elisp/Makefile
+  lang/elisp/internals/Makefile
+  lang/elisp/primitives/Makefile
   oop/Makefile
   oop/goops/Makefile
   scripts/Makefile
@@ -649,16 +727,17 @@ AC_CONFIG_FILES([
   examples/safe/Makefile
   test-suite/Makefile
   check-guile
-  guile-tools])
+  guile-tools
+  pre-inst-guile])
 
 AC_CONFIG_COMMANDS(default,
   [ chmod +x libguile/guile-snarf \
              libguile/guile-doc-snarf \
              libguile/guile-func-name-check \
              libguile/guile-snarf-docs \
-             libguile/guile-snarf-docs-texi \
              check-guile \
-             guile-tools])
+             guile-tools \
+             pre-inst-guile])
 
 AC_OUTPUT