From edb54ebe900098b8a83d94576cf4f102c487a58e Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Mon, 31 Jan 2022 15:35:52 +0100 Subject: [PATCH] introduce library versioning This is done by loosely following the description on [1] and other examples. Fixes #190 [1] https://phab.enlightenment.org/w/autotoolsintegration/ Signed-off-by: Steffen Jaeckel --- Makefile.am | 2 +- configure.ac | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8892198..f42d6fb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,7 +31,7 @@ lib_LTLIBRARIES = libstrophe.la libstrophe_la_CFLAGS = $(SSL_CFLAGS) $(STROPHE_FLAGS) $(PARSER_CFLAGS) $(RESOLV_CFLAGS) $(COVERAGE_CFLAGS) libstrophe_la_LDFLAGS = $(SSL_LIBS) $(PARSER_LIBS) $(RESOLV_LIBS) -no-undefined # Export only public API -libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_' +libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_' -version-info @VERSION_INFO@ libstrophe_la_SOURCES = \ src/auth.c \ diff --git a/configure.ac b/configure.ac index baec8a0..76494d3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,13 @@ -AC_INIT([libstrophe], [0.11.0], [jack@metajack.im]) +m4_define([v_maj], [0]) +m4_define([v_min], [11]) +m4_define([v_patch], [0]) +m4_define([project_version], [v_maj.v_min.v_patch]) + +m4_define([lt_cur], m4_eval(v_maj + v_min)) +m4_define([lt_rev], v_patch) +m4_define([lt_age], v_min) + +AC_INIT([libstrophe], [project_version], [jack@metajack.im]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign]) LT_INIT([dlopen]) @@ -187,6 +196,21 @@ AM_CONDITIONAL([PARSER_EXPAT], [test x$with_parser != xlibxml2]) AM_CONDITIONAL([DISABLE_TLS], [test x$enable_tls = xno]) AM_CONDITIONAL([TLS_WITH_GNUTLS], [test x$with_gnutls = xyes]) +# define while compiling +AC_DEFINE_UNQUOTED(LIBXMPP_VERSION_MAJOR, [v_maj], [Major version]) +AC_DEFINE_UNQUOTED(LIBXMPP_VERSION_MINOR, [v_min], [Minor version]) + +VMAJ=v_maj +VMIN=v_min +AC_SUBST(VMAJ) +AC_SUBST(VMIN) +# define in package-config file +PC_CFLAGS="${PC_CFLAGS} -DLIBXMPP_VERSION_MAJOR=${VMAJ} -DLIBXMPP_VERSION_MINOR=${VMIN}" + +# set the SO version of the installed library +VERSION_INFO="lt_cur:lt_rev:lt_age" +AC_SUBST([VERSION_INFO]) + AC_SUBST([PC_REQUIRES], [${PC_REQUIRES}]) AC_SUBST([PC_CFLAGS], [${PC_CFLAGS}]) AC_SUBST([PC_LIBS], [${PC_LIBS}])