提交 0c9b1534 编写于 作者: R Richard Levitte

Configuration: Simplify the way vms information is retrieved

Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 62890f47
...@@ -78,23 +78,26 @@ sub vc_wince_info { ...@@ -78,23 +78,26 @@ sub vc_wince_info {
my $vms_info = {}; my $vms_info = {};
sub vms_info { sub vms_info {
unless (%$vms_info) { unless (%$vms_info) {
$vms_info->{disable_warns} = [ ]; my $pointer_size = shift;
$vms_info->{disable_warns_p32} = [ ]; my $pointer_size_str = $pointer_size == 0 ? "" : "$pointer_size";
$vms_info->{disable_warns_p64} = [ ];
`PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`; $vms_info->{disable_warns} = [ ];
if ($? == 0) { if ($pointer_size == 64) {
push @{$vms_info->{disable_warns_p64}}, "MAYLOSEDATA3"; `PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`;
} if ($? == 0) {
push @{$vms_info->{disable_warns}}, "MAYLOSEDATA3";
}
}
unless ($disabled{zlib}) { unless ($disabled{zlib}) {
my $default_zlib = 'GNV$LIBZSHR' . $pointer_size_str;
if (defined($disabled{"zlib-dynamic"})) { if (defined($disabled{"zlib-dynamic"})) {
$vms_info->{zlib} = $withargs{zlib_lib} || 'GNV$LIBZSHR/SHARE'; $vms_info->{zlib} = $withargs{zlib_lib} || "$default_zlib/SHARE";
$vms_info->{zlib_p32} = $withargs{zlib_lib} || 'GNV$LIBZSHR32/SHARE';
$vms_info->{zlib_p64} = $withargs{zlib_lib} || 'GNV$LIBZSHR64/SHARE';
} else { } else {
$vms_info->{def_zlib} = $withargs{zlib_lib} || 'GNV$LIBZSHR'; $vms_info->{def_zlib} = $withargs{zlib_lib} || $default_zlib;
$vms_info->{def_zlib_p32} = $withargs{zlib_lib} || 'GNV$LIBZSHR32'; # In case the --with-zlib-lib value contains something like
$vms_info->{def_zlib_p64} = $withargs{zlib_lib} || 'GNV$LIBZSHR64'; # /SHARE or /LIB or so at the end, remove it.
$vms_info->{def_zlib} =~ s|/.*$||g;
} }
} }
} }
...@@ -1764,100 +1767,100 @@ sub vms_info { ...@@ -1764,100 +1767,100 @@ sub vms_info {
"vms-alpha" => { "vms-alpha" => {
inherit_from => [ "vms-generic" ], inherit_from => [ "vms-generic" ],
cflags => add(sub { my @warnings = cflags => add(sub { my @warnings =
@{vms_info()->{disable_warns}}; @{vms_info(0)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }), ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib} return vms_info(0)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(0)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib} || (); }), ex_libs => add(sub { return vms_info(0)->{zlib} || (); }),
#as => "???", #as => "???",
#debug_aflags => "/NOOPTIMIZE/DEBUG", #debug_aflags => "/NOOPTIMIZE/DEBUG",
#release_aflags => "/OPTIMIZE/NODEBUG", #release_aflags => "/OPTIMIZE/NODEBUG",
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
}, },
"vms-alpha-p32" => { "vms-alpha-p32" => {
inherit_from => [ "vms-alpha" ], inherit_from => [ "vms-generic" ],
cflags => cflags =>
add("/POINTER_SIZE=32", add("/POINTER_SIZE=32",
sub { my @warnings = sub { my @warnings =
@{vms_info()->{disable_warns_p32}}; @{vms_info(32)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ), } ),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib_p32} return vms_info(32)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p32}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(32)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib_p32} || (); }), ex_libs => add(sub { return vms_info(32)->{zlib} || (); }),
}, },
"vms-alpha-p64" => { "vms-alpha-p64" => {
inherit_from => [ "vms-alpha" ], inherit_from => [ "vms-generic" ],
cflags => cflags =>
add("/POINTER_SIZE=64=ARGV", add("/POINTER_SIZE=64=ARGV",
sub { my @warnings = sub { my @warnings =
@{vms_info()->{disable_warns_p64}}; @{vms_info(64)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ), } ),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib_p64} return vms_info(64)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p64}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(64)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib_p64} || (); }), ex_libs => add(sub { return vms_info(64)->{zlib} || (); }),
}, },
"vms-ia64" => { "vms-ia64" => {
inherit_from => [ "vms-generic" ], inherit_from => [ "vms-generic" ],
cflags => add(sub { my @warnings = cflags => add(sub { my @warnings =
@{vms_info()->{disable_warns}}; @{vms_info(0)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }), ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib} return vms_info(0)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(0)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib} || (); }), ex_libs => add(sub { return vms_info(0)->{zlib} || (); }),
#as => "I4S", #as => "I4S",
#debug_aflags => "/NOOPTIMIZE/DEBUG", #debug_aflags => "/NOOPTIMIZE/DEBUG",
#release_aflags => "/OPTIMIZE/NODEBUG", #release_aflags => "/OPTIMIZE/NODEBUG",
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
}, },
"vms-ia64-p32" => { "vms-ia64-p32" => {
inherit_from => [ "vms-ia64" ], inherit_from => [ "vms-generic" ],
cflags => cflags =>
add("/POINTER_SIZE=32", add("/POINTER_SIZE=32",
sub { my @warnings = sub { my @warnings =
@{vms_info()->{disable_warns_p32}}; @{vms_info(32)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ), } ),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib_p32} return vms_info(32)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p32}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(32)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib_p32} || (); }), ex_libs => add(sub { return vms_info(32)->{zlib} || (); }),
}, },
"vms-ia64-p64" => { "vms-ia64-p64" => {
inherit_from => [ "vms-ia64" ], inherit_from => [ "vms-generic" ],
cflags => cflags =>
add("/POINTER_SIZE=64=ARGV", add("/POINTER_SIZE=64=ARGV",
sub { my @warnings = sub { my @warnings =
@{vms_info()->{disable_warns_p64}}; @{vms_info(64)->{disable_warns}};
@warnings @warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
} ), } ),
defines => defines =>
add(sub { add(sub {
return vms_info()->{def_zlib_p64} return vms_info(64)->{def_zlib}
? "LIBZ=\"\"\"".vms_info()->{def_zlib_p64}."\"\"\"" : (); ? "LIBZ=\"\"\"".vms_info(64)->{def_zlib}."\"\"\"" : ();
}), }),
ex_libs => add(sub { return vms_info()->{zlib_p64} || (); }), ex_libs => add(sub { return vms_info(64)->{zlib} || (); }),
}, },
); );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册