]> git.saurik.com Git - cycript.git/blob - ios.sh
Add plt abstraction for ios.sh.
[cycript.git] / ios.sh
1 #!/usr/bin/env bash
2
3 rm -rf sysroot.ios
4 mkdir -p sysroot.ios
5
6 for deb in apr-lib_1.3.3-2 libffi_130618-4 readline_6.0-7; do
7 deb=${deb}_iphoneos-arm.deb
8 [[ -f "${deb}" ]] || wget http://apt.saurik.com/debs/"${deb}"
9 tar=data.tar.lzma
10 ar -x "${deb}" "${tar}"
11 tar -C sysroot.ios -xf "${tar}"
12 rm -f "${tar}"
13 done
14
15 mkdir -p sysroot.ios/usr/include/ffi
16 mv -v sysroot.ios/usr/include/{,ffi/}ffi.h
17
18 plt=iPhoneOS
19 dev=/Developer/Platforms/$plt.platform/Developer
20 sdk=${dev}/SDKs/$plt4.3.sdk
21
22 ln -s /System/Library/Frameworks/WebKit.framework/Versions/A/Headers sysroot.ios/usr/include/WebKit
23
24 mkdir -p sysroot.ios/Library/Frameworks/JavaScriptCore.framework
25 ln -s "${sdk}"/System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore sysroot.ios/Library/Frameworks/JavaScriptCore.framework
26 ln -s /System/Library/Frameworks/JavaScriptCore.framework/Headers sysroot.ios/Library/Frameworks/JavaScriptCore.framework
27
28 export CC=${dev}/usr/bin/gcc
29 export CXX=${dev}/usr/bin/g++
30 export OBJCXX=${dev}/usr/bin/g++
31
32 flags_armv6=()
33 flags_armv6+=(-isysroot "${sdk}")
34
35 flags_armv6+=(-Fsysroot.ios/Library/Frameworks)
36 flags_armv6+=(-Isysroot.ios/usr/include)
37 flags_armv6+=(-Lsysroot.ios/usr/lib)
38
39 flags_armv6+=(-F"${sdk}"/System/Library/PrivateFrameworks)
40 flags_armv6+=(-framework WebCore)
41
42
43 flags=()
44 for flag in "${flags_armv6[@]}"; do
45 flags+=(-Xarch_armv6 "${flag}")
46 done
47
48 cflags=${flags[*]}
49 export CFLAGS=${cflags}
50 export CXXFLAGS=${cflags}
51 export OBJCXXFLAGS=${cflags}
52
53 lflags=()
54 for flag in "${flags[@]}"; do
55 lflags+=("-Xcompiler ${flag}")
56 done
57
58 lflags=${lflags[*]}
59 export LTFLAGS=${lflags}
60
61 ./configure --prefix=/usr "$@"
62
63 make clean
64 make -j ldid=ldid all
65 make arch=iphoneos-arm version=432 dll=dylib depends='apr-lib readline libffi mobilesubstrate' package