+2008-03-05 Havoc Pennington <hp@redhat.com>
+
+ * configure.ac: Take advantage of a libffi.pc if one exists, as it
+ does on Fedora 8. Make libffi a hard requirement, since it was in
+ practice anyway (was not really conditional in the code or
+ makefile, only in configure).
+
2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
PKG_CHECK_MODULES(SCANNER, [gobject-2.0 gthread-2.0])
dnl libffi
-AC_MSG_CHECKING(for ffi.h)
-AC_ARG_WITH(libffi,
- AC_HELP_STRING([--without-ffi], [Disable libffi support]),
- with_ffi=$withval,
- with_ffi=auto)
-if test x"$with_ffi" = xno ; then
- have_ffi_h=disabled
-else
+PKG_CHECK_MODULES(FFI, libffi, have_ffi_pkgconfig=yes, have_ffi_pkgconfig=no)
+
+if x$have_ffi_pkgconfig = xno ; then
+ AC_MSG_CHECKING(for ffi.h)
+
AC_TRY_CPP([#include <ffi.h>], have_ffi_h=yes, have_ffi_h=no)
if test $have_ffi_h = yes; then
- AC_DEFINE(HAVE_FFI_H,1,[Have ffi.h include file])
+
save_LIBS=$LIBS
if test x"$with_ffi" = xyes || test x"$with_ffi" = xauto; then
other_LIBS=
else
other_LIBS=$with_ffi
fi
+
AC_SEARCH_LIBS(ffi_call,ffi,,AC_MSG_ERROR([libffi not found]),$other_LIBS)
if test x$"ac_cv_search_ffi_call" = x"none required" ; then
FFI_LIBS=$other_LIBS
else
FFI_LIBS="$ac_cv_search_ffi_call $other_LIBS"
fi
+
LIBS=$save_LIBS
fi
-fi
-if test x"$with_ffi" != xauto && test x"$have_ffi_h" != xyes ; then
- AC_MSG_ERROR([libffi requested, but ffi.h not found])
-fi
-AC_MSG_RESULT([$have_ffi_h])
-AM_CONDITIONAL(HAVE_LIBFFI, test "$have_ffi_h" = "yes")
-AC_SUBST(FFI_LIBS)
+ if test x"$have_ffi_h" != xyes ; then
+ AC_MSG_ERROR([ffi.h not found])
+ fi
-dnl if libffi is not found, g_function_info_invoke is not available,
-dnl but everything else still works
+ FFI_CFLAGS=
+
+ AC_MSG_RESULT([$have_ffi_h])
+ AC_SUBST(FFI_LIBS)
+ AC_SUBST(FFI_CFLAGS)
+fi
PKG_CHECK_MODULES(GIREPO, [glib-2.0 gobject-2.0 gmodule-2.0])
-if test "$have_ffi_h" = "yes"; then
- GIREPO_LIBS="$GIREPO_LIBS $FFI_LIBS"
-fi
+# if we ever remove manual check for ffi and require .pc file, then
+# just put libffi in the PKG_CHECK_MODULES(GIREPO) deps
+GIREPO_LIBS="$GIREPO_LIBS $FFI_LIBS"
+GIREPO_CFLAGS="$GIREPO_CFLAGS $FFI_CFLAGS"
GIREPO_CFLAGS="$GIREPO_CFLAGS $GCOV_CFLAGS"