mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-05-08 15:39:41 +00:00
Add a platform specific configuration checker
For each platform, we may need to perform some basic checks to see that available tools perform as we expect them. For the moment, the added checkers test that Perl gives the expected path format. This should help MingW users to see if they run an appropriate Perl implementation, for example. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2851) (cherry picked from commit d192a3aaeb76fc89f8285b4dc938c2bc0c37d0d4)
This commit is contained in:
parent
0d41526f4f
commit
a40b5be27e
22
Configurations/unix-checker.pm
Normal file
22
Configurations/unix-checker.pm
Normal file
@ -0,0 +1,22 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use Config;
|
||||
|
||||
# Check that the perl implementation file modules generate paths that
|
||||
# we expect for the platform
|
||||
use File::Spec::Functions qw(:DEFAULT rel2abs);
|
||||
|
||||
if (rel2abs('.') !~ m|/|) {
|
||||
die <<EOF;
|
||||
|
||||
******************************************************************************
|
||||
This perl implementation doesn't produce Unix like paths (with forward slash
|
||||
directory separators). Please use an implementation that matches your
|
||||
building platform.
|
||||
|
||||
This Perl version: $Config{version} for $Config{archname}
|
||||
******************************************************************************
|
||||
EOF
|
||||
}
|
||||
|
||||
1;
|
22
Configurations/windows-checker.pm
Normal file
22
Configurations/windows-checker.pm
Normal file
@ -0,0 +1,22 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use Config;
|
||||
|
||||
# Check that the perl implementation file modules generate paths that
|
||||
# we expect for the platform
|
||||
use File::Spec::Functions qw(:DEFAULT rel2abs);
|
||||
|
||||
if (rel2abs('.') !~ m|\\|) {
|
||||
die <<EOF;
|
||||
|
||||
******************************************************************************
|
||||
This perl implementation doesn't produce Windows like paths (with backward
|
||||
slash directory separators). Please use an implementation that matches your
|
||||
building platform.
|
||||
|
||||
This Perl version: $Config{version} for $Config{archname}
|
||||
******************************************************************************
|
||||
EOF
|
||||
}
|
||||
|
||||
1;
|
19
Configure
19
Configure
@ -994,6 +994,25 @@ $target{build_scheme} = [ $target{build_scheme} ]
|
||||
my ($builder, $builder_platform, @builder_opts) =
|
||||
@{$target{build_scheme}};
|
||||
|
||||
foreach my $checker (($builder_platform."-".$target{build_file}."-checker.pm",
|
||||
$builder_platform."-checker.pm")) {
|
||||
my $checker_path = catfile($srcdir, "Configurations", $checker);
|
||||
if (-f $checker_path) {
|
||||
my $fn = $ENV{CONFIGURE_CHECKER_WARN}
|
||||
? sub { warn $@; } : sub { die $@; };
|
||||
if (! do $checker_path) {
|
||||
if ($@) {
|
||||
$fn->($@);
|
||||
} elsif ($!) {
|
||||
$fn->($!);
|
||||
} else {
|
||||
$fn->("The detected tools didn't match the platform\n");
|
||||
}
|
||||
}
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
push @{$config{defines}}, "NDEBUG" if $config{build_type} eq "release";
|
||||
|
||||
if ($target =~ /^mingw/ && `$target{cc} --target-help 2>&1` =~ m/-mno-cygwin/m)
|
||||
|
Loading…
x
Reference in New Issue
Block a user