X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/7be938d9e7519557b57cf4f18f2afff243dce3ff..2c4a8bb6222b88ff96fbf25372179646ce15f706:/apple-configure.sh?ds=sidebyside diff --git a/apple-configure.sh b/apple-configure.sh index 457cbf6..f22fc0b 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-2015 Jay Freeman (saurik) +# Cycript - The Truly Universal Scripting Language +# Copyright (C) 2009-2016 Jay Freeman (saurik) # GNU Affero General Public License, Version 3 {{{ # @@ -23,21 +23,8 @@ 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 - touch configure.ac; fi -if ! which automake; then - touch Makefile.in; fi -if ! which autoheader; then - touch config.h.in; fi - flags=("$@") +ccf=(-g0 -O3) function path() { xcodebuild -sdk "$1" -version Path @@ -45,58 +32,72 @@ function path() { xcs=$(xcode-select --print-path) mac=$(path macosx) +xct="${xcs}/Toolchains/XcodeDefault.xctoolchain/usr/lib" + +system=1 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<