2016-02-16 00:20:15 +08:00
|
|
|
{- join("\n",map { "/* $_ */" } @autowarntext) -}
|
2016-04-20 10:10:43 +08:00
|
|
|
/*
|
2018-04-03 20:57:12 +08:00
|
|
|
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
2016-02-16 00:20:15 +08:00
|
|
|
*
|
2018-12-06 20:12:35 +08:00
|
|
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-04-20 10:10:43 +08:00
|
|
|
* this file except in compliance with the License. You can obtain a copy
|
|
|
|
* in the file LICENSE in the source distribution or at
|
|
|
|
* https://www.openssl.org/source/license.html
|
2016-02-16 00:20:15 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HEADER_DSO_CONF_H
|
|
|
|
# define HEADER_DSO_CONF_H
|
2018-03-23 08:02:08 +08:00
|
|
|
{- # The DSO code currently always implements all functions so that no
|
|
|
|
# applications will have to worry about that from a compilation point
|
|
|
|
# of view. However, the "method"s may return zero unless that platform
|
|
|
|
# has support compiled in for them. Currently each method is enabled
|
|
|
|
# by a define "DSO_<name>" ... we translate the "dso_scheme" config
|
|
|
|
# string entry into using the following logic;
|
2019-09-13 16:45:29 +08:00
|
|
|
my $scheme = $disabled{dso} ? undef : uc $target{dso_scheme};
|
2019-03-31 22:15:02 +08:00
|
|
|
if (!$scheme) {
|
|
|
|
$scheme = "NONE";
|
|
|
|
}
|
2018-03-23 08:02:08 +08:00
|
|
|
my @macros = ( "DSO_$scheme" );
|
|
|
|
if ($scheme eq 'DLFCN') {
|
|
|
|
@macros = ( "DSO_DLFCN", "HAVE_DLFCN_H" );
|
|
|
|
} elsif ($scheme eq "DLFCN_NO_H") {
|
|
|
|
@macros = ( "DSO_DLFCN" );
|
|
|
|
}
|
|
|
|
join("\n", map { "# define $_" } @macros); -}
|
Rework building: Unix changes to handle extensions and product names
Add platform::Unix, which is a generic Unix module to support product
name and extensions functionlity. However, this isn't quite enough,
as mingw and Cygwin builds are done using the same templates, but
since shared libraries work as on Windows and are named accordingly,
platform::mingw and platform::Cygwin were also added to provide the
necessary tweaks.
This reworks Configurations/unix-Makefile.tmpl to work out product
names in platform::Unix et al terms. In this one, we currently do
care about the *_extension config attributes, and the modules adapt
accordingly where it matters.
This change also affected crypto/include/internal/dso_conf.h.in, since
the DSO extension is meant to be the same as the short shared library
extension, which isn't '.so' everywhere.
'shared_extension' attributes that had the value
'.so.\$(SHLIB_VERSION_NUMBER)' are removed, platform::Unix provides
an extension where the shared library version number is hard-coded
instead.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/7473)
2018-10-23 21:09:57 +08:00
|
|
|
# define DSO_EXTENSION "{- platform->dsoext() -}"
|
2016-02-16 00:20:15 +08:00
|
|
|
#endif
|