Commit c59cb511 authored by Richard Levitte's avatar Richard Levitte
Browse files

Allow reconfiguration. This can be useful if some source update

requires that you configure again, but you don't want to reenter all
those configuration arguments again.
parent fa1194d3
Loading
Loading
Loading
Loading
+130 −82
Original line number Diff line number Diff line
@@ -429,16 +429,37 @@ $perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")

&usage if ($#ARGV < 0);

my $flags="";
my $depflags="";
my $openssl_algorithm_defines="";
my $openssl_thread_defines="";
my $openssl_other_defines="";
my $libs="";
my $target="";
my $options="";
my $symlink=1;
foreach (@ARGV)
my $flags;
my $depflags;
my $openssl_algorithm_defines;
my $openssl_thread_defines;
my $openssl_other_defines;
my $libs;
my $target;
my $options;
my $symlink;

my @argvcopy=@ARGV;
my $argvstring="";
my $argv_unprocessed=1;

while($argv_unprocessed)
	{
	$flags="";
	$depflags="";
	$openssl_algorithm_defines="";
	$openssl_thread_defines="";
	$openssl_other_defines="";
	$libs="";
	$target="";
	$options="";
	$symlink=1;

	$argv_unprocessed=0;
	$argvstring=join(' ',@argvcopy);

PROCESS_ARGS:
	foreach (@argvcopy)
		{
		s /^-no-/no-/; # some people just can't read the instructions
		if (/^no-asm$/)
@@ -476,6 +497,29 @@ foreach (@ARGV)
				$openssl_algorithm_defines .= "#define NO_MDC2\n";
				}
			}
		elsif (/^reconfigure/ || /^reconf/)
			{
			if (open(IN,"<$Makefile"))
				{
				while (<IN>)
					{
					chop;
					if (/^CONFIGURE_ARGS=(.*)/)
						{
						$argvstring=$1;
						@argvcopy=split(' ',$argvstring);
						die "Incorrect data to reconfigure, please do a normal configuration\n"
							if (grep(/^reconf/,@argvcopy));
						print "Reconfiguring with: $argvstring\n";
						$argv_unprocessed=1;
						close(IN);
						last PROCESS_ARGS;
						}
					}
				close(IN);
				}
			die "Insufficient data to reconfigure, please do a normal configuration\n";
			}
		elsif (/^386$/)
			{ $processor=386; }
		elsif (/^rsaref$/)
@@ -530,6 +574,7 @@ foreach (@ARGV)
			}
		}
	}
}

if ($target eq "TABLE") {
	foreach $target (sort keys %table) {
@@ -546,6 +591,8 @@ if ($target eq "LIST") {
	exit 0;
}

print "Configuring for $target\n";

&usage if (!defined($table{$target}));

my $IsWindows=scalar grep /^$target$/,@WinTargets;
@@ -736,6 +783,7 @@ while (<IN>)
	s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
	s/^PLATFORM=.*$/PLATFORM=$target/;
	s/^OPTIONS=.*$/OPTIONS=$options/;
	s/^CONFIGURE_ARGS=.*$/CONFIGURE_ARGS=$argvstring/;
	s/^CC=.*$/CC= $cc/;
	s/^CFLAG=.*$/CFLAG= $cflags/;
	s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ SHLIB_MAJOR=
SHLIB_MINOR=
PLATFORM=dist
OPTIONS=
CONFIGURE_ARGS=
SHLIB_TARGET=

# INSTALL_PREFIX is for package builders so that they can configure
+1 −1
Original line number Diff line number Diff line
@@ -559,7 +559,7 @@ OUT="$PREFIX$OUT"

$PERL ./Configure LIST | grep "$OUT" > /dev/null
if [ $? = "0" ]; then
  echo Configuring for $OUT
  #echo Configuring for $OUT

  if [ "$TEST" = "true" ]; then
    echo $PERL ./Configure $OUT $options