| #!/bin/bash |
| |
| # |
| # 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> |
| # |
| |
| |
| function die() { |
| echo "error: $1" |
| exit 1 |
| } |
| |
| 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; |
| |
| # Note that we use HAVE_ macros since util-linux-ng-2.14. The |
| # previous version also have used ENABLE_ too. |
| # |
| # ENABLE_ and HAVE_ macros shouldn't be used for any other pupose that |
| # for config/build options. |
| # |
| DEFINES=$(sed -n -e 's/.*[ \t(]\+\(HAVE_[[:alnum:]]\+[^ \t);]*\).*/\1/p' \ |
| -e 's/.*[ \t(]\+\(ENABLE_[[:alnum:]]\+[^ \t);]*\).*/\1/p' \ |
| $srcfile | sort -u) |
| [ -z "$DEFINES" ] && continue |
| |
| for d in $DEFINES; do |
| case $d in |
| HAVE_CONFIG_H) continue |
| ;; |
| *) grep -q "$d\( \|\>\)" $config || \ |
| echo $(echo $srcfile | sed 's:\\'$srcdir/'::') ": $d" |
| ;; |
| esac |
| done |
| done |