| #!/bin/sh |
| |
| # |
| # 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> |
| # |
| |
| |
| die() { |
| echo "error: $1" |
| exit 1 |
| } |
| |
| usage() { |
| echo "Usage:" |
| echo " $0 <top_srcdir> <srcfile> [<srcfile> ...]" |
| echo "Example:" |
| echo " find . -name '*.c' | xargs $0 \$(git rev-parse --show-toplevel)" |
| } |
| |
| if [ $# -eq 0 ]; then |
| usage |
| exit 1 |
| fi |
| srcdir=$1 |
| config="$srcdir/config.h.in" |
| |
| [ -d "$srcdir" ] || die "$srcdir: not such directory." |
| [ -f "$config" ] || die "$config: not such file." |
| |
| shift |
| |
| while [ "$#" -ne 0 ]; 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 |