aboutsummaryrefslogtreecommitdiffstats
path: root/build-aux/clang-analyzer.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/clang-analyzer.sh')
-rwxr-xr-xbuild-aux/clang-analyzer.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/build-aux/clang-analyzer.sh b/build-aux/clang-analyzer.sh
new file mode 100755
index 0000000..1582b10
--- /dev/null
+++ b/build-aux/clang-analyzer.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -ex
+
+PN="$(grep PACKAGE_TARNAME config.h | cut -d\" -f2)"
+PV="$(grep PACKAGE_VERSION config.h | cut -d\" -f2)"
+P="${PN}-clang-analyzer-${PV}"
+
+set +e
+scan-build \
+ --use-cc="${CC:-clang}" \
+ -o reports \
+ ${MAKE_CMD:-make}
+RV=$?
+set -e
+
+NUM_REPORTS=$(ls -1 reports | wc -l)
+[[ ${NUM_REPORTS} -eq 0 ]] && exit ${RV}
+[[ ${NUM_REPORTS} -eq 1 ]]
+
+REPORTS="reports/$(ls -1 reports)"
+if [[ -d "${REPORTS}" ]]; then
+ mv "${REPORTS}" clang-analyzer
+ tar \
+ -cvJf "${P}.tar.xz" \
+ clang-analyzer
+ RV=1
+fi
+
+exit ${RV}