diff --git a/lib/buildit b/lib/buildit
deleted file mode 100755
index 5a4a710..0000000
--- a/lib/buildit
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /bin/sh
-#
-# Set the $TRIPLE environment variable to your system's triple before
-# running this script.  If you set $CXX, that will be used to compile
-# the library.  Otherwise we'll use clang++.
-
-set -e
-
-if [ `basename $(pwd)` != "lib" ]
-then
-	echo "current directory must be lib"
-	exit 1
-fi
-
-if [ -z "$CXX" ]
-then
-	CXX=clang++
-fi
-
-if [ -z "$CC" ]
-then
-    CC=clang
-fi
-
-if [ -z $RC_ProjectSourceVersion ]
-then
-  RC_ProjectSourceVersion=1
-fi
-
-EXTRA_FLAGS="-std=c++11 -stdlib=libc++ -fstrict-aliasing -Wstrict-aliasing=2 \
-             -Wsign-conversion -Wshadow -Wconversion -Wunused-variable \
-             -Wmissing-field-initializers -Wchar-subscripts -Wmismatched-tags \
-             -Wmissing-braces -Wshorten-64-to-32 -Wsign-compare \
-             -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter \
-             -Wnewline-eof"
-
-case $TRIPLE in
-  *-apple-*)
-    if [ -z $RC_XBS ]
-    then
-      RC_CFLAGS="-arch i386 -arch x86_64"
-    fi
-    SOEXT=dylib
-    if [ -n "$SDKROOT" ]
-    then
-        EXTRA_FLAGS+="-isysroot ${SDKROOT}"
-        CXX=`xcrun -sdk "${SDKROOT}"  -find clang++`
-        CC=`xcrun -sdk "${SDKROOT}"  -find clang`
-    fi
-    LDSHARED_FLAGS="-o libc++abi.dylib \
-        -dynamiclib -nodefaultlibs  \
-        -current_version ${RC_ProjectSourceVersion} \
-        -compatibility_version 1 \
-        -install_name /usr/lib/libc++abi.dylib \
-        -lSystem"
-	if [ -f "${SDKROOT}/usr/local/lib/libCrashReporterClient.a" ]
-	then
-		LDSHARED_FLAGS+=" -lCrashReporterClient"
-	fi
-    ;;
-  *-*-mingw*)
-    # FIXME: removing libgcc and libsupc++ dependencies means porting libcxxrt and LLVM/compiler-rt
-    SOEXT=dll
-    LDSHARED_FLAGS="-o libc++abi.dll \
-        -shared -nodefaultlibs -Wl,--export-all-symbols -Wl,--allow-multiple-definition -Wl,--out-implib,libc++abi.dll.a \
-        -lsupc++ -lpthread -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcr100 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt"
-	;;
-  *)
-    RC_CFLAGS="-fPIC"
-    SOEXT=so
-    LDSHARED_FLAGS="-o libc++abi.so.1.0 \
-        -shared -nodefaultlibs -Wl,-soname,libc++abi.so.1 \
-        -lpthread -lrt -lc -lstdc++"
-    ;;
-esac
-
-if [ -z $RC_XBS ]
-then
-    rm -f libc++abi.1.$SOEXT*
-fi
-
-set -x
-
-for FILE in ../src/*.cpp; do
-	$CXX -c -g -O3 $RC_CFLAGS $EXTRA_FLAGS -I../include $OPTIONS $FILE
-done
-case $TRIPLE in
-  *-*-mingw*)
-  for FILE in ../src/support/win32/*.cpp; do
-    $CXX -c -g -Os $RC_CFLAGS $EXTRA_FLAGS -I../include $OPTIONS $FILE
-  done
-  ;;
-esac
-$CC *.o $RC_CFLAGS $LDSHARED_FLAGS $EXTRA_FLAGS
-
-if [ -z $RC_XBS ]
-then
-    rm *.o
-fi
