X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=libffi%2Fghc.mk;h=3e00db2f5fd5eeac20e21cc3821cf30d2a5952c3;hb=979c11345ee532a4fc56aab54f51d2924c0ea841;hp=440fc741f94ab63cf74cd05cc82625e35b411216;hpb=142df90ad9ec1155129a01949775bf992c75f08f;p=ghc-hetmet.git diff --git a/libffi/ghc.mk b/libffi/ghc.mk index 440fc74..3e00db2 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -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 \ @@ -84,9 +85,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/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 \ - libffi/dist-install/build/libffi.so.5.0.9 + libffi/dist-install/build/libffi.so.5 +endif endif ifeq "$(BuildSharedLibs)" "YES" @@ -110,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 @@ -150,9 +154,19 @@ $(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= 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 +206,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