Skip to content

Commit

Permalink
Merge pull request #6 from jonasschnelli/2015/09/LT_INIT
Browse files Browse the repository at this point in the history
Use libtool with versioned ABI
  • Loading branch information
Jeff Garzik committed Sep 23, 2015
2 parents 372865d + b0390ef commit 2151c25
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 4 deletions.
39 changes: 38 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
m4_define([libunivalue_major_version], [1])
m4_define([libunivalue_minor_version], [1])
m4_define([libunivalue_micro_version], [1])
m4_define([libunivalue_interface_age], [1])
# If you need a modifier for the version number.
# Normally empty, but can be used to make "fixup" releases.
m4_define([libunivalue_extraversion], [])

dnl libtool versioning from libunivalue
m4_define([libunivalue_current], [m4_eval(100 * libunivalue_minor_version + libunivalue_micro_version - libunivalue_interface_age)])
m4_define([libunivalue_binary_age], [m4_eval(100 * libunivalue_minor_version + libunivalue_micro_version)])
m4_define([libunivalue_revision], [libunivalue_interface_age])
m4_define([libunivalue_age], [m4_eval(libunivalue_binary_age - libunivalue_interface_age)])
m4_define([libunivalue_version], [libunivalue_major_version().libunivalue_minor_version().libunivalue_micro_version()libunivalue_extraversion()])


AC_INIT([univalue], [0.0.2],
[http://github.com/jgarzik/univalue/])

Expand All @@ -6,6 +22,22 @@ AC_CONFIG_SRCDIR([lib/univalue.cpp])
AM_INIT_AUTOMAKE([gnu])
AC_CONFIG_HEADERS([univalue-config.h])

LIBUNIVALUE_MAJOR_VERSION=libunivalue_major_version
LIBUNIVALUE_MINOR_VERSION=libunivalue_minor_version
LIBUNIVALUE_MICRO_VERSION=libunivalue_micro_version
LIBUNIVALUE_INTERFACE_AGE=libunivalue_interface_age

# ABI version
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
LIBUNIVALUE_CURRENT=libunivalue_current
LIBUNIVALUE_REVISION=libunivalue_revision
LIBUNIVALUE_AGE=libunivalue_age

AC_SUBST(LIBUNIVALUE_CURRENT)
AC_SUBST(LIBUNIVALUE_REVISION)
AC_SUBST(LIBUNIVALUE_AGE)

LT_INIT

AC_PROG_CXX
AC_PROG_CC
Expand All @@ -23,6 +55,11 @@ PKG_PROG_PKG_CONFIG

AC_LANG_PUSH([C++])

AC_CONFIG_FILES([lib/Makefile test/Makefile Makefile])
AC_CONFIG_FILES([
lib/Makefile
test/Makefile
Makefile
lib/libunivalue.pc
lib/libunivalue-uninstalled.pc])
AC_OUTPUT

8 changes: 6 additions & 2 deletions lib/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@

include_HEADERS = univalue.h univalue_escapes.h

lib_LIBRARIES = libunivalue.a
lib_LTLIBRARIES = libunivalue.la

libunivalue_a_SOURCES = \
libunivalue_la_SOURCES = \
univalue.cpp \
univalue_read.cpp \
univalue_write.cpp

libunivalue_la_LDFLAGS = \
-version-info $(LIBUNIVALUE_CURRENT):$(LIBUNIVALUE_REVISION):$(LIBUNIVALUE_AGE) \
-no-undefined

noinst_PROGRAMS = gen

gen_SOURCES = gen.cpp
Expand Down
9 changes: 9 additions & 0 deletions lib/libunivalue-uninstalled.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@

Name: libunivalue
Description: libunivalue, C++ universal value object and JSON library
Version: @VERSION@
Libs: ${pc_top_builddir}/${pcfiledir}/libunivalue.la
10 changes: 10 additions & 0 deletions lib/libunivalue.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@

Name: libunivalue
Description: libunivalue, C++ universal value object and JSON library
Version: @VERSION@
Libs: -L${libdir} -lunivalue
Cflags: -I${includedir}
2 changes: 1 addition & 1 deletion test/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ TESTS = unitester
noinst_PROGRAMS = unitester

unitester_SOURCES = unitester.cpp
unitester_LDADD = ../lib/libunivalue.a
unitester_LDADD = ../lib/libunivalue.la
unitester_CXXFLAGS = -I$(top_srcdir)/lib -DJSON_TEST_SRC=\"$(top_srcdir)/test\"

EXTRA_DIST = \
Expand Down

0 comments on commit 2151c25

Please sign in to comment.