Blame dist/check-api-change

Packit fcad23
#!/bin/sh
Packit fcad23
#
Packit fcad23
# simplistic script to check all header files for
Packit fcad23
# differences. Intended to help detect api changes
Packit fcad23
# between releases.
Packit fcad23
#
Packit fcad23
# it's not pretty or efficient, and inspection of
Packit fcad23
# the results must be done manually.
Packit fcad23
#
Packit fcad23
# it's also not secure (don't run as root)
Packit fcad23
# or portable. Tested on Linux.
Packit fcad23
#
Packit fcad23
Packit fcad23
if [ "x$1" = "x" -o "x$2" = "x" ]; then
Packit fcad23
   echo "Usage: $0 <old-dir> <new-dir>"
Packit fcad23
   exit 1
Packit fcad23
fi
Packit fcad23
Packit fcad23
od=$1
Packit fcad23
nd=$2
Packit fcad23
DIR=/tmp
Packit fcad23
OUTPUT=$DIR/api-diff.pat
Packit fcad23
ODT=$DIR/api-od
Packit fcad23
Packit fcad23
if [ ! -d $od ]; then
Packit fcad23
   echo "old dir $od doesn't exist"
Packit fcad23
   exit 1
Packit fcad23
fi
Packit fcad23
Packit fcad23
if [ ! -d $nd ]; then
Packit fcad23
   echo "old dir $nd doesn't exist"
Packit fcad23
   exit 1
Packit fcad23
fi
Packit fcad23
Packit fcad23
# find header in nd
Packit fcad23
rm -f $OUTPUT $ODT 2>/dev/null
Packit fcad23
(cd $od && find . -type f -name "*.h"|sort > $ODT)
Packit fcad23
Packit fcad23
OH=`cat $ODT`
Packit fcad23
for h in $OH
Packit fcad23
do
Packit fcad23
   nh=$nd/$h
Packit fcad23
   oh=$od/$h
Packit fcad23
   echo "* $nh"
Packit fcad23
   if [ -f "$nh" ]; then
Packit fcad23
      echo "* diff: $h vs $nh" >> $OUTPUT
Packit fcad23
      diff -u $oh $nh >> $OUTPUT 2>&1
Packit fcad23
   else
Packit fcad23
      echo "* Old header $h not found in new headers" >> $OUTPUT
Packit fcad23
   fi
Packit fcad23
done
Packit fcad23
Packit fcad23
echo "Inspect output in $OUTPUT"
Packit fcad23
echo "See Makefile.top for libtool version bumping rules."