libffi build system tweaks
authorIan Lynagh <ian@well-typed.com>
Thu, 29 Nov 2012 23:52:07 +0000 (23:52 +0000)
committerIan Lynagh <ian@well-typed.com>
Fri, 30 Nov 2012 01:31:39 +0000 (01:31 +0000)
compiler/ghc.mk
configure.ac
ghc.mk
libffi/ghc.mk
rts/ghc.mk

index 887f91b..0e53ca5 100644 (file)
@@ -500,7 +500,10 @@ $(foreach way,$$(compiler_stage3_WAYS),\
 compiler/prelude/PrimOp_HC_OPTS  += -fforce-recomp
 
 # LibFFI.hs #includes ffi.h
+ifneq "$(UseSystemLibFFI)" "YES"
 compiler/stage2/build/LibFFI.hs : $(libffi_HEADERS)
+endif
+
 # On Windows it seems we also need to link directly to libffi
 ifeq "$(HostOS_CPP)" "mingw32"
 define windowsDynLinkToFfi
index 6b9335e..0651235 100644 (file)
@@ -137,7 +137,7 @@ AS_IF([test "$UseSystemLibFFI" = "YES"], [
  AC_CHECK_LIB(ffi, ffi_call,
   [AC_CHECK_HEADERS([ffi.h], [break], [])
    AC_DEFINE([HAVE_LIBFFI], [1], [Define to 1 if you have libffi.])],
-  [UseSystemLibFFI="NO"])
+  [AC_MSG_ERROR([Cannot find system libffi])])
  CFLAGS="$CFLAGS2"
  LDFLAGS="$LDFLAGS2"
 ])
diff --git a/ghc.mk b/ghc.mk
index 852baa9..f73c801 100644 (file)
--- a/ghc.mk
+++ b/ghc.mk
@@ -618,18 +618,12 @@ else
 MAYBE_GHCI=driver/ghci
 endif
 
-ifeq "$(UseSystemLibFFI)" "YES"
-MAYBE_LIBFFI=
-else
-MAYBE_LIBFFI=libffi
-endif
-
 BUILD_DIRS += \
    driver \
    $(MAYBE_GHCI) \
    driver/ghc \
    driver/haddock \
-   $(MAYBE_LIBFFI) \
+   libffi \
    includes \
    rts
 
index 07d6d3d..3ced476 100644 (file)
@@ -44,6 +44,7 @@ endif
 
 ifneq "$(BINDIST)" "YES"
 $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
+       false ffi
        $(call removeFiles,$(libffi_STAMP_STATIC_CONFIGURE))
        $(call removeFiles,$(libffi_STAMP_STATIC_BUILD))
        $(call removeFiles,$(libffi_STAMP_STATIC_INSTALL))
index bf01a90..e3c9fa6 100644 (file)
@@ -493,7 +493,10 @@ endif
 
 $(eval $(call dependencies,rts,dist,1))
 
-$(rts_dist_depfile_c_asm) : $(libffi_HEADERS) $(DTRACEPROBES_H)
+$(rts_dist_depfile_c_asm) : $(DTRACEPROBES_H)
+ifneq "$(UseSystemLibFFI)" "YES"
+$(rts_dist_depfile_c_asm) : $(libffi_HEADERS)
+endif
 
 # -----------------------------------------------------------------------------
 # compile dtrace probes if dtrace is supported