2016-04-19 18:41:18 +00:00
|
|
|
# We can't make commitment to supporting Microsoft assembler,
|
|
|
|
# because it would mean supporting all masm versions. This in
|
|
|
|
# in turn is because masm is not really an interchangeable option,
|
|
|
|
# while users tend to have reasons to stick with specific Visual
|
|
|
|
# Studio versions. It's usually lesser hassle to make it work
|
|
|
|
# with latest assembler, but tweaking for older versions had
|
|
|
|
# proven to be daunting task. This is experimental target, for
|
|
|
|
# production builds stick with [up-to-date version of] nasm.
|
|
|
|
|
2017-12-01 14:29:05 +00:00
|
|
|
my %targets = (
|
2016-04-19 18:41:18 +00:00
|
|
|
"VC-WIN64A-masm" => {
|
2019-06-16 10:56:21 +00:00
|
|
|
inherit_from => [ "VC-WIN64-common", asm("x86_64_asm") ],
|
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)
2018-03-06 19:35:30 +00:00
|
|
|
AS => "ml64",
|
|
|
|
ASFLAGS => "/nologo /Zi",
|
2016-04-20 08:22:47 +00:00
|
|
|
asoutflag => "/Fo",
|
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)
2018-03-06 19:35:30 +00:00
|
|
|
asflags => "/c /Cp /Cx",
|
2017-02-19 21:11:29 +00:00
|
|
|
sys_id => "WIN64A",
|
|
|
|
bn_asm_src => sub { return undef unless @_;
|
|
|
|
my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; },
|
2019-06-16 10:37:21 +00:00
|
|
|
uplink_arch => 'x86_64',
|
2017-02-19 21:11:29 +00:00
|
|
|
perlasm_scheme => "masm",
|
2016-04-19 18:41:18 +00:00
|
|
|
},
|
|
|
|
);
|