diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-02-11 01:39:30 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-02-11 01:39:30 +0000 |
commit | 55a9cc6e474284d691e79820eaeb85f84892b2ae (patch) | |
tree | cd95d8685fa4fd19c8b96c7b8f26e92305f7165b /util/mkdef.pl | |
parent | 3773d138cefa8958a679094281d6b23af6eaf2b9 (diff) | |
download | openssl-55a9cc6e474284d691e79820eaeb85f84892b2ae.tar.gz |
Make the 'crypto' and 'ssl' options in the perl script mkdef.pl really work,
also add an 'update' option to automatically append any new functions to the
ssleay.num and libeay.num files.
Diffstat (limited to 'util/mkdef.pl')
-rwxr-xr-x | util/mkdef.pl | 63 |
1 files changed, 57 insertions, 6 deletions
diff --git a/util/mkdef.pl b/util/mkdef.pl index 5b2f355bb4..e1f2ca99a1 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -15,7 +15,10 @@ foreach (@ARGV) $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) @@ -25,7 +28,9 @@ 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"; @@ -74,11 +79,33 @@ $crypto.=" crypto/tmdiff.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 { @@ -98,7 +125,7 @@ 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"; } @@ -265,7 +292,8 @@ 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 { @@ -281,6 +309,8 @@ sub load_numbers local($name)=@_; local($j,@a,%ret); + $max_num = 0; + open(IN,"<$name") || die "unable to open $name:$!\n"; while (<IN>) { @@ -289,7 +319,28 @@ sub load_numbers 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"; + } + } |