summaryrefslogtreecommitdiff
path: root/telepathy-glib/abi.am
blob: 354bf5a9da10eeddba0f41b57b5033dda177055c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# To be included by Makefile.am.

ABI_LISTS = \
    versions/0.7.0.abi \
    versions/0.7.1.abi \
    versions/0.7.2.abi \
    versions/0.7.3.abi \
    versions/0.7.5.abi \
    versions/0.7.6.abi \
    versions/0.7.7.abi \
    versions/0.7.8.abi \
    versions/0.7.9.abi \
    versions/0.7.10.abi \
    versions/0.7.12.abi \
    versions/0.7.13.abi \
    versions/0.7.14.abi \
    versions/0.7.15.abi \
    versions/0.7.16.abi \
    versions/0.7.17.abi \
    versions/0.7.18.abi \
    versions/0.7.19.abi \
    versions/0.7.20.abi \
    versions/0.7.21.abi \
    versions/0.7.23.abi \
    versions/0.7.24.abi \
    versions/0.7.26.abi \
    versions/0.7.27.abi \
    versions/0.7.28.abi \
    versions/0.7.29.abi \
    versions/0.7.30.abi \
    versions/0.7.31.abi \
    versions/0.7.32.abi \
    versions/0.7.34.abi \
    versions/0.7.35.abi \
    versions/0.7.36.abi \
    versions/0.7.37.abi \
    versions/0.9.0.abi \
    versions/0.9.2.abi \
    versions/0.11.0.abi \
    versions/0.11.1.abi \
    versions/0.11.3.abi \
    versions/0.11.4.abi \
    versions/0.11.5.abi \
    versions/0.11.6.abi \
    versions/0.11.7.abi \
    versions/0.11.9.abi \
    versions/0.11.11.abi \
    versions/0.11.12.abi \
    versions/0.11.13.abi \
    versions/0.11.14.abi \
    versions/0.11.15.abi \
    versions/0.11.16.abi \
    versions/0.13.0.abi \
    versions/0.13.1.abi \
    versions/0.13.2.abi \
    versions/0.13.3.abi \
    versions/0.13.4.abi \
    versions/0.13.5.abi \
    versions/0.13.7.abi \
    versions/0.13.8.abi \
    versions/0.13.9.abi \
    versions/0.13.10.abi \
    versions/0.13.11.abi \
    versions/0.13.12.abi \
    $(NULL)

# The quoting here is unnecessary but harmless, and has the useful side-effect
# that vim quickfix mode (:make) doesn't interpret the libtool --mode=link
# command as an error message in a bizarrely named file
libtelepathy_glib_la_LDFLAGS = \
    -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)"
libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la
nodist_libtelepathy_glib_la_SOURCES =
libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la abi.am

if HAVE_LD_VERSION_SCRIPT
nodist_libtelepathy_glib_la_SOURCES += _gen/version-script.txt
libtelepathy_glib_la_DEPENDENCIES += _gen/version-script.txt _gen/abi.txt

if OFFICIAL_RELEASE
# don't allow undocumented ABI
MAKE_VERSION_SCRIPT_FLAGS =
else
# allow new ABI, and silently put it in a dummy version (which can be used to
# check whether binaries have been linked against unguaranteed ABI)
MAKE_VERSION_SCRIPT_FLAGS = \
    --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED
endif

_gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt abi.am \
	$(top_srcdir)/tools/make-version-script.py
	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
		 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
		 $(ABI_LISTS:%=$(srcdir)/%) > $@
	$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
		 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
		 --dpkg "libtelepathy-glib.so.0 libtelepathy-glib0 #MINVER#" \
		 --dpkg-build-depends-package "libtelepathy-glib-dev" \
		 $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib0.symbols
	sed -n -e "s/^[	 ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/versioned-abi.tmp
	sort -u < _gen/versioned-abi.tmp > _gen/versioned-abi.txt
	: # the versioned API should always match the ^tp API
	diff -c _gen/versioned-abi.txt _gen/abi.txt

_gen/abi.txt: libtelepathy-glib-internal.la abi.am
	$(NM) .libs/libtelepathy-glib-internal.a > _gen/abi.nm
	grep " [DT] " < _gen/abi.nm > _gen/abi.funcs
	cut -d" " -f3 < _gen/abi.funcs > _gen/abi.funcnames
	grep "^tp" < _gen/abi.funcnames > _gen/abi.tpfuncnames
	$(AM_V_GEN)sort -u < _gen/abi.tpfuncnames > $@

libtelepathy_glib_la_LDFLAGS += \
    $(VERSION_SCRIPT_ARG)=_gen/version-script.txt

else # !HAVE_LD_VERSION_SCRIPT

libtelepathy_glib_la_LDFLAGS += -export-symbols-regex '^tp'

endif # !HAVE_LD_VERSION_SCRIPT

# vim:set ft=automake: