summaryrefslogtreecommitdiffstats
path: root/build.info
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-07-19 10:13:41 +0200
committerRichard Levitte <levitte@openssl.org>2017-07-26 22:53:03 +0200
commitd445302418b41b76c15e103954b1311d98077480 (patch)
tree3fe29109a41dbe6af982bc15e6592df700316f17 /build.info
parent00606b06d5209368d1bd2fcab70bf6d9e2fe875f (diff)
Simplify the handling of shared library version numbers
$(SHLIB_MAJOR).$(SHLIB_MINOR) is really a synonym for $(SHLIB_VERSION_NUMBER), and is therefore an added complexity, so better to use $(SHLIB_VERSION_NUMBER) directly. SHLIB_MAJOR and SHLIB_MINOR are now unused, but are kept around purely as information in case someone relies on their existence. At the same time, add support for custom shared library extensions with the three new Makefile variables SHLIB_EXT, SHLIB_EXT_SIMPLE and SHLIB_EXT_IMPORT. By default, they hold the variants of shared library extensions we support. On mingw and cygwin, SHLIB_EXT_IMPORT is defined; on all other Unix platforms, it's empty. An example to get shared libraries with a slightly different SOVER name: $ make SHLIB_EXT='.$(SHLIB_VERSION_NUMBER).so' Fixes #3902 Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3964)
Diffstat (limited to 'build.info')
-rw-r--r--build.info26
1 files changed, 18 insertions, 8 deletions
diff --git a/build.info b/build.info
index fa136dc431..d00673f03e 100644
--- a/build.info
+++ b/build.info
@@ -1,3 +1,13 @@
+{-
+ our $sover = $config{shlib_version_number};
+ our $sover_filename = $sover;
+ $sover_filename =~ s|\.|_|g
+ if $config{target} =~ /^mingw/ || $config{target} =~ /^VC-/;
+ $sover_filename =
+ sprintf "%02d%02d", split m|\.|, $config{shlib_version_number}
+ if $config{target} =~ /^vms/;
+ "";
+-}
LIBS=libcrypto libssl
ORDINALS[libcrypto]=crypto
ORDINALS[libssl]=ssl
@@ -18,14 +28,14 @@ GENERATE[crypto/include/internal/dso_conf.h]=crypto/include/internal/dso_conf.h.
IF[{- $config{target} =~ /^Cygwin/ -}]
- SHARED_NAME[libcrypto]=cygcrypto-{- $config{shlib_major}.".".$config{shlib_minor} -}
- SHARED_NAME[libssl]=cygssl-{- $config{shlib_major}.".".$config{shlib_minor} -}
+ SHARED_NAME[libcrypto]=cygcrypto-{- $sover_filename -}
+ SHARED_NAME[libssl]=cygssl-{- $sover_filename -}
ELSIF[{- $config{target} =~ /^mingw/ -}]
- SHARED_NAME[libcrypto]=libcrypto-{- $config{shlib_major}."_".$config{shlib_minor} -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
- SHARED_NAME[libssl]=libssl-{- $config{shlib_major}."_".$config{shlib_minor} -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
+ SHARED_NAME[libcrypto]=libcrypto-{- $sover_filename -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
+ SHARED_NAME[libssl]=libssl-{- $sover_filename -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
ELSIF[{- $config{target} =~ /^VC-/ -}]
- SHARED_NAME[libcrypto]=libcrypto-{- $config{shlib_major}."_".$config{shlib_minor} -}{- $target{multilib} -}
- SHARED_NAME[libssl]=libssl-{- $config{shlib_major}."_".$config{shlib_minor} -}{- $target{multilib} -}
+ SHARED_NAME[libcrypto]=libcrypto-{- $sover_filename -}{- $target{multilib} -}
+ SHARED_NAME[libssl]=libssl-{- $sover_filename -}{- $target{multilib} -}
ENDIF
# VMS has a cultural standard where all libraries are prefixed.
@@ -36,6 +46,6 @@ ENDIF
IF[{- $config{target} =~ /^vms/ -}]
RENAME[libcrypto]=ossl$libcrypto{- $target{pointer_size} -}
RENAME[libssl]=ossl$libssl{- $target{pointer_size} -}
- SHARED_NAME[libcrypto]=ossl$libcrypto{- sprintf "%02d%02d", $config{shlib_major}, $config{shlib_minor} -}_shr{- $target{pointer_size} -}
- SHARED_NAME[libssl]=ossl$libssl{- sprintf "%02d%02d", $config{shlib_major}, $config{shlib_minor} -}_shr{- $target{pointer_size} -}
+ SHARED_NAME[libcrypto]=ossl$libcrypto{- $sover_filename -}_shr{- $target{pointer_size} -}
+ SHARED_NAME[libssl]=ossl$libssl{- $sover_filename -}_shr{- $target{pointer_size} -}
ENDIF