From 8dabd34432bc77408c58bdfb575510f671e5ed26 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 24 Aug 2008 21:26:42 +0000 Subject: [PATCH] Introduced the configure option --enable-soname-bump that lets a user enforce an SONAME bump. --- configure.ac | 23 +++++++++++++++++++++++ lib/Makefile.am | 17 +++++++++++++++-- lib/README.curl_off_t | 15 +++++++++++---- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 2959b68c8..d2bd20043 100644 --- a/configure.ac +++ b/configure.ac @@ -2492,6 +2492,29 @@ AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibi AC_MSG_RESULT(no) ) +dnl ************************************************************ +dnl enforce SONAME bump +dnl + +soname_bump=no + +AC_MSG_CHECKING([whether to enforce SONAME bump]) +AC_ARG_ENABLE(soname-bump, +AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump]) +AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]), +[ case "$enableval" in + yes) AC_MSG_RESULT(yes) + soname_bump=yes + ;; + *) + AC_MSG_RESULT(nope: $enableval) + ;; + esac ], + AC_MSG_RESULT(nono) +) +AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes) + + dnl ************************************************************ if test ! -z "$winsock_LIB"; then diff --git a/lib/Makefile.am b/lib/Makefile.am index 903e1a959..ff974f4d4 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -58,7 +58,20 @@ INCLUDES = -I$(top_builddir)/include \ -I$(top_builddir)/lib \ -I$(top_srcdir)/lib -VERSION=-version-info 5:0:1 +if SONAME_BUMP +# +# Bumping of SONAME conditionally may seem like a weird thing to do, and yeah +# it is. The problem is that we try to avoid the bump as hard as possible, but +# yet it is still necessary for a few rare situations. The configure script will +# attempt to figure out these situations, and it can be forced to consider this +# to be such a case! See README.curl_off_t for further details. +# +# This conditional soname bump SHOULD be removed at next "proper" bump. +# +VERSIONINFO=-version-info 6:0:1 +else +VERSIONINFO=-version-info 5:0:1 +endif # This flag accepts an argument of the form current[:revision[:age]]. So, # passing -version-info 3:12:1 sets current to 3, revision to 12, and age to @@ -99,7 +112,7 @@ if MIMPURE MIMPURE = -mimpure-text endif -libcurl_la_LDFLAGS = $(UNDEF) $(VERSION) $(MIMPURE) $(LIBCURL_LIBS) +libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(LIBCURL_LIBS) # Makefile.inc provides the CSOURCES and HHEADERS defines include Makefile.inc diff --git a/lib/README.curl_off_t b/lib/README.curl_off_t index fa687c67b..b60179da0 100644 --- a/lib/README.curl_off_t +++ b/lib/README.curl_off_t @@ -42,7 +42,14 @@ track and detect by users of libcurl. SONAME ------ -We opted to not bump the soname for the library, simply because soname bumping -is causing a lot of grief and moaning all over the community so we try to keep -that at minimum. Also, our selected design path should be 100% backwards -compatible for the vast majority of all libcurl users. +We opted to not bump the soname for the library unconditionally, simply +because soname bumping is causing a lot of grief and moaning all over the +community so we try to keep that at minimum. Also, our selected design path +should be 100% backwards compatible for the vast majority of all libcurl +users. + +Enforce SONAME bump +------------------- + +If configure doesn't detect your case where a bump is necessary, re-run it +with the --enable-soname-bump command line option!