--- /dev/null
+#!/bin/bash
+
+if [ $EUID -ne 0 ]; then
+ echo "install script must be run as root" 2>&1
+ exit 1
+fi
+
+## Copy Libsystem pieces from ~rc
+copylibs=0
+## Install results in /
+noinstall=0
+build=$(sw_vers -buildVersion)
+train=$(~rc/bin/getTrainForBuild --quiet "$build")
+
+while [ $# -gt 0 ]; do
+ if [ "${1/=*/}" = "--build" ]; then
+ build="${1/*=/}"
+ elif [ "$1" = "--noinstall" ]; then
+ noinstall=1
+ elif [ "$1" = "--copylibs" ]; then
+ copylibs=1
+ else
+ echo "install: [--build=10A400] [--noinstall] [--copylibs]" 2>&1
+ exit 1
+ fi
+ shift
+done
+
+ROOTS=/var/tmp/GCDRoots."$build"
+
+# Building for another version implies copylibs and noinstall
+if [ "$build" != "$(sw_vers -buildVersion)" ]; then
+ copylibs=1
+ noinstall=1
+fi
+
+set -ex
+mkdir -p "$ROOTS"
+
+function BUILDIT() {
+ ~rc/bin/buildit -arch i386 -arch ppc -arch x86_64 -arch armv6 \
+ -release "$train" -rootsDirectory "$ROOTS" "$@" .
+}
+
+BUILDIT -project libdispatch -merge / -noverify
+
+if [ $copylibs = 1 ]; then
+ ALTUSRLOCALLIBSYSTEM="$ROOTS"/system
+ mkdir -p "$ALTUSRLOCALLIBSYSTEM"
+ export ALTUSRLOCALLIBSYSTEM
+ ./install_Libsystem_pieces "$build"
+ cp /usr/local/lib/system/libdispatch* "$ALTUSRLOCALLIBSYSTEM"
+fi
+
+LIBSYSTEM=$(~rc/bin/getvers "$train$build" Libsystem)
+if [ -z "$LIBSYSTEM" ]; then
+ exit 1
+fi
+SRCROOT="/var/tmp/$LIBSYSTEM"
+if [ ! -e "$SRCROOT" ]; then
+ cd $(dirname "$SRCROOT")
+ svn co http://src.apple.com/svn/BSD/Libsystem/tags/"$LIBSYSTEM"
+fi
+cd "$SRCROOT"
+BUILDIT
+
+if [ $noinstall -eq 1 ]; then
+ exit 0
+fi
+
+if [ ! -e /usr/lib/libSystem.B.dylib.orig ]; then
+ cp /usr/lib/libSystem.B.dylib /usr/lib/libSystem.B.dylib.orig
+fi
+if [ ! -e /usr/lib/libSystem.B_debug.dylib.orig ] ; then
+ cp /usr/lib/libSystem.B_debug.dylib /usr/lib/libSystem.B_debug.dylib.orig
+fi
+if [ ! -e /usr/lib/libSystem.B_profile.dylib.orig ] ; then
+ cp /usr/lib/libSystem.B_profile.dylib /usr/lib/libSystem.B_profile.dylib.orig
+fi
+cp -R "$ROOTS"/"$LIBSYSTEM".roots/"$LIBSYSTEM"~sym/libSystem* /usr/lib/
+update_dyld_shared_cache