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)
+else
libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi.so \
- libffi/dist-install/build/libffi.so.5 \
- libffi/dist-install/build/libffi.so.5.0.9
+ libffi/dist-install/build/libffi.so.5
+endif
endif
ifeq "$(BuildSharedLibs)" "YES"
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
# Rename libffi.so to libHSffi...so
$(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)
+endif
$(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB)))
endif