X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=build.info;h=13ca90d3607c9d7145022a9d5137bc0c8906f8e4;hp=019fb86ad7f787865c89e86e51dfeb464ba76030;hb=604e591ed75eff9296c21ee5fe93f3e9ec246094;hpb=fcf80c469aa722f7c6eca68d23d86d22f7f7efb9 diff --git a/build.info b/build.info index 019fb86ad7..13ca90d360 100644 --- a/build.info +++ b/build.info @@ -1,15 +1,95 @@ -{- use File::Spec::Functions qw/catdir rel2abs/; -} +{- + 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]={- rel2abs(catdir($builddir,"include")) -} . crypto/include include -INCLUDE[libssl]={- rel2abs(catdir($builddir,"include")) -} . include +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[{- defined $target{shared_defflag} -}] + IF[{- $config{target} =~ /^mingw/ -}] + GENERATE[libcrypto.def]=util/mkdef.pl crypto 32 + DEPEND[libcrypto.def]=util/libcrypto.num + GENERATE[libssl.def]=util/mkdef.pl ssl 32 + DEPEND[libssl.def]=util/libssl.num + + SHARED_SOURCE[libcrypto]=libcrypto.def + SHARED_SOURCE[libssl]=libssl.def + ELSE + GENERATE[libcrypto.map]=util/mkdef.pl crypto linux + DEPEND[libcrypto.map]=util/libcrypto.num + GENERATE[libssl.map]=util/mkdef.pl ssl linux + DEPEND[libssl.map]=util/libssl.num + + SHARED_SOURCE[libcrypto]=libcrypto.map + SHARED_SOURCE[libssl]=libssl.map + ENDIF +ENDIF +# VMS and VC don't have parametrised .def / .symvec generation, so they get +# special treatment, since we know they do use these files +IF[{- $config{target} =~ /^VC-/ -}] + GENERATE[libcrypto.def]=util/mkdef.pl crypto 32 + DEPEND[libcrypto.def]=util/libcrypto.num + GENERATE[libssl.def]=util/mkdef.pl ssl 32 + DEPEND[libssl.def]=util/libssl.num + + SHARED_SOURCE[libcrypto]=libcrypto.def + SHARED_SOURCE[libssl]=libssl.def +ELSIF[{- $config{target} =~ /^vms/ -}] + GENERATE[libcrypto.opt]=util/mkdef.pl crypto "VMS" + DEPEND[libcrypto.opt]=util/libcrypto.num + GENERATE[libssl.opt]=util/mkdef.pl ssl "VMS" + DEPEND[libssl.opt]=util/libssl.num + + SHARED_SOURCE[libcrypto]=libcrypto.opt + SHARED_SOURCE[libssl]=libssl.opt +ENDIF + +IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}] + GENERATE[libcrypto.rc]=util/mkrc.pl libcrypto + GENERATE[libssl.rc]=util/mkrc.pl libssl + + SHARED_SOURCE[libcrypto]=libcrypto.rc + SHARED_SOURCE[libssl]=libssl.rc +ENDIF + 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]=libeay32 - SHARED_NAME[libssl]=ssleay32 + 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