diff --git a/tools/check-format b/tools/check-format
index 005c77c1ecfef05fc891dbb6ffc2d3c90a2a6912..f3a9b43f4c9854e3b4e282a586f4f2b59002f112 100755
--- a/tools/check-format
+++ b/tools/check-format
@@ -15,11 +15,16 @@ SCRIPTDIR="`pwd`";
 popd  > /dev/null
 
 DEBUG=false
-while getopts d OPT; do
+VERBOSE=false
+while getopts dv OPT; do
 	case $OPT in
 		d)
 			set -x
 			DEBUG=true
+			VERBOSE=true
+			;;
+		v)
+			VERBOSE=true
 			;;
 		*)
 			echo "usage: ${0##*/} [-dq} [--] ARGS..."
@@ -33,19 +38,42 @@ ROOTDIR=$(readlink -f "${SCRIPTDIR}/..")
 
 MAX_PROCS=$(nproc)
 
-CHECKED_FILES_FILE=$(mktemp)
+FILES_TO_CHECK_FILE=$(mktemp)
+cleanup() {
+	rm "${FILES_TO_CHECK_FILE}"
+}
 if ! $DEBUG; then
-	trap 'rm "${CHECKED_FILES_FILE}"' EXIT
+	trap cleanup EXIT
 fi
 
 cd "${ROOTDIR}"
+
+PRUNE_PATHS=()
+PRUNE_PATHS+=(./build*) # Generated files
+PRUNE_PATHS+=(./subprojects) # Subprojects, since are under different licenses
+
+PRUNE_PATH_ARG=""
+# https://stackoverflow.com/a/12298615/194894
+for path in "${PRUNE_PATHS[@]::${#PRUNE_PATHS[@]}-1}"; do
+	PRUNE_PATH_ARG+="-path ${path} -o "
+done
+PRUNE_PATH_ARG+="-path ${PRUNE_PATHS[-1]}"
+
+# shellcheck disable=SC2086
+find . \( ${PRUNE_PATH_ARG} \) -prune -o \
+	 -type f -regextype posix-extended -regex '.*\.(c|h|cpp|hpp)' -print0 \
+	> "${FILES_TO_CHECK_FILE}"
+
+if $VERBOSE; then
+	echo "About to check the following files for correct formatting via clang-format"
+	tr '\0' '\n' < "${FILES_TO_CHECK_FILE}"
+fi
+
 # Note that the --dry-run and --Werror clang-format arguments require
 # clang-format 10 or higher. See https://reviews.llvm.org/D68554
-find . \( -path '*/\.*' -o -path "./subprojects*" -o -path "./build*" \) -prune -o \
-	-type f -regextype posix-extended -regex '.*\.(c|h|cpp|hpp)' -print0 |\
-	tee "${CHECKED_FILES_FILE}" |\
-	xargs --null --max-args=3 --max-procs="${MAX_PROCS}" \
-		  clang-format --style=file --dry-run -Werror
+xargs --null --max-args=3 --max-procs="${MAX_PROCS}" \
+	  clang-format --style=file --dry-run -Werror \
+	  < "${FILES_TO_CHECK_FILE}"
 
-FILE_COUNT=$(<"${CHECKED_FILES_FILE}" tr -cd '\0' | wc -c)
+FILE_COUNT=$(<"${FILES_TO_CHECK_FILE}" tr -cd '\0' | wc -c)
 echo "Checked ${FILE_COUNT} files for format violations"