add libffi dependency
authorAndy Wingo <wingo@pobox.com>
Fri, 15 Jan 2010 21:55:11 +0000 (22:55 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 26 Jan 2010 21:56:41 +0000 (22:56 +0100)
* configure.ac:
* libguile/Makefile.am (AM_CFLAGS, libguile_la_LDFLAGS): Add a libffi
  dependency, for making a dynamic FFI.

configure.ac
libguile/Makefile.am

index baac33d..35e902c 100644 (file)
@@ -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
 
@@ -879,6 +879,22 @@ else
   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)
index 856c87a..d00e6e0 100644 (file)
@@ -35,7 +35,7 @@ DEFAULT_INCLUDES =
 AM_CPPFLAGS = -DBUILDING_LIBGUILE=1 -I$(top_srcdir) -I$(top_builddir) \
              -I$(top_srcdir)/lib -I$(top_builddir)/lib
 
-AM_CFLAGS = $(GCC_CFLAGS) $(CFLAG_VISIBILITY)
+AM_CFLAGS = $(LIBFFI_CFLAGS) $(GCC_CFLAGS) $(CFLAG_VISIBILITY)
 
 ## The Gnulib Libtool archive.
 gnulib_library = $(top_builddir)/lib/libgnu.la
@@ -442,7 +442,7 @@ libguile_la_LIBADD =                                \
   @LIBLOBJS@ $(gnulib_library) $(LTLIBGMP)     \
   $(LTLIBUNISTRING) $(LTLIBICONV)
 libguile_la_LDFLAGS =                                                  \
-  @LTLIBINTL@ $(INET_NTOP_LIB) $(INET_PTON_LIB)                                \
+  @LTLIBINTL@ $(LIBFFI_LIBS) $(INET_NTOP_LIB) $(INET_PTON_LIB)         \
   -version-info @LIBGUILE_INTERFACE_CURRENT@:@LIBGUILE_INTERFACE_REVISION@:@LIBGUILE_INTERFACE_AGE@    \
   -export-dynamic -no-undefined                                                \
   $(GNU_LD_FLAGS)