]> git.saurik.com Git - cycript.git/blame - libffi.sh
Allow APR link flags to be configure overridden.
[cycript.git] / libffi.sh
CommitLineData
14db927b
JF
1#!/bin/bash
2
7eaddb7b
JF
3# Cycript - Optimizing JavaScript Compiler/Runtime
4# Copyright (C) 2009-2013 Jay Freeman (saurik)
5
6# GNU General Public License, Version 3 {{{
7#
8# Cycript is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published
10# by the Free Software Foundation, either version 3 of the License,
11# or (at your option) any later version.
12#
13# Cycript is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with Cycript. If not, see <http://www.gnu.org/licenses/>.
20# }}}
21
14db927b
JF
22set -e
23
7eaddb7b
JF
24archs=()
25function arch() {
26 local arch=$1
27 local host=$2
28 local sdk=$3
29 local os=$4
30 shift 4
31
14db927b 32 rm -rf "libffi.${arch}"
7eaddb7b
JF
33 if ! isysroot=$(xcodebuild -sdk "${sdk}" -version Path); then
34 return
35 fi
36
37 archs+=("${arch}")
14db927b 38 mkdir "libffi.${arch}"
7eaddb7b 39
14db927b 40 cd "libffi.${arch}"
7eaddb7b 41 CC="clang -arch ${arch}" CFLAGS="-no-integrated-as -isysroot ${isysroot} -m${os}-version-min=2.0" ../libffi/configure --host="${host}"
14db927b
JF
42 make
43 cd ..
7eaddb7b
JF
44}
45
46arch armv6 arm-apple-darwin10 iphoneos5.1 iphoneos
47arch armv7 arm-apple-darwin10 iphoneos iphoneos
48arch i386 i386-apple-darwin10 iphonesimulator ios-simulator
49
50libffi=()
51for arch in "${archs[@]}"; do
52 libffi+=(libffi."${arch}"/.libs/libffi.a)
14db927b 53done
7eaddb7b
JF
54
55lipo -create -output libffi.a "${libffi[@]}"