]> git.saurik.com Git - apple/libc.git/blob - tests/install.sh
fcdfec078a0d15d3b7fdc316320f186983736efb
[apple/libc.git] / tests / install.sh
1 #!/bin/bash
2
3 ## Install results in /
4 noinstall=0
5 train=
6
7 while [ $# -gt 0 ]; do
8 if [ "${1/=*/}" = "--build" ]; then
9 build="${1/*=/}"
10 elif [ "${1/=*/}" = "--train" ]; then
11 train="${1/*=/}"
12 elif [ "${1/=*/}" = "--sdk" ]; then
13 sdk="${1/*=/}"
14 elif [ "$1" = "--noinstall" ]; then
15 noinstall=1
16 elif [ "${1/=*/}" = "--arch" ]; then
17 arch="${1/*=/}"
18 elif [ "$1" = "--nightlies" ]; then
19 nightlies=1
20 else
21 echo "install: [--sdk=macosx10.6] [--build=10A432] [--train=SnowLeopard] [--noinstall] [--arch=armv7s] [--nightlies]" 2>&1
22 exit 1
23 fi
24 shift
25 done
26
27 if [ $EUID -ne 0 ]; then
28 echo "install: script must be run as root" 2>&1
29 exit 1
30 fi
31
32 if [ -n "$sdk" ]; then
33 export SDKROOT="$(xcodebuild -version -sdk "$sdk" Path)"
34 fi
35
36 if [ -n "$nightlies" ]; then
37 export BSDTESTS_NIGHTLIES=1
38 export TMPDIR="/tmp"
39 fi
40
41 if [ -z "$build" ]; then
42 if [ -n "$SDKROOT" ]; then
43 build="$(xcodebuild -version -sdk "$SDKROOT" ProductBuildVersion)"
44 else
45 build="$(sw_vers -buildVersion)"
46 fi
47 fi
48
49 # if [ -z "$train" -a -n "$SDKROOT" -a -d /Volumes/Build/Views ]; then
50 # train="$(find /Volumes/Build/Views/*/Updates -maxdepth 1 -type d -name "*$build" | \
51 # sed "s#.*/\\(.*\\)$build#\\1#")"
52 # fi
53 # if [ -z "$train" ]; then
54 # train="$(~rc/bin/getTrainForBuild --quiet "$build")"
55 # fi
56
57 if [ -n "$BSDTESTS_NIGHTLIES" ]; then
58 ROOTS="$(mktemp -d -t "LibcTestsRoots.$train$build")"
59 else
60 ROOTS=/var/tmp/LibcTestsRoots."$train$build"
61 fi
62 : ${DSTROOT:="$ROOTS/LibcTests~dst"}
63
64 if [ -z "$DSTROOT" -o "$DSTROOT" = "/" ]; then
65 echo "install: DSTROOT = \"$DSTROOT\"" 2>&1
66 exit 1
67 fi
68 TESTROOTS="$ROOTS/libctest.roots/bsdtests.libc"
69
70 # Building for another version implies noinstall
71 if [ -n "$SDKROOT" -o "$build" != "$(sw_vers -buildVersion)" ]; then
72 noinstall=1
73 fi
74
75 if [ -n "$arch" ]; then
76 ARCHS="$arch"
77 else
78 ARCHS="$(xcrun lipo -detailed_info "$SDKROOT"/usr/lib/libSystem.dylib | \
79 awk '/^architecture /'"$([ -z "$SDKROOT" ] && \
80 echo ' && !/armv6$/')"' {sub("ppc7400", "ppc"); ORS=" "; print $2}')"
81 fi
82
83 set -ex
84 mkdir -p "$ROOTS"
85 if [ -z "$BSDTESTS_NIGHTLIES" ]; then
86 rm -rf "$(dirname $TESTROOTS)"
87 fi
88
89 xcodebuild install ARCHS="$ARCHS" \
90 SYMROOT="$TESTROOTS~sym" OBJROOT="$TESTROOTS~obj" DSTROOT="$TESTROOTS~dst" \
91 $([ -n "$SDKROOT" ] && echo "SDKROOT=$SDKROOT")
92
93 if [ $noinstall -eq 0 ]; then
94 darwinup install "$TESTROOTS~dst"
95 else
96 mkdir -p "$DSTROOT"
97 ditto "$TESTROOTS~dst" "$DSTROOT"
98 set -
99 echo "TEST_ROOT: $DSTROOT"
100 # if [ -n "$SDKROOT" ]; then
101 # mkdir -p "$DSTROOT"/usr/share/dict
102 # ln -f {,"$DSTROOT"}/usr/share/dict/words
103 # fi
104 fi