X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=libffi%2Fghc.mk;h=1216a3238f450809fd122503c1e4cdfc4c63b4ed;hp=440fc741f94ab63cf74cd05cc82625e35b411216;hb=0af418beb1aadcae1df036240151556895d00321;hpb=142df90ad9ec1155129a01949775bf992c75f08f diff --git a/libffi/ghc.mk b/libffi/ghc.mk index 440fc74..1216a32 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -84,9 +84,12 @@ libffi_DYNAMIC_PROG = $(libffi_HS_DYN_LIB).a 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" @@ -150,9 +153,17 @@ $(libffi_STAMP_CONFIGURE): libffi/dist-install/build/ffi.h: $(libffi_STAMP_CONFIGURE) | $$(dir $$@)/. "$(CP)" libffi/build/include/ffi.h $@ + $(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE) | libffi/dist-install/build/. $(MAKE) -C libffi/build MAKEFLAGS= cd libffi/build && ./libtool --mode=install cp libffi.la $(TOP)/libffi/dist-install/build + + # We actually want both static and dllized libraries, because we build + # the runtime system both ways. libffi_convenience.a is the static version. +ifeq "$(Windows)" "YES" + cp libffi/build/.libs/libffi_convenience.a $(libffi_STATIC_LIB) +endif + touch $@ $(libffi_STATIC_LIB): $(libffi_STAMP_BUILD) @@ -192,6 +203,10 @@ $(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD) # 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