I'm trying to compile Squid on Mac OS X 10.4 with OpenSSL 1.0.1b and I'm getting compile errors. I'm not a C coder so I don't know how to fix this. Here's the error log: libtool: compile: g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../include -I/usr/local/ssl/include -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -D_REENTRANT -g -O2 -MT gadgets.lo -MD -MP -MF .deps/gadgets.Tpo -c gadgets.cc -fno-common -DPIC -o .libs/gadgets.o In file included from ../../src/ssl/gadgets.h:8, from gadgets.cc:6: ../../src/base/TidyPointer.h:19: error: 'NULL' was not declared in this scope ../../src/base/TidyPointer.h: In member function 'T* TidyPointer<T, DeAllocator>::release()': ../../src/base/TidyPointer.h:36: error: 'NULL' was not declared in this scope ../../src/base/TidyPointer.h: In member function 'void TidyPointer<T, DeAllocator>::deletePointer()': ../../src/base/TidyPointer.h:53: error: 'NULL' was not declared in this scope cc1plus: warnings being treated as errors In file included from gadgets.cc:6: ../../src/ssl/gadgets.h: At global scope: ../../src/ssl/gadgets.h:39: warning: 'X509_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:39: error: variable or field 'X509_free_cpp' declared void ../../src/ssl/gadgets.h:39: error: 'X509' was not declared in this scope ../../src/ssl/gadgets.h:39: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:40: error: 'X509' was not declared in this scope ../../src/ssl/gadgets.h:40: error: 'X509_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:40: error: template argument 1 is invalid ../../src/ssl/gadgets.h:40: error: template argument 2 is invalid ../../src/ssl/gadgets.h:40: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:42: warning: 'EVP_PKEY_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:42: error: variable or field 'EVP_PKEY_free_cpp' declared void ../../src/ssl/gadgets.h:42: error: 'EVP_PKEY' was not declared in this scope ../../src/ssl/gadgets.h:42: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:43: error: 'EVP_PKEY' was not declared in this scope ../../src/ssl/gadgets.h:43: error: 'EVP_PKEY_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:43: error: template argument 1 is invalid ../../src/ssl/gadgets.h:43: error: template argument 2 is invalid ../../src/ssl/gadgets.h:43: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:45: warning: 'BN_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:45: error: variable or field 'BN_free_cpp' declared void ../../src/ssl/gadgets.h:45: error: 'BIGNUM' was not declared in this scope ../../src/ssl/gadgets.h:45: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:46: error: 'BIGNUM' was not declared in this scope ../../src/ssl/gadgets.h:46: error: 'BN_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:46: error: template argument 1 is invalid ../../src/ssl/gadgets.h:46: error: template argument 2 is invalid ../../src/ssl/gadgets.h:46: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:48: warning: 'BIO_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:48: error: variable or field 'BIO_free_cpp' declared void ../../src/ssl/gadgets.h:48: error: 'BIO' was not declared in this scope ../../src/ssl/gadgets.h:48: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:49: error: 'BIO' was not declared in this scope ../../src/ssl/gadgets.h:49: error: 'BIO_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:49: error: template argument 1 is invalid ../../src/ssl/gadgets.h:49: error: template argument 2 is invalid ../../src/ssl/gadgets.h:49: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:51: warning: 'ASN1_INTEGER_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:51: error: variable or field 'ASN1_INTEGER_free_cpp' declared void ../../src/ssl/gadgets.h:51: error: 'ASN1_INTEGER' was not declared in this scope ../../src/ssl/gadgets.h:51: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:52: error: 'ASN1_INTEGER' was not declared in this scope ../../src/ssl/gadgets.h:52: error: 'ASN1_INTEGER_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:52: error: template argument 1 is invalid ../../src/ssl/gadgets.h:52: error: template argument 2 is invalid ../../src/ssl/gadgets.h:52: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:54: warning: 'TXT_DB_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:54: error: variable or field 'TXT_DB_free_cpp' declared void ../../src/ssl/gadgets.h:54: error: 'TXT_DB' was not declared in this scope ../../src/ssl/gadgets.h:54: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:55: error: 'TXT_DB' was not declared in this scope ../../src/ssl/gadgets.h:55: error: 'TXT_DB_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:55: error: template argument 1 is invalid ../../src/ssl/gadgets.h:55: error: template argument 2 is invalid ../../src/ssl/gadgets.h:55: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:57: warning: 'X509_NAME_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:57: error: variable or field 'X509_NAME_free_cpp' declared void ../../src/ssl/gadgets.h:57: error: 'X509_NAME' was not declared in this scope ../../src/ssl/gadgets.h:57: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:58: error: 'X509_NAME' was not declared in this scope ../../src/ssl/gadgets.h:58: error: 'X509_NAME_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:58: error: template argument 1 is invalid ../../src/ssl/gadgets.h:58: error: template argument 2 is invalid ../../src/ssl/gadgets.h:58: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:60: warning: 'RSA_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:60: error: variable or field 'RSA_free_cpp' declared void ../../src/ssl/gadgets.h:60: error: 'RSA' was not declared in this scope ../../src/ssl/gadgets.h:60: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:61: error: 'RSA' was not declared in this scope ../../src/ssl/gadgets.h:61: error: 'RSA_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:61: error: template argument 1 is invalid ../../src/ssl/gadgets.h:61: error: template argument 2 is invalid ../../src/ssl/gadgets.h:61: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:63: warning: 'X509_REQ_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:63: error: variable or field 'X509_REQ_free_cpp' declared void ../../src/ssl/gadgets.h:63: error: 'X509_REQ' was not declared in this scope ../../src/ssl/gadgets.h:63: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:64: error: 'X509_REQ' was not declared in this scope ../../src/ssl/gadgets.h:64: error: 'X509_REQ_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:64: error: template argument 1 is invalid ../../src/ssl/gadgets.h:64: error: template argument 2 is invalid ../../src/ssl/gadgets.h:64: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:66: warning: 'SSL_CTX_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:66: error: variable or field 'SSL_CTX_free_cpp' declared void ../../src/ssl/gadgets.h:66: error: 'SSL_CTX' was not declared in this scope ../../src/ssl/gadgets.h:66: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:67: error: 'SSL_CTX' was not declared in this scope ../../src/ssl/gadgets.h:67: error: 'SSL_CTX_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:67: error: template argument 1 is invalid ../../src/ssl/gadgets.h:67: error: template argument 2 is invalid ../../src/ssl/gadgets.h:67: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:69: warning: 'SSL_free_cpp' initialized and declared 'extern' ../../src/ssl/gadgets.h:69: error: variable or field 'SSL_free_cpp' declared void ../../src/ssl/gadgets.h:69: error: 'SSL' was not declared in this scope ../../src/ssl/gadgets.h:69: error: 'a' was not declared in this scope ../../src/ssl/gadgets.h:70: error: 'SSL' was not declared in this scope ../../src/ssl/gadgets.h:70: error: 'SSL_free_cpp' was not declared in this scope ../../src/ssl/gadgets.h:70: error: template argument 1 is invalid ../../src/ssl/gadgets.h:70: error: template argument 2 is invalid ../../src/ssl/gadgets.h:70: error: invalid type in declaration before ';' token ../../src/ssl/gadgets.h:77: error: expected constructor, destructor, or type conversion before '*' token ../../src/ssl/gadgets.h:83: error: expected constructor, destructor, or type conversion before '*' token ../../src/ssl/gadgets.h:89: error: 'std::string' has not been declared ../../src/ssl/gadgets.h:109: error: expected constructor, destructor, or type conversion before '*' token ../../src/ssl/gadgets.h:117: error: 'BIGNUM' has not been declared gadgets.cc: In function 'bool addCnToRequest(Ssl::X509_REQ_Pointer&, const char*)': gadgets.cc:16: error: 'X509_NAME' was not declared in this scope gadgets.cc:16: error: 'name' was not declared in this scope gadgets.cc:16: error: request for member 'get' in 'request', which is of non-class type 'int' gadgets.cc:16: error: 'X509_REQ_get_subject_name' was not declared in this scope gadgets.cc:23: error: 'MBSTRING_ASC' was not declared in this scope gadgets.cc:23: error: 'X509_NAME_add_entry_by_txt' was not declared in this scope gadgets.cc: In function 'bool makeRequest(Ssl::X509_REQ_Pointer&, const Ssl::EVP_PKEY_Pointer&, const char*)': gadgets.cc:35: error: request for member 'get' in 'request', which is of non-class type 'int' gadgets.cc:35: error: 'X509_REQ_set_version' was not declared in this scope gadgets.cc:41: error: request for member 'get' in 'request', which is of non-class type 'int' gadgets.cc:41: error: request for member 'get' in 'pkey', which is of non-class type 'const int' gadgets.cc:41: error: 'X509_REQ_set_pubkey' was not declared in this scope gadgets.cc: At global scope: gadgets.cc:46: error: expected constructor, destructor, or type conversion before '*' token gadgets.cc:65: error: expected constructor, destructor, or type conversion before '*' token gadgets.cc:81: error: 'ASN1_INTEGER' was not declared in this scope gadgets.cc:81: error: 'ai' was not declared in this scope gadgets.cc:81: error: 'BIGNUM' was not declared in this scope gadgets.cc:81: error: initializer expression list treated as compound expression gadgets.cc:82: error: expected ',' or ';' before '{' token gadgets.cc:33: warning: 'bool makeRequest(Ssl::X509_REQ_Pointer&, const Ssl::EVP_PKEY_Pointer&, const char*)' defined but not used gadgets.cc:81: warning: 'setSerialNumber' defined but not used make[3]: *** [gadgets.lo] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all] Error 2 make: *** [all-recursive] Error 1