diff --git a/telepathy-glib/Makefile.am b/telepathy-glib/Makefile.am index 58b6c1c..c7b876a 100644 --- a/telepathy-glib/Makefile.am +++ b/telepathy-glib/Makefile.am @@ -7,7 +7,8 @@ pkgconfigdir = ${libdir}/pkgconfig pkgconfig_DATA = telepathy-glib.pc EXTRA_DIST = \ - $(ABI_LISTS) \ + $(TP_GLIB_ABI_LISTS) \ + $(TP_GLIB_LOWLEVEL_ABI_LISTS) \ $(codegen_extra_dist) \ $(introspection_extra_dist) \ extra-gtkdoc.h @@ -18,8 +19,18 @@ EXTRA_DIST = \ # The static version is necessary because one of the tests wants to use # internal symbols (_tp_log) which are made invisible by GNU ld. -lib_LTLIBRARIES = libtelepathy-glib.la -noinst_LTLIBRARIES = libtelepathy-glib-internal.la +lib_LTLIBRARIES = \ + libtelepathy-glib.la \ + libtelepathy-glib-lowlevel.la \ + libtesttest.la + +libtesttest_la_LDFLAGS = \ + $(AM_LDFLAGS) \ + -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" + +noinst_LTLIBRARIES = \ + libtelepathy-glib-internal.la \ + libtelepathy-glib-lowlevel-internal.la # headers that are subject to coding-style checks our_headers = \ @@ -142,7 +153,9 @@ check_c_sources = \ include $(top_srcdir)/tools/check-coding-style.mk check-local: check-coding-style -libtelepathy_glib_internal_la_LIBADD = $(ALL_LIBS) +libtelepathy_glib_internal_la_LIBADD = \ + libtelepathy-glib-lowlevel-internal.la \ + $(ALL_LIBS) libtelepathy_glib_internal_la_SOURCES = \ account.c \ account-channel-request.c \ diff --git a/telepathy-glib/abi.am b/telepathy-glib/abi.am index 551c195..bcd648f 100644 --- a/telepathy-glib/abi.am +++ b/telepathy-glib/abi.am @@ -1,101 +1,41 @@ # 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 \ - versions/0.15.5.abi \ - versions/0.15.6.abi \ - versions/0.15.8.abi \ - versions/0.17.0.abi \ - versions/0.17.1.abi \ - versions/0.17.2.abi \ - versions/0.17.3.abi \ +TP_GLIB_ABI_LISTS = \ + versions/tp-glib-1.0.0.abi \ + $(NULL) + +TP_GLIB_LOWLEVEL_ABI_LISTS = \ + versions/tp-glib-lowlevel-1.0.0.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 libtelepathy_glib_la_LDFLAGS = \ $(AM_LDFLAGS) \ -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la +# libtelepathy-glib-lowlevel.la nodist_libtelepathy_glib_la_SOURCES = libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la abi.am +# libtelepathy-glib-lowlevel +libtelepathy_glib_lowlevel_la_LDFLAGS = \ + $(AM_LDFLAGS) \ + -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" +libtelepathy_glib_lowlevel_la_LIBADD = libtelepathy-glib-lowlevel-internal.la +nodist_libtelepathy_glib_lowlevel_la_SOURCES = +libtelepathy_glib_lowlevel_la_DEPENDENCIES = libtelepathy-glib-lowlevel-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 +nodist_libtelepathy_glib_la_SOURCES += _gen/tp-glib-version-script.txt +libtelepathy_glib_la_DEPENDENCIES += _gen/tp-glib-version-script.txt _gen/tp-glib-abi.txt + +nodist_libtelepathy_glib_lowlevel_la_SOURCES += _gen/tp-glib-lowlevel-version-script.txt +libtelepathy_glib_lowlevel_la_DEPENDENCIES += _gen/tp-glib-lowlevel-version-script.txt \ + _gen/tp-glib-lowlevel-abi.txt if OFFICIAL_RELEASE # don't allow undocumented ABI @@ -107,35 +47,64 @@ MAKE_VERSION_SCRIPT_FLAGS = \ --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED endif -_gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt abi.am \ +_gen/tp-glib-version-script.txt: $(TP_GLIB_ABI_LISTS) _gen/tp-glib-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)/%) > $@ + --symbols=_gen/tp-glib-abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \ + $(TP_GLIB_ABI_LISTS:%=$(srcdir)/%) > $@ $(PYTHON) $(top_srcdir)/tools/make-version-script.py \ - --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \ + --symbols=_gen/tp-glib-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 + sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/tp-glib-versioned-abi.tmp + sort -u < _gen/tp-glib-versioned-abi.tmp > _gen/tp-glib-versioned-abi.txt : # the versioned API should always match the ^tp API - diff -c _gen/versioned-abi.txt _gen/abi.txt + diff -c _gen/tp-glib-versioned-abi.txt _gen/tp-glib-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 > $@ +_gen/tp-glib-abi.txt: libtelepathy-glib-internal.la abi.am + $(NM) .libs/libtelepathy-glib-internal.a > _gen/tp-glib-abi.nm + grep " [DT] " < _gen/tp-glib-abi.nm > _gen/tp-glib-abi.funcs + cut -d" " -f3 < _gen/tp-glib-abi.funcs > _gen/tp-glib-abi.funcnames + grep "^tp" < _gen/tp-glib-abi.funcnames > _gen/tp-glib-abi.tpfuncnames + $(AM_V_GEN)sort -u < _gen/tp-glib-abi.tpfuncnames > $@ libtelepathy_glib_la_LDFLAGS += \ - $(VERSION_SCRIPT_ARG)=_gen/version-script.txt + $(VERSION_SCRIPT_ARG)=_gen/tp-glib-version-script.txt + +_gen/tp-glib-lowlevel-version-script.txt: $(TP_GLIB_LOWLEVEL_ABI_LISTS) \ + _gen/tp-glib-lowlevel-abi.txt abi.am \ + $(top_srcdir)/tools/make-version-script.py + $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \ + --symbols=_gen/tp-glib-lowlevel-abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \ + $(TP_GLIB_LOWLEVEL_ABI_LISTS:%=$(srcdir)/%) > $@ + $(PYTHON) $(top_srcdir)/tools/make-version-script.py \ + --symbols=_gen/tp-glib-lowlevel-abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \ + --dpkg "libtelepathy-glib-lowlevel.so.0 libtelepathy-glib-lowlevel0 #MINVER#" \ + --dpkg-build-depends-package "libtelepathy-glib-dev" \ + $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib-lowlevel0.symbols + sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/tp-glib-lowlevel-versioned-abi.tmp + sort -u < _gen/tp-glib-lowlevel-versioned-abi.tmp > _gen/tp-glib-lowlevel-versioned-abi.txt + : # the versioned API should always match the ^tp API + diff -c _gen/tp-glib-lowlevel-versioned-abi.txt _gen/tp-glib-lowlevel-abi.txt + +_gen/tp-glib-lowlevel-abi.txt: libtelepathy-glib-lowlevel-internal.la abi.am + $(NM) .libs/libtelepathy-glib-lowlevel-internal.a > _gen/tp-glib-lowlevel-abi.nm + grep " [DT] " < _gen/tp-glib-lowlevel-abi.nm > _gen/tp-glib-lowlevel-abi.funcs + cut -d" " -f3 < _gen/tp-glib-lowlevel-abi.funcs > _gen/tp-glib-lowlevel-abi.funcnames + grep "^tp" < _gen/tp-glib-lowlevel-abi.funcnames > _gen/tp-glib-lowlevel-abi.tpfuncnames + $(AM_V_GEN)sort -u < _gen/tp-glib-lowlevel-abi.tpfuncnames > $@ + +libtelepathy_glib_lowlevel_la_LDFLAGS += \ + $(VERSION_SCRIPT_ARG)=_gen/tp-glib-lowlevel-version-script.txt else # !HAVE_LD_VERSION_SCRIPT libtelepathy_glib_la_LDFLAGS += -export-symbols-regex '^tp' +# this will break +libtelepathy_glib_lowlevel_la_LDFLAGS += -export-symbols-regex '^tp' + endif # !HAVE_LD_VERSION_SCRIPT # vim:set ft=automake: diff --git a/telepathy-glib/codegen.am b/telepathy-glib/codegen.am index f34e28f..c56a39e 100644 --- a/telepathy-glib/codegen.am +++ b/telepathy-glib/codegen.am @@ -26,6 +26,7 @@ codegen_extra_dist = \ codegen_sources = \ $(nodist_libtelepathy_glib_internal_la_SOURCES) \ + $(nodist_libtelepathy_glib_lowlevel_internal_la_SOURCES) \ $(nodist_geninclude_HEADERS) \ _gen/stable-spec.xml \ _gen/spec-stamp \ @@ -70,12 +71,88 @@ nodist_geninclude_HEADERS = \ nodist_libtelepathy_glib_internal_la_SOURCES = \ _gen/error-str.c \ + _gen/genums.c \ _gen/signals-marshal.c \ _gen/signals-marshal.h \ - _gen/signals-marshal.list \ + _gen/signals-marshal.list + +nodist_libtelepathy_glib_lowlevel_internal_la_SOURCES = \ _gen/tp-signals-marshal.list \ _gen/interfaces-body.h \ + _gen/gtypes-body.h \ + _gen/register-dbus-glib-marshallers-body.h \ + _gen/tp-cli-account-body.h \ + _gen/tp-cli-account-manager-body.h \ + _gen/tp-cli-channel-body.h \ + _gen/tp-cli-channel-dispatcher-body.h \ + _gen/tp-cli-channel-dispatch-operation-body.h \ + _gen/tp-cli-channel-request-body.h \ + _gen/tp-cli-client-body.h \ + _gen/tp-cli-connection-body.h \ + _gen/tp-cli-connection-manager-body.h \ + _gen/tp-cli-dbus-daemon-body.h \ + _gen/tp-cli-generic-body.h \ + _gen/tp-cli-media-session-handler-body.h \ + _gen/tp-cli-media-stream-handler-body.h \ + _gen/tp-cli-protocol-body.h \ + _gen/tp-svc-account.c \ + _gen/tp-svc-account-manager.c \ + _gen/tp-svc-channel.c \ + _gen/tp-svc-channel-dispatcher.c \ + _gen/tp-svc-channel-dispatch-operation.c \ + _gen/tp-svc-channel-request.c \ + _gen/tp-svc-client.c \ + _gen/tp-svc-connection.c \ + _gen/tp-svc-connection-manager.c \ + _gen/tp-svc-debug.c \ + _gen/tp-svc-generic.c \ + _gen/tp-svc-media-session-handler.c \ + _gen/tp-svc-media-stream-handler.c \ + _gen/tp-svc-protocol.c \ + _gen/tp-svc-tls-cert.c + +libtesttest_la_SOURCES = \ + _gen/error-str.h \ + _gen/telepathy-enums.h \ + _gen/telepathy-interfaces.h \ + _gen/genums.h \ + _gen/gtypes.h \ + _gen/tp-cli-account.h \ + _gen/tp-cli-account-manager.h \ + _gen/tp-cli-channel.h \ + _gen/tp-cli-channel-dispatcher.h \ + _gen/tp-cli-channel-dispatch-operation.h \ + _gen/tp-cli-channel-request.h \ + _gen/tp-cli-client.h \ + _gen/tp-cli-connection.h \ + _gen/tp-cli-connection-manager.h \ + _gen/tp-cli-dbus-daemon.h \ + _gen/tp-cli-generic.h \ + _gen/tp-cli-media-session-handler.h \ + _gen/tp-cli-media-stream-handler.h \ + _gen/tp-cli-protocol.h \ + _gen/tp-svc-account.h \ + _gen/tp-svc-account-manager.h \ + _gen/tp-svc-channel.h \ + _gen/tp-svc-channel-dispatcher.h \ + _gen/tp-svc-channel-dispatch-operation.h \ + _gen/tp-svc-channel-request.h \ + _gen/tp-svc-client.h \ + _gen/tp-svc-connection.h \ + _gen/tp-svc-connection-manager.h \ + _gen/tp-svc-debug.h \ + _gen/tp-svc-generic.h \ + _gen/tp-svc-media-session-handler.h \ + _gen/tp-svc-media-stream-handler.h \ + _gen/tp-svc-protocol.h \ + _gen/tp-svc-tls-cert.h \ + _gen/error-str.c \ _gen/genums.c \ + _gen/signals-marshal.c \ + _gen/signals-marshal.h \ + _gen/signals-marshal.list \ + _gen/tp-signals-marshal.list \ + _gen/interfaces-body.h \ _gen/gtypes-body.h \ _gen/register-dbus-glib-marshallers-body.h \ _gen/tp-cli-account-body.h \