Avoid "incomprehensible" errors when required definitions are missing.
[openssl.git] / crypto / asn1 / asn1.h
index 6b9062d5d099e5f736e674653a5a206eb883feef..8a28085d550a9b8e5a9dbbd6f37a114a82def8f6 100644 (file)
@@ -64,8 +64,8 @@ extern "C" {
 #endif
 
 #include <time.h>
-#include "bn.h"
-#include "stack.h"
+#include <openssl/bn.h>
+#include <openssl/stack.h>
 
 #define V_ASN1_UNIVERSAL               0x00
 #define        V_ASN1_APPLICATION              0x40
@@ -679,6 +679,9 @@ char *ASN1_unpack_string(ASN1_STRING *oct, char *(*d2i)());
 ASN1_STRING *ASN1_pack_string(char *obj, int (*i2d)(), ASN1_OCTET_STRING **oct);
 
 #else
+#error "OpenSSL cannot be used with NOPROTO defined.  The NOPROTO sections in header files exist only for automatic parsing by certain utilities."
+/* Without this, highly uncomprehensible error messages can occur
+ * when compiling something with -DNOPROTO ... */
 
 ASN1_TYPE *    ASN1_TYPE_new();
 void           ASN1_TYPE_free();
@@ -807,6 +810,10 @@ ASN1_STRING *ASN1_pack_string();
 #endif
 
 /* BEGIN ERROR CODES */
+/* The following lines are auto generated by the script mkerr.pl. Any changes
+ * made after this point may be overwritten when the script is next run.
+ */
+
 /* Error codes for the ASN1 functions. */
 
 /* Function codes. */
@@ -1049,7 +1056,7 @@ ASN1_STRING *ASN1_pack_string();
 #define ASN1_R_WRONG_PRINTABLE_TYPE                     148
 #define ASN1_R_WRONG_TAG                                149
 #define ASN1_R_WRONG_TYPE                               150
+
 #ifdef  __cplusplus
 }
 #endif