From 7eaddb7be8ae4238b2388f588c12a5a78e2587a9 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sat, 7 Sep 2013 03:45:00 -0700 Subject: [PATCH] Finish new libffi and readline compilation scripts. --- .gitignore | 2 +- .gitmodules | 3 +++ libffi.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++-- readline | 1 + readline.sh | 13 +------------ 5 files changed, 51 insertions(+), 15 deletions(-) create mode 160000 readline diff --git a/.gitignore b/.gitignore index 85e4c3c..4592ae9 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,4 @@ aclocal.m4 stamp-h1 readline-6.2 readline-6.2.tar.gz -libffi.arm* +libffi.* diff --git a/.gitmodules b/.gitmodules index 206b1cb..09636a0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "libffi"] path = libffi url = git://github.com/atgreen/libffi.git +[submodule "readline"] + path = readline + url = git://git.savannah.gnu.org/readline.git diff --git a/libffi.sh b/libffi.sh index b67bc71..96e93f4 100755 --- a/libffi.sh +++ b/libffi.sh @@ -1,12 +1,55 @@ #!/bin/bash +# Cycript - Optimizing JavaScript Compiler/Runtime +# Copyright (C) 2009-2013 Jay Freeman (saurik) + +# GNU General Public License, Version 3 {{{ +# +# Cycript is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# Cycript is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Cycript. If not, see . +# }}} + set -e -for arch in armv6 armv7; do +archs=() +function arch() { + local arch=$1 + local host=$2 + local sdk=$3 + local os=$4 + shift 4 + rm -rf "libffi.${arch}" + if ! isysroot=$(xcodebuild -sdk "${sdk}" -version Path); then + return + fi + + archs+=("${arch}") mkdir "libffi.${arch}" + cd "libffi.${arch}" - CC="clang -arch ${arch}" CFLAGS="-no-integrated-as -isysroot $(xcodebuild -sdk iphoneos5.1 -version Path) -miphoneos-version-min=2.0" ../libffi/configure --host=arm-apple-darwin10 + CC="clang -arch ${arch}" CFLAGS="-no-integrated-as -isysroot ${isysroot} -m${os}-version-min=2.0" ../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 + +libffi=() +for arch in "${archs[@]}"; do + libffi+=(libffi."${arch}"/.libs/libffi.a) done + +lipo -create -output libffi.a "${libffi[@]}" diff --git a/readline b/readline new file mode 160000 index 0000000..9922d2d --- /dev/null +++ b/readline @@ -0,0 +1 @@ +Subproject commit 9922d2d7608ea86ff9e42aca0d3342a92748873f diff --git a/readline.sh b/readline.sh index d71ead3..7448003 100755 --- a/readline.sh +++ b/readline.sh @@ -21,20 +21,9 @@ set -e -version=$1 -# XXX: verify version - -readline=readline-${version} arch="-arch i386 -arch x86_64" -rm -f "${readline}".tar.gz -rm -rf "${readline}" - -curl -O ftp://ftp.cwru.edu/pub/bash/"${readline}".tar.gz -tar -zxf "${readline}".tar.gz - -cd "${readline}" - +cd readline CFLAGS="-g -O2 ${arch}" ./configure --disable-shared --enable-static make ln -s . readline -- 2.47.2