Avoid adding -pie on older cmake versions
[metze/wireshark/wip.git] / tools / compare-abis.sh
1 #!/bin/bash
2 #
3 # Compare ABIs of two Wireshark working copies
4 #
5 # Copyright 2013 Balint Reczey <balint at balintreczey.hu>
6 #
7 # Wireshark - Network traffic analyzer
8 # By Gerald Combs <gerald@wireshark.org>
9 # Copyright 1998 Gerald Combs
10 #
11 # This program is free software; you can redistribute it and/or
12 # modify it under the terms of the GNU General Public License
13 # as published by the Free Software Foundation; either version 2
14 # of the License, or (at your option) any later version.
15 #
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 # GNU General Public License for more details.
20 #
21 # You should have received a copy of the GNU General Public License
22 # along with this program; if not, write to the Free Software
23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24
25 # Tested with abi-compliance-checker 1.96.1
26
27 function acc () {
28         LIBNAME=$1
29         DIR=$2
30         # compare only dumped ABI descriptions first, then fall back to full comparison
31         # if no difference is found
32         if abi-compliance-checker -l $LIBNAME \
33                 -d1 $V1_PATH/$DIR/$REL_DUMP_PATH/$LIBNAME.abi.tar.gz \
34                 -d2 $V2_PATH/$DIR/$REL_DUMP_PATH/$LIBNAME.abi.tar.gz ; then
35                 abi-compliance-checker -l $LIBNAME \
36                         -d1 $V1_PATH/$DIR/abi-descriptor.xml -relpath1 $V1_PATH/$DIR \
37                         -v1 `ls  $V1_PATH/$DIR/$REL_LIB_PATH/$LIBNAME.so.?.*.*|sed 's/.*\.so\.//'` \
38                         -d2 $V2_PATH/$DIR/abi-descriptor.xml -relpath2 $V2_PATH/$DIR \
39                         -v2 `ls  $V2_PATH/$DIR/$REL_LIB_PATH/$LIBNAME.so.?.*.*|sed 's/.*\.so\.//'` \
40                         -check-implementation
41         fi
42 }
43
44 V1_PATH=$1
45 V2_PATH=$2
46
47 # both working copies have to be built first with autotools or with cmake
48 # make -C $V1_PATH all dumpabi
49 # make -C $V2_PATH all dumpabi
50
51 if test -d $V1_PATH/lib; then
52         REL_LIB_PATH=../lib
53         REL_DUMP_PATH=.
54 else
55         REL_LIB_PATH=.libs
56         REL_DUMP_PATH=.libs
57 fi
58
59 acc libwiretap wiretap $V1_PATH $V2_PATH
60 RET=$?
61 acc libwsutil wsutil $V1_PATH $V2_PATH
62 RET=$(($RET + $?))
63 acc libwireshark epan $V1_PATH $V2_PATH
64 exit $(($RET + $?))
65