diff --git a/update.sh b/update.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a8b5d41c5c15a6e45194c7c2341ccd35c20b067c
--- /dev/null
+++ b/update.sh
@@ -0,0 +1,42 @@
+#!/bin/sh -xe
+
+export BASE=`pwd`
+export LLVM_BUILD="${BASE}/build"
+export LLVM_SRC="${BASE}/llvm"
+export CLANG_SRC="${LLVM_SRC}/tools/clang"
+
+# valid build directory?
+if ! test -d ${LLVM_BUILD}; then
+  echo "Build directory is missing: ${LLVM_BUILD}" >&2
+  exit 1
+fi
+
+# update repos
+# 1. base repo
+git pull
+
+# 2. clang's repo
+cd ${CLANG_SRC}
+git pull
+cd ${BASE}
+
+# Use maximum number of CPUs for build
+if [ -e /proc/cpuinfo ]; then
+    procs=`grep -c processor /proc/cpuinfo`
+else
+    procs=1
+fi
+
+# build llvm/clang
+cd ${LLVM_BUILD}
+if which cmake ; then
+    cmake ${LLVM_SRC}
+    make -j$procs
+    # make clangStaticAnalyzerCheckers clang clang-check tacle-check tacle-lint
+else
+    echo "cmake is missing" >&2
+    exit 1
+fi
+
+
+