X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=libffi%2Fghc.mk;h=eaffa3fc7fdd24ee1df813f23cfc1073372444ce;hp=a41512a983bd172d534582f3c28a6403eec6427d;hb=190b2d90f92f61eb802275729106b5d9fb9a7a7c;hpb=5b9c4a01ed7539b4f894c491178962ecb7295c4e diff --git a/libffi/ghc.mk b/libffi/ghc.mk index a41512a..eaffa3f 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -36,19 +36,6 @@ PLATFORM := $(shell echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g') -# 2007-09-26 -# set -o igncr -# is not a valid command on non-Cygwin-systems. -# Let it fail silently instead of aborting the build. -# -# 2007-07-05 -# We do -# set -o igncr; export SHELLOPTS -# here as otherwise checking the size of limbs -# makes the build fall over on Cygwin. See the thread -# http://www.cygwin.com/ml/cygwin/2006-12/msg00011.html -# for more details. - # 2007-07-05 # Passing # as_ln_s='cp -p' @@ -86,7 +73,10 @@ 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) +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 @@ -113,21 +103,23 @@ endif ifneq "$(BINDIST)" "YES" $(libffi_STAMP_CONFIGURE): - "$(RM)" $(RM_OPTS) -r $(LIBFFI_DIR) libffi/build - cat ghc-tarballs/libffi/libffi*.tar.gz | $(GZIP) -d | { cd libffi && $(TAR) -xf - ; } + "$(RM)" $(RM_OPTS_REC) $(LIBFFI_DIR) libffi/build + cat ghc-tarballs/libffi/libffi*.tar.gz | $(GZIP_CMD) -d | { cd libffi && $(TAR_CMD) -xf - ; } mv libffi/libffi-* libffi/build chmod +x libffi/ln # 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 cd libffi && \ - (set -o igncr 2>/dev/null) && set -o igncr; export SHELLOPTS; \ PATH=`pwd`:$$PATH; \ export PATH; \ cd build && \ CC=$(WhatGccIsCalled) \ - CFLAGS="$(SRC_CC_OPTS) $(CONF_CC_OPTS) -w" \ - LDFLAGS="$(SRC_LD_OPTS) $(CONF_LD_OPTS) -w" \ + LD=$(LD) \ + AR=$(AR) \ + NM=$(NM) \ + CFLAGS="$(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE1) -w" \ + LDFLAGS="$(SRC_LD_OPTS) $(CONF_LD_OPTS_STAGE1) -w" \ "$(SHELL)" configure \ --enable-static=yes \ --enable-shared=$(libffi_EnableShared) \ @@ -166,6 +158,8 @@ endif touch $@ $(libffi_STATIC_LIB): $(libffi_STAMP_BUILD) + @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) "$(CP)" $(libffi_STATIC_LIB) libffi/dist-install/build/libHSffi.a @@ -181,13 +175,15 @@ $(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) -c empty.c -o HSffi.o + "$(CC)" $(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 $@ || { echo "$< exits, but $@ does not."; echo "Suggest removing $<."; exit 1; } + # Windows libtool creates .dll, and as we already patched that # there is no need to copy from libffi.dll to libHSffi...dll. # However, the renaming is still required for the import library @@ -199,6 +195,8 @@ $(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB).a)) else $(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD) + @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 $$@)/. "$(CP)" $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)