openssl/build.info
Dr. Matthias St. Pierre 0c994d54af Reorganize private crypto header files
Currently, there are two different directories which contain internal
header files of libcrypto which are meant to be shared internally:

While header files in 'include/internal' are intended to be shared
between libcrypto and libssl, the files in 'crypto/include/internal'
are intended to be shared inside libcrypto only.

To make things complicated, the include search path is set up in such
a way that the directive #include "internal/file.h" could refer to
a file in either of these two directoroes. This makes it necessary
in some cases to add a '_int.h' suffix to some files to resolve this
ambiguity:

  #include "internal/file.h"      # located in 'include/internal'
  #include "internal/file_int.h"  # located in 'crypto/include/internal'

This commit moves the private crypto headers from

  'crypto/include/internal'  to  'include/crypto'

As a result, the include directives become unambiguous

  #include "internal/file.h"       # located in 'include/internal'
  #include "crypto/file.h"         # located in 'include/crypto'

hence the superfluous '_int.h' suffixes can be stripped.

The files 'store_int.h' and 'store.h' need to be treated specially;
they are joined into a single file.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9681)
2019-09-27 23:57:58 +02:00

103 lines
4 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
INCLUDE[libcrypto]=. 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 include/crypto/bn_conf.h \
include/crypto/dso_conf.h
DEPEND[include/openssl/opensslconf.h]=configdata.pm
GENERATE[include/openssl/opensslconf.h]=include/openssl/opensslconf.h.in
DEPEND[include/crypto/bn_conf.h]=configdata.pm
GENERATE[include/crypto/bn_conf.h]=include/crypto/bn_conf.h.in
DEPEND[include/crypto/dso_conf.h]=configdata.pm
GENERATE[include/crypto/dso_conf.h]=include/crypto/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
ELSIF[{- $config{target} =~ /^aix/ -}]
GENERATE[libcrypto.map]=util/mkdef.pl crypto aix
DEPEND[libcrypto.map]=util/libcrypto.num
GENERATE[libssl.map]=util/mkdef.pl ssl aix
DEPEND[libssl.map]=util/libssl.num
SHARED_SOURCE[libcrypto]=libcrypto.map
SHARED_SOURCE[libssl]=libssl.map
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-{- $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