summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util/mkdef.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/util/mkdef.pl')
-rw-r--r--src/lib/libcrypto/util/mkdef.pl142
1 files changed, 42 insertions, 100 deletions
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl
index ef1cc6e513..6c1e53bb14 100644
--- a/src/lib/libcrypto/util/mkdef.pl
+++ b/src/lib/libcrypto/util/mkdef.pl
@@ -79,29 +79,19 @@ my $OS2=0;
79my $safe_stack_def = 0; 79my $safe_stack_def = 0;
80 80
81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", 81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
82 "EXPORT_VAR_AS_FUNCTION", "ZLIB" ); 82 "EXPORT_VAR_AS_FUNCTION", "OPENSSL_FIPS" );
83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); 83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", 84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", 85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
86 "SHA256", "SHA512", "RIPEMD", 86 "SHA256", "SHA512", "RIPEMD",
87 "MDC2", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA", "HMAC", "AES", "CAMELLIA", "SEED", 87 "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES",
88 # Envelope "algorithms" 88 # Envelope "algorithms"
89 "EVP", "X509", "ASN1_TYPEDEFS", 89 "EVP", "X509", "ASN1_TYPEDEFS",
90 # Helper "algorithms" 90 # Helper "algorithms"
91 "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR", 91 "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR",
92 "LOCKING", 92 "LOCKING",
93 # External "algorithms" 93 # External "algorithms"
94 "FP_API", "STDIO", "SOCK", "KRB5", "DGRAM", 94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" );
95 # Engines
96 "STATIC_ENGINE", "ENGINE", "HW", "GMP",
97 # RFC3779 support
98 "RFC3779",
99 # TLS extension support
100 "TLSEXT",
101 # CMS
102 "CMS",
103 # Deprecated functions
104 "DEPRECATED" );
105 95
106my $options=""; 96my $options="";
107open(IN,"<Makefile") || die "unable to open Makefile!\n"; 97open(IN,"<Makefile") || die "unable to open Makefile!\n";
@@ -117,11 +107,9 @@ my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
117my $no_cast; 107my $no_cast;
118my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2; 108my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
119my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; 109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
120my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw; my $no_camellia; 110my $no_ec; my $no_engine; my $no_hw;
121my $no_seed; 111my $no_fp_api;
122my $no_fp_api; my $no_static_engine; my $no_gmp; my $no_deprecated; 112my $fips;
123my $no_rfc3779; my $no_tlsext; my $no_cms;
124
125 113
126foreach (@ARGV, split(/ /, $options)) 114foreach (@ARGV, split(/ /, $options))
127 { 115 {
@@ -142,11 +130,7 @@ foreach (@ARGV, split(/ /, $options))
142 } 130 }
143 $VMS=1 if $_ eq "VMS"; 131 $VMS=1 if $_ eq "VMS";
144 $OS2=1 if $_ eq "OS2"; 132 $OS2=1 if $_ eq "OS2";
145 if ($_ eq "zlib" || $_ eq "zlib-dynamic" 133 $fips=1 if $_ eq "fips";
146 || $_ eq "enable-zlib-dynamic") {
147 $zlib = 1;
148 }
149
150 134
151 $do_ssl=1 if $_ eq "ssleay"; 135 $do_ssl=1 if $_ eq "ssleay";
152 if ($_ eq "ssl") { 136 if ($_ eq "ssl") {
@@ -158,8 +142,6 @@ foreach (@ARGV, split(/ /, $options))
158 $do_crypto=1; 142 $do_crypto=1;
159 $libname=$_; 143 $libname=$_;
160 } 144 }
161 $no_static_engine=1 if $_ eq "no-static-engine";
162 $no_static_engine=0 if $_ eq "enable-static-engine";
163 $do_update=1 if $_ eq "update"; 145 $do_update=1 if $_ eq "update";
164 $do_rewrite=1 if $_ eq "rewrite"; 146 $do_rewrite=1 if $_ eq "rewrite";
165 $do_ctest=1 if $_ eq "ctest"; 147 $do_ctest=1 if $_ eq "ctest";
@@ -184,12 +166,8 @@ foreach (@ARGV, split(/ /, $options))
184 elsif (/^no-dsa$/) { $no_dsa=1; } 166 elsif (/^no-dsa$/) { $no_dsa=1; }
185 elsif (/^no-dh$/) { $no_dh=1; } 167 elsif (/^no-dh$/) { $no_dh=1; }
186 elsif (/^no-ec$/) { $no_ec=1; } 168 elsif (/^no-ec$/) { $no_ec=1; }
187 elsif (/^no-ecdsa$/) { $no_ecdsa=1; }
188 elsif (/^no-ecdh$/) { $no_ecdh=1; }
189 elsif (/^no-hmac$/) { $no_hmac=1; } 169 elsif (/^no-hmac$/) { $no_hmac=1; }
190 elsif (/^no-aes$/) { $no_aes=1; } 170 elsif (/^no-aes$/) { $no_aes=1; }
191 elsif (/^no-camellia$/) { $no_camellia=1; }
192 elsif (/^no-seed$/) { $no_seed=1; }
193 elsif (/^no-evp$/) { $no_evp=1; } 171 elsif (/^no-evp$/) { $no_evp=1; }
194 elsif (/^no-lhash$/) { $no_lhash=1; } 172 elsif (/^no-lhash$/) { $no_lhash=1; }
195 elsif (/^no-stack$/) { $no_stack=1; } 173 elsif (/^no-stack$/) { $no_stack=1; }
@@ -202,10 +180,6 @@ foreach (@ARGV, split(/ /, $options))
202 elsif (/^no-krb5$/) { $no_krb5=1; } 180 elsif (/^no-krb5$/) { $no_krb5=1; }
203 elsif (/^no-engine$/) { $no_engine=1; } 181 elsif (/^no-engine$/) { $no_engine=1; }
204 elsif (/^no-hw$/) { $no_hw=1; } 182 elsif (/^no-hw$/) { $no_hw=1; }
205 elsif (/^no-gmp$/) { $no_gmp=1; }
206 elsif (/^no-rfc3779$/) { $no_rfc3779=1; }
207 elsif (/^no-tlsext$/) { $no_tlsext=1; }
208 elsif (/^no-cms$/) { $no_cms=1; }
209 } 183 }
210 184
211 185
@@ -241,10 +215,8 @@ $max_crypto = $max_num;
241 215
242my $ssl="ssl/ssl.h"; 216my $ssl="ssl/ssl.h";
243$ssl.=" ssl/kssl.h"; 217$ssl.=" ssl/kssl.h";
244$ssl.=" ssl/tls1.h";
245 218
246my $crypto ="crypto/crypto.h"; 219my $crypto ="crypto/crypto.h";
247$crypto.=" crypto/o_dir.h";
248$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; 220$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
249$crypto.=" crypto/idea/idea.h" ; # unless $no_idea; 221$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
250$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; 222$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
@@ -259,16 +231,12 @@ $crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2;
259$crypto.=" crypto/sha/sha.h" ; # unless $no_sha; 231$crypto.=" crypto/sha/sha.h" ; # unless $no_sha;
260$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd; 232$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd;
261$crypto.=" crypto/aes/aes.h" ; # unless $no_aes; 233$crypto.=" crypto/aes/aes.h" ; # unless $no_aes;
262$crypto.=" crypto/camellia/camellia.h" ; # unless $no_camellia;
263$crypto.=" crypto/seed/seed.h"; # unless $no_seed;
264 234
265$crypto.=" crypto/bn/bn.h"; 235$crypto.=" crypto/bn/bn.h";
266$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa; 236$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa;
267$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa; 237$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa;
268$crypto.=" crypto/dh/dh.h" ; # unless $no_dh; 238$crypto.=" crypto/dh/dh.h" ; # unless $no_dh;
269$crypto.=" crypto/ec/ec.h" ; # unless $no_ec; 239$crypto.=" crypto/ec/ec.h" ; # unless $no_ec;
270$crypto.=" crypto/ecdsa/ecdsa.h" ; # unless $no_ecdsa;
271$crypto.=" crypto/ecdh/ecdh.h" ; # unless $no_ecdh;
272$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac; 240$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac;
273 241
274$crypto.=" crypto/engine/engine.h"; # unless $no_engine; 242$crypto.=" crypto/engine/engine.h"; # unless $no_engine;
@@ -299,9 +267,7 @@ $crypto.=" crypto/ocsp/ocsp.h";
299$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; 267$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
300$crypto.=" crypto/krb5/krb5_asn.h"; 268$crypto.=" crypto/krb5/krb5_asn.h";
301$crypto.=" crypto/tmdiff.h"; 269$crypto.=" crypto/tmdiff.h";
302$crypto.=" crypto/store/store.h"; 270$crypto.=" fips-1.0/fips.h fips-1.0/rand/fips_rand.h fips-1.0/sha/fips_sha.h";
303$crypto.=" crypto/pqueue/pqueue.h";
304$crypto.=" crypto/cms/cms.h";
305 271
306my $symhacks="crypto/symhacks.h"; 272my $symhacks="crypto/symhacks.h";
307 273
@@ -457,11 +423,7 @@ sub do_defs
457 423
458 print STDERR "DEBUG: parsing ----------\n" if $debug; 424 print STDERR "DEBUG: parsing ----------\n" if $debug;
459 while(<IN>) { 425 while(<IN>) {
460 if (/\/\* Error codes for the \w+ functions\. \*\//) 426 last if (/\/\* Error codes for the \w+ functions\. \*\//);
461 {
462 undef @tag;
463 last;
464 }
465 if ($line ne '') { 427 if ($line ne '') {
466 $_ = $line . $_; 428 $_ = $line . $_;
467 $line = ''; 429 $line = '';
@@ -474,22 +436,17 @@ sub do_defs
474 next; 436 next;
475 } 437 }
476 438
477 if(/\/\*/) { 439 $cpp = 1 if /^\#.*ifdef.*cplusplus/;
478 if (not /\*\//) { # multiline comment...
479 $line = $_; # ... just accumulate
480 next;
481 } else {
482 s/\/\*.*?\*\///gs;# wipe it
483 }
484 }
485
486 if ($cpp) { 440 if ($cpp) {
487 $cpp++ if /^#\s*if/; 441 $cpp = 0 if /^\#.*endif/;
488 $cpp-- if /^#\s*endif/;
489 next; 442 next;
490 } 443 }
491 $cpp = 1 if /^#.*ifdef.*cplusplus/;
492 444
445 s/\/\*.*?\*\///gs; # ignore comments
446 if (/\/\*/) { # if we have part
447 $line = $_; # of a comment,
448 next; # continue reading
449 }
493 s/{[^{}]*}//gs; # ignore {} blocks 450 s/{[^{}]*}//gs; # ignore {} blocks
494 print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne ""; 451 print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
495 print STDERR "DEBUG: \$_=\"$_\"\n" if $debug; 452 print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
@@ -548,7 +505,7 @@ sub do_defs
548 } 505 }
549 } elsif (/^\#\s*endif/) { 506 } elsif (/^\#\s*endif/) {
550 my $tag_i = $#tag; 507 my $tag_i = $#tag;
551 while($tag_i > 0 && $tag[$tag_i] ne "-") { 508 while($tag[$tag_i] ne "-") {
552 my $t=$tag[$tag_i]; 509 my $t=$tag[$tag_i];
553 print STDERR "DEBUG: \$t=\"$t\"\n" if $debug; 510 print STDERR "DEBUG: \$t=\"$t\"\n" if $debug;
554 if ($tag{$t}==2) { 511 if ($tag{$t}==2) {
@@ -715,10 +672,6 @@ sub do_defs
715 "EXPORT_VAR_AS_FUNCTION", 672 "EXPORT_VAR_AS_FUNCTION",
716 "FUNCTION"); 673 "FUNCTION");
717 next; 674 next;
718 } elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) {
719 $def .= "int $1_free(void);";
720 $def .= "int $1_new(void);";
721 next;
722 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { 675 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
723 $def .= "int d2i_$2(void);"; 676 $def .= "int d2i_$2(void);";
724 $def .= "int i2d_$2(void);"; 677 $def .= "int i2d_$2(void);";
@@ -763,21 +716,12 @@ sub do_defs
763 "EXPORT_VAR_AS_FUNCTION", 716 "EXPORT_VAR_AS_FUNCTION",
764 "FUNCTION"); 717 "FUNCTION");
765 next; 718 next;
766 } elsif (/^\s*DECLARE_ASN1_NDEF_FUNCTION\s*\(\s*(\w*)\s*\)/) {
767 $def .= "int i2d_$1_NDEF(void);";
768 } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) { 719 } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) {
769 next; 720 next;
770 } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION\s*\(\s*(\w*)\s*\)/) {
771 $def .= "int $1_print_ctx(void);";
772 next;
773 } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
774 $def .= "int $2_print_ctx(void);";
775 next;
776 } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) { 721 } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) {
777 next; 722 next;
778 } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ || 723 } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ ||
779 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ || 724 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ ) {
780 /^DECLARE_PEM_rw_const\s*\(\s*(\w*)\s*,/ ) {
781 # Things not in Win16 725 # Things not in Win16
782 $def .= 726 $def .=
783 "#INFO:" 727 "#INFO:"
@@ -853,7 +797,7 @@ sub do_defs
853 } 797 }
854 close(IN); 798 close(IN);
855 799
856 my $algs; 800 my $algs = '';
857 my $plays; 801 my $plays;
858 802
859 print STDERR "DEBUG: postprocessing ----------\n" if $debug; 803 print STDERR "DEBUG: postprocessing ----------\n" if $debug;
@@ -865,17 +809,6 @@ sub do_defs
865 next if(/typedef\W/); 809 next if(/typedef\W/);
866 next if(/\#define/); 810 next if(/\#define/);
867 811
868 # Reduce argument lists to empty ()
869 # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
870 while(/\(.*\)/s) {
871 s/\([^\(\)]+\)/\{\}/gs;
872 s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f
873 }
874 # pretend as we didn't use curly braces: {} -> ()
875 s/\{\}/\(\)/gs;
876
877 s/STACK_OF\(\)/void/gs;
878
879 print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; 812 print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug;
880 if (/^\#INFO:([^:]*):(.*)$/) { 813 if (/^\#INFO:([^:]*):(.*)$/) {
881 $plats = $1; 814 $plats = $1;
@@ -886,10 +819,21 @@ sub do_defs
886 $s = $1; 819 $s = $1;
887 $k = "VARIABLE"; 820 $k = "VARIABLE";
888 print STDERR "DEBUG: found external variable $s\n" if $debug; 821 print STDERR "DEBUG: found external variable $s\n" if $debug;
889 } elsif (/TYPEDEF_\w+_OF/s) { 822 } elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) {
823 $s = $1;
824 print STDERR "DEBUG: found ANSI C function $s\n" if $debug;
825 } elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s) {
826 # K&R C
827 print STDERR "DEBUG: found K&R C function $s\n" if $debug;
890 next; 828 next;
891 } elsif (/(\w+)\s*\(\).*/s) { # first token prior [first] () is 829 } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) {
892 $s = $1; # a function name! 830 while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) {
831 s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
832 s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
833 }
834 s/\(void\)//;
835 /(\w+(\{[0-9]+\})?)\W*\(\)/s;
836 $s = $1;
893 print STDERR "DEBUG: found function $s\n" if $debug; 837 print STDERR "DEBUG: found function $s\n" if $debug;
894 } elsif (/\(/ and not (/=/)) { 838 } elsif (/\(/ and not (/=/)) {
895 print STDERR "File $file: cannot parse: $_;\n"; 839 print STDERR "File $file: cannot parse: $_;\n";
@@ -920,9 +864,13 @@ sub do_defs
920 $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/); 864 $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/);
921 $a .= ",RSA" if($s =~ /RSAPrivateKey/); 865 $a .= ",RSA" if($s =~ /RSAPrivateKey/);
922 $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/); 866 $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/);
867 # SHA2 algorithms only defined in FIPS mode for
868 # OpenSSL 0.9.7
869 $p .= "OPENSSL_FIPS" if($s =~ /SHA[235]/);
923 870
924 $platform{$s} = 871 $platform{$s} =
925 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); 872 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
873 $algorithm{$s} = '' if !defined $algorithm{$s};
926 $algorithm{$s} .= ','.$a; 874 $algorithm{$s} .= ','.$a;
927 875
928 if (defined($variant{$s})) { 876 if (defined($variant{$s})) {
@@ -1087,7 +1035,9 @@ sub is_valid
1087 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) { 1035 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
1088 return 1; 1036 return 1;
1089 } 1037 }
1090 if ($keyword eq "ZLIB" && $zlib) { return 1; } 1038 if ($keyword eq "OPENSSL_FIPS" && $fips) {
1039 return 1;
1040 }
1091 return 0; 1041 return 0;
1092 } else { 1042 } else {
1093 # algorithms 1043 # algorithms
@@ -1108,12 +1058,8 @@ sub is_valid
1108 if ($keyword eq "DSA" && $no_dsa) { return 0; } 1058 if ($keyword eq "DSA" && $no_dsa) { return 0; }
1109 if ($keyword eq "DH" && $no_dh) { return 0; } 1059 if ($keyword eq "DH" && $no_dh) { return 0; }
1110 if ($keyword eq "EC" && $no_ec) { return 0; } 1060 if ($keyword eq "EC" && $no_ec) { return 0; }
1111 if ($keyword eq "ECDSA" && $no_ecdsa) { return 0; }
1112 if ($keyword eq "ECDH" && $no_ecdh) { return 0; }
1113 if ($keyword eq "HMAC" && $no_hmac) { return 0; } 1061 if ($keyword eq "HMAC" && $no_hmac) { return 0; }
1114 if ($keyword eq "AES" && $no_aes) { return 0; } 1062 if ($keyword eq "AES" && $no_aes) { return 0; }
1115 if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; }
1116 if ($keyword eq "SEED" && $no_seed) { return 0; }
1117 if ($keyword eq "EVP" && $no_evp) { return 0; } 1063 if ($keyword eq "EVP" && $no_evp) { return 0; }
1118 if ($keyword eq "LHASH" && $no_lhash) { return 0; } 1064 if ($keyword eq "LHASH" && $no_lhash) { return 0; }
1119 if ($keyword eq "STACK" && $no_stack) { return 0; } 1065 if ($keyword eq "STACK" && $no_stack) { return 0; }
@@ -1126,12 +1072,6 @@ sub is_valid
1126 if ($keyword eq "ENGINE" && $no_engine) { return 0; } 1072 if ($keyword eq "ENGINE" && $no_engine) { return 0; }
1127 if ($keyword eq "HW" && $no_hw) { return 0; } 1073 if ($keyword eq "HW" && $no_hw) { return 0; }
1128 if ($keyword eq "FP_API" && $no_fp_api) { return 0; } 1074 if ($keyword eq "FP_API" && $no_fp_api) { return 0; }
1129 if ($keyword eq "STATIC_ENGINE" && $no_static_engine) { return 0; }
1130 if ($keyword eq "GMP" && $no_gmp) { return 0; }
1131 if ($keyword eq "RFC3779" && $no_rfc3779) { return 0; }
1132 if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; }
1133 if ($keyword eq "CMS" && $no_cms) { return 0; }
1134 if ($keyword eq "DEPRECATED" && $no_deprecated) { return 0; }
1135 1075
1136 # Nothing recognise as true 1076 # Nothing recognise as true
1137 return 1; 1077 return 1;
@@ -1234,6 +1174,8 @@ EOO
1234 1174
1235LIBRARY $libname $liboptions 1175LIBRARY $libname $liboptions
1236 1176
1177DESCRIPTION '$description'
1178
1237EOF 1179EOF
1238 1180
1239 if ($W16) { 1181 if ($W16) {