Move all autogenerated header file parts to crypto/opensslconf.h.
[openssl.git] / util / mkdef.pl
index 77b47630157a37227711409119e63c42cba0273b..4a94dc4dbdd25380da44df07b375a8611058a7dc 100755 (executable)
@@ -11,6 +11,8 @@ $ssl_num=   "util/ssleay.num";
 
 $W32=1;
 $NT=0;
+# Set this to make typesafe STACK definitions appear in DEF
+$safe_stack_def = 1;
 foreach (@ARGV)
        {
        $W32=1 if $_ eq "32";
@@ -73,6 +75,7 @@ $crypto.=" crypto/asn1/asn1.h";
 $crypto.=" crypto/asn1/asn1_mac.h";
 $crypto.=" crypto/err/err.h";
 $crypto.=" crypto/pkcs7/pkcs7.h";
+$crypto.=" crypto/pkcs12/pkcs12.h";
 $crypto.=" crypto/x509/x509.h";
 $crypto.=" crypto/x509/x509_vfy.h";
 $crypto.=" crypto/x509v3/x509v3.h";
@@ -178,7 +181,33 @@ sub do_defs
                        $t=undef;
                        if (/^extern .*;$/)
                                { $t=&do_extern($name,$_); }
-                       elsif ( ($tag{'NOPROTO'} == 1) &&
+                       elsif ($safe_stack_def &&
+                               /^\s*DECLARE_STACK_OF\s*\(\s*(\w*)\s*\)/)
+                               {
+                               push(@ret,"sk_${1}_new");
+                               push(@ret,"sk_${1}_new_null");
+                               push(@ret,"sk_${1}_free");
+                               push(@ret,"sk_${1}_num");
+                               push(@ret,"sk_${1}_value");
+                               push(@ret,"sk_${1}_set");
+                               push(@ret,"sk_${1}_zero");
+                               push(@ret,"sk_${1}_push");
+                               push(@ret,"sk_${1}_pop");
+                               push(@ret,"sk_${1}_find");
+                               push(@ret,"sk_${1}_delete");
+                               push(@ret,"sk_${1}_delete_ptr");
+                               push(@ret,"sk_${1}_set_cmp_func");
+                               push(@ret,"sk_${1}_dup");
+                               push(@ret,"sk_${1}_pop_free");
+                               push(@ret,"sk_${1}_shift");
+                               }
+                       elsif ($safe_stack_def &&
+                               /^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/)
+                               {
+                               push(@ret,"d2i_ASN1_SET_OF_${1}");
+                               push(@ret,"i2d_ASN1_SET_OF_${1}");
+                               }
+                       elsif (($tag{'NOPROTO'} == 1) &&
                                ($tag{'FreeBSD'} != 1) &&
                                (($W32 && ($tag{'WIN16'} != 1)) ||
                                 (!$W32 && ($tag{'WIN16'} != -1))) &&