X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configure;h=67e59a252daa0c61805fc6b41898033eb2ceee81;hp=5abbd72a9718c3eb7f1aa0774cd52980e1c0e420;hb=e02d5886636095c26a8bff1bf8344bd0bba7ccff;hpb=ccce3e1db5132e472d1871c6a02caec5c71db72a diff --git a/Configure b/Configure index 5abbd72a97..67e59a252d 100755 --- a/Configure +++ b/Configure @@ -422,7 +422,6 @@ my %deprecated_disablables = ( # All of the following is disabled by default (RC5 was enabled before 0.9.8): our %disabled = ( # "what" => "comment" - "aria" => "default", "asan" => "default", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", @@ -527,6 +526,7 @@ $config{openssl_algorithm_defines}=[]; $config{openssl_thread_defines}=[]; $config{openssl_sys_defines}=[]; $config{openssl_other_defines}=[]; +my $ldflags=""; my $libs=""; my $target=""; $config{options}=""; @@ -730,7 +730,11 @@ while (@argvcopy) { read_config $1; } - elsif (/^-[lL](.*)$/ or /^-Wl,/) + elsif (/^-L(.*)$/) + { + $ldflags.=$_." "; + } + elsif (/^-l(.*)$/ or /^-Wl,/) { $libs.=$_." "; } @@ -1051,6 +1055,7 @@ $config{build_file} = $target{build_file}; $config{defines} = []; $config{cflags} = ""; $config{cxxflags} = ""; +$config{lflags} = ""; $config{ex_libs} = ""; $config{shared_ldflag} = ""; @@ -1122,6 +1127,7 @@ if (!$disabled{dso} && $target{dso_scheme} ne "") } $config{ex_libs}="$libs$config{ex_libs}" if ($libs ne ""); +$config{lflags}="$config{lflags}$ldflags" if ($ldflags ne ""); # If threads aren't disabled, check how possible they are unless ($disabled{threads}) { @@ -1279,12 +1285,19 @@ unless ($disabled{asm}) { my %predefined = compiler_predefined($target{cc}); +# Check for makedepend capabilities. if (!$disabled{makedepend}) { - # We know that GNU C version 3 and up as well as all clang - # versions support dependency generation - if ($predefined{__GNUC__} >= 3) { + if ($config{target} =~ /^(VC|vms)-/) { + # For VC- and vms- targets, there's nothing more to do here. The + # functionality is hard coded in the corresponding build files for + # cl (Windows) and CC/DECC (VMS). + } elsif ($predefined{__GNUC__} >= 3) { + # We know that GNU C version 3 and up as well as all clang + # versions support dependency generation $config{makedepprog} = "\$(CROSS_COMPILE)$target{cc}"; } else { + # In all other cases, we look for 'makedepend', and disable the + # capability if not found. $config{makedepprog} = which('makedepend'); $disabled{makedepend} = "unavailable" unless $config{makedepprog}; } @@ -1497,6 +1510,7 @@ if ($builder eq "unified") { $config{build_infos} = [ ]; + my %ordinals = (); foreach (@build_infos) { my $sourced = catdir($srcdir, $_->[0]); my $buildd = catdir($blddir, $_->[0]); @@ -1518,7 +1532,6 @@ if ($builder eq "unified") { my @intermediates = (); my @rawlines = (); - my %ordinals = (); my %sources = (); my %shared_sources = (); my %includes = (); @@ -1812,27 +1825,6 @@ EOF if @doubles; } - foreach (keys %ordinals) { - my $dest = $_; - my $ddest = cleanfile($buildd, $_, $blddir); - if ($unified_info{rename}->{$ddest}) { - $ddest = $unified_info{rename}->{$ddest}; - } - foreach (@{$ordinals{$dest}}) { - my %known_ordinals = - ( - crypto => - cleanfile($sourced, catfile("util", "libcrypto.num"), $blddir), - ssl => - cleanfile($sourced, catfile("util", "libssl.num"), $blddir) - ); - my $o = $known_ordinals{$_}; - die "Ordinals for $ddest defined more than once\n" - if $unified_info{ordinals}->{$ddest}; - $unified_info{ordinals}->{$ddest} = [ $_, $o ]; - } - } - foreach (keys %sources) { my $dest = $_; my $ddest = cleanfile($buildd, $_, $blddir); @@ -1987,6 +1979,14 @@ EOF } } + my $ordinals_text = join(', ', sort keys %ordinals); + warn <<"EOF" if $ordinals_text; + +WARNING: ORDINALS were specified for $ordinals_text +They are ignored and should be replaced with a combination of GENERATE, +DEPEND and SHARED_SOURCE. +EOF + ### Make unified_info a bit more efficient # One level structures foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) { @@ -2183,6 +2183,7 @@ print "DEFINES =",join(" ", @{$target{defines}}, @{$config{defines}}),"\n" #print "RANLIB =", $target{ranlib} eq '$(CROSS_COMPILE)ranlib' ? # "$config{cross_compile_prefix}ranlib" : # "$target{ranlib}", "\n"; +print "LDFLAGS =$config{lflags} $target{lflags}\n"; print "EX_LIBS =$target{ex_libs} $config{ex_libs}\n"; my %builders = ( @@ -2380,6 +2381,17 @@ sub read_config { %targets = read_eval_file($fname); } + my %preexisting = (); + foreach (sort keys %targets) { + $preexisting{$_} = 1 if $table{$_}; + } + die <<"EOF", +The following config targets from $fname +shadow pre-existing config targets with the same name: +EOF + map { " $_\n" } sort keys %preexisting + if %preexisting; + # For each target, check that it's configured with a hash table. foreach (keys %targets) {