|
|
|
## descrip.mms to build OpenSSL on OpenVMS
|
|
|
|
##
|
|
|
|
## {- join("\n## ", @autowarntext) -}
|
|
|
|
{-
|
|
|
|
use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/;
|
|
|
|
use File::Basename;
|
|
|
|
|
|
|
|
(our $osslprefix_q = platform->osslprefix()) =~ s/\$/\\\$/;
|
|
|
|
|
|
|
|
our $sover_dirname = platform->shlib_version_as_filename();
|
|
|
|
our $osslver = sprintf "%02d%02d", split(/\./, $config{version});
|
|
|
|
|
|
|
|
our $sourcedir = $config{sourcedir};
|
|
|
|
our $builddir = $config{builddir};
|
|
|
|
sub sourcefile {
|
|
|
|
catfile($sourcedir, @_);
|
|
|
|
}
|
|
|
|
sub buildfile {
|
|
|
|
catfile($builddir, @_);
|
|
|
|
}
|
|
|
|
sub sourcedir {
|
|
|
|
catdir($sourcedir, @_);
|
|
|
|
}
|
|
|
|
sub builddir {
|
|
|
|
catdir($builddir, @_);
|
|
|
|
}
|
|
|
|
sub tree {
|
|
|
|
(my $x = shift) =~ s|\]$|...]|;
|
|
|
|
$x
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# Because we need to make two computations of these data,
|
|
|
|
# we store them in arrays for reuse
|
|
|
|
our @libs =
|
|
|
|
map { platform->staticname($_) }
|
|
|
|
@{$unified_info{libraries}};
|
|
|
|
our @shlibs =
|
|
|
|
map { platform->sharedname($_) // () }
|
|
|
|
@{$unified_info{libraries}};
|
|
|
|
our @install_libs =
|
|
|
|
map { platform->staticname($_) }
|
|
|
|
grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
|
|
|
|
@{$unified_info{libraries}};
|
|
|
|
our @install_shlibs =
|
|
|
|
map { platform->sharedname($_) // () }
|
|
|
|
grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
|
|
|
|
@{$unified_info{libraries}};
|
|
|
|
our @install_engines =
|
|
|
|
grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
|
|
|
|
&& $unified_info{attributes}->{modules}->{$_}->{engine} }
|
|
|
|
@{$unified_info{modules}};
|
|
|
|
our @install_modules =
|
|
|
|
grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
|
|
|
|
&& !$unified_info{attributes}->{modules}->{$_}->{engine} }
|
|
|
|
@{$unified_info{modules}};
|
|
|
|
our @install_programs =
|
|
|
|
grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
|
|
|
|
@{$unified_info{programs}};
|
Build: use attributes to indicate installed script classes
We have two classes of scripts to be installed, those that are
installed as "normal" programs, and those that are installed as "misc"
scripts. These classes are installed in different locations, so the
build file templates must pay attention.
Because we didn't have the tools to indicate what scripts go where, we
had these scripts hard coded in the build template files, with the
maintenance issues that may cause. Now that we have attributes, those
can be used to classify the installed scripts, and have the build file
templates simply check the attributes to know what's what.
Furthermore, the 'tsget.pl' script exists both as 'tsget.pl' and
'tsget', which is done by installing a symbolic link (or copy). This
link name is now given through an attribute, which results in even
less hard coding in the Unix Makefile template.
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7581)
5 years ago
|
|
|
our @install_bin_scripts =
|
|
|
|
grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
|
|
|
|
&& !$unified_info{attributes}->{scripts}->{$_}->{misc} }
|
Build: use attributes to indicate installed script classes
We have two classes of scripts to be installed, those that are
installed as "normal" programs, and those that are installed as "misc"
scripts. These classes are installed in different locations, so the
build file templates must pay attention.
Because we didn't have the tools to indicate what scripts go where, we
had these scripts hard coded in the build template files, with the
maintenance issues that may cause. Now that we have attributes, those
can be used to classify the installed scripts, and have the build file
templates simply check the attributes to know what's what.
Furthermore, the 'tsget.pl' script exists both as 'tsget.pl' and
'tsget', which is done by installing a symbolic link (or copy). This
link name is now given through an attribute, which results in even
less hard coding in the Unix Makefile template.
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7581)
5 years ago
|
|
|
@{$unified_info{scripts}};
|
|
|
|
our @install_misc_scripts =
|
|
|
|
grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
|
|
|
|
&& $unified_info{attributes}->{scripts}->{$_}->{misc} }
|
Build: use attributes to indicate installed script classes
We have two classes of scripts to be installed, those that are
installed as "normal" programs, and those that are installed as "misc"
scripts. These classes are installed in different locations, so the
build file templates must pay attention.
Because we didn't have the tools to indicate what scripts go where, we
had these scripts hard coded in the build template files, with the
maintenance issues that may cause. Now that we have attributes, those
can be used to classify the installed scripts, and have the build file
templates simply check the attributes to know what's what.
Furthermore, the 'tsget.pl' script exists both as 'tsget.pl' and
'tsget', which is done by installing a symbolic link (or copy). This
link name is now given through an attribute, which results in even
less hard coding in the Unix Makefile template.
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7581)
5 years ago
|
|
|
@{$unified_info{scripts}};
|
|
|
|
|
|
|
|
# This is a horrible hack, but is needed because recursive inclusion of files
|
|
|
|
# in different directories does not work well with HP C.
|
|
|
|
my $sd = sourcedir("crypto", "async", "arch");
|
|
|
|
foreach (grep /\[\.crypto\.async\.arch\].*\.o$/, keys %{$unified_info{sources}}) {
|
|
|
|
my $obj = platform->obj($_);
|
|
|
|
$unified_info{before}->{$obj}
|
|
|
|
= qq(arch_include = F\$PARSE("$sd","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
define arch 'arch_include');
|
|
|
|
$unified_info{after}->{$obj}
|
|
|
|
= qq(deassign arch);
|
|
|
|
}
|
|
|
|
my $sd1 = sourcedir("ssl","record");
|
|
|
|
my $sd2 = sourcedir("ssl","statem");
|
|
|
|
my @ssl_locl_users = grep(/^\[\.(?:ssl\.(?:record|statem)|test)\].*\.o$/,
|
|
|
|
keys %{$unified_info{sources}});
|
|
|
|
foreach (@ssl_locl_users) {
|
|
|
|
my $obj = platform->obj($_);
|
|
|
|
$unified_info{before}->{$obj}
|
|
|
|
= qq(record_include = F\$PARSE("$sd1","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
define record 'record_include'
|
|
|
|
statem_include = F\$PARSE("$sd2","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
define statem 'statem_include');
|
|
|
|
$unified_info{after}->{$obj}
|
|
|
|
= qq(deassign statem
|
|
|
|
deassign record);
|
|
|
|
}
|
|
|
|
# This makes sure things get built in the order they need
|
|
|
|
# to. You're welcome.
|
|
|
|
sub dependmagic {
|
|
|
|
my $target = shift;
|
|
|
|
|
|
|
|
return "$target : build_generated\n\t\pipe \$(MMS) \$(MMSQUALIFIERS) depend && \$(MMS) \$(MMSQUALIFIERS) _$target\n_$target";
|
|
|
|
}
|
|
|
|
"";
|
|
|
|
-}
|
|
|
|
PLATFORM={- $config{target} -}
|
|
|
|
OPTIONS={- $config{options} -}
|
|
|
|
CONFIGURE_ARGS=({- join(", ",quotify_l(@{$config{perlargv}})) -})
|
|
|
|
SRCDIR={- $config{sourcedir} -}
|
|
|
|
BLDDIR={- $config{builddir} -}
|
|
|
|
FIPSKEY={- $config{FIPSKEY} -}
|
|
|
|
|
|
|
|
# Allow both V and VERBOSE to indicate verbosity. This only applies
|
|
|
|
# to testing.
|
|
|
|
VERBOSE=$(V)
|
|
|
|
VERBOSE_FAILURE=$(VF)
|
|
|
|
|
|
|
|
VERSION={- "$config{full_version}" -}
|
|
|
|
MAJOR={- $config{major} -}
|
|
|
|
MINOR={- $config{minor} -}
|
Switch to MAJOR.MINOR.PATCH versioning and version 3.0.0-dev
We're strictly use version numbers of the form MAJOR.MINOR.PATCH.
Letter releases are things of days past.
The most central change is that we now express the version number with
three macros, one for each part of the version number:
OPENSSL_VERSION_MAJOR
OPENSSL_VERSION_MINOR
OPENSSL_VERSION_PATCH
We also provide two additional macros to express pre-release and build
metadata information (also specified in semantic versioning):
OPENSSL_VERSION_PRE_RELEASE
OPENSSL_VERSION_BUILD_METADATA
To get the library's idea of all those values, we introduce the
following functions:
unsigned int OPENSSL_version_major(void);
unsigned int OPENSSL_version_minor(void);
unsigned int OPENSSL_version_patch(void);
const char *OPENSSL_version_pre_release(void);
const char *OPENSSL_version_build_metadata(void);
Additionally, for shared library versioning (which is out of scope in
semantic versioning, but that we still need):
OPENSSL_SHLIB_VERSION
We also provide a macro that contains the release date. This is not
part of the version number, but is extra information that we want to
be able to display:
OPENSSL_RELEASE_DATE
Finally, also provide the following convenience functions:
const char *OPENSSL_version_text(void);
const char *OPENSSL_version_text_full(void);
The following macros and functions are deprecated, and while currently
existing for backward compatibility, they are expected to disappear:
OPENSSL_VERSION_NUMBER
OPENSSL_VERSION_TEXT
OPENSSL_VERSION
OpenSSL_version_num()
OpenSSL_version()
Also, this function is introduced to replace OpenSSL_version() for all
indexes except for OPENSSL_VERSION:
OPENSSL_info()
For configuration, the option 'newversion-only' is added to disable all
the macros and functions that are mentioned as deprecated above.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7724)
5 years ago
|
|
|
SHLIB_VERSION_NUMBER={- $config{shlib_version} -}
|
|
|
|
SHLIB_TARGET={- $target{shared_target} -}
|
|
|
|
|
|
|
|
LIBS={- join(", ", map { "-\n\t".$_.".OLB" } @libs) -}
|
|
|
|
SHLIBS={- join(", ", map { "-\n\t".$_.".EXE" } @shlibs) -}
|
|
|
|
FIPSMODULENAME={- # We do some extra checking here, as there should be only one
|
|
|
|
my @fipsmodules =
|
|
|
|
grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
|
|
|
|
&& $unified_info{attributes}->{modules}->{$_}->{fips} }
|
|
|
|
@{$unified_info{modules}};
|
|
|
|
die "More that one FIPS module" if scalar @fipsmodules > 1;
|
|
|
|
join(", ", map { basename platform->dso($_) } @fipsmodules) -}
|
|
|
|
MODULES={- join(", ", map { "-\n\t".$_.".EXE" } @{$unified_info{modules}}) -}
|
|
|
|
PROGRAMS={- join(", ", map { "-\n\t".$_.".EXE" } @{$unified_info{programs}}) -}
|
|
|
|
SCRIPTS={- join(", ", map { "-\n\t".$_ } @{$unified_info{scripts}}) -}
|
|
|
|
{- output_off() if $disabled{makedepend}; "" -}
|
|
|
|
DEPS={- our @deps = map { platform->isobj($_) ? platform->dep($_) : $_ }
|
|
|
|
grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ }
|
|
|
|
keys %{$unified_info{sources}};
|
|
|
|
join(", ", map { "-\n\t".$_ } @deps); -}
|
|
|
|
{- output_on() if $disabled{makedepend}; "" -}
|
|
|
|
GENERATED_MANDATORY={- join(", ", map { "-\n\t".$_ } @{$unified_info{depends}->{""}} ) -}
|
Configuration: Simplify generating list of generated files in build file templates
Computing the value of the GENERATED variable in the build file
templates is somewhat overcomplicated, and because of possible
duplication errors, changes are potentially error prone.
Looking more closely at how this list is determined, it can be
observed that the exact list of files to check is consistently
available in all the values found in the %unified_info tables
'depends', 'sources' and 'shared_sources', and all that's needed is to
filter those values so only those present as keys in the 'generate'
table are left.
This computation is also common for all build files, so due to its
apparent complexity, we move it to common0.tmpl, with the result left
in a global variable (@generated), to be consumed by all build file
templates.
common0.tmpl is included among the files to process when creating
build files, but unlike common.tmpl, it comes first of all.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5930)
5 years ago
|
|
|
GENERATED={- # common0.tmpl provides @generated
|
|
|
|
join(", ", map { platform->convertext($_) } @generated) -}
|
|
|
|
|
|
|
|
INSTALL_LIBS={- join(", ", map { "-\n\t".$_.".OLB" } @install_libs) -}
|
|
|
|
INSTALL_SHLIBS={- join(", ", map { "-\n\t".$_.".EXE" } @install_shlibs) -}
|
|
|
|
INSTALL_ENGINES={- join(", ", map { "-\n\t".$_.".EXE" } @install_engines) -}
|
|
|
|
INSTALL_MODULES={- join(", ", map { "-\n\t".$_.".EXE" } @install_modules) -}
|
|
|
|
INSTALL_PROGRAMS={- join(", ", map { "-\n\t".$_.".EXE" } @install_programs) -}
|
Build: use attributes to indicate installed script classes
We have two classes of scripts to be installed, those that are
installed as "normal" programs, and those that are installed as "misc"
scripts. These classes are installed in different locations, so the
build file templates must pay attention.
Because we didn't have the tools to indicate what scripts go where, we
had these scripts hard coded in the build template files, with the
maintenance issues that may cause. Now that we have attributes, those
can be used to classify the installed scripts, and have the build file
templates simply check the attributes to know what's what.
Furthermore, the 'tsget.pl' script exists both as 'tsget.pl' and
'tsget', which is done by installing a symbolic link (or copy). This
link name is now given through an attribute, which results in even
less hard coding in the Unix Makefile template.
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7581)
5 years ago
|
|
|
BIN_SCRIPTS={- join(", ", @install_bin_scripts) -}
|
|
|
|
MISC_SCRIPTS={- join(", ", @install_misc_scripts) -}
|
|
|
|
HTMLDOCS1={- join(", ", map { "-\n\t".$_ } @{$unified_info{htmldocs}->{man1}}) -}
|
|
|
|
HTMLDOCS3={- join(", ", map { "-\n\t".$_ } @{$unified_info{htmldocs}->{man3}}) -}
|
|
|
|
HTMLDOCS5={- join(", ", map { "-\n\t".$_ } @{$unified_info{htmldocs}->{man5}}) -}
|
|
|
|
HTMLDOCS7={- join(", ", map { "-\n\t".$_ } @{$unified_info{htmldocs}->{man7}}) -}
|
|
|
|
|
|
|
|
APPS_OPENSSL="{- use File::Spec::Functions;
|
|
|
|
catfile("apps","openssl") -}"
|
|
|
|
|
|
|
|
# DESTDIR is for package builders so that they can configure for, say,
|
|
|
|
# SYS$COMMON:[OPENSSL] and yet have everything installed in STAGING:[USER].
|
|
|
|
# In that case, configure with --prefix=SYS$COMMON:[OPENSSL] and then run
|
|
|
|
# MMS with /MACROS=(DESTDIR=STAGING:[USER]). The result will end up in
|
|
|
|
# STAGING:[USER.OPENSSL].
|
|
|
|
# Normally it is left empty.
|
|
|
|
DESTDIR=
|
|
|
|
|
|
|
|
# Do not edit this manually. Use Configure --prefix=DIR to change this!
|
|
|
|
INSTALLTOP={- our $installtop =
|
|
|
|
catdir($config{prefix}) || "SYS\$COMMON:[OPENSSL]";
|
|
|
|
$installtop -}
|
|
|
|
SYSTARTUP={- catdir($installtop, '[.SYS$STARTUP]'); -}
|
|
|
|
# This is the standard central area to store certificates, private keys...
|
|
|
|
OPENSSLDIR={- catdir($config{openssldir}) or
|
|
|
|
$config{prefix} ? catdir($config{prefix},"COMMON")
|
|
|
|
: "SYS\$COMMON:[OPENSSL-COMMON]" -}
|
|
|
|
# The same, but for C
|
|
|
|
OPENSSLDIR_C={- platform->osslprefix() -}DATAROOT:[000000]
|
|
|
|
# Where installed ENGINE modules reside, for C
|
|
|
|
ENGINESDIR_C={- platform->osslprefix() -}ENGINES{- $sover_dirname.$target{pointer_size} -}:
|
|
|
|
# Where modules reside, for C
|
|
|
|
MODULESDIR_C={- platform->osslprefix() -}MODULES{- $sover_dirname.$target{pointer_size} -}:
|
|
|
|
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
##### User defined commands and flags ################################
|
|
|
|
|
|
|
|
CC={- $config{CC} -}
|
|
|
|
CPP={- $config{CPP} -}
|
|
|
|
DEFINES={- our $defines1 = join('', map { ",$_" } @{$config{CPPDEFINES}}) -}
|
|
|
|
INCLUDES={- our $includes1 = join(',', @{$config{CPPINCLUDES}}) -}
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
CPPFLAGS={- our $cppflags1 = join('', @{$config{CPPFLAGS}}) -}
|
|
|
|
CFLAGS={- join('', @{$config{CFLAGS}}) -}
|
|
|
|
LDFLAGS={- join('', @{$config{LFLAGS}}) -}
|
|
|
|
EX_LIBS={- join('', map { ",$_" } @{$config{LDLIBS}}) -}
|
|
|
|
|
|
|
|
PERL={- $config{PERL} -}
|
|
|
|
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
AS={- $config{AS} -}
|
|
|
|
ASFLAGS={- join(' ', @{$config{ASFLAGS}}) -}
|
|
|
|
|
|
|
|
##### Special command flags ##########################################
|
|
|
|
|
|
|
|
ASOUTFLAG={- $target{asoutflag} -}$(OSSL_EMPTY)
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
|
|
|
|
##### Project flags ##################################################
|
|
|
|
|
|
|
|
# Variables starting with CNF_ are common variables for all product types
|
|
|
|
|
|
|
|
CNF_ASFLAGS={- join('', $target{asflags} || (),
|
|
|
|
@{$config{asflags}}) -}
|
|
|
|
CNF_DEFINES={- our $defines2 = join('', (map { ",$_" } @{$target{defines}},
|
|
|
|
@{$config{defines}}),
|
|
|
|
"'extradefines'") -}
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
CNF_INCLUDES={- our $includes2 = join(',', @{$target{includes}},
|
|
|
|
@{$config{includes}}) -}
|
|
|
|
CNF_CPPFLAGS={- our $cppflags2 = join('', $target{cppflags} || (),
|
|
|
|
@{$config{cppflags}}) -}
|
|
|
|
CNF_CFLAGS={- join('', $target{cflags} || (),
|
|
|
|
@{$config{cflags}}) -}
|
|
|
|
CNF_CXXFLAGS={- join('', $target{cxxflags} || (),
|
|
|
|
@{$config{cxxflags}}) -}
|
|
|
|
CNF_LDFLAGS={- join('', $target{lflags} || (),
|
|
|
|
@{$config{lflags}}) -}
|
|
|
|
CNF_EX_LIBS={- join('', map{ ",$_" } @{$target{ex_libs}},
|
|
|
|
@{$config{ex_libs}}) -}
|
|
|
|
|
|
|
|
# Variables starting with LIB_ are used to build library object files
|
|
|
|
# and shared libraries.
|
|
|
|
# Variables starting with DSO_ are used to build DSOs and their object files.
|
|
|
|
# Variables starting with BIN_ are used to build programs and their object
|
|
|
|
# files.
|
|
|
|
|
|
|
|
LIB_ASFLAGS={- join(' ', $target{lib_asflags} || (),
|
|
|
|
@{$config{lib_asflags}},
|
|
|
|
'$(CNF_ASFLAGS)', '$(ASFLAGS)') -}
|
|
|
|
LIB_DEFINES={- our $lib_defines =
|
|
|
|
join('', (map { ",$_" } @{$target{lib_defines}},
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
@{$target{shared_defines}},
|
|
|
|
@{$config{lib_defines}},
|
|
|
|
@{$config{shared_defines}}));
|
|
|
|
join('', $lib_defines,
|
|
|
|
(map { ",$_" } 'OPENSSLDIR="""$(OPENSSLDIR_C)"""',
|
|
|
|
'ENGINESDIR="""$(ENGINESDIR_C)"""',
|
|
|
|
'MODULESDIR="""$(MODULESDIR_C)"""'),
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
'$(CNF_DEFINES)', '$(DEFINES)') -}
|
|
|
|
LIB_INCLUDES={- our $lib_includes =
|
|
|
|
join(',', @{$target{lib_includes}},
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
@{$target{shared_includes}},
|
|
|
|
@{$config{lib_includes}},
|
|
|
|
@{$config{shared_includes}}) -}
|
|
|
|
LIB_CPPFLAGS={- our $lib_cppflags =
|
|
|
|
join('', $target{lib_cppflags} || (),
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
$target{shared_cppflags} || (),
|
|
|
|
@{$config{lib_cppflags}},
|
|
|
|
@{$config{shared_cppflag}});
|
|
|
|
join('', "'qual_includes'",
|
|
|
|
'/DEFINE=(__dummy$(LIB_DEFINES))',
|
|
|
|
$lib_cppflags,
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
|
|
|
|
LIB_CFLAGS={- join('', $target{lib_cflags} || (),
|
|
|
|
$target{shared_cflag} || (),
|
|
|
|
@{$config{lib_cflags}},
|
|
|
|
@{$config{shared_cflag}},
|
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
LIB_LDFLAGS={- join('', $target{lib_lflags} || (),
|
|
|
|
$target{shared_ldflag} || (),
|
|
|
|
@{$config{lib_lflags}},
|
|
|
|
@{$config{shared_ldflag}},
|
|
|
|
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
|
|
|
|
LIB_EX_LIBS=$(CNF_EX_LIBS)$(EX_LIBS)
|
|
|
|
DSO_ASFLAGS={- join(' ', $target{dso_asflags} || (),
|
|
|
|
$target{module_asflags} || (),
|
|
|
|
@{$config{dso_asflags}},
|
|
|
|
@{$config{module_asflags}},
|
|
|
|
'$(CNF_ASFLAGS)', '$(ASFLAGS)') -}
|
|
|
|
DSO_DEFINES={- join('', (map { ",$_" } @{$target{dso_defines}},
|
|
|
|
@{$target{module_defines}},
|
|
|
|
@{$config{dso_defines}},
|
|
|
|
@{$config{module_defines}}),
|
|
|
|
'$(CNF_DEFINES)', '$(DEFINES)') -}
|
|
|
|
DSO_INCLUDES={- join(',', @{$target{dso_includes}},
|
|
|
|
@{$target{module_includes}},
|
|
|
|
@{$config{dso_includes}},
|
|
|
|
@{$config{module_includes}}) -}
|
|
|
|
DSO_CPPFLAGS={- join('', "'qual_includes'",
|
|
|
|
'/DEFINE=(__dummy$(DSO_DEFINES))',
|
|
|
|
$target{dso_cppflags} || (),
|
|
|
|
$target{module_cppflags} || (),
|
|
|
|
@{$config{dso_cppflags}},
|
|
|
|
@{$config{module_cppflags}},
|
|
|
|
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
|
|
|
|
DSO_CFLAGS={- join('', $target{dso_cflags} || (),
|
|
|
|
$target{module_cflags} || (),
|
|
|
|
@{$config{dso_cflags}},
|
|
|
|
@{$config{module_cflags}},
|
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
DSO_LDFLAGS={- join('', $target{dso_lflags} || (),
|
|
|
|
$target{module_ldflags} || (),
|
|
|
|
@{$config{dso_lflags}},
|
|
|
|
@{$config{module_ldflags}},
|
|
|
|
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
|
|
|
|
DSO_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
|
|
|
|
BIN_ASFLAGS={- join(' ', $target{bin_asflags} || (),
|
|
|
|
@{$config{bin_asflags}},
|
|
|
|
'$(CNF_ASFLAGS)', '$(ASFLAGS)') -}
|
|
|
|
BIN_DEFINES={- join('', (map { ",$_" } @{$target{bin_defines}},
|
|
|
|
@{$config{bin_defines}}),
|
|
|
|
'$(CNF_DEFINES)', '$(DEFINES)') -}
|
|
|
|
BIN_INCLUDES={- join(',', @{$target{bin_includes}},
|
|
|
|
@{$config{bin_includes}}) -}
|
|
|
|
BIN_CPPFLAGS={- join('', "'qual_includes'",
|
|
|
|
'/DEFINE=(__dummy$(DSO_DEFINES))',
|
|
|
|
$target{bin_cppflags} || (),
|
|
|
|
@{$config{bin_cppflag}},
|
|
|
|
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
|
|
|
|
BIN_CFLAGS={- join('', $target{bin_cflags} || (),
|
|
|
|
@{$config{bin_cflags}},
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
BIN_LDFLAGS={- join('', $target{bin_lflags} || (),
|
|
|
|
@{$config{bin_lflags}} || (),
|
|
|
|
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
|
|
|
|
BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
|
|
|
|
NO_INST_LIB_CFLAGS={- join('', $target{no_inst_lib_cflags}
|
|
|
|
// $target{lib_cflags}
|
|
|
|
// (),
|
|
|
|
$target{shared_cflag} || (),
|
|
|
|
@{$config{lib_cflags}},
|
|
|
|
@{$config{shared_cflag}},
|
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
NO_INST_DSO_CFLAGS={- join('', $target{no_inst_dso_cflags}
|
|
|
|
// $target{dso_cflags}
|
|
|
|
// (),
|
|
|
|
$target{no_inst_module_cflags}
|
|
|
|
// $target{module_cflags}
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
// (),
|
|
|
|
@{$config{dso_cflags}},
|
|
|
|
@{$config{module_cflags}},
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
NO_INST_BIN_CFLAGS={- join('', $target{no_inst_bin_cflags}
|
|
|
|
// $target{bin_cflags}
|
|
|
|
// (),
|
|
|
|
@{$config{bin_cflags}},
|
|
|
|
'$(CNF_CFLAGS)', '$(CFLAGS)') -}
|
|
|
|
|
|
|
|
PERLASM_SCHEME={- $target{perlasm_scheme} -}
|
|
|
|
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
# CPPFLAGS_Q is used for one thing only: to build up buildinf.h
|
|
|
|
CPPFLAGS_Q={- (my $c = $lib_cppflags.$cppflags2.$cppflags1) =~ s|"|""|g;
|
|
|
|
(my $d = $lib_defines.$defines2.$defines1) =~ s|"|""|g;
|
|
|
|
my $i = join(',', $lib_includes || (), $includes2 || (),
|
|
|
|
$includes1 || ());
|
Make "make variables" config attributes for overridable flags
With the support of "make variables" comes the possibility for the
user to override them. However, we need to make a difference between
defaults that we use (and that should be overridable by the user) and
flags that are crucial for building OpenSSL (should not be
overridable).
Typically, overridable flags are those setting optimization levels,
warnings levels, that kind of thing, while non-overridable flags are,
for example, macros that indicate aspects of how the config target
should be treated, such as L_ENDIAN and B_ENDIAN.
We do that differentiation by allowing upper case attributes in the
config targets, named exactly like the "make variables" we support,
and reserving the lower case attributes for non-overridable project
flags.
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5534)
5 years ago
|
|
|
my $x = $c;
|
|
|
|
$x .= "/INCLUDE=($i)" if $i;
|
|
|
|
$x .= "/DEFINE=($d)" if $d;
|
|
|
|
$x; -}
|
|
|
|
|
|
|
|
# .FIRST and .LAST are special targets with MMS and MMK.
|
|
|
|
# The defines in there are for C. includes that look like
|
|
|
|
# this:
|
|
|
|
#
|
|
|
|
# #include <openssl/foo.h>
|
|
|
|
# #include "internal/bar.h"
|
|
|
|
#
|
|
|
|
# will use the logical names to find the files. Expecting
|
|
|
|
# DECompHP C to find files in subdirectories of whatever was
|
|
|
|
# given with /INCLUDE is a fantasy, unfortunately.
|
|
|
|
NODEBUG=@
|
|
|
|
.FIRST :
|
|
|
|
$(NODEBUG) sourcetop = F$PARSE("$(SRCDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]"
|
|
|
|
$(NODEBUG) DEFINE ossl_sourceroot 'sourcetop'
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) openssl_inc1 = F$PARSE("[.include.openssl]","A.;",,,"syntax_only") - "A.;"
|
|
|
|
$(NODEBUG) openssl_inc2 = F$PARSE("{- catdir($config{sourcedir},"[.include.openssl]") -}","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
$(NODEBUG) internal_inc1 = F$PARSE("[.crypto.include.internal]","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
$(NODEBUG) internal_inc2 = F$PARSE("{- catdir($config{sourcedir},"[.include.internal]") -}","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
$(NODEBUG) internal_inc3 = F$PARSE("{- catdir($config{sourcedir},"[.crypto.include.internal]") -}","A.;",,,"SYNTAX_ONLY") - "A.;"
|
|
|
|
$(NODEBUG) DEFINE openssl 'openssl_inc1','openssl_inc2'
|
|
|
|
$(NODEBUG) DEFINE internal 'internal_inc1','internal_inc2','internal_inc3'
|
|
|
|
$(NODEBUG) staging_dir = "$(DESTDIR)"
|
|
|
|
$(NODEBUG) staging_instdir = ""
|
|
|
|
$(NODEBUG) staging_datadir = ""
|
|
|
|
$(NODEBUG) IF staging_dir .NES. "" THEN -
|
|
|
|
staging_instdir = F$PARSE("A.;",staging_dir,"[]",,"SYNTAX_ONLY")
|
|
|
|
$(NODEBUG) IF staging_instdir - "]A.;" .NES. staging_instdir THEN -
|
|
|
|
staging_instdir = staging_instdir - "]A.;" + ".OPENSSL-INSTALL]"
|
|
|
|
$(NODEBUG) IF staging_instdir - "A.;" .NES. staging_instdir THEN -
|
|
|
|
staging_instdir = staging_instdir - "A.;" + "[OPENSSL-INSTALL]"
|
|
|
|
$(NODEBUG) IF staging_dir .NES. "" THEN -
|
|
|
|
staging_datadir = F$PARSE("A.;",staging_dir,"[]",,"SYNTAX_ONLY")
|
|
|
|
$(NODEBUG) IF staging_datadir - "]A.;" .NES. staging_datadir THEN -
|
|
|
|
staging_datadir = staging_datadir - "]A.;" + ".OPENSSL-COMMON]"
|
|
|
|
$(NODEBUG) IF staging_datadir - "A.;" .NES. staging_datadir THEN -
|
|
|
|
staging_datadir = staging_datadir - "A.;" + "[OPENSSL-COMMON]"
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) ! Installation logical names
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) installtop = F$PARSE(staging_instdir,"$(INSTALLTOP)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]"
|
|
|
|
$(NODEBUG) datatop = F$PARSE(staging_datadir,"$(OPENSSLDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]"
|
|
|
|
$(NODEBUG) DEFINE ossl_installroot 'installtop'
|
|
|
|
$(NODEBUG) DEFINE ossl_dataroot 'datatop'
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) ! Figure out the architecture
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) arch = f$edit( f$getsyi( "arch_name"), "upcase")
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) ! Set up logical names for the libraries, so LINK and
|
|
|
|
$(NODEBUG) ! running programs can use them.
|
|
|
|
$(NODEBUG) !
|
|
|
|
$(NODEBUG) {- join("\n\t\$(NODEBUG) ", map { "DEFINE ".uc($_)." 'F\$ENV(\"DEFAULT\")'".uc($_)."\$(SHLIB_EXT)" } @shlibs) || "!" -}
|
|
|
|
|
|
|
|
.LAST :
|
|
|
|
$(NODEBUG) {- join("\n\t\$(NODEBUG) ", map { "DEASSIGN ".uc($_) } @shlibs) || "!" -}
|
|
|
|
$(NODEBUG) DEASSIGN ossl_dataroot
|
|
|
|
$(NODEBUG) DEASSIGN ossl_installroot
|
|
|
|
$(NODEBUG) DEASSIGN internal
|
|
|
|
$(NODEBUG) DEASSIGN openssl
|
|
|
|
.DEFAULT :
|
|
|
|
@ ! MMS cannot handle no actions...
|
|
|
|
|
|
|
|
# The main targets ###################################################
|
|
|
|
|
|
|
|
{- dependmagic('build_sw'); -} : build_libs_nodep, build_modules_nodep, build_programs_nodep copy-utils
|
|
|
|
{- dependmagic('build_libs'); -} : build_libs_nodep
|
|
|
|
{- dependmagic('build_modules'); -} : build_modules_nodep
|
|
|
|
{- dependmagic('build_programs'); -} : build_programs_nodep
|
|
|
|
|
|
|
|
build_generated : $(GENERATED_MANDATORY)
|
|
|
|
build_libs_nodep : $(LIBS), $(SHLIBS)
|
|
|
|
build_modules_nodep : $(MODULES)
|
|
|
|
build_programs_nodep : $(PROGRAMS), $(SCRIPTS)
|
|
|
|
|
|
|
|
build_docs: build_html_docs
|
|
|
|
build_html_docs: $(HTMLDOCS1) $(HTMLDOCS3) $(HTMLDOCS5) $(HTMLDOCS7)
|
|
|
|
|
|
|
|
# Kept around for backward compatibility
|
|
|
|
build_apps build_tests : build_programs
|
|
|
|
|
|
|
|
# Convenience target to prebuild all generated files, not just the mandatory
|
|
|
|
# ones
|
|
|
|
build_all_generated : $(GENERATED_MANDATORY) $(GENERATED) build_docs
|
|
|
|
@ ! {- output_off() if $disabled{makedepend}; "" -}
|
|
|
|
@ WRITE SYS$OUTPUT "Warning: consider configuring with no-makedepend, because if"
|
|
|
|
@ WRITE SYS$OUTPUT " target system doesn't have $(PERL),"
|
|
|
|
@ WRITE SYS$OUTPUT " then make will fail..."
|
|
|
|
@ ! {- output_on() if $disabled{makedepend}; "" -}
|
|
|
|
|
|
|
|
all : build_sw build_docs
|
|
|
|
|
|
|
|
test : tests
|
|
|
|
{- dependmagic('tests'); -} : build_programs_nodep, build_modules_nodep copy-utils
|
|
|
|
@ ! {- output_off() if $disabled{tests}; "" -}
|
|
|
|
DEFINE SRCTOP "$(SRCDIR)"
|
|
|
|
DEFINE BLDTOP "$(BLDDIR)"
|
|
|
|
DEFINE FIPSKEY "$(FIPSKEY)"
|
|
|
|
IF "$(VERBOSE)" .NES. "" THEN DEFINE VERBOSE "$(VERBOSE)"
|
|
|
|
$(PERL) {- sourcefile("test", "run_tests.pl") -} $(TESTS)
|
|
|
|
DEASSIGN BLDTOP
|
|
|
|
DEASSIGN SRCTOP
|
|
|
|
DEASSIGN FIPSKEY
|
|
|
|
@ ! {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -}
|
|
|
|
@ WRITE SYS$OUTPUT "Tests are not supported with your chosen Configure options"
|
|
|
|
@ ! {- output_on() if !$disabled{tests}; "" -}
|
|
|
|
|
|
|
|
list-tests :
|
|
|
|
@ ! {- output_off() if $disabled{tests}; "" -}
|
|
|
|
@ DEFINE SRCTOP "$(SRCDIR)"
|
|
|
|
@ $(PERL) {- sourcefile("test", "run_tests.pl") -} list
|
|
|
|
@ DEASSIGN SRCTOP
|
|
|
|
@ ! {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -}
|
|
|
|
@ WRITE SYS$OUTPUT "Tests are not supported with your chosen Configure options"
|
|
|
|
@ ! {- output_on() if !$disabled{tests}; "" -}
|
|
|
|
|
|
|
|
install : install_sw install_ssldirs install_docs install_final
|
|
|
|
|
|
|
|
install_final :
|
|
|
|
@ WRITE SYS$OUTPUT ""
|
|
|
|
@ WRITE SYS$OUTPUT "######################################################################"
|
|
|
|
@ WRITE SYS$OUTPUT ""
|
|
|
|
@ IF "$(DESTDIR)" .EQS. "" THEN -
|
|
|
|
PIPE ( WRITE SYS$OUTPUT "Installation complete" ; -
|
|
|
|
WRITE SYS$OUTPUT "" ; -
|
|
|
|
WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup{- $osslver -} to set up logical names" ; -
|
|
|
|
WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; -
|
|
|
|
WRITE SYS$OUTPUT "" )
|
|
|
|
@ IF "$(DESTDIR)" .NES. "" THEN -
|
|
|
|
PIPE ( WRITE SYS$OUTPUT "Staging installation complete" ; -
|
|
|
|
WRITE SYS$OUTPUT "" ; -
|
|
|
|
WRITE SYS$OUTPUT "Finish or package in such a way that the contents of the directory tree" ; -
|
|
|
|
WRITE SYS$OUTPUT staging_instdir ; -
|
|
|
|
WRITE SYS$OUTPUT "ends up in $(INSTALLTOP)," ; -
|
|
|
|
WRITE SYS$OUTPUT "and that the contents of the contents of the directory tree" ; -
|
|
|
|
WRITE SYS$OUTPUT staging_datadir ; -
|
|
|
|
WRITE SYS$OUTPUT "ends up in $(OPENSSLDIR)" ; -
|
|
|
|
WRITE SYS$OUTPUT "" ; -
|
|
|
|
WRITE SYS$OUTPUT "When in its final destination," ; -
|
|
|
|
WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup{- $osslver -} to set up logical names" ; -
|
|
|
|
WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; -
|
|
|
|
WRITE SYS$OUTPUT "" )
|
|
|
|
|
|
|
|
check_install :
|
|
|
|
spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com
|
|
|
|
|
|
|
|
uninstall : uninstall_docs uninstall_sw
|
|
|
|
|
|
|
|
# Because VMS wants the generation number (or *) to delete files, we can't
|
|
|
|
# use $(LIBS), $(PROGRAMS), $(GENERATED) and $(MODULES) directly.
|
|
|
|
libclean :
|
|
|
|
{- join("\n\t", map { "- DELETE $_.OLB;*" } @libs) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_.EXE;*,$_.MAP;*" } @shlibs) || "@ !" -}
|
|
|
|
|
|
|
|
clean : libclean
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{htmldocs}->{man1}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{htmldocs}->{man3}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{htmldocs}->{man5}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{htmldocs}->{man7}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_.EXE;*,$_.OPT;*" } @{$unified_info{programs}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_.EXE;*,$_.OPT;*" } @{$unified_info{modules}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{scripts}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @{$unified_info{depends}->{""}}) || "@ !" -}
|
|
|
|
{- join("\n\t", map { "- DELETE $_;*" } @generated) || "@ !" -}
|
|
|
|
- DELETE [...]*.MAP;*
|
|
|
|
- DELETE [...]*.D;*
|
|
|
|
- DELETE [...]*.OBJ;*,*.LIS;*
|
|
|
|
- DELETE []CXX$DEMANGLER_DB.;*
|
|
|
|
- DELETE [.VMS]openssl_startup.com;*
|
|
|
|
- DELETE [.VMS]openssl_shutdown.com;*
|
|
|
|
- DELETE []vmsconfig.pm;*
|
|
|
|
|
|
|
|
distclean : clean
|
|
|
|
- DELETE configdata.pm;*
|
|
|
|
- DELETE descrip.mms;*
|
|
|
|
|
|
|
|
depend : descrip.mms
|
|
|
|
descrip.mms : FORCE
|
|
|
|
@ ! {- output_off() if $disabled{makedepend}; "" -}
|
|
|
|
@ $(PERL) {- sourcefile("util", "add-depends.pl") -} "VMS C"
|
|
|
|
@ ! {- output_on() if $disabled{makedepend}; "" -}
|
|
|
|
|
|
|
|
# Install helper targets #############################################
|
|
|
|
|
|
|
|
install_sw : install_dev install_engines install_modules -
|
|
|
|
install_runtime install_startup install_ivp
|
|
|
|
|
|
|
|
uninstall_sw : uninstall_dev uninstall_modules uninstall_engines -
|
|
|
|
uninstall_runtime uninstall_startup uninstall_ivp
|
|
|
|
|
|
|
|
install_docs : install_html_docs
|
|
|
|
|
|
|
|
uninstall_docs : uninstall_html_docs
|
|
|
|
|
|
|
|
install_fips: install_sw
|
|
|
|
@ WRITE SYS$OUTPUT "*** Installing FIPS module configuration"
|
|
|
|
@ WRITE SYS$OUTPUT "fipsinstall $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).cnf"
|
|
|
|
openssl fipsinstall -
|
|
|
|
-module ossl_installroot:[MODULES{- $sover_dirname.$target{pointer_size} -}.'arch']$(FIPSMODULENAME) -
|
|
|
|
-out ossl_installroot:[MODULES{- $sover_dirname.$target{pointer_size} -}.'arch']$(FIPSMODULENAME).cnf -
|
|
|
|
-macopt "key:$(FIPSKEY)"
|
|
|
|
|
|
|
|
uninstall_fips: uninstall_sw
|
|
|
|
@ WRITE SYS$OUTPUT "*** Uninstalling FIPS module configuration"
|
|
|
|
DELETE ossl_installroot:[MODULES{- $sover_dirname.$target{pointer_size} -}.'arch']$(FIPSMODULENAME).cnf;*
|
|
|
|
|
|
|
|
install_ssldirs : check_INSTALLTOP
|
|
|
|
- CREATE/DIR/PROT=(S:RWED,O:RWE,G:RE,W:RE) OSSL_DATAROOT:[000000]
|
|
|
|
IF F$SEARCH("OSSL_DATAROOT:[000000]CERTS.DIR;1") .EQS. "" THEN -
|
|
|
|
CREATE/DIR/PROT=(S:RWED,O:RWE,G:RE,W:RE) OSSL_DATAROOT:[CERTS]
|
|
|
|
IF F$SEARCH("OSSL_DATAROOT:[000000]PRIVATE.DIR;1") .EQS. "" THEN -
|
|
|
|
CREATE/DIR/PROT=(S:RWED,O:RWE,G,W) OSSL_DATAROOT:[PRIVATE]
|
|
|
|
IF F$SEARCH("OSSL_DATAROOT:[000000]MISC.DIR;1") .EQS. "" THEN -
|
|
|
|
CREATE/DIR/PROT=(S:RWED,O:RWE,G,W) OSSL_DATAROOT:[MISC]
|
|
|
|
COPY/PROT=W:RE $(MISC_SCRIPTS) OSSL_DATAROOT:[MISC]
|
|
|
|
@ ! Install configuration file
|
|
|
|
COPY/PROT=W:R {- sourcefile("apps", "openssl-vms.cnf") -} -
|
|
|
|
ossl_dataroot:[000000]openssl.cnf-dist
|
|
|
|
IF F$SEARCH("OSSL_DATAROOT:[000000]openssl.cnf") .EQS. "" THEN -
|
|
|
|
COPY/PROT=W:R {- sourcefile("apps", "openssl-vms.cnf") -} -
|
|
|
|
ossl_dataroot:[000000]openssl.cnf
|
|
|
|
@ ! Install CTLOG configuration file
|
|
|
|
COPY/PROT=W:R {- sourcefile("apps", "ct_log_list.cnf") -} -
|
|
|
|
ossl_dataroot:[000000]ct_log_list.cnf-dist
|
|
|
|
IF F$SEARCH("OSSL_DATAROOT:[000000]ct_log_list.cnf") .EQS. "" THEN -
|
|
|
|
COPY/PROT=W:R {- sourcefile("apps", "ct_log_list.cnf") -} -
|
|
|
|
ossl_dataroot:[000000]ct_log_list.cnf
|
|
|
|
|
|
|
|
install_dev : check_INSTALLTOP install_runtime_libs
|
|
|
|
@ WRITE SYS$OUTPUT "*** Installing development files"
|
|
|
|
@ ! Install header files
|
|
|
|
- CREATE/DIR ossl_installroot:[include.openssl]
|
|
|
|
COPY/PROT=W:R openssl:*.h ossl_installroot:[include.openssl]
|
|
|
|
@ ! Install static (development) libraries
|
|
|
|
- CREATE/DIR ossl_installroot:[LIB.'arch']
|
|
|
|
{- join("\n ",
|
|
|
|
map { "COPY/PROT=W:R $_.OLB ossl_installroot:[LIB.'arch']" }
|
|
|
|
@install_libs) -}
|
|
|
|
|
|
|
|
install_engines : check_INSTALLTOP install_runtime_libs build_modules
|
|
|
|
@ {- output_off() unless scalar @install_engines; "" -} !
|
|
|
|
@ WRITE SYS$OUTPUT "*** Installing engines"
|
|
|
|
- CREATE/DIR ossl_installroot:[ENGINES{- $sover_dirname.$target{pointer_size} -}.'arch']
|
|
|
|
{- join("\n ",
|
|