# 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.

my %targets = (
    "VC-WIN64A-masm" => {
        inherit_from    => [ "VC-WIN64-common", asm("x86_64_asm"),
                             sub { $disabled{shared} ? () : "x86_64_uplink" } ],
        AS              => "ml64",
        ASFLAGS         => "/nologo /Zi",
        asoutflag       => "/Fo",
        asflags         => "/c /Cp /Cx",
        sys_id          => "WIN64A",
        bn_asm_src      => sub { return undef unless @_;
                                 my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; },
        perlasm_scheme   => "masm",
    },
);
