diff --git a/tools/prepare-build-dir b/tools/prepare-build-dir
index 1dd77115c629ada7254ddddd52583d63311abbf7..b366c80ae01c7aa529240dd9170ddd4292f96c44 100755
--- a/tools/prepare-build-dir
+++ b/tools/prepare-build-dir
@@ -14,11 +14,13 @@ cd "`dirname "${SCRIPTDIR}"`" > /dev/null
 SCRIPTDIR="`pwd`";
 popd  > /dev/null
 
+DEBUG=false
 QUIET=false
 while getopts :dq OPT; do
 	case $OPT in
 		d)
 			set -x
+			DEBUG=true
 			;;
 		q)
 			QUIET=true
@@ -87,9 +89,27 @@ for var in $(compgen -e); do
 	MESON_ARGS+=("-D${MESON_BUILD_OPTION_NAME}=${MESON_BUILD_OPTION_VALUE}")
 done
 
+LOGFILE=$(mktemp --tmpdir=/var/tmp)
+cleanup() {
+	rm -f "${LOGFILE}"
+}
+trap cleanup EXIT
+
 if ! $QUIET; then
 	set -x
 fi
-exec meson --buildtype=${BUILDTYPE} \
+
+meson --buildtype=${BUILDTYPE} \
 	 ${MESON_ARGS[@]} \
-	 "${ABSOLUTE_BUILDDIR}"
+	 "${ABSOLUTE_BUILDDIR}" |\
+	tee "${LOGFILE}"
+
+if ! $DEBUG; then
+	set +x
+fi
+
+if grep -F "WARNING: Unknown options:" "${LOGFILE}"; then
+	echo "ERROR: Unknown meson options found"
+	rm -r "${ABSOLUTE_BUILDDIR}" "${ABSOLUTE_BUILDDIR_SYMLINK}"
+	exit 1
+fi