summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xConfigure15
-rw-r--r--INSTALL.W323
-rw-r--r--Makefile.org1
-rw-r--r--ms/mw.bat3
-rw-r--r--tools/.cvsignore2
-rw-r--r--tools/c_rehash.in (renamed from tools/c_rehash)0
-rwxr-xr-xutil/mk1mf.pl116
-rwxr-xr-xutil/mkdef.pl9
8 files changed, 87 insertions, 62 deletions
diff --git a/Configure b/Configure
index 46c3e188cf..b7f910f284 100755
--- a/Configure
+++ b/Configure
@@ -298,6 +298,7 @@ my $flags="";
my $depflags="";
my $libs="";
my $target="";
+my $options="";
foreach (@ARGV)
{
if (/^no-asm$/)
@@ -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}));
@@ -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/;
@@ -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) {
@@ -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)
@@ -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";
}
diff --git a/INSTALL.W32 b/INSTALL.W32
index 8246e41605..db5d8fda01 100644
--- a/INSTALL.W32
+++ b/INSTALL.W32
@@ -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.
diff --git a/Makefile.org b/Makefile.org
index 8c36768a77..d8dacc650f 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -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.
diff --git a/ms/mw.bat b/ms/mw.bat
index 9cab3efb02..e6cf95728a 100644
--- a/ms/mw.bat
+++ b/ms/mw.bat
@@ -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
diff --git a/tools/.cvsignore b/tools/.cvsignore
new file mode 100644
index 0000000000..af0e591579
--- /dev/null
+++ b/tools/.cvsignore
@@ -0,0 +1,2 @@
+c_rehash
+c_rehash.bak
diff --git a/tools/c_rehash b/tools/c_rehash.in
index cc3b65871f..cc3b65871f 100644
--- a/tools/c_rehash
+++ b/tools/c_rehash.in
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index b4fc632891..90943de3dc 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -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";
@@ -32,53 +41,14 @@ $infile="MINFO";
$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
@@ -101,10 +71,13 @@ TMP=tmpdir OUT=outdir SRC=srcdir BIN=binpath INC=header-outdir CC=C-compiler
-<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);
@@ -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);
+ }
diff --git a/util/mkdef.pl b/util/mkdef.pl
index 4576c76144..1f05fe040f 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -18,7 +18,14 @@ $W32=1;
$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";