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