From 75c242a256c273ab0690397df4277d44f01946e6 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Fri, 15 Jan 2010 22:55:11 +0100 Subject: [PATCH] add libffi dependency * configure.ac: * libguile/Makefile.am (AM_CFLAGS, libguile_la_LDFLAGS): Add a libffi dependency, for making a dynamic FFI. --- configure.ac | 18 +++++++++++++++++- libguile/Makefile.am | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index baac33d74..35e902c57 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/libguile/Makefile.am b/libguile/Makefile.am index 856c87a9f..d00e6e0e1 100644 --- a/libguile/Makefile.am +++ b/libguile/Makefile.am @@ -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)