mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-28 03:30:12 +01:00
486 lines
12 KiB
Plaintext
486 lines
12 KiB
Plaintext
AC_INIT
|
|
AC_CONFIG_SRCDIR([src/piler.c])
|
|
AC_CONFIG_HEADER(piler-config.h)
|
|
|
|
CONFIGURE_PARAMS_FILE=params.h
|
|
|
|
PARAMS=$@
|
|
|
|
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(MAKE)
|
|
AC_SUBST(sql_includes)
|
|
AC_SUBST(sql_libs)
|
|
AC_SUBST(sql_obj)
|
|
AC_SUBST(libclamav_extra_libs)
|
|
AC_SUBST(id_bin)
|
|
AC_SUBST(iv)
|
|
|
|
have_libclamav="no"
|
|
have_libtool="no"
|
|
have_clamd="no"
|
|
|
|
have_antivirus="no"
|
|
have_mysql="no"
|
|
have_psql="no"
|
|
have_tre="no"
|
|
have_zip="no"
|
|
have_zlib="no"
|
|
have_starttls="no"
|
|
have_tcpwrappers="no"
|
|
have_tweak_sent_time="no"
|
|
dnl have_multitenancy="no"
|
|
|
|
pdftotext="no"
|
|
catdoc="no"
|
|
catppt="no"
|
|
ppthtml="no"
|
|
xls2csv="no"
|
|
unrtf="no"
|
|
|
|
|
|
have_static_build="no"
|
|
|
|
antispam_libs="-lz -lm -ldl -lcrypto -lssl"
|
|
defs=""
|
|
objs=""
|
|
user_obj=""
|
|
sql_obj=""
|
|
os=`uname -s`
|
|
|
|
id_bin="id"
|
|
|
|
MAKE="make"
|
|
|
|
if test "$os" = "SunOS"; then MAKE="gmake"; fi
|
|
|
|
rm -f $CONFIGURE_PARAMS_FILE
|
|
|
|
LDD_VERSION=`ldd --version | head -1`
|
|
GCC_VERSION=''
|
|
|
|
if test -f `which gcc`; then gcc -v 2> aa; GCC_VERSION=`tail -1 aa`; rm -f aa; fi
|
|
|
|
if test "$os" = "SunOS"; then
|
|
echo "#define CONFIGURE_PARAMS \"Build Date: "`date`'\\n" \\' > $CONFIGURE_PARAMS_FILE
|
|
else
|
|
echo "#define CONFIGURE_PARAMS \"Build Date: "`date`"\\nldd version: $LDD_VERSION\\ngcc version: $GCC_VERSION\n"\" \\ > $CONFIGURE_PARAMS_FILE
|
|
fi
|
|
echo "\"Configure command: ./configure $PARAMS\"" >> $CONFIGURE_PARAMS_FILE
|
|
|
|
|
|
SUBDIRS="src etc util init.d test"
|
|
|
|
|
|
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
|
|
|
|
|
|
AC_ARG_ENABLE(memcached,
|
|
[ --enable-memcached build memcached support], want_memcached=$enableval, want_memcached="no")
|
|
|
|
|
|
AC_ARG_ENABLE(starttls,
|
|
[ --enable-starttls build starttls support], have_starttls=$enableval, have_starttls="no")
|
|
|
|
|
|
AC_ARG_ENABLE(tcpwrappers,
|
|
[ --enable-tcpwrappers build tcpwrappers support], want_tcpwrappers=$enableval, want_tcpwrappers="no")
|
|
|
|
|
|
if test "$want_tcpwrappers" = "yes"; then
|
|
AC_CHECK_HEADERS(tcpd.h, have_tcpwrappers=yes, have_tcpwrappers=no)
|
|
AC_CHECK_LIB([wrap],[hosts_access],[AC_CHECK_LIB(wrap, hosts_access, have_tcpwrappers=yes, echo "libwrap is not found"; have_tcpwrappers=no)],[],[])ac_cv_lib_wrap=ac_cv_lib_wrap_main
|
|
|
|
if test "$have_tcpwrappers" = "no"; then
|
|
echo "can't find either tcpd.h or libwrap";
|
|
exit 1;
|
|
fi
|
|
fi
|
|
|
|
|
|
dnl AC_ARG_ENABLE(multitenancy,
|
|
dnl [ --enable-multitenancy build piler with multitenancy support (!!!EXPERIMENTAL!!!)], have_multitenancy=$enableval, have_multitenancy="no")
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(tweak-sent-time,
|
|
[ --tweak-sent-time tweak sent time], have_tweak_sent_time=$enableval, have_tweak_sent_time="no")
|
|
|
|
|
|
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
|
|
|
|
AC_CHECK_HEADERS(openssl/ssl.h, have_ssl=yes, have_ssl=no)
|
|
AC_CHECK_LIB([ssl],[SSL_write],[AC_CHECK_LIB(ssl, SSL_write, have_ssl=yes, echo "libssl is not found"; have_ssl=no)],[],[])ac_cv_lib_ssl=ac_cv_lib_ssl_main
|
|
|
|
if test "$have_crypto" = "no" || test "$have_ssl" = "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
|
|
|
|
if test "$have_tre" = "no"; then
|
|
echo "please install the tre development packages"
|
|
exit 1;
|
|
fi
|
|
|
|
|
|
|
|
dnl libzip
|
|
|
|
AC_CHECK_HEADERS(zip.h, have_zip=yes, echo "zip.h is not found")
|
|
AC_CHECK_LIB([zip],[main],[AC_CHECK_LIB(zip, zip_open, have_zip=yes, echo "libzip.so is not found"; have_zip=no)],[],[])ac_cv_lib_zip=ac_cv_lib_zip_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_ARG_WITH(database,
|
|
[ --with-database[[=mysql]] select the used database, currently mysql only (default: none)],[
|
|
if test "$withval" != "no" -a "$withval" != "yes"; then
|
|
DATABASE=$withval
|
|
fi
|
|
|
|
|
|
if test "$withval" = "mysql"; then
|
|
|
|
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
|
|
|
|
sql_includes=`mysql_config --cflags`
|
|
sql_libs=`mysql_config --libs_r`
|
|
sql_obj="mysql.o"
|
|
|
|
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
|
|
fi
|
|
|
|
|
|
if test "$withval" = "psql"; then
|
|
|
|
AC_CHECK_PROG(PSQL_CONFIG, pg_config, yes)
|
|
|
|
if test x$PSQL_CONFIG = xyes; then
|
|
have_psql="yes"
|
|
fi
|
|
|
|
if test "$have_psql" = "yes"; then
|
|
|
|
sql_includes="-I`pg_config --includedir`"
|
|
sql_libs="-L`pg_config --libdir`"
|
|
sql_obj="psql.o"
|
|
|
|
else
|
|
echo "PSQL support is not found"
|
|
exit 1;
|
|
fi
|
|
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])
|
|
|
|
|
|
if test "$have_mysql" = "no" && test "$have_psql" = "no"; then
|
|
echo
|
|
echo "please specify the used database with --with-database=..."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
|
|
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
|
|
|
|
echo "run as user: $RUNNING_USER"
|
|
echo "piler data directory: $data_dir/piler"
|
|
|
|
if test "$have_static_build" = "yes"; then
|
|
echo "link mode: static"
|
|
static="-static"
|
|
else
|
|
echo "link mode: dynamic"
|
|
fi
|
|
|
|
echo
|
|
|
|
if test "$have_mysql" = "yes"; then
|
|
echo "database: mysql"
|
|
fi
|
|
|
|
if test "$have_psql" = "yes"; then
|
|
echo "database: psql"
|
|
fi
|
|
|
|
|
|
if test "$have_tre" = "yes"; then
|
|
echo "tre library: yes"
|
|
defs="$defs -DHAVE_TRE"
|
|
antispam_libs="$antispam_libs -ltre"
|
|
fi
|
|
|
|
if test "$have_zip" = "yes"; then
|
|
echo "zip library: yes"
|
|
AC_DEFINE_UNQUOTED(HAVE_ZIP, 1, [libzip support])
|
|
antispam_libs="$antispam_libs -lzip"
|
|
fi
|
|
|
|
if test "$have_starttls" = "yes"; then
|
|
echo "starttls support: yes"
|
|
AC_DEFINE_UNQUOTED(HAVE_STARTTLS, 1, [starttls support])
|
|
fi
|
|
|
|
if test "$have_tcpwrappers" = "yes"; then
|
|
echo "tcpwrappers support: yes"
|
|
AC_DEFINE_UNQUOTED(HAVE_LIBWRAP, 1, [tcpwrappers support])
|
|
antispam_libs="$antispam_libs -lwrap -lnsl"
|
|
else
|
|
echo "tcpwrappers support: no"
|
|
fi
|
|
|
|
|
|
echo
|
|
|
|
if test "$have_clamd" = "yes"; then
|
|
echo "clamd support: yes"
|
|
objs="$objs clamd.o"
|
|
defs="$defs -DHAVE_CLAMD"
|
|
fi
|
|
|
|
if test "$want_memcached" = "yes"; then
|
|
echo "memcached support: yes"
|
|
objs="$objs memc.o"
|
|
defs="$defs -DHAVE_MEMCACHED"
|
|
fi
|
|
|
|
if test "$have_mysql" = "yes"; then
|
|
defs="$defs -DNEED_MYSQL"
|
|
fi
|
|
|
|
if test "$have_icc_guide" = "yes" && test "$have_mysql" = "yes"; then
|
|
sql_libs="$sql_libs -lguide"
|
|
fi
|
|
|
|
if test "$have_psql" = "yes"; then
|
|
defs="$defs -DNEED_PSQL"
|
|
fi
|
|
|
|
|
|
dnl if test "$have_multitenancy" = "yes"; then
|
|
dnl echo "multitenancy support: yes"
|
|
dnl defs="$defs -DHAVE_MULTITENANCY"
|
|
dnl objs="$objs multitenancy.o"
|
|
dnl else
|
|
dnl echo "multitenancy support: no"
|
|
dnl fi
|
|
|
|
if test z`which pdftotext 2>/dev/null` != "z"; then
|
|
pdftotext=`which pdftotext`
|
|
AC_DEFINE_UNQUOTED(HAVE_PDFTOTEXT, "$pdftotext", [path to pdftotext])
|
|
fi
|
|
|
|
if test z`which catdoc 2>/dev/null` != "z"; then
|
|
catdoc=`which catdoc`
|
|
AC_DEFINE_UNQUOTED(HAVE_CATDOC, "$catdoc", [path to catdoc])
|
|
fi
|
|
|
|
|
|
if test z`which catppt 2>/dev/null` != "z"; then
|
|
catppt=`which catppt`
|
|
AC_DEFINE_UNQUOTED(HAVE_CATPPT, "$catppt", [path to catppt])
|
|
fi
|
|
|
|
|
|
if test z`which ppthtml 2>/dev/null` != "z"; then
|
|
ppthtml=`which ppthtml`
|
|
AC_DEFINE_UNQUOTED(HAVE_PPTHTML, "$ppthtml", [path to ppthtml])
|
|
fi
|
|
|
|
|
|
if test z`which xls2csv 2>/dev/null` != "z"; then
|
|
xls2csv=`which xls2csv`
|
|
AC_DEFINE_UNQUOTED(HAVE_XLS2CSV, "$xls2csv", [path to xls2csv])
|
|
fi
|
|
|
|
|
|
if test z`which unrtf 2>/dev/null` != "z"; then
|
|
unrtf=`which unrtf`
|
|
AC_DEFINE_UNQUOTED(HAVE_UNRTF, "$unrtf", [path to unrtf])
|
|
fi
|
|
|
|
|
|
if test "$have_tweak_sent_time" = "yes"; then
|
|
AC_DEFINE_UNQUOTED(HAVE_TWEAK_SENT_TIME, 1, [tweak sent time])
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
echo "pdftotext: $pdftotext"
|
|
echo "catdoc: $catdoc"
|
|
echo "catppt: $catppt"
|
|
echo "ppthtml: $ppthtml"
|
|
echo "xls2csv: $xls2csv"
|
|
echo "unrtf: $unrtf"
|
|
|
|
|
|
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
|
|
|
|
iv=`util/gen-iv.pl`
|
|
|
|
echo; echo
|
|
|
|
CFLAGS="$static -O2 -Wall -g"
|
|
LIBS="$antispam_libs $sunos_libs "
|
|
OBJS="dirs.o base64.o misc.o counters.o cfg.o sig.o decoder.o list.o parser.o parser_utils.o rules.o session.o message.o attachment.o digest.o store.o archive.o tai.o import.o imap.o pop3.o extract.o mydomains.o retr.o $objs"
|
|
|
|
AC_CONFIG_FILES([Makefile src/Makefile etc/Makefile util/Makefile init.d/Makefile test/Makefile contrib/imap/Makefile])
|
|
AC_OUTPUT
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "IMPORTANT! If you upgrade, be sure to read http://www.mailpiler.org/en/upgrade.html"
|
|
echo
|
|
echo
|