diff --git a/compiler/ghc.mk b/compiler/ghc.mk index 887f91b28084481193a406f4a4d2268be054cd1a..0e53ca5e6248f2b4df39ac17e8251e8020d53731 100644 --- a/compiler/ghc.mk +++ b/compiler/ghc.mk @@ -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 diff --git a/configure.ac b/configure.ac index 6b9335edda4b404c15bcd0e45d838003bbfcb24d..06512358aaabf10c5b177cbdcdf895b9fef2fd28 100644 --- a/configure.ac +++ b/configure.ac @@ -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 852baa9f321068ae9c36dd471c74ab1dba91b4f4..f73c8018fe531a49cd6819ecb7c7625d58cd5a2e 100644 --- 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 diff --git a/libffi/ghc.mk b/libffi/ghc.mk index 07d6d3d74cf33dd348da787bedab76e8760b685e..3ced47627f673c2459e39eaee57dc221d7547161 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -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)) diff --git a/rts/ghc.mk b/rts/ghc.mk index bf01a90d5a9fa669b537a4a811366b7de5e9f169..e3c9fa6b47b8e76977cec55dfb0791eb17ef2d08 100644 --- a/rts/ghc.mk +++ b/rts/ghc.mk @@ -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