summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am.inc5
-rw-r--r--abi-descriptor.template14
-rw-r--r--epan/Makefile.am10
-rw-r--r--wiretap/Makefile.am10
-rw-r--r--wsutil/Makefile.am10
5 files changed, 49 insertions, 0 deletions
diff --git a/Makefile.am.inc b/Makefile.am.inc
index 91ea02631a..9ed0ab2c87 100644
--- a/Makefile.am.inc
+++ b/Makefile.am.inc
@@ -26,3 +26,8 @@
.def.sym:
$(AWK) '/^EXPORTS$$/ {next;}; ${def_sym_filter_symbols} /^[^;]/ { print $$1;}' < $< > $@
+
+# abi-compliance-checker descriptor
+INCLUDE_DIRS = $(subst -I,NEWLINE,$(filter -I%, $(CFLAGS)))
+abi-descriptor.xml: ../abi-descriptor.template
+ sed "s|INCLUDE_DIRS|$(INCLUDE_DIRS)|g;s/NEWLINE/\n /g" $< > $@
diff --git a/abi-descriptor.template b/abi-descriptor.template
new file mode 100644
index 0000000000..f52ef24f0f
--- /dev/null
+++ b/abi-descriptor.template
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<descriptor>
+<version>
+ 0.0.0
+</version>
+<headers>
+ {RELPATH}/abi-check-headers
+</headers>
+<libs>
+ {RELPATH}/.libs
+</libs>
+<include_paths>INCLUDE_DIRS
+</include_paths>
+</descriptor>
diff --git a/epan/Makefile.am b/epan/Makefile.am
index 8c909e2741..64bbd80918 100644
--- a/epan/Makefile.am
+++ b/epan/Makefile.am
@@ -303,5 +303,15 @@ if HAVE_DOXYGEN
$(DOXYGEN) doxygen.cfg
endif # HAVE_DOXYGEN
+# ABI compliance checker can be obtained from
+# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
+# Checked using version 1.21.12
+dumpabi: all abi-descriptor.xml
+ mkdir abi-check-headers; cp *.h abi-check-headers/; \
+ abi-compliance-checker -l libwireshark -v1 `ls .libs/libwireshark.so.?.?.?|sed 's/.*\.so\.//'` \
+ -relpath $(abs_srcdir) -dump-abi abi-descriptor.xml && \
+ cp -f abi_dumps/libwireshark/libwireshark_* .libs/; (cd .libs; ln -sf libwireshark_*.abi.tar.gz libwireshark.abi.tar.gz); \
+ rm -r abi-check-headers abi_dumps
+
checkapi:
$(PERL) ../tools/checkAPIs.pl -g termoutput $(LIBWIRESHARK_SRC)
diff --git a/wiretap/Makefile.am b/wiretap/Makefile.am
index 2f46c65fec..7642c5f0c4 100644
--- a/wiretap/Makefile.am
+++ b/wiretap/Makefile.am
@@ -86,6 +86,16 @@ ascend.c ascend.h: ascend.y
fi
$(YACC) -d -p ascend -o ascend.c $(srcdir)/ascend.y
+# ABI compliance checker can be obtained from
+# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
+# Checked using version 1.21.12
+dumpabi: all abi-descriptor.xml
+ mkdir abi-check-headers; cp *.h abi-check-headers/; \
+ abi-compliance-checker -l libwiretap -v1 `ls .libs/libwiretap.so.?.?.?|sed 's/.*\.so\.//'` \
+ -relpath $(abs_srcdir) -dump-abi abi-descriptor.xml && \
+ cp -f abi_dumps/libwiretap/libwiretap_* .libs/; (cd .libs; ln -sf libwiretap_*.abi.tar.gz libwiretap.abi.tar.gz); \
+ rm -r abi-check-headers abi_dumps
+
checkapi:
## 'abort' checking disabled for now pending resolution of existing use of g_assert & g_error
## $(PERL) ../tools/checkAPIs.pl -g abort -g termoutput $(NONGENERATED_C_FILES) $(GENERATOR_FILES)
diff --git a/wsutil/Makefile.am b/wsutil/Makefile.am
index e6f25b8dc8..812cf7da30 100644
--- a/wsutil/Makefile.am
+++ b/wsutil/Makefile.am
@@ -131,6 +131,16 @@ CLEANFILES = \
MAINTAINERCLEANFILES = \
Makefile.in
+# ABI compliance checker can be obtained from
+# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
+# Checked using version 1.21.12
+dumpabi: all abi-descriptor.xml
+ mkdir abi-check-headers; cp *.h abi-check-headers/; \
+ abi-compliance-checker -l libwiretap -v1 `ls .libs/libwiretap.so.?.?.?|sed 's/.*\.so\.//'` \
+ -relpath $(abs_srcdir) -dump-abi abi-descriptor.xml && \
+ cp -f abi_dumps/libwiretap/libwiretap_* .libs/; (cd .libs; ln -sf libwiretap_*.abi.tar.gz libwiretap.abi.tar.gz); \
+ rm -r abi-check-headers abi_dumps
+
checkapi:
$(PERL) ../tools/checkAPIs.pl -g abort -g termoutput \
$(LIBWSUTIL_SRC)