]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/bash | |
2 | ||
3 | set -e | |
4 | shopt -s extglob | |
5 | ||
6 | if [[ $# == 0 ]]; then | |
7 | ios=false | |
8 | else | |
9 | ios=$1 | |
10 | shift | |
11 | fi | |
12 | ||
13 | if "${ios}"; then | |
14 | ||
15 | out=ios | |
16 | sudo xcode-select --switch /Applications/Xcode-4.6.3.app | |
17 | flags=(cycc -- -miphoneos-version-min=2.0 -arch armv6) | |
18 | ||
19 | else | |
20 | ||
21 | out=out | |
22 | sudo xcode-select --switch /Applications/Xcode-5.1.1.app | |
23 | ||
24 | if which xcrun &>/dev/null; then | |
25 | flags=(xcrun -sdk macosx g++) | |
26 | flags+=(-mmacosx-version-min=10.4) | |
27 | ||
28 | for arch in i386 x86_64; do | |
29 | flags+=(-arch "${arch}") | |
30 | done | |
31 | else | |
32 | flags=(g++) | |
33 | fi | |
34 | ||
35 | fi | |
36 | ||
37 | sdk=$(xcodebuild -sdk iphoneos -version Path) | |
38 | ||
39 | flags+=(-I.) | |
40 | flags+=(-I"${sdk}"/usr/include/libxml2) | |
41 | flags+=(-Ilibplist/include) | |
42 | flags+=(-Ilibplist/libcnary/include) | |
43 | ||
44 | flags+=("$@") | |
45 | ||
46 | mkdir -p "${out}" | |
47 | os=() | |
48 | ||
49 | for c in libplist/libcnary/!(cnary).c libplist/src/*.c; do | |
50 | o=${c%.c}.o | |
51 | o="${out}"/${o##*/} | |
52 | os+=("${o}") | |
53 | if [[ "${c}" -nt "${o}" ]]; then | |
54 | "${flags[@]}" -c -o "${o}" -x c "${c}" | |
55 | fi | |
56 | done | |
57 | ||
58 | set -x | |
59 | ||
60 | "${flags[@]}" -c -std=c++11 -o "${out}"/ldid.o ldid.cpp | |
61 | "${flags[@]}" -o "${out}"/ldid "${out}"/ldid.o "${os[@]}" -x c lookup2.c -lxml2 -framework Security -lcrypto | |
62 | ||
63 | if ! "${ios}"; then | |
64 | ln -sf out/ldid . | |
65 | fi |