diff --git a/Tools/scripts/build_all.sh b/Tools/scripts/build_all.sh
index 61043eadeb8bb239522ff52e2389860d19821079..22ba306b6a2fc2be5eb48293962126910c844070 100755
--- a/Tools/scripts/build_all.sh
+++ b/Tools/scripts/build_all.sh
@@ -66,4 +66,8 @@ test -n "$PX4_ROOT" && test -d "$PX4_ROOT" && {
     ./Tools/scripts/build_all_px4.sh
 }
 
+test -n "$VRBRAIN_ROOT" && test -d "$VRBRAIN_ROOT" && {
+    ./Tools/scripts/build_all_vrbrain.sh
+}
+
 exit 0
diff --git a/Tools/scripts/build_all_vrbrain.sh b/Tools/scripts/build_all_vrbrain.sh
new file mode 100755
index 0000000000000000000000000000000000000000..92b16c46535b83593436ea3e0f16bb1bf5437328
--- /dev/null
+++ b/Tools/scripts/build_all_vrbrain.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+# build all targets for PX4
+# This helps when doing large merges
+# Andrew Tridgell, February 2013
+
+. config.mk
+
+set -e
+set -x
+
+for d in ArduPlane ArduCopter APMrover2; do
+    pushd $d
+    make vrbrain-clean
+    popd
+done
+
+echo "Testing ArduPlane build"
+pushd ArduPlane
+make vrbrain
+popd
+
+echo "Testing ArduCopter build"
+pushd ArduCopter
+make vrbrain
+popd
+
+echo "Testing APMrover2 build"
+pushd APMrover2
+make vrbrain
+popd
+
+exit 0