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.
This commit is contained in:
Richard Levitte 2000-08-17 10:23:45 +00:00
parent fa1194d30a
commit c59cb511f3
3 changed files with 132 additions and 83 deletions

View File

@ -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/;

View File

@ -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

2
config
View File

@ -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