Some versions of OpenSSL (notably those that come with most Linux distributions) are linked against Kerberos libraries. This means that you need to setup the build environment to point at the Kerberos files as well.
As an example, on a RedHat Enterprise 3 machine:
$ perl Makefile.PL ENABLE_SSL=yes < /dev/null [...] $ make [...] /usr/include/openssl/kssl.h:169: syntax error before "enctype" In file included from spamc/utils.h:28, from spamc/libspamc.c:20: /usr/include/openssl/ssl.h:909: syntax error before "KSSL_CTX" /usr/include/openssl/ssl.h:931: syntax error before '}' token In file included from /usr/include/openssl/ssl.h:179, from spamc/utils.h:28, from spamc/utils.c:40: /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory In file included from /usr/include/openssl/ssl.h:179, from spamc/utils.h:28, from spamc/utils.c:40: /usr/include/openssl/kssl.h:134: syntax error before "krb5_enctype" /usr/include/openssl/kssl.h:136: syntax error before '*' token /usr/include/openssl/kssl.h:137: syntax error before '}' token /usr/include/openssl/kssl.h:149: syntax error before "kssl_ctx_setstring" /usr/include/openssl/kssl.h:149: syntax error before '*' token /usr/include/openssl/kssl.h:150: syntax error before '*' token [...]
In this case, the Kerberos include files are in /usr/kerberos/include, so you need to modify the make line appropriately:
$ make SSLCFLAGS="-DSPAMC_SSL -I/usr/kerberos/include"
which then works as expected. Note: the -DSPAMC_SSL is in the default spamc/Makefile, so it needs to be copied to the commandline.