diff options
-rwxr-xr-x | kernel-tree-scripts/filter-compat-defines.sh | 28 | ||||
-rw-r--r-- | src/Makefile | 2 |
2 files changed, 29 insertions, 1 deletions
diff --git a/kernel-tree-scripts/filter-compat-defines.sh b/kernel-tree-scripts/filter-compat-defines.sh new file mode 100755 index 0000000..9d2cc08 --- /dev/null +++ b/kernel-tree-scripts/filter-compat-defines.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +silent=0 +level=0 +ifs=( ) + +while IFS= read -r line; do + if [[ $line =~ ^[[:space:]]*(#if.*) ]]; then + ifs[level++]=0 + if [[ ${BASH_REMATCH[1]} == "#ifndef COMPAT_CANNOT_"* ]]; then + ifs[level-1]=-1 + continue + elif [[ ${BASH_REMATCH[1]} == "#ifdef COMPAT_CANNOT_"* ]]; then + ifs[level-1]=1 + ((++silent)) + continue + fi + elif [[ $line =~ ^[[:space:]]*#else && ${ifs[level-1]} -ne 0 ]]; then + ((ifs[level-1]*=-1)) + ((silent+=ifs[level-1])) + continue + elif [[ $line =~ ^[[:space:]]*#endif ]]; then + ((--level)) + [[ ${ifs[level]} -eq 1 ]] && ((--silent)) + [[ ${ifs[level]} -ne 0 ]] && continue + fi + [[ $silent -eq 0 ]] && printf '%s\n' "$line" +done < "$1" diff --git a/src/Makefile b/src/Makefile index 0a9f734..f933eb1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -68,7 +68,7 @@ coccicheck: clean @$(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_WIREGUARD_DEBUG=y coccicheck MODE=report cloc: clean - cloc $(wildcard *.c) $(wildcard *.h) + @cloc --skip-uniqueness --by-file --extract-with="$$(readlink -f ../contrib/kernel-tree/filter-compat-defines.sh) >FILE< > \$$(basename >FILE<)" $(wildcard *.c) $(wildcard *.h) -include tests/debug.mk |