d445302418
$(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)
51 lines
2.3 KiB
Text
51 lines
2.3 KiB
Text
{-
|
|
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
|
|
INCLUDE[libcrypto]=. crypto/include include
|
|
INCLUDE[libssl]=. include
|
|
DEPEND[libssl]=libcrypto
|
|
|
|
# Empty DEPEND "indices" means the dependencies are expected to be built
|
|
# unconditionally before anything else.
|
|
DEPEND[]=include/openssl/opensslconf.h crypto/include/internal/bn_conf.h \
|
|
crypto/include/internal/dso_conf.h
|
|
DEPEND[include/openssl/opensslconf.h]=configdata.pm
|
|
GENERATE[include/openssl/opensslconf.h]=include/openssl/opensslconf.h.in
|
|
DEPEND[crypto/include/internal/bn_conf.h]=configdata.pm
|
|
GENERATE[crypto/include/internal/bn_conf.h]=crypto/include/internal/bn_conf.h.in
|
|
DEPEND[crypto/include/internal/dso_conf.h]=configdata.pm
|
|
GENERATE[crypto/include/internal/dso_conf.h]=crypto/include/internal/dso_conf.h.in
|
|
|
|
|
|
IF[{- $config{target} =~ /^Cygwin/ -}]
|
|
SHARED_NAME[libcrypto]=cygcrypto-{- $sover_filename -}
|
|
SHARED_NAME[libssl]=cygssl-{- $sover_filename -}
|
|
ELSIF[{- $config{target} =~ /^mingw/ -}]
|
|
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-{- $sover_filename -}{- $target{multilib} -}
|
|
SHARED_NAME[libssl]=libssl-{- $sover_filename -}{- $target{multilib} -}
|
|
ENDIF
|
|
|
|
# VMS has a cultural standard where all libraries are prefixed.
|
|
# For OpenSSL, the choice is 'ossl$' (this prefix was claimed in a
|
|
# conversation with VSI, Tuesday January 26 2016)
|
|
# Also, it seems it's usual to have the pointer size the libraries
|
|
# were built for as part of the name.
|
|
IF[{- $config{target} =~ /^vms/ -}]
|
|
RENAME[libcrypto]=ossl$libcrypto{- $target{pointer_size} -}
|
|
RENAME[libssl]=ossl$libssl{- $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
|