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: checkincludes:
-find * $(RCS_FIND_IGNORE) \ @find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort -u \ -name '*.[hcS]' -type f -print | sort -u \
| xargs $(top_srcdir)/tools/checkincludes.pl | 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_ALL = --enable-static-programs \
--enable-elvtune --enable-init --enable-kill --enable-last \ --enable-elvtune --enable-init --enable-kill --enable-last \

View File

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