]>
git.saurik.com Git - cycript.git/blob - xcode.sh
f6ab53404d9f40bb858264002c4f7fc814097ca3
   3 # Cycript - Optimizing JavaScript Compiler/Runtime 
   4 # Copyright (C) 2009-2013  Jay Freeman (saurik) 
   6 # GNU General Public License, Version 3 {{{ 
   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. 
  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. 
  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/>. 
  26 if [[ ! -e readline
/libreadline.a 
]]; then 
  28 if [[ ! -e libffi.a 
]]; then 
  31 if ! which aclocal
; then 
  33 if ! which autoconf
; then 
  34     touch configure.ac
; fi 
  35 if ! which automake
; then 
  37 if ! which autoheader
; then 
  43     xcodebuild 
-sdk "$1" -version Path
 
  46 xcs
=$(xcode-select --print-path) 
  49 function configure
() { 
  55     cc
=$(xcrun --sdk "${sdk}" -f clang) 
  56     cxx
=$(xcrun --sdk "${sdk}" -f clang++) 
  57     flg
+=" -isysroot $(path "${sdk}")" 
  63     CC
="${cc} ${flg}" CXX
="${cxx} ${flg}" OBJCXX
="${cxx} ${flg}" \
 
  64         ..
/configure 
--enable-maintainer-mode "${flags[@]}" --prefix="/usr" "$@" 
  75     configure 
"${dir}" "${sdk}" "${flg}" "$@" --enable-static --with-pic 
  78 for arch 
in i386 x86_64
; do 
  79     build 
"osx-${arch}" "${mac}" "-arch ${arch} -mmacosx-version-min=10.6" \
 
  80         CPPFLAGS
="-I../readline" LDFLAGS
="-L../readline" 
  83 for arch 
in i386 x86_64
; do 
  84     build 
"sim-${arch}" iphonesimulator 
"-arch ${arch} -mios-simulator-version-min=4.0" \
 
  85         OBJCXXFLAGS
="-fobjc-abi-version=2 -fobjc-legacy-dispatch" \
 
  86         CPPFLAGS
="-I../libffi.${arch}/include" \
 
  91 for arch 
in armv6 armv7 armv7s arm64
; do 
  92     cpf
="-I../libffi.${arch}/include" 
  96     if [[ ${arch} != armv6 
]]; then 
  97         flg
+=(--disable-console) 
  99         flg
+=(LTLIBGCC
="-lgcc_s.1") 
 100         cpf
+=" -include ${PWD}/xcode.h" 
 101         cpf
+=" -mllvm -arm-reserve-r9" 
 102         cpf
+=" -I../sysroot.ios/usr/include" 
 103         ldf
+=" -L../sysroot.ios/usr/lib" 
 106     if [[ ${arch} == arm64 
]]; then 
 113     build 
"ios-${arch}" iphoneos 
"-arch ${arch} -miphoneos-version-min=${min}" --host=arm
-apple-darwin10 \
 
 114         CPPFLAGS
="${cpf}" LDFLAGS
="${ldf}" "${flg[@]}" --host=arm
-apple-darwin10