piler/configure.in
2011-11-14 15:57:52 +01:00

325 lines
7.5 KiB
Plaintext

AC_INIT
AC_CONFIG_SRCDIR([src/piler.c])
AC_CONFIG_HEADER(piler-config.h)
CONFIGURE_PARAMS_FILE=params.h
rm -f $CONFIGURE_PARAMS_FILE; echo "#define CONFIGURE_PARAMS \"Build Date: "`date`"\nConfigure command: ./configure $@\"" > $CONFIGURE_PARAMS_FILE
dnl Checks for programs.
AC_PROG_CC
dnl AM_PROG_CC_STDC
AC_PROG_MAKE_SET
AC_PROG_INSTALL
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/socket.h sys/time.h syslog.h signal.h ctype.h unistd.h)
AC_SUBST(defs)
AC_SUBST(INCDIR)
AC_SUBST(LIBDIR)
AC_SUBST(OBJS)
AC_SUBST(RUNNING_USER)
AC_SUBST(SUBDIRS)
AC_SUBST(mysql_includes)
AC_SUBST(mysql_libs)
AC_SUBST(mysql_obj)
AC_SUBST(libclamav_extra_libs)
AC_SUBST(sqlite3_batch)
AC_SUBST(id_bin)
have_libclamav="no"
have_libtool="no"
have_clamd="no"
have_antivirus="no"
have_mysql="no"
have_sqlite3="no"
have_zlib="no"
have_whitelist="no"
have_blacklist="no"
have_static_build="no"
antispam_libs="-lz -lm -ldl -lcrypto"
defs=""
objs=""
user_obj=""
mysql_obj=""
sqlite3_batch=""
os=`uname -s`
id_bin="id"
dnl SUBDIRS="src etc util perl init.d templates history contrib/stat"
SUBDIRS="src"
dnl static build
AC_ARG_ENABLE(static-build,
[ --enable-static-build build statically linked executables (default: dynamically linked)], have_static_build=$enableval, have_static_build="no")
dnl clamd
AC_ARG_ENABLE(clamd,
[ --enable-clamd build clamd antivirus support], want_clamd=$enableval, want_clamd="no")
if test "$want_clamd" = "yes"; then
have_clamd="yes"
have_antivirus="yes"
fi
dnl use whitelist
AC_ARG_ENABLE(whitelist,
[ --enable-whitelist use whitelist], want_whitelist=$enableval, want_whitelist="no")
if test "$want_whitelist" = "yes"; then
have_whitelist="yes"
fi
dnl use blacklist
AC_ARG_ENABLE(blacklist,
[ --enable-blacklist use blacklist (this is _NOT_ RBL)], want_blacklist=$enableval, want_blacklist="no")
if test "$want_blacklist" = "yes"; then
have_blacklist="yes"
fi
dnl math library
AC_CHECK_HEADERS(math.h, have_math=yes, have_math=no)
AC_CHECK_LIB([m],[fabs],[AC_CHECK_LIB(m, fabs)],[have_math=yes],[""; exit])ac_cv_lib_m=ac_cv_lib_m_main
dnl openssl library
AC_CHECK_HEADERS(openssl/sha.h, have_crypto=yes, have_crypto=no)
AC_CHECK_LIB([crypto],[SHA256_Init],[AC_CHECK_LIB(crypto, SHA256_Init, have_crypto=yes, echo "libcrypto is not found"; have_crypto=no)],[],[])ac_cv_lib_crypto=ac_cv_lib_crypto_main
if test "$have_crypto" = "no"; then
echo "please install openssl developer package"
exit 1
fi
dnl TRE library
AC_CHECK_HEADERS(tre/tre.h, have_tre=yes, echo "tre.h is not found")
AC_CHECK_LIB([tre],[main],[AC_CHECK_LIB(tre, regcomp, have_tre=yes, echo "libtre.so is not found"; have_tre=no)],[],[])ac_cv_lib_tre=ac_cv_lib_tre_main
dnl zlib
AC_CHECK_HEADERS(zlib.h, have_zlib=yes, echo "zlib.h is not found")
AC_CHECK_LIB([z],[main],[AC_CHECK_LIB(z, compress, have_zlib=yes, echo "libz.so is not found"; have_zlib=no)],[],[])ac_cv_lib_z=ac_cv_lib_z_main
if test "$have_zlib" = "no"; then
echo "please install the zlib development packages"
exit 1;
fi
AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, yes)
if test x$MYSQL_CONFIG = xyes; then
have_mysql="yes"
fi
if test "$have_mysql" = "yes"; then
mysql_includes=`mysql_config --cflags`
mysql_libs=`mysql_config --libs_r`
AC_CHECK_LIB([guide],[main],[AC_CHECK_LIB(guide, _intel_fast_memset, have_icc_guide=yes, have_icc_guide=no)],[],[])ac_cv_lib_guide=ac_cv_lib_guide_main
else
echo "MySQL support is not found"
exit 1;
fi
AC_CHECK_HEADERS(sqlite3.h, have_sqlite3=yes, echo "sqlite3.h is not found")
AC_CHECK_LIB([sqlite3],[main],[AC_CHECK_LIB(sqlite3, sqlite3_open, have_sqlite3=yes, have_sqlite3=no)],[],[])ac_cv_lib_sqlite3=ac_cv_lib_sqlite3_main
if test "$have_sqlite3" = "no"; then
echo "sqlite3 not found";
dnl exit 1;
fi
if test `sqlite3 -help 2>&1| grep -c -- -batch` -gt 0; then sqlite3_batch="-batch"; fi
dnl user running piler
AC_ARG_WITH(piler-user,
[ --with-piler-user=username what user the piler daemon shall be run as],
[ RUNNING_USER=$withval ],
[ RUNNING_USER=piler ]
)
dnl configure config directory
cfg_dir=`echo $sysconfdir | grep prefix`
if test -n "$cfg_dir"; then
if test "$prefix" = "NONE"
then
cfg_dir="$ac_default_prefix/etc"
my_prefix=$ac_default_prefix
else
cfg_dir="$prefix/etc"
my_prefix=$prefix
fi
else
cfg_dir="$sysconfdir"
fi
CFGDIR=$cfg_dir
AC_SUBST(CFGDIR)
AC_DEFINE_UNQUOTED(CONFDIR,"$cfg_dir",[where to look for the config file])
dnl configure data directory
data_dir=`echo $localstatedir | grep prefix`
if test -n "$data_dir"; then
if test "$prefix" = "NONE"
then
data_dir="$ac_default_prefix/var"
else
data_dir="$prefix/var"
fi
else
data_dir="$localstatedir"
fi
DATADIR=$data_dir
AC_SUBST(DATADIR)
AC_DEFINE_UNQUOTED(DATADIR,"$data_dir",[where to look for the data files])
AC_DEFINE_UNQUOTED(VIRUS_TEMPLATE, "$my_prefix/share/clapf/template.virus", [where the virus template is])
AC_DEFINE_UNQUOTED(ZOMBIE_NET_REGEX, "$my_prefix/share/clapf/zombienets.regex", [where the virus template is])
dnl let us know if we are building on FreeBSD
if test "$os" = "FreeBSD"; then
defs="$defs -DFREEBSD"
fi
if test "$os" = "Linux"; then
defs="$defs -D_GNU_SOURCE"
fi
if test "$os" = "SunOS"; then
AC_DEFINE(HAVE_DAEMON, 0, [daemon() support])
sunos_libs="-lnsl -lsocket"
if test -x /usr/xpg4/bin/id; then id_bin="/usr/xpg4/bin/id"; fi
fi
if test `echo $os | grep -c CYGWIN` -eq 1; then
defs="$defs -DCYGWIN"
AC_DEFINE_UNQUOTED(ZOMBIE_NET_REGEX, "zombienets.regex", [where the virus template is])
fi
dnl whether we have antivirus support
if test "$have_clamd" = "yes" ; then
defs="$defs -DHAVE_ANTIVIRUS"
objs="$objs avir.o"
fi
echo; echo
if test "$have_clamd" = "yes"; then
echo "clamd support: yes"
objs="$objs clamd.o"
defs="$defs -DHAVE_CLAMD"
fi
if test "$have_whitelist" = "yes"; then
echo "whitelist: yes"
defs="$defs -DHAVE_WHITELIST"
else
echo "whitelist: no"
fi
if test "$have_blacklist" = "yes"; then
echo "blacklist: yes"
defs="$defs -DHAVE_BLACKLIST"
else
echo "blacklist: no"
fi
if test "$want_memcached" = "yes"; then
echo "memcached support: yes"
objs="$objs memc.o memcached.o"
defs="$defs -DHAVE_MEMCACHED"
fi
echo "run as user: $RUNNING_USER"
if test "$have_static_build" = "yes"; then
echo "link mode: static"
static="-static"
else
echo "link mode: dynamic"
fi
if test "$have_tre" = "yes"; then
echo "tre library: yes"
defs="$defs -DHAVE_TRE"
antispam_libs="$antispam_libs -ltre"
fi
if test "$have_mysql" = "yes"; then
defs="$defs -DNEED_MYSQL"
fi
if test "$have_sqlite3" = "yes"; then
defs="$defs -DNEED_SQLITE3"
sqlite3_libs="-lsqlite3 -lpthread"
fi
if test "$have_icc_guide" = "yes" && test "$have_mysql" = "yes"; then
mysql_libs="$mysql_libs -lguide"
fi
id -u $RUNNING_USER 2>/dev/null 1>/dev/null
if test $? -eq 1; then echo "the user \"$RUNNING_USER\" does not exists, please create it, first with adduser..."; exit 1; fi
if test "$have_clamd" = "no" ; then
echo; echo
echo "You have not selected any antivirus support."
echo "piler will not protect you from hostile code coming in e-mail"
fi
echo; echo
CFLAGS="$static -O2 -Wall -g"
LIBS="$antispam_libs $sunos_libs $sqlite3_libs"
OBJS="dirs.o misc.o counters.o cfg.o sig.o decoder.o list.o boundary.o parser.o parser_utils.o session.o message.o digest.o store.o tai.o $objs"
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT