mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-08-16 22:28:43 +00:00
215 lines
6.4 KiB
Plaintext
215 lines
6.4 KiB
Plaintext
AC_PREREQ(2.50)
|
|
|
|
dnl Autoconf. ick.
|
|
dnl Here's how to rebuild the "configure" script from this source file:
|
|
dnl
|
|
dnl cd spamc; autoconf; autoheader
|
|
|
|
AC_INIT
|
|
|
|
AC_ARG_ENABLE(ssl,
|
|
AC_HELP_STRING([--enable-ssl],
|
|
[build spamc with ssl support ('yes'/'no', default is 'no')]),
|
|
[sa_ssl_enabled=${enableval:-no}],
|
|
[sa_ssl_enabled=${enableval:-no}])
|
|
AC_CONFIG_SRCDIR([Makefile.PL])
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
dnl ensure Makefile.PL has been run too
|
|
if test -f Makefile.PL -a ! -f Makefile ; then
|
|
perl Makefile.PL || exit 1
|
|
fi
|
|
|
|
AC_PROG_CC
|
|
|
|
# off: breaks gcc 3.3.x! doh
|
|
# if test "x$GCC" = "xyes" ; then
|
|
# CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
|
|
# fi
|
|
|
|
AC_EXEEXT
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(sys/time.h syslog.h unistd.h errno.h sys/errno.h)
|
|
AC_CHECK_HEADERS(time.h sysexits.h sys/socket.h netdb.h netinet/in.h)
|
|
AC_CHECK_HEADERS(pwd.h signal.h openssl/crypto.h zlib.h)
|
|
dnl AC_CHECK_HEADERS(getopt.h)
|
|
|
|
AC_C_CONST
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_UID_T
|
|
AC_TYPE_SIZE_T
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for SHUT_RD],
|
|
shutrd, [
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[printf ("%d", SHUT_RD); return 0;],
|
|
[shutrd=yes],
|
|
[shutrd=no]),
|
|
])
|
|
if test $shutrd = yes ; then
|
|
AC_DEFINE(HAVE_SHUT_RD)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CHECK_LIB(socket, socket)
|
|
|
|
SSLLIBS=""
|
|
SSLCFLAGS=""
|
|
if test yes = "$sa_ssl_enabled"; then
|
|
AC_CHECK_LIB(crypto, CRYPTO_malloc,[SSLLIBS="-lcrypto $SSLLIBS"])
|
|
AC_CHECK_LIB(ssl, SSL_CTX_free,[SSLLIBS="-lssl $SSLLIBS"],,-lcrypto)
|
|
|
|
# before defining SPAMC_SSL check that all its requirements are
|
|
# actually available
|
|
if test yes = "$ac_cv_header_openssl_crypto_h" && \
|
|
test yes = "$ac_cv_lib_crypto_CRYPTO_malloc" && \
|
|
test yes = "$ac_cv_lib_ssl_SSL_CTX_free"; then
|
|
SSLCFLAGS="-DSPAMC_SSL"
|
|
else
|
|
AC_MSG_ERROR([Cannot use SSL; libraries or header files are missing.
|
|
You may try using 'configure --disable-ssl'.])
|
|
fi
|
|
fi
|
|
AC_CHECK_LIB(inet, connect)
|
|
AC_CHECK_LIB(nsl, t_accept)
|
|
AC_CHECK_LIB(z, deflate)
|
|
AC_CHECK_LIB(dl, dlopen)
|
|
|
|
AC_CHECK_FUNCS(socket strdup strtod strtol snprintf shutdown)
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for h_errno],
|
|
herrno, [
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <netdb.h>],
|
|
[printf ("%d", h_errno); return 0;],
|
|
[herrno=yes],
|
|
[herrno=no]),
|
|
])
|
|
if test $herrno = yes ; then
|
|
AC_DEFINE(HAVE_H_ERRNO)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl AC_CACHE_CHECK([for optarg],
|
|
dnl haveoptarg, [
|
|
dnl AC_TRY_COMPILE([#include <getopt.h>],
|
|
dnl [if (optarg == (char *) 0L) { return 0; } return 1;],
|
|
dnl [haveoptarg=yes],
|
|
dnl [haveoptarg=no]),
|
|
dnl ])
|
|
dnl if test $haveoptarg = yes ; then
|
|
dnl AC_DEFINE(HAVE_OPTARG)
|
|
dnl fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for in_addr_t],
|
|
inaddrt, [
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <netinet/in.h>],
|
|
[in_addr_t foo; return 0;],
|
|
[inaddrt=yes],
|
|
[inaddrt=no]),
|
|
])
|
|
if test $inaddrt = no ; then
|
|
AC_CHECK_TYPE(in_addr_t, unsigned long)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for INADDR_NONE],
|
|
haveinaddrnone, [
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <netinet/in.h>],
|
|
[in_addr_t foo = INADDR_NONE; return 0;],
|
|
[haveinaddrnone=yes],
|
|
[haveinaddrnone=no]),
|
|
])
|
|
if test $haveinaddrnone = yes ; then
|
|
AC_DEFINE(HAVE_INADDR_NONE)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for EX__MAX],
|
|
haveexmax, [
|
|
AC_TRY_COMPILE([#ifdef HAVE_SYSEXITS_H
|
|
#include <sysexits.h>
|
|
#endif
|
|
#include <errno.h>],
|
|
[int foo = EX__MAX; return 0;],
|
|
[haveexmax=yes],
|
|
[haveexmax=no]),
|
|
])
|
|
if test $haveexmax = yes ; then
|
|
AC_DEFINE(HAVE_EX__MAX)
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
AC_CACHE_CHECK([for EAI_ADDRFAMILY],
|
|
haveitem, [
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>],
|
|
[int foo = EAI_ADDRFAMILY; return 0;],
|
|
[haveitem=yes],
|
|
[haveitem=no]),
|
|
])
|
|
if test $haveitem = yes ; then
|
|
AC_DEFINE(HAVE_EAI_ADDRFAMILY, 1, [Define if EAI_ADDRFAMILY is valid.])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for EAI_SYSTEM],
|
|
haveitem, [
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>],
|
|
[int foo = EAI_SYSTEM; return 0;],
|
|
[haveitem=yes],
|
|
[haveitem=no]),
|
|
])
|
|
if test $haveitem = yes ; then
|
|
AC_DEFINE(HAVE_EAI_SYSTEM, 1, [Define if EAI_SYSTEM is valid.])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for EAI_NODATA],
|
|
haveitem, [
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>],
|
|
[int foo = EAI_NODATA; return 0;],
|
|
[haveitem=yes],
|
|
[haveitem=no]),
|
|
])
|
|
if test $haveitem = yes ; then
|
|
AC_DEFINE(HAVE_EAI_NODATA, 1, [Define if EAI_NODATA is valid.])
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
# we cheat, since we *know* we have Perl installed ;)
|
|
CCCDLFLAGS=`perl -e 'use Config; print $Config::Config{cccdlflags}'`
|
|
LDDLFLAGS=`perl -e 'use Config; print $Config::Config{lddlflags}'`
|
|
AC_SUBST([SSLLIBS])
|
|
AC_SUBST([SSLCFLAGS])
|
|
AC_SUBST(CCCDLFLAGS)
|
|
AC_SUBST(LDDLFLAGS)
|
|
AC_SUBST(HAVE_SHUT_RD)
|
|
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_CONFIG_FILES([spamc.h])
|
|
AC_OUTPUT
|