$NT=1 if $_ eq "32";
$NT=0 if $_ eq "16";
$do_ssl=1 if $_ eq "ssleay";
+ $do_ssl=1 if $_ eq "ssl";
$do_crypto=1 if $_ eq "libeay";
+ $do_crypto=1 if $_ eq "crypto";
+ $do_update=1 if $_ eq "update";
}
if (!$do_ssl && !$do_crypto)
}
%ssl_list=&load_numbers($ssl_num);
+$max_ssl = $max_num;
%crypto_list=&load_numbers($crypto_num);
+$max_crypto = $max_num;
$ssl="ssl/ssl.h";
$crypto.=" crypto/pkcs7/pkcs7.h";
$crypto.=" crypto/x509/x509.h";
$crypto.=" crypto/x509/x509_vfy.h";
+$crypto.=" crypto/x509v3/x509v3.h";
$crypto.=" crypto/rand/rand.h";
$crypto.=" crypto/hmac/hmac.h";
$crypto.=" crypto/comp/comp.h";
$match{'NOPROTO'}=1;
$match2{'PERL5'}=1;
-&print_def_file(*STDOUT,"SSLEAY",*ssl_list,&do_defs("SSLEAY",$ssl))
- if $do_ssl == 1;
+@ssl_func = &do_defs("SSLEAY", $ssl);
+@crypto_func = &do_defs("LIBEAY", $crypto);
+
+if ($do_update) {
+
+if ($do_ssl == 1) {
+ open(OUT, ">>$ssl_num");
+ &update_numbers(*OUT,"SSLEAY",*ssl_list,$max_ssl, @ssl_func);
+ close OUT;
+}
+
+if($do_crypto == 1) {
+ open(OUT, ">>$crypto_num");
+ &update_numbers(*OUT,"LIBEAY",*crypto_list,$max_crypto, @crypto_func);
+ close OUT;
+}
+
+} else {
+
+ &print_def_file(*STDOUT,"SSLEAY",*ssl_list,@ssl_func)
+ if $do_ssl == 1;
+
+ &print_def_file(*STDOUT,"LIBEAY",*crypto_list,@crypto_func)
+ if $do_crypto == 1;
+
+}
-&print_def_file(*STDOUT,"LIBEAY",*crypto_list,&do_defs("LIBEAY",$crypto))
- if $do_crypto == 1;
sub do_defs
{
while (($i=index($a,"/*")) >= 0)
{
$j=index($a,"*/");
- break unless ($j >= 0);
+ last unless ($j >= 0);
$a=substr($a,0,$i).substr($a,$j+2);
# print "$i $j\n";
}
print OUT <<"EOF";
;
-; Definition file for the DDL version of the $name library from SSLeay
+; Definition file for the DLL version of the $name library from OpenSSL
;
LIBRARY $name
-DESCRIPTION 'SSLeay $name - eay\@cryptsoft.com'
+DESCRIPTION 'OpenSSL $name - http://www.openssl.org/'
EOF
{
if (!defined($nums{$func}))
{
- printf STDERR "$func does not have a number assigned\n";
+ printf STDERR "$func does not have a number assigned\n"
+ if(!$do_update);
}
else
{
$n=$nums{$func};
- printf OUT " %s%-35s@%d\n",($NT)?"":"_",$func,$n;
+ printf OUT " %s%-40s@%d\n",($NT)?"":"_",$func,$n;
}
}
printf OUT "\n";
local($name)=@_;
local($j,@a,%ret);
+ $max_num = 0;
+
open(IN,"<$name") || die "unable to open $name:$!\n";
while (<IN>)
{
next if /^\s*$/;
@a=split;
$ret{$a[0]}=$a[1];
+ $max_num = $a[1] if $a[1] > $max_num;
}
close(IN);
return(%ret);
}
+
+sub update_numbers
+ {
+ local(*OUT,$name,*nums,$start_num, @functions)=@_;
+ my $new_funcs = 0;
+ print STDERR "Updating $name\n";
+ foreach $func (@functions)
+ {
+ if (!defined($nums{$func}))
+ {
+ $new_funcs++;
+ printf OUT "%s%-40s%d\n","",$func, ++$start_num;
+ }
+ }
+ if($new_funcs) {
+ print STDERR "$new_funcs New Functions added\n";
+ } else {
+ print STDERR "No New Functions Added\n";
+ }
+ }