ifneq "$(BINDIST)" "YES"
$(libffi_STAMP_CONFIGURE):
- $(RM) -rf $(LIBFFI_DIR) libffi/build
+ "$(RM)" $(RM_OPTS) -r $(LIBFFI_DIR) libffi/build
cd libffi && $(TAR) -zxf tarball/libffi*.tar.gz
mv libffi/libffi-* libffi/build
chmod +x libffi/ln
- cd libffi && $(PATCH) -p0 < libffi.dllize-3.0.6.patch
-
- # This patch is just the resulting delta from running automake, autoreconf, libtoolize --force --copy
- cd libffi && $(PATCH) -p0 < libffi.autotools-update.patch
+ 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) $(SHELL) configure \
- --enable-static=yes \
+ CC=$(WhatGccIsCalled) \
+ CFLAGS="$(SRC_CC_OPTS) -w" \
+ LDFLAGS="$(SRC_LD_OPTS) -w" \
+ "$(SHELL)" configure \
+ --enable-static=yes \
--enable-shared=$(libffi_EnableShared) \
- --host=$(PLATFORM) --build=$(PLATFORM)
+ --host=$(PLATFORM) --build=$(PLATFORM)
# libffi.so needs to be built with the correct soname.
# NOTE: this builds libffi_convience.so with the incorrect
# soname, but we don't need that anyway!
cd libffi && \
- $(CP) build/libtool build/libtool.orig; \
+ "$(CP)" build/libtool build/libtool.orig; \
sed -e s/soname_spec=.*/soname_spec="$(libffi_HS_DYN_LIB_NAME)"/ build/libtool.orig > build/libtool
# We don't want libtool's cygwin hacks
cd libffi && \
- $(CP) build/libtool build/libtool.orig; \
+ "$(CP)" build/libtool build/libtool.orig; \
sed -e s/dlname=\'\$$tdlname\'/dlname=\'\$$dlname\'/ build/libtool.orig > build/libtool
touch $@
libffi/ffi.h: $(libffi_STAMP_CONFIGURE)
- $(CP) libffi/build/include/ffi.h $@
+ "$(CP)" libffi/build/include/ffi.h $@
$(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE)
cd libffi && \
$(MAKE) -C build MAKEFLAGS=; \
(cd build; ./libtool --mode=install cp libffi.la $(TOP)/libffi)
+ touch $@
$(libffi_STATIC_LIB): $(libffi_STAMP_BUILD)
# Rename libffi.a to libHSffi.a
libffi/libHSffi.a libffi/libHSffi_p.a: $(libffi_STATIC_LIB)
- $(CP) $(libffi_STATIC_LIB) libffi/libHSffi.a
- $(CP) $(libffi_STATIC_LIB) libffi/libHSffi_p.a
+ "$(CP)" $(libffi_STATIC_LIB) libffi/libHSffi.a
+ "$(CP)" $(libffi_STATIC_LIB) libffi/libHSffi_p.a
$(eval $(call all-target,libffi,libffi/libHSffi.a libffi/libHSffi_p.a))
libffi/HSffi.o: libffi/libHSffi.a
cd libffi && \
touch empty.c; \
- $(CC) -c empty.c -o HSffi.o
+ "$(CC)" $(SRC_CC_OPTS) -c empty.c -o HSffi.o
$(eval $(call all-target,libffi,libffi/HSffi.o))
# However, the renaming is still required for the import library
# libffi.dll.a.
$(libffi_HS_DYN_LIB).a: libffi/libffi.dll.a
- $(CP) libffi/libffi.dll.a $(libffi_HS_DYN_LIB).a
+ "$(CP)" libffi/libffi.dll.a $(libffi_HS_DYN_LIB).a
$(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB).a))
$(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD)
# Rename libffi.so to libHSffi...so
$(libffi_HS_DYN_LIB): $(libffi_DYNAMIC_LIBS)
- $(CP) $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
+ "$(CP)" $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
$(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB)))
endif