tools: add checkconfig to top-level Makefile

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2008-11-26 13:42:16 +01:00
parent 685758e852
commit 043102bf19
2 changed files with 30 additions and 16 deletions

View File

@ -48,10 +48,15 @@ distclean-local:
checkincludes:
-find * $(RCS_FIND_IGNORE) \
@find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort -u \
| xargs $(top_srcdir)/tools/checkincludes.pl
checkconfig:
@find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort -u \
| xargs $(top_srcdir)/tools/checkconfig.sh $(top_srcdir)
ENABLE_ALL = --enable-static-programs \
--enable-elvtune --enable-init --enable-kill --enable-last \

View File

@ -4,34 +4,43 @@
# This script checks for HAVE_ and ENABLE_ macros which are
# not included in config.h.in
#
# Usage: checkconfig.sh <top_srcdir> <srcfile> [<srcfile> ...]
#
# Copyright (C) 2007 Matthias Koenig <mkoenig@suse.de>
# Copyright (C) 2008 Karel Zak <kzak@redhat.com>
#
srcdir=$1
if [ ! "$srcdir" ]; then
srcdir=$PWD
fi
CONFIG="$srcdir/config.h.in"
if [ ! -f "$CONFIG" ]; then
echo "config.h.in is needed"
function die() {
echo "error: $1"
exit 1
fi
}
SOURCES=$(find $srcdir -name "*.c")
srcdir=$1
config="$srcdir/config.h.in"
[ -d "$srcdir" ] || die "$srcdir: not such directory."
[ -f "$config" ] || die "$config: not such file."
shift
while (( "$#" )); do
srcfile=$1
shift
[ ! -f "$srcfile" ] && continue;
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)
$srcfile | 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"
HAVE_CONFIG_H) continue
;;
*) grep -q "$d\( \|\>\)" $config || \
echo $(echo $srcfile | sed 's:\\'$srcdir/'::') ": $d"
;;
esac
done