update submodules for GHC.HetMet.GArrow -> Control.GArrow renaming
[ghc-hetmet.git] / libffi / ghc.mk
index d8a3d27..f7caeda 100644 (file)
@@ -34,8 +34,6 @@
 #
 # We use libffi's own configuration stuff.
 
-PLATFORM := $(shell echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g')
-
 # 2007-07-05
 # Passing
 #     as_ln_s='cp -p'
@@ -75,6 +73,8 @@ libffi_DYNAMIC_PROG =
 ifeq "$(darwin_TARGET_OS)" "1"
 libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi$(soext) \
                       libffi/dist-install/build/libffi.5$(soext)
+else ifeq "$(openbsd_TARGET_OS)" "1"
+libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi.so.5.10
 else
 libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi.so \
                       libffi/dist-install/build/libffi.so.5
@@ -105,6 +105,8 @@ $(libffi_STAMP_CONFIGURE):
        cat ghc-tarballs/libffi/libffi*.tar.gz | $(GZIP_CMD) -d | { cd libffi && $(TAR_CMD) -xf - ; }
        mv libffi/libffi-* libffi/build
        chmod +x libffi/ln
+       # don't report nonselinux systems as selinux
+       cd libffi/build && "$(PATCH_CMD)" -p0 < ../libffi.selinux-detection-3.0.8.patch
 
 # Because -Werror may be in SRC_CC_OPTS/SRC_LD_OPTS, we need to turn
 # warnings off or the compilation of libffi might fail due to warnings
@@ -112,16 +114,16 @@ $(libffi_STAMP_CONFIGURE):
            PATH=`pwd`:$$PATH; \
            export PATH; \
            cd build && \
-           CC=$(WhatGccIsCalled) \
+           CC=$(CC_STAGE1) \
            LD=$(LD) \
-           AR=$(AR) \
+           AR=$(AR_STAGE1) \
            NM=$(NM) \
         CFLAGS="$(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE1) -w" \
-        LDFLAGS="$(SRC_LD_OPTS) $(CONF_LD_OPTS_STAGE1) -w" \
+        LDFLAGS="$(SRC_LD_OPTS) $(CONF_GCC_LINKER_OPTS_STAGE1) -w" \
         "$(SHELL)" configure \
                  --enable-static=yes \
                  --enable-shared=$(libffi_EnableShared) \
-                 --host=$(PLATFORM) --build=$(PLATFORM)
+                 --host=$(HOSTPLATFORM) --build=$(BUILDPLATFORM)
 
        # libffi.so needs to be built with the correct soname.
        # NOTE: this builds libffi_convience.so with the incorrect
@@ -137,7 +139,7 @@ $(libffi_STAMP_CONFIGURE):
 
        touch $@
 
-libffi/dist-install/build/ffi.h: $(libffi_STAMP_CONFIGURE) | $$(dir $$@)/.
+libffi/dist-install/build/ffi.h: $(libffi_STAMP_CONFIGURE) libffi/dist-install/build/ffitarget.h | $$(dir $$@)/.
        "$(CP)" libffi/build/include/ffi.h $@
 
 libffi/dist-install/build/ffitarget.h: $(libffi_STAMP_CONFIGURE) | $$(dir $$@)/.
@@ -156,11 +158,13 @@ endif
        touch $@
 
 $(libffi_STATIC_LIB): $(libffi_STAMP_BUILD)
-       @test -f $@
+       @test -f $@ || { echo "$< exits, but $@ does not."; echo "Suggest removing $<."; exit 1; }
 
 # Rename libffi.a to libHSffi.a
-libffi/dist-install/build/libHSffi.a libffi/dist-install/build/libHSffi_p.a: $(libffi_STATIC_LIB)
+libffi/dist-install/build/libHSffi.a: $(libffi_STATIC_LIB)
        "$(CP)" $(libffi_STATIC_LIB) libffi/dist-install/build/libHSffi.a
+
+libffi/dist-install/build/libHSffi_p.a: $(libffi_STATIC_LIB)
        "$(CP)" $(libffi_STATIC_LIB) libffi/dist-install/build/libHSffi_p.a
 
 $(eval $(call all-target,libffi,$(INSTALL_HEADERS) $(INSTALL_LIBS)))
@@ -173,14 +177,14 @@ $(eval $(call all-target,libffi,$(INSTALL_HEADERS) $(INSTALL_LIBS)))
 libffi/dist-install/build/HSffi.o: libffi/dist-install/build/libHSffi.a
        cd libffi/dist-install/build && \
          touch empty.c && \
-         "$(CC)" $(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE1) -c empty.c -o HSffi.o
+         "$(CC_STAGE1)" $(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE1) -c empty.c -o HSffi.o
 
 $(eval $(call all-target,libffi,libffi/dist-install/build/HSffi.o))
 
 ifeq "$(BuildSharedLibs)" "YES"
 ifeq "$(Windows)" "YES"
-libffi/libffi.dll.a $(libffi_HS_DYN_LIB): $(libffi_STAMP_BUILD)
-       @test -f $@
+libffi/dist-install/build/libffi.dll.a $(libffi_HS_DYN_LIB): $(libffi_STAMP_BUILD)
+       @test -f $@ || { echo "$< exits, but $@ does not."; echo "Suggest removing $<."; exit 1; }
 
 # Windows libtool creates <soname>.dll, and as we already patched that
 # there is no need to copy from libffi.dll to libHSffi...dll.
@@ -193,7 +197,7 @@ $(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB).a))
 
 else
 $(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD)
-       @test -f $@
+       @test -f $@ || { echo "$< exits, but $@ does not."; echo "Suggest removing $<."; exit 1; }
 
 # Rename libffi.so to libHSffi...so
 $(libffi_HS_DYN_LIB): $(libffi_DYNAMIC_LIBS) | $$(dir $$@)/.
@@ -221,4 +225,3 @@ $(eval $(call manual-package-config,libffi))
 # binary-dist
 
 BINDIST_EXTRAS += libffi/package.conf.in
-