X-Git-Url: https://git.saurik.com/ldid.git/blobdiff_plain/6212944b8293bb035b4a3fd4bdfd14abdd545a5a..c83a840d100ea860766a58073493608b1729dabb:/make.sh diff --git a/make.sh b/make.sh index 0be7611..9c5361b 100755 --- a/make.sh +++ b/make.sh @@ -1,2 +1,90 @@ #!/bin/bash -g++ -arch i386 -arch x86_64 -o ldid ldid.cpp -I. -x c lookup2.c sha1.c + +set -e +shopt -s extglob + +if [[ $# == 0 ]]; then + ios=false +else + ios=$1 + shift +fi + +export DEVELOPER_DIR=/Applications/Xcode-5.1.1.app + +os=() + +if "${ios}"; then + +out=ios +flags=(cycc -- -miphoneos-version-min=2.0 -arch armv6 -arch arm64) + +flags+=(-Xarch_armv6 -Isysroot32/usr/include) +flags+=(-Xarch_arm64 -Isysroot64/usr/include) + +flags+=(-Xarch_armv6 -Lsysroot32/usr/lib) +flags+=(-Xarch_arm64 -Lsysroot64/usr/lib) + +static=false +flags+=(-framework CoreFoundation) + +flags+=(-lplist) +flags+=(-lcrypto) + +else + +out=out + +if which xcrun &>/dev/null; then + flags=(xcrun -sdk macosx g++) + flags+=(-mmacosx-version-min=10.4) + + for arch in i386 x86_64; do + flags+=(-arch "${arch}") + done +else + flags=(g++) +fi + +#flags+=(-L../../lib-osx/openssl) + +# XXX: cannot redistribute +static=true +flags+=(-Isysroot64/usr/include) +flags+=(-lcrypto) +#flags+=(-Wl,/usr/lib/libcrypto.42.dylib) + +fi + +sdk=$(xcodebuild -sdk iphoneos -version Path) + +flags+=(-I.) + +if ${static}; then + +flags+=(-I"${sdk}"/usr/include/libxml2) +flags+=(-Ilibplist/include) +flags+=(-Ilibplist/libcnary/include) + +for c in libplist/libcnary/!(cnary).c libplist/src/*.c; do + o=${c%.c}.o + o="${out}"/${o##*/} + os+=("${o}") + if [[ "${c}" -nt "${o}" ]]; then + "${flags[@]}" -c -o "${o}" -x c "${c}" + fi +done + +fi + +flags+=("$@") + +mkdir -p "${out}" +set -x + +"${flags[@]}" -O3 -g0 -c -std=c++11 -o "${out}"/ldid.o ldid.cpp +"${flags[@]}" -O3 -g0 -o "${out}"/ldid "${out}"/ldid.o "${os[@]}" -x c lookup2.c -lxml2 -framework Security + +if ! "${ios}"; then + ln -sf out/ldid . +fi