X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/79e239bf8e3928255b4dcb472f26a18d91585205..2fad14e52c8cde8c45003a2ebb6907a57ca380e4:/apple-configure.sh diff --git a/apple-configure.sh b/apple-configure.sh index d89d4cf..50b4461 100755 --- a/apple-configure.sh +++ b/apple-configure.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Cycript - Optimizing JavaScript Compiler/Runtime -# Copyright (C) 2009-2014 Jay Freeman (saurik) +# Copyright (C) 2009-2015 Jay Freeman (saurik) # GNU Affero General Public License, Version 3 {{{ # @@ -23,11 +23,6 @@ set -e cd "${0%%/*}" -if [[ ! -e readline.osx/libreadline.a ]]; then - ./apple-readline.sh; fi -if [[ ! -e libffi.a ]]; then - ./libffi.sh; fi - if ! which aclocal; then touch aclocal.m4; fi if ! which autoconf; then @@ -38,6 +33,7 @@ if ! which autoheader; then touch config.h.in; fi flags=("$@") +ccf=(-g0 -O3) function path() { xcodebuild -sdk "$1" -version Path @@ -45,52 +41,64 @@ function path() { xcs=$(xcode-select --print-path) mac=$(path macosx) +xct="${xcs}/Toolchains/XcodeDefault.xctoolchain/usr/lib" + +system=0 function configure() { local dir=$1 local sdk=$2 - local flg=$3 - shift 3 + local arc=$3 + local min=$4 + local ffi=$5 + local cpf=$6 + local ldf=$7 + local obc=$8 + shift 8 + + set -- "$@" --enable-static --with-pic cc=$(xcrun --sdk "${sdk}" -f clang) cxx=$(xcrun --sdk "${sdk}" -f clang++) + + flg="-arch ${arc} ${min}" flg+=" -isysroot $(path "${sdk}")" rm -rf build."${dir}" mkdir build."${dir}" cd build."${dir}" - CC="${cc} ${flg}" CXX="${cxx} ${flg}" OBJCXX="${cxx} ${flg}" \ - ../configure --enable-maintainer-mode "${flags[@]}" --prefix="/usr" "$@" + if "${ffi}"; then + cpf+=" -I../libffi.${arch}/include" + ldf+=" -L../libffi.${arch}/.libs" + fi - cd .. -} + cpf+=" -I../libuv/include" + ldf+=" -L../libuv.${arch}/.libs" -function build() { - local dir=$1 - local sdk=$2 - local flg=$3 - shift 3 + ../configure --enable-maintainer-mode "${flags[@]}" --prefix="/usr" "$@" \ + --with-libclang="-rpath ${xct} ${xct}/libclang.dylib" \ + CC="${cc} ${flg}" CXX="${cxx} ${flg}" OBJCXX="${cxx} ${flg}" \ + CFLAGS="${ccf[*]}" CXXFLAGS="${ccf[*]}" OBJCXXFLAGS="${ccf[*]} ${obc}" \ + CPPFLAGS="${cpf}" LDFLAGS="${ldf}" CY_SYSTEM="$((1<