diff options
author | Karel Zak <kzak@redhat.com> | 2007-06-15 10:17:51 +0200 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2007-06-15 10:17:51 +0200 |
commit | 71be1ee4a1386c141272df32b1184857aa5c9070 (patch) | |
tree | c1a8363e71fc68ee47f3f9475fb72e3acfb28ead /tools | |
parent | 69c47f8089951b7bb22fd0edb47063bff4400f2c (diff) | |
download | util-linux-71be1ee4a1386c141272df32b1184857aa5c9070.tar.gz |
tools: add codecheck-config that checks for {HAVE,ENABLE}_ orphans
Signed-off-by: Matthias Koenig <mkoenig@suse.de>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/codecheck-config | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/codecheck-config b/tools/codecheck-config new file mode 100755 index 00000000..ff38bac7 --- /dev/null +++ b/tools/codecheck-config @@ -0,0 +1,38 @@ +#!/bin/bash + +# +# This script checks for HAVE_ and ENABLE_ macros which are +# not included in config.h.in +# +# Copyright (C) 2007 Matthias Koenig <mkoenig@suse.de> +# + +srcdir=$1 + +if [ ! "$srcdir" ]; then + srcdir=$PWD +fi + +CONFIG="$srcdir/config.h.in" +if [ ! -f "$CONFIG" ]; then + echo "config.h.in is needed" + exit 1 +fi + +SOURCES=$(find $srcdir -name "*.c") + +for f in $SOURCES; do + DEFINES=$(sed -n -e 's/.*[ \t(]\+\(HAVE_[[:alnum:]]\+[^ \t);]*\).*/\1/p' \ + -e 's/.*[ \t(]\+\(ENABLE_[[:alnum:]]\+[^ \t);]*\).*/\1/p' \ + $f | sort -u) + [ -z "$DEFINES" ] && continue + + for d in $DEFINES; do + case $d in + HAVE_CONFIG_H) continue;; + *) grep -q "$d\( \|\>\)" $CONFIG || echo $(echo $f | sed 's:'$srcdir/'::') ": $d" + + ;; + esac + done +done |