Rename some variables from FOO to FOO_CMD
[ghc-hetmet.git] / libffi / ghc.mk
index 1216a32..a8c72be 100644 (file)
 
 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'
@@ -66,7 +53,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 +73,8 @@ 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)
 else
 libffi_DYNAMIC_LIBS = libffi/dist-install/build/libffi.so \
                       libffi/dist-install/build/libffi.so.5
@@ -112,23 +101,21 @@ 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
+       "$(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
-       cd libffi/build && "$(PATCH)" -p1 < ../libffi.dllize-3.0.8.patch
-       # This patch is just the resulting delta from running
-       # automake && autoreconf && libtoolize --force --copy
-       cd libffi/build && "$(PATCH)" -p1 < ../libffi.autotools-update-3.0.8.patch
 
 # 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) \
+           LD=$(LD) \
+           AR=$(AR) \
+           NM=$(NM) \
         CFLAGS="$(SRC_CC_OPTS) $(CONF_CC_OPTS) -w" \
         LDFLAGS="$(SRC_LD_OPTS) $(CONF_LD_OPTS) -w" \
         "$(SHELL)" configure \
@@ -153,6 +140,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 +193,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)))