Skip to content

Commit

Permalink
mk1mf.pl and mkdef.pl read OPTIONS from toplevel Makefile.
Browse files Browse the repository at this point in the history
Configure no longer changes files in place.
  • Loading branch information
Ulf Möller committed May 13, 1999
1 parent 8bc1431 commit 31ff97b
Show file tree
Hide file tree
Showing 8 changed files with 87 additions and 62 deletions.
15 changes: 8 additions & 7 deletions Configure
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ my $flags="";
my $depflags="";
my $libs="";
my $target="";
my $options="";
foreach (@ARGV)
{
if (/^no-asm$/)
Expand Down Expand Up @@ -349,15 +350,17 @@ foreach (@ARGV)
exit(1);
}
}
elsif ($_ =~ /^([^:]+):(.+)$/) {
elsif ($_ =~ /^([^:]+):(.+)$/)
{
eval "\$table{\$1} = \"$2\""; # allow $xxx constructs in the string
$target=$1;
}
}
else
{
die "target already defined - $target\n" if ($target ne "");
$target=$_;
}
$options .= $_ unless $_ eq $target;
}

&usage if (!defined($table{$target}));
Expand Down Expand Up @@ -477,6 +480,7 @@ while (<IN>)
s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
s/^PLATFORM=.*$/PLATFORM=$target/;
s/^OPTIONS=.*$/OPTIONS=$options/;
s/^CC=.*$/CC= $cc/;
s/^CFLAG=.*$/CFLAG= $cflags/;
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
Expand Down Expand Up @@ -641,11 +645,8 @@ if($IsWindows) {
(system "make -f Makefile.ssl PERL=\'$perl\' links") == 0 or exit $?;
(system 'make depend') == 0 or exit $? if $depflags ne "";
&dofile("tools/c_rehash",$openssldir,'^DIR=', 'DIR=%s',);
&dofile("util/mk1mf.pl",$openssldir,
('^\$INSTALLTOP=','$INSTALLTOP="%s";',));
}


my $pwd;

if($IsWindows) {
Expand Down Expand Up @@ -730,7 +731,7 @@ sub dofile
my $f; my $p; my %m; my @a; my $k; my $ff;
($f,$p,%m)=@_;

open(IN,"<$f") || die "unable to open $f:$!\n";
open(IN,"<$f.in") || open(IN,"<$f") || die "unable to open $f:$!\n";
@a=<IN>;
close(IN);
foreach $k (keys %m)
Expand All @@ -741,6 +742,6 @@ sub dofile
open(OUT,">$ff.new") || die "unable to open $f:$!\n";
print OUT @a;
close(OUT);
rename($f,"$ff.bak") || die "unable to rename $f\n";
rename($f,"$ff.bak") || die "unable to rename $f\n" if -e $f;
rename("$ff.new",$f) || die "unable to rename $ff.new\n";
}
3 changes: 2 additions & 1 deletion INSTALL.W32
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@

* Compile OpenSSL:

Run ms\mw.bat
> perl Configure Mingw32
> ms\mw.bat

This will create the library and binaries in out.

Expand Down
1 change: 1 addition & 0 deletions Makefile.org
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ VERSION=
MAJOR=
MINOR=
PLATFORM=dist
OPTIONS=
# INSTALL_PREFIX is for package builders so that they can configure
# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
# Normally it is left empty.
Expand Down
3 changes: 0 additions & 3 deletions ms/mw.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
@rem OpenSSL with Mingw32
@rem --------------------

perl Configure Mingw32
if errorlevel 1 goto end

@rem Makefile
perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl Mingw32 >ms\mingw32.mak
Expand Down
2 changes: 2 additions & 0 deletions tools/.cvsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
c_rehash
c_rehash.bak
File renamed without changes.
116 changes: 66 additions & 50 deletions util/mk1mf.pl
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,17 @@
#

$INSTALLTOP="/usr/local/ssl";
$OPTIONS="";
$ssl_version="";

$ssl_version="0.9.2b";
open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n";
while(<IN>) {
$ssl_version=$1 if (/^VERSION=(.*)$/);
$options=$1 if (/^OPTIONS=(.*)$/);
$INSTALLTOP=$1 if (/^INSTALLTOP=(.*$)/);
}

die "Makefile.ssl is not the toplevel Makefile!\n" if $ssl_version eq "";

$infile="MINFO";

Expand All @@ -32,53 +41,14 @@
$platform="";
foreach (@ARGV)
{
if (/^no-rc2$/) { $no_rc2=1; }
elsif (/^no-rc4$/) { $no_rc4=1; }
elsif (/^no-rc5$/) { $no_rc5=1; }
elsif (/^no-idea$/) { $no_idea=1; }
elsif (/^no-des$/) { $no_des=1; }
elsif (/^no-bf$/) { $no_bf=1; }
elsif (/^no-cast$/) { $no_cast=1; }
elsif (/^no-md2$/) { $no_md2=1; }
elsif (/^no-md5$/) { $no_md5=1; }
elsif (/^no-sha$/) { $no_sha=1; }
elsif (/^no-sha1$/) { $no_sha1=1; }
elsif (/^no-ripemd$/) { $no_ripemd=1; }
elsif (/^no-mdc2$/) { $no_mdc2=1; }
elsif (/^no-patents$/) { $no_rc2=$no_rc4=$no_rc5=$no_idea=$no_rsa=1; }
elsif (/^no-rsa$/) { $no_rsa=1; }
elsif (/^no-dsa$/) { $no_dsa=1; }
elsif (/^no-dh$/) { $no_dh=1; }
elsif (/^no-hmac$/) { $no_hmac=1; }
elsif (/^no-asm$/) { $no_asm=1; }
elsif (/^no-ssl2$/) { $no_ssl2=1; }
elsif (/^no-ssl3$/) { $no_ssl3=1; }
elsif (/^no-err$/) { $no_err=1; }
elsif (/^no-sock$/) { $no_sock=1; }

elsif (/^just-ssl$/) { $no_rc2=$no_idea=$no_des=$no_bf=$no_cast=1;
$no_md2=$no_sha=$no_mdc2=$no_dsa=$no_dh=1;
$no_ssl2=$no_err=$no_rmd160=$no_rc5=1; }

elsif (/^rsaref$/) { $rsaref=1; }
elsif (/^gcc$/) { $gcc=1; }
elsif (/^debug$/) { $debug=1; }
elsif (/^shlib$/) { $shlib=1; }
elsif (/^dll$/) { $shlib=1; }
elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; }
elsif (/^-[lL].*$/) { $l_flags.="$_ "; }
elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/)
{ $c_flags.="$_ "; }
else
if (!&read_options && !defined($ops{$_}))
{
if (!defined($ops{$_}))
{
print STDERR "unknown option - $_\n";
print STDERR "usage: perl mk1mf.pl [system] [options]\n";
print STDERR "\nwhere [system] can be one of the following\n";
foreach $i (sort keys %ops)
{ printf STDERR "\t%-10s\t%s\n",$i,$ops{$i}; }
print STDERR <<"EOF";
print STDERR "unknown option - $_\n";
print STDERR "usage: perl mk1mf.pl [system] [options]\n";
print STDERR "\nwhere [system] can be one of the following\n";
foreach $i (sort keys %ops)
{ printf STDERR "\t%-10s\t%s\n",$i,$ops{$i}; }
print STDERR <<"EOF";
and [options] can be one of
no-md2 no-md5 no-sha no-mdc2 no-ripemd - Skip this digest
no-rc2 no-rc4 no-idea no-des no-bf no-cast - Skip this symetric cipher
Expand All @@ -101,10 +71,13 @@
-<ex_cc_flags> - extra 'cc' flags,
added (MS), or replace (unix)
EOF
exit(1);
}
$platform=$_;
exit(1);
}
$platform=$_;
}
foreach (split / /, $OPTIONS)
{
print STDERR "unknown option - $_\n" if !&read_options;
}

$no_mdc2=1 if ($no_des);
Expand Down Expand Up @@ -817,3 +790,46 @@ sub do_copy_rule
}
return($ret);
}

sub read_options
{
if (/^no-rc2$/) { $no_rc2=1; }
elsif (/^no-rc4$/) { $no_rc4=1; }
elsif (/^no-rc5$/) { $no_rc5=1; }
elsif (/^no-idea$/) { $no_idea=1; }
elsif (/^no-des$/) { $no_des=1; }
elsif (/^no-bf$/) { $no_bf=1; }
elsif (/^no-cast$/) { $no_cast=1; }
elsif (/^no-md2$/) { $no_md2=1; }
elsif (/^no-md5$/) { $no_md5=1; }
elsif (/^no-sha$/) { $no_sha=1; }
elsif (/^no-sha1$/) { $no_sha1=1; }
elsif (/^no-ripemd$/) { $no_ripemd=1; }
elsif (/^no-mdc2$/) { $no_mdc2=1; }
elsif (/^no-patents$/) { $no_rc2=$no_rc4=$no_rc5=$no_idea=$no_rsa=1; }
elsif (/^no-rsa$/) { $no_rsa=1; }
elsif (/^no-dsa$/) { $no_dsa=1; }
elsif (/^no-dh$/) { $no_dh=1; }
elsif (/^no-hmac$/) { $no_hmac=1; }
elsif (/^no-asm$/) { $no_asm=1; }
elsif (/^no-ssl2$/) { $no_ssl2=1; }
elsif (/^no-ssl3$/) { $no_ssl3=1; }
elsif (/^no-err$/) { $no_err=1; }
elsif (/^no-sock$/) { $no_sock=1; }

elsif (/^just-ssl$/) { $no_rc2=$no_idea=$no_des=$no_bf=$no_cast=1;
$no_md2=$no_sha=$no_mdc2=$no_dsa=$no_dh=1;
$no_ssl2=$no_err=$no_rmd160=$no_rc5=1; }

elsif (/^rsaref$/) { $rsaref=1; }
elsif (/^gcc$/) { $gcc=1; }
elsif (/^debug$/) { $debug=1; }
elsif (/^shlib$/) { $shlib=1; }
elsif (/^dll$/) { $shlib=1; }
elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; }
elsif (/^-[lL].*$/) { $l_flags.="$_ "; }
elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/)
{ $c_flags.="$_ "; }
else { return(1); }
return(0);
}
9 changes: 8 additions & 1 deletion util/mkdef.pl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,14 @@
$NT=0;
# Set this to make typesafe STACK definitions appear in DEF
$safe_stack_def = 1;
foreach (@ARGV)

$options="";
open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n";
while(<IN>) {
$options=$1 if (/^OPTIONS=(.*)$/);
}

foreach (@ARGV, split(/ /, $options))
{
$W32=1 if $_ eq "32";
$W32=0 if $_ eq "16";
Expand Down

0 comments on commit 31ff97b

Please sign in to comment.