92 lines
2.9 KiB
Plaintext
92 lines
2.9 KiB
Plaintext
Index: libffi/ChangeLog
|
|
===================================================================
|
|
--- libffi.orig/ChangeLog
|
|
+++ libffi/ChangeLog
|
|
@@ -87,7 +87,7 @@
|
|
* src/prep_cif.c (UNLIKELY, LIKELY): Define.
|
|
(initialize_aggregate): Check for bad types.
|
|
|
|
-2011-02-09 Landon Fuller <landonf@macports.org>
|
|
+2011-02-09 Landon Fuller <landonf@plausible.coop>
|
|
|
|
* Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
|
|
src/arm/trampoline.S.
|
|
Index: libffi/build-ios.sh
|
|
===================================================================
|
|
--- libffi.orig/build-ios.sh
|
|
+++ libffi/build-ios.sh
|
|
@@ -2,11 +2,66 @@
|
|
|
|
PLATFORM_IOS=/Developer/Platforms/iPhoneOS.platform/
|
|
PLATFORM_IOS_SIM=/Developer/Platforms/iPhoneSimulator.platform/
|
|
-SDK_IOS_VERSION="4.1"
|
|
+SDK_IOS_VERSION="4.2"
|
|
+MIN_IOS_VERSION="3.0"
|
|
+OUTPUT_DIR="universal-ios"
|
|
|
|
-mkdir -p "build-ios"
|
|
-pushd "build-ios"
|
|
-export CC="${PLATFORM_IOS}"/Developer/usr/bin/gcc-4.2
|
|
-export CFLAGS="-arch armv6 -isysroot ${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/"
|
|
-../configure --host=arm-apple-darwin10 && make
|
|
-popd
|
|
+build_target () {
|
|
+ local platform=$1
|
|
+ local sdk=$2
|
|
+ local arch=$3
|
|
+ local triple=$4
|
|
+ local builddir=$5
|
|
+
|
|
+ mkdir -p "${builddir}"
|
|
+ pushd "${builddir}"
|
|
+ export CC="${platform}"/Developer/usr/bin/gcc-4.2
|
|
+ export CFLAGS="-arch ${arch} -isysroot ${sdk} -miphoneos-version-min=${MIN_IOS_VERSION}"
|
|
+ ../configure --host=${triple} && make
|
|
+ popd
|
|
+}
|
|
+
|
|
+# Build all targets
|
|
+build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv6 arm-apple-darwin10 armv6-ios
|
|
+build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv7 arm-apple-darwin10 armv7-ios
|
|
+build_target "${PLATFORM_IOS_SIM}" "${PLATFORM_IOS_SIM}/Developer/SDKs/iPhoneSimulator${SDK_IOS_VERSION}.sdk/" i386 i386-apple-darwin10 i386-ios-sim
|
|
+
|
|
+# Create universal output directories
|
|
+mkdir -p "${OUTPUT_DIR}"
|
|
+mkdir -p "${OUTPUT_DIR}/include"
|
|
+mkdir -p "${OUTPUT_DIR}/include/armv6"
|
|
+mkdir -p "${OUTPUT_DIR}/include/armv7"
|
|
+mkdir -p "${OUTPUT_DIR}/include/i386"
|
|
+
|
|
+# Create the universal binary
|
|
+lipo -create armv6-ios/.libs/libffi.a armv7-ios/.libs/libffi.a i386-ios-sim/.libs/libffi.a -output "${OUTPUT_DIR}/libffi.a"
|
|
+
|
|
+# Copy in the headers
|
|
+copy_headers () {
|
|
+ local src=$1
|
|
+ local dest=$2
|
|
+
|
|
+ # Fix non-relative header reference
|
|
+ sed 's/<ffitarget.h>/"ffitarget.h"/' < "${src}/include/ffi.h" > "${dest}/ffi.h"
|
|
+ cp "${src}/include/ffitarget.h" "${dest}"
|
|
+}
|
|
+
|
|
+copy_headers armv6-ios "${OUTPUT_DIR}/include/armv6"
|
|
+copy_headers armv7-ios "${OUTPUT_DIR}/include/armv7"
|
|
+copy_headers i386-ios-sim "${OUTPUT_DIR}/include/i386"
|
|
+
|
|
+# Create top-level header
|
|
+(
|
|
+cat << EOF
|
|
+#ifdef __arm__
|
|
+ #include <arm/arch.h>
|
|
+ #ifdef _ARM_ARCH_6
|
|
+ #include "include/armv6/ffi.h"
|
|
+ #elif _ARM_ARCH_7
|
|
+ #include "include/armv7/ffi.h"
|
|
+ #endif
|
|
+#elif defined(__i386__)
|
|
+ #include "include/i386/ffi.h"
|
|
+#endif
|
|
+EOF
|
|
+) > "${OUTPUT_DIR}/ffi.h"
|