summaryrefslogtreecommitdiff
path: root/telepathy-glib/abi.am
blob: 32d0604510c7ef787b7b880b189337ff6e3cab0b (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
122
123
124
125
126
127
128
129
130
131
132
133
134
# 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 \
    versions/0.13.13.abi \
    versions/0.13.14.abi \
    versions/0.13.15.abi \
    versions/0.13.16.abi \
    versions/0.14.1.abi \
    versions/0.14.3.abi \
    versions/0.14.4.abi \
    versions/0.14.5.abi \
    versions/0.15.0.abi \
    versions/0.15.1.abi \
    versions/0.15.2.abi \
    versions/0.15.3.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 = \
    $(AM_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: