#!/bin/bash
noinstall=0
train=
while [ $ if [ "${1/=*/}" = "--build" ]; then
build="${1/*=/}"
elif [ "${1/=*/}" = "--train" ]; then
train="${1/*=/}"
elif [ "${1/=*/}" = "--sdk" ]; then
sdk="${1/*=/}"
elif [ "$1" = "--noinstall" ]; then
noinstall=1
elif [ "${1/=*/}" = "--arch" ]; then
arch="${1/*=/}"
elif [ "$1" = "--nightlies" ]; then
nightlies=1
else
echo "install: [--sdk=macosx10.6] [--build=10A432] [--train=SnowLeopard] [--noinstall] [--arch=armv7s] [--nightlies]" 2>&1
exit 1
fi
shift
done
if [ $EUID -ne 0 ]; then
echo "install: script must be run as root" 2>&1
exit 1
fi
if [ -n "$sdk" ]; then
export SDKROOT="$(xcodebuild -version -sdk "$sdk" Path)"
fi
if [ -n "$nightlies" ]; then
export BSDTESTS_NIGHTLIES=1
export TMPDIR="/tmp"
fi
if [ -z "$build" ]; then
if [ -n "$SDKROOT" ]; then
build="$(xcodebuild -version -sdk "$SDKROOT" ProductBuildVersion)"
else
build="$(sw_vers -buildVersion)"
fi
fi
if [ -n "$BSDTESTS_NIGHTLIES" ]; then
ROOTS="$(mktemp -d -t "LibcTestsRoots.$train$build")"
else
ROOTS=/var/tmp/LibcTestsRoots."$train$build"
fi
: ${DSTROOT:="$ROOTS/LibcTests~dst"}
if [ -z "$DSTROOT" -o "$DSTROOT" = "/" ]; then
echo "install: DSTROOT = \"$DSTROOT\"" 2>&1
exit 1
fi
TESTROOTS="$ROOTS/libctest.roots/bsdtests.libc"
if [ -n "$SDKROOT" -o "$build" != "$(sw_vers -buildVersion)" ]; then
noinstall=1
fi
if [ -n "$arch" ]; then
ARCHS="$arch"
else
ARCHS="$(xcrun lipo -detailed_info "$SDKROOT"/usr/lib/libSystem.dylib | \
awk '/^architecture /'"$([ -z "$SDKROOT" ] && \
echo ' && !/armv6$/')"' {sub("ppc7400", "ppc"); ORS=" "; print $2}')"
fi
set -ex
mkdir -p "$ROOTS"
if [ -z "$BSDTESTS_NIGHTLIES" ]; then
rm -rf "$(dirname $TESTROOTS)"
fi
xcodebuild install ARCHS="$ARCHS" \
SYMROOT="$TESTROOTS~sym" OBJROOT="$TESTROOTS~obj" DSTROOT="$TESTROOTS~dst" \
$([ -n "$SDKROOT" ] && echo "SDKROOT=$SDKROOT")
if [ $noinstall -eq 0 ]; then
darwinup install "$TESTROOTS~dst"
else
mkdir -p "$DSTROOT"
ditto "$TESTROOTS~dst" "$DSTROOT"
set -
echo "TEST_ROOT: $DSTROOT"
fi