use lib ".";
use configdata;
+use File::Spec::Functions;
my $debug=0;
-my $crypto_num= "util/libeay.num";
-my $ssl_num= "util/ssleay.num";
+my $crypto_num= catfile($config{sourcedir},"util","libeay.num");
+my $ssl_num= catfile($config{sourcedir},"util","ssleay.num");
my $libname;
my $do_update = 0;
$ssl.=" include/openssl/tls1.h";
$ssl.=" include/openssl/srtp.h";
+# We use headers found in include/openssl and include/internal only.
+# The latter is needed so libssl.so/.dll/.exe can link properly.
my $crypto ="include/openssl/crypto.h";
-$crypto.=" crypto/include/internal/cryptlib.h";
-$crypto.=" crypto/include/internal/chacha.h"; # unless $no_chacha;
-$crypto.=" crypto/include/internal/poly1305.h"; # unless $no_poly1305;
$crypto.=" include/internal/o_dir.h";
$crypto.=" include/internal/o_str.h";
$crypto.=" include/openssl/des.h" ; # unless $no_des;
foreach $file (split(/\s+/,$symhacksfile." ".$files))
{
- print STDERR "DEBUG: starting on $file:\n" if $debug;
- open(IN,"<$file") || die "unable to open $file:$!\n";
+ my $fn = catfile($config{sourcedir},$file);
+ print STDERR "DEBUG: starting on $fn:\n" if $debug;
+ open(IN,"<$fn") || die "unable to open $fn:$!\n";
my $line = "", my $def= "";
my %tag = (
(map { $_ => 0 } @known_platforms),
if($parens > 0) {
#Inside a DEPRECATEDIN
$stored_multiline .= $_;
- chomp $stored_multiline;
+ $stored_multiline =~ s|\R$||; # Better chomp
print STDERR "DEBUG: Continuing multiline DEPRECATEDIN: $stored_multiline\n" if $debug;
$parens = count_parens($stored_multiline);
if ($parens == 0) {
}
if (/\\$/) {
- chomp; # remove eol
- chop; # remove ending backslash
- $line = $_;
+ $line = $`; # keep what was before the backslash
next;
}
$cpp++ if /^#\s*if/;
$cpp-- if /^#\s*endif/;
next;
- }
+ }
$cpp = 1 if /^#.*ifdef.*cplusplus/;
s/{[^{}]*}//gs; # ignore {} blocks
\@current_algorithms);
} else {
$stored_multiline = $_;
- chomp $stored_multiline;
+ $stored_multiline =~ s|\R$||;
print STDERR "DEBUG: Found multiline DEPRECATEDIN starting with: $stored_multiline\n" if $debug;
next;
}
}
elsif ($VMS)
{
- my $libref = $name eq "ssl" ? "LIBCRYPTO.EXE /SHARE" : "";
print OUT <<"EOF";
-IDENTIFICATION="V$version"
CASE_SENSITIVE=YES
-LIB$libname.OLB /LIBRARY
-$libref
SYMBOL_VECTOR=(-
EOF
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
print OUT " $s2;\n";
} elsif ($VMS) {
while(++$prevnum < $n) {
- my $symline="SPARE, SPARE -";
- if ($symvtextcount + length($symline) + 1 > 1024) {
+ my $symline=" ,SPARE -\n ,SPARE -\n";
+ if ($symvtextcount + length($symline) - 2 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- if ($symvtextcount > 16) {
- $symline = ",".$symline;
+ if ($symvtextcount == 16) {
+ # Take away first comma
+ $symline =~ s/,//;
}
- print OUT " $symline\n";
- $symvtextcount += length($symline);
+ print OUT $symline;
+ $symvtextcount += length($symline) - 2;
}
(my $s_uc = $s) =~ tr/a-z/A-Z/;
my $symtype=
$v ? "DATA" : "PROCEDURE";
my $symline=
($s_uc ne $s
- ? "$s_uc/$s=$symtype, $s=$symtype"
- : "$s=$symtype, SPARE")
- ." -";
- if ($symvtextcount + length($symline) + 1 > 1024) {
+ ? " ,$s_uc/$s=$symtype -\n ,$s=$symtype -\n"
+ : " ,$s=$symtype -\n ,SPARE -\n");
+ if ($symvtextcount + length($symline) - 2 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- if ($symvtextcount > 16) {
- $symline = ",".$symline;
+ if ($symvtextcount == 16) {
+ # Take away first comma
+ $symline =~ s/,//;
}
- print OUT " $symline\n";
- $symvtextcount += length($symline);
+ print OUT $symline;
+ $symvtextcount += length($symline) - 2;
} elsif($v && !$OS2) {
printf OUT " %s%-39s @%-8d DATA\n",
($W32)?"":"_",$s2,$n;
open(IN,"<$name") || die "unable to open $name:$!\n";
while (<IN>) {
- chop;
+ s|\R$||; # Better chomp
s/#.*$//;
next if /^\s*$/;
@a=split;
#version
sub get_openssl_version()
{
- open (IN, "include/openssl/opensslv.h") || die "Can't open opensslv.h";
+ my $fn = catfile($config{sourcedir},"include","openssl","opensslv.h");
+ open (IN, "$fn") || die "Can't open opensslv.h";
while(<IN>) {
if (/OPENSSL_VERSION_TEXT\s+"OpenSSL (\d\.\d\.)(\d[a-z]*)(-| )/) {