]>
git.saurik.com Git - cycript.git/blob - apple-libffi.sh
3 # Cycript - Optimizing JavaScript Compiler/Runtime
4 # Copyright (C) 2009-2015 Jay Freeman (saurik)
6 # GNU Affero General Public License, Version 3 {{{
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU Affero General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU Affero General Public License for more details.
18 # You should have received a copy of the GNU Affero General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
33 rm -rf "libffi.${arch}"
34 if ! isysroot
=$(xcodebuild -sdk "${sdk}" -version Path); then
39 mkdir "libffi.${arch}"
42 flags
+=(-isysroot "${isysroot}")
43 flags
+=(-m${os}-version-min="${min}")
44 flags
+=(-DPAGE_MAX_SIZE=16384 -DPAGE_MAX_SHIFT=14)
45 flags
+=(-fno-stack-protector)
48 if [[ ${arch} == arm
* && ${arch} != arm64
]]; then
53 CC
="clang -arch ${arch}" CXX
="clang++ -arch ${arch}" CFLAGS
="${flags[*]}" CPPFLAGS
="${flags[*]} $*" ..
/libffi
/configure
--host="${host}"
58 arch armv6 arm
-apple-darwin10 iphoneos iphoneos
2.0 -mllvm -arm-reserve-r9
59 arch armv7 arm
-apple-darwin10 iphoneos iphoneos
2.0
60 arch armv7s arm
-apple-darwin10 iphoneos iphoneos
2.0
61 arch arm64 aarch64
-apple-darwin11 iphoneos iphoneos
2.0
63 arch i386 i386
-apple-darwin10 iphonesimulator ios
-simulator 4.0
64 arch x86_64 x86_64
-apple-darwin11 iphonesimulator ios
-simulator 4.0
67 for arch
in "${archs[@]}"; do
68 a
=libffi.
"${arch}"/.libs
/libffi.a
69 # sectionForAddress(...) address not in any section file '...' for architecture i386
70 ar m
"${a}" src
/prep_cif.o
74 lipo
-create -output libffi.a
"${libffi[@]}"