X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=Configure;h=080bc06fd4ec5d352d92531038f2bd9462953abd;hp=e4a95ad65468dc62c228eb03318f50ba6294e150;hb=317be63875e59efa34be0075eaff3c033ef6969f;hpb=00b0d6632bd4c0af84dc4e9e66d17a989ad58d00;ds=sidebyside diff --git a/Configure b/Configure index e4a95ad654..080bc06fd4 100755 --- a/Configure +++ b/Configure @@ -94,11 +94,11 @@ my $gcc_devteam_warn = "-DPEDANTIC -DREF_DEBUG -DDEBUG_UNUSED -DBIO_DEBUG" # TODO(openssl-team): fix problems and investigate if (at least) the # following warnings can also be enabled: # -Wswitch-enum -# -Wunused-macros # -Wcast-align # -Wunreachable-code -# -Wlanguage-extension-token -# -Wextended-offsetof +# -Wlanguage-extension-token -- no, we use asm() +# -Wunused-macros -- no, too tricky for BN and _XOPEN_SOURCE etc +# -Wextended-offsetof -- no, needed in CMS ASN1 code my $clang_devteam_warn = "" . " -Qunused-arguments" . " -Wextra" @@ -209,7 +209,6 @@ $config{fipslibdir}="/usr/local/ssl/fips-2.0/lib/"; my $nofipscanistercheck=0; $config{baseaddr}="0xFB00000"; my $threads=0; -my $no_dso=0; my $default_ranlib; $config{fips}=0; @@ -678,11 +677,6 @@ foreach (@argvcopy) $user_cflags.=" ".$_; } } - elsif ($_ =~ /^([^:]+):(.+)$/) - { - eval "\$table{\$1} = \"$2\""; # allow $xxx constructs in the string - $target=$1; - } else { die "target already defined - $target (offending arg: $_)\n" if ($target ne ""); @@ -775,7 +769,7 @@ foreach (sort (keys %disabled)) printf " no-%-12s %-10s", $_, "[$disabled{$_}]"; if (/^dso$/) - { $no_dso = 1; } + { } elsif (/^threads$/) { } elsif (/^shared$/) @@ -801,7 +795,7 @@ foreach (sort (keys %disabled)) my ($ALGO, $algo); ($ALGO = $algo = $_) =~ tr/[\-a-z]/[_A-Z]/; - if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ + if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ || /^async$/ || /^autoalginit/ || /^autoerrinit/) { push @{$config{openssl_other_defines}}, "OPENSSL_NO_$ALGO"; @@ -842,10 +836,13 @@ if ($d) { } $config{target} = $target; delete $table{$base_target}->{template}; # or the next test will fail. -my %target = ( %{$table{$base_target}}, resolve_config($target) ); +my %target = resolve_config($target); &usage if (!%target || $target{template}); +# Set up defaults +my %target = ( %{$table{$base_target}}, %target ); + $target{exe_extension}=""; $target{exe_extension}=".exe" if ($config{target} eq "DJGPP" || $config{target} =~ /^(?:Cygwin|mingw)/); @@ -930,7 +927,7 @@ my $no_user_defines=0; # has support compiled in for them. Currently each method is enabled # by a define "DSO_" ... we translate the "dso_scheme" config # string entry into using the following logic; -if (!$no_dso && $target{dso_scheme} ne "") +if (!$disabled{dso} && $target{dso_scheme} ne "") { $target{dso_scheme} =~ tr/[a-z]/[A-Z]/; if ($target{dso_scheme} eq "DLFCN") @@ -1043,6 +1040,10 @@ if ($disabled{pic}) $target{shared_cflag} = $target{shared_ldflag} = $target{shared_rcflag} = ""; } +else + { + push @{$config{defines}}, "OPENSSL_PIC"; + } if ($target{sys_id} ne "") { @@ -1265,6 +1266,8 @@ if ($builder eq "unified") { if (-f catfile($srcdir, "engines", $_, "build.info")); } + $config{build_infos} = [ ]; + foreach (@build_infos) { my $sourced = catdir($srcdir, $_->[0]); my $buildd = catdir($blddir, $_->[0]); @@ -1288,6 +1291,7 @@ if ($builder eq "unified") { my %renames = (); my %sharednames = (); + push @{$config{build_infos}}, catfile(abs2rel($sourced, $blddir), $f); my $template = Text::Template->new(TYPE => 'FILE', SOURCE => catfile($sourced, $f)); die "Something went wrong with $sourced/$f: $!\n" unless $template; @@ -1600,7 +1604,7 @@ use warnings; use Exporter; #use vars qw(\@ISA \@EXPORT); our \@ISA = qw(Exporter); -our \@EXPORT = qw(\%config \%target %withargs %unified_info); +our \@EXPORT = qw(\%config \%target %disabled %withargs %unified_info); EOF print OUT "our %config = (\n"; @@ -1967,12 +1971,20 @@ sub _add { } } sub add_before { - my $separator = shift; + my $separator = " "; + if (ref($_[$#_]) eq "HASH") { + my $opts = pop; + $separator = $opts->{separator}; + } my @x = @_; sub { _add($separator, @x, @_) }; } sub add { - my $separator = shift; + my $separator = " "; + if (ref($_[$#_]) eq "HASH") { + my $opts = pop; + $separator = $opts->{separator}; + } my @x = @_; sub { _add($separator, @_, @x) }; } @@ -2070,7 +2082,7 @@ sub resolve_config { # value. # - Otherwise, this target's value is assumed to be a string that # will simply override the inherited list of values. - my $default_combiner = add(" "); + my $default_combiner = add(); my %all_keys = map { $_ => 1 } (keys %combined_inheritance, @@ -2227,14 +2239,24 @@ sub print_table_entry if ($type eq "TABLE") { print "\n"; print "*** $target\n"; - printf "\$%-12s = %s\n", $_, $target{$_} foreach (@sequence); + foreach (@sequence) { + if (ref($target{$_}) eq "ARRAY") { + printf "\$%-12s = %s\n", $_, join(" ", @{$target{$_}}); + } else { + printf "\$%-12s = %s\n", $_, $target{$_}; + } + } } elsif ($type eq "HASH") { my $largest = length((sort { length($a) <=> length($b) } @sequence)[-1]); print " '$target' => {\n"; foreach (@sequence) { if ($target{$_}) { - print " '",$_,"'"," " x ($largest - length($_))," => '",$target{$_},"',\n"; + if (ref($target{$_}) eq "ARRAY") { + print " '",$_,"'"," " x ($largest - length($_))," => [ ",join(", ", map { "'$_'" } @{$target{$_}})," ],\n"; + } else { + print " '",$_,"'"," " x ($largest - length($_))," => '",$target{$_},"',\n"; + } } } print " },\n";