]> git.saurik.com Git - cycript.git/blobdiff - libffi.sh
Unknown block arguments can decode to NSBlock *.
[cycript.git] / libffi.sh
index 96e93f498218eaabe7c4cdb3045dbc3596c1d2dd..fa01534cc3bb60f94fe99675c7988acaac19e128 100755 (executable)
--- a/libffi.sh
+++ b/libffi.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Cycript - Optimizing JavaScript Compiler/Runtime
 # Copyright (C) 2009-2013  Jay Freeman (saurik)
@@ -27,7 +27,8 @@ function arch() {
     local host=$2
     local sdk=$3
     local os=$4
-    shift 4
+    local min=$5
+    shift 5
 
     rm -rf "libffi.${arch}"
     if ! isysroot=$(xcodebuild -sdk "${sdk}" -version Path); then
@@ -37,15 +38,30 @@ function arch() {
     archs+=("${arch}")
     mkdir "libffi.${arch}"
 
+    flags=()
+    flags+=(-isysroot "${isysroot}")
+    flags+=(-m${os}-version-min="${min}")
+    flags+=(-no-integrated-as)
+    flags+=(-fno-stack-protector)
+    flags+=(-O3 -g3)
+
+    if [[ ${arch} == arm* && ${arch} != arm64 ]]; then
+        flags+=(-mthumb)
+    fi
+
     cd "libffi.${arch}"
-    CC="clang -arch ${arch}" CFLAGS="-no-integrated-as -isysroot ${isysroot} -m${os}-version-min=2.0" ../libffi/configure --host="${host}"
+    CC="clang -arch ${arch}" CFLAGS="${flags[*]}" CPPFLAGS="${flags[*]} $*" ../libffi/configure --host="${host}"
     make
     cd ..
 }
 
-arch armv6 arm-apple-darwin10 iphoneos5.1 iphoneos
-arch armv7 arm-apple-darwin10 iphoneos iphoneos
-arch i386 i386-apple-darwin10 iphonesimulator ios-simulator
+arch armv6 arm-apple-darwin10 iphoneos iphoneos 2.0 -mllvm -arm-reserve-r9
+arch armv7 arm-apple-darwin10 iphoneos iphoneos 2.0
+arch armv7s arm-apple-darwin10 iphoneos iphoneos 2.0
+arch arm64 aarch64-apple-darwin11 iphoneos iphoneos 2.0
+
+arch i386 i386-apple-darwin10 iphonesimulator ios-simulator 4.0
+arch x86_64 x86_64-apple-darwin11 iphonesimulator ios-simulator 4.0
 
 libffi=()
 for arch in "${archs[@]}"; do