Fix dynamic libs on OS X, and enable them by default
[ghc-hetmet.git] / libffi / ghc.mk
index 1216a32..3e00db2 100644 (file)
@@ -66,7 +66,8 @@ endif
 
 BINDIST_STAMPS = libffi/stamp.ffi.build libfii/stamp.ffi.configure
 
-INSTALL_HEADERS   += libffi/dist-install/build/ffi.h
+INSTALL_HEADERS   += libffi/dist-install/build/ffi.h \
+                    libffi/dist-install/build/ffitarget.h
 libffi_STATIC_LIB  = libffi/dist-install/build/libffi.a
 INSTALL_LIBS      += libffi/dist-install/build/libHSffi.a \
                      libffi/dist-install/build/libHSffi_p.a \
@@ -85,7 +86,7 @@ libffi_DYNAMIC_LIBS = $(libffi_HS_DYN_LIB)
 else
 libffi_DYNAMIC_PROG =
 ifeq "$(darwin_TARGET_OS)" "1"
-libffi_DYNAMIC_LIBS = libffi/libffi$(soext) libffi/libffi.5$(soext) libffi/libffi.5.0.9$(soext)
+libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi$(soext) libffi/dist-install/build/libffi.5$(soext) libffi/dist-install/build/libffi.5.0.9$(soext)
 else
 libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi.so \
                       libffi/dist-install/build/libffi.so.5
@@ -113,7 +114,7 @@ endif
 ifneq "$(BINDIST)" "YES"
 $(libffi_STAMP_CONFIGURE):
        "$(RM)" $(RM_OPTS) -r $(LIBFFI_DIR) libffi/build
-       cd libffi && $(TAR) -zxf ../ghc-tarballs/libffi/libffi*.tar.gz
+       cat ghc-tarballs/libffi/libffi*.tar.gz | $(GZIP) -d | { cd libffi && $(TAR) -xf - ; }
        mv libffi/libffi-* libffi/build
        chmod +x libffi/ln
        cd libffi/build && "$(PATCH)" -p1 < ../libffi.dllize-3.0.8.patch
@@ -153,6 +154,8 @@ $(libffi_STAMP_CONFIGURE):
 libffi/dist-install/build/ffi.h: $(libffi_STAMP_CONFIGURE) | $$(dir $$@)/.
        "$(CP)" libffi/build/include/ffi.h $@
 
+libffi/dist-install/build/ffitarget.h: $(libffi_STAMP_CONFIGURE) | $$(dir $$@)/.
+       "$(CP)" libffi/build/include/ffitarget.h $@
 
 $(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE) | libffi/dist-install/build/.
        $(MAKE) -C libffi/build MAKEFLAGS=
@@ -204,8 +207,8 @@ $(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD)
 $(libffi_HS_DYN_LIB): $(libffi_DYNAMIC_LIBS) | $$(dir $$@)/.
        "$(CP)" $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
 ifeq "$(darwin_TARGET_OS)" "1"
-       # Ensure library's install name is correct before anyone links with it.
-       install_name_tool -id $(ghclibdir)/$(libffi_HS_DYN_LIB_NAME) $(libffi_HS_DYN_LIB)
+       # Ensure library's install name is correct before anyone links with it.
+       install_name_tool -id $(ghclibdir)/$(libffi_HS_DYN_LIB_NAME) $(libffi_HS_DYN_LIB)
 endif
 
 $(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB)))