dnl Process this file with autoconf to produce a configure script. AC_INIT AC_CONFIG_SRCDIR([src]) AC_PREREQ(2.53) AC_CANONICAL_TARGET([]) libprelude_major=0 libprelude_minor=9 libprelude_micro=0 dnl version and release information libprelude_version=$libprelude_major.$libprelude_minor.$libprelude_micro-rc1 dnl library soname dnl check http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 libprelude_current=2 libprelude_revision=0 libprelude_age=0 libprelude_soname=$libprelude_current:$libprelude_revision:$libprelude_age AC_SUBST(libprelude_soname) AM_INIT_AUTOMAKE(libprelude, $libprelude_version) AC_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE dnl Check for GNUlib AC_PROG_CC AC_PROG_CPP gl_EARLY dnl Checks for programs. AC_PROG_INSTALL AC_PROG_MAKE_SET AC_C_INLINE AM_PROG_LEX AC_PROG_YACC dnl setup libltdl AC_CONFIG_SUBDIRS(libltdl) AC_LIBTOOL_DLOPEN AC_LTDL_DLLIB AC_LIBLTDL_CONVENIENCE AM_DISABLE_STATIC AC_PROG_LIBTOOL AC_SUBST(CFLAGS) AC_SUBST(INCLTDL) AC_SUBST(LIBLTDL) AC_SUBST(LIBADD_DL) AC_SYS_LARGEFILE AX_CREATE_PRELUDE_INTTYPES_H(src/include/prelude-inttypes.h) dnl Expand $prefix. if test "x$prefix" = "xNONE"; then prefix="/usr/local" fi if test "x$localstatedir" = "x\${prefix}/var"; then localstatedir="$prefix/var" fi if test "x$sysconfdir" = "x\${prefix}/etc"; then sysconfdir="$prefix/etc" fi if test "x$datadir" = "x\${prefix}/share"; then datadir="$prefix/share" fi AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(pthread_cflags) AC_SUBST(libprelude_libs) AC_SUBST(libprelude_cflags) dnl ************************************************** dnl * Check for missing function replacement * dnl ************************************************** gl_SOURCE_BASE(libmissing) gl_M4_BASE(libmissing/m4) gl_INIT dnl ************************************************** dnl * Check for Pthread library * dnl ************************************************** ACX_PTHREAD(, AC_MSG_ERROR(couldn't find suitable pthread implementation)) dnl Export pthread stuff wide for libmissing and libprelude-error LIBS="$LIBS $PTHREAD_LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LDFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" dnl ************************************************** dnl * Check endianess * dnl ************************************************** AC_C_BIGENDIAN(libprelude_cflags="$libprelude_cflags -DWORDS_BIGENDIAN") dnl ************************************************** dnl * Check for networking function * dnl ************************************************** AC_CHECK_LIB(c, inet_ntoa, libc_inet_ntoa=yes) if test x$libc_inet_ntoa != xyes; then AC_CHECK_LIB(nsl, inet_ntoa, libprelude_libs="$libprelude_libs -lnsl") fi AC_CHECK_LIB(c, socket, libc_socket=yes) if test x$libc_socket != xyes; then AC_CHECK_LIB(socket, socket, libprelude_libs="$libprelude_libs -lsocket") fi AC_CHECK_LIB(c, inet_aton, libc_inet_aton=yes) if test x$libc_inet_aton != xyes; then AC_CHECK_LIB(resolv, inet_aton, libprelude_libs="$libprelude_libs -lresolv") fi dnl ************************************************** dnl * Check what type to use in place of socklen_t * dnl ************************************************** AC_PROTOTYPE_ACCEPT AC_DEFINE(socklen_t, ACCEPT_ARG3, Define socklen_t to accept third argument type) dnl ************************************************** dnl * Check for GnuTLS. * dnl ************************************************** AM_PATH_LIBGNUTLS(1.0.17, gnutls=yes, gnutls=no) if test x$gnutls != xyes; then AC_MSG_ERROR(libgnutls is required in order to build libprelude.) fi libprelude_libs="$libprelude_libs $LIBGNUTLS_LIBS" libprelude_cflags="$libprelude_cflags $LIBGNUTLS_CFLAGS" old_CPPFLAGS=$CPPFLAGS CPPFLAGS=$libprelude_cflags AC_CHECK_HEADER(gnutls/gnutls.h, libprelude_cflags="$libprelude_cflags", AC_MSG_ERROR("libgnutls development headers are required to build libprelude")) CPPFLAGS=$old_CPPFLAGS dnl ************************************************** dnl * Check for GnuTLS extra. * dnl ************************************************** AM_PATH_LIBGNUTLS_EXTRA(1.0.17, gnutls_extra=yes, gnutls_extra=no) if test x$gnutls_extra != xyes; then AC_MSG_ERROR(libgnutls-extra is required in order to build libprelude.) fi AC_SUBST(LIBGNUTLS_EXTRA_LIBS) AC_SUBST(LIBGNUTLS_EXTRA_CFLAGS) old_CPPFLAGS=$CPPFLAGS CPPFLAGS="$libprelude_cflags $LIBGNUTLS_EXTRA_CFLAGS" AC_CHECK_HEADER(gnutls/extra.h, , AC_MSG_ERROR("libgnutls-extra development headers are required to build libprelude")) CPPFLAGS=$old_CPPFLAGS dnl ************************************************** dnl * Check for poll() * dnl ************************************************** AC_CHECK_LIB(c, poll, libc_poll=yes) if test x$libc_poll != xyes; then dnl SG: Special test for macosx, poll() is provided if libpoll dnl is installed by the Fink Package Manager http://fink.sf.net/ if test $host_cpu = "powerpc" && test $host_vendor = "apple"; then dnl save vars CFLAGS_SAVE=$CFLAGS LDFLAGS_SAVE=$LDFLAGS CPPFLAGS_SAVE=$CPPFLAGS dnl set specific macosx paths (fink) LDFLAGS="-L/sw/lib" CFLAGS="-I/sw/include" CPPFLAGS="-I/sw/include" AC_CHECK_LIB(poll, poll, libprelude_libs="$libprelude_libs -L/sw/lib -lpoll", AC_MSG_ERROR("Could not find libpoll. Try installing libpoll via the Fink Package Manager http://fink.sourceforge.net/")) AC_CHECK_HEADER(sys/poll.h, libprelude_cflags="$libprelude_cflags -I/sw/include", AC_MSG_ERROR("Could not find sys/poll.h.")) dnl restore vars CFLAGS=$CFLAGS_SAVE LDFLAGS=$LDFLAGS_SAVE CPPFLAGS=$CPPFLAGS_SAVE dnl poll() not found in libc, let's check in libpoll else AC_CHECK_LIB(poll, poll, libprelude_libs="$libprelude_libs -lpoll") fi fi dnl ************************************************** dnl * Check for Ipv6. * dnl ************************************************** AC_CHECK_TYPES([struct sockaddr_in6], have_ipv6_type=yes,, [ #include #include #include ]) AC_CHECK_DECL(AF_INET6, have_ipv6_def=yes,, [ #include #include #include ]) if test x$have_ipv6_type = xyes && test x$have_ipv6_def = xyes; then AC_DEFINE_UNQUOTED(HAVE_IPV6, , Define wether Ipv6 is available on this system) fi dnl ************************************************** dnl * Check for getaddrinfo. * dnl ************************************************** AC_CHECK_FUNC(getaddrinfo, , libprelude_cflags="$libprelude_cflags -DMISSING_GETADDRINFO") dnl ************************************************** dnl * Check for inet_ntop. * dnl ************************************************** AC_CHECK_FUNC(inet_ntop, AC_DEFINE_UNQUOTED(HAVE_INET_NTOP, , Define wether inet_ntop is available on this system)) dnl ************************************************** dnl * Do we need aligned access ? (from tcpdump) * dnl ************************************************** AC_MSG_CHECKING(if unaligned accesses fail) AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, [case "$host_cpu" in # XXX: should also check that they don't do weird things (like on arm) alpha*|arm*|hp*|mips*|sparc*|ia64) ac_cv_lbl_unaligned_fail=yes ;; *) cat >conftest.c < # include # include unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; main() { unsigned int i; pid_t pid; int status; /* avoid "core dumped" message */ pid = fork(); if (pid < 0) exit(2); if (pid > 0) { /* parent */ pid = waitpid(pid, &status, 0); if (pid < 0) exit(3); exit(!WIFEXITED(status)); } /* child */ i = *(unsigned int *)&a[[1]]; printf("%d\n", i); exit(0); } EOF ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ conftest.c $LIBS >/dev/null 2>&1 if test ! -x conftest ; then dnl failed to compile for some reason ac_cv_lbl_unaligned_fail=yes else ./conftest >conftest.out if test ! -s conftest.out ; then ac_cv_lbl_unaligned_fail=yes else ac_cv_lbl_unaligned_fail=no fi fi rm -f conftest* core core.conftest ;; esac]) AC_MSG_RESULT($ac_cv_lbl_unaligned_fail) if test $ac_cv_lbl_unaligned_fail = yes ; then libprelude_cflags="$libprelude_cflags -DNEED_ALIGNED_ACCESS" fi dnl ************************************************** dnl * Criteria regex * dnl ************************************************** AC_PATH_PROG(PCRE_CONFIG, pcre-config, no) criteria_regex_backend="none" if test x$PCRE_CONFIG != xno; then REGEX_LIBS=`$PCRE_CONFIG --libs-posix` REGEX_CFLAGS=`$PCRE_CONFIG --cflags-posix` libprelude_libs="$libprelude_libs $REGEX_LIBS" criteria_regex_backend="pcreposix" AC_DEFINE_UNQUOTED(HAVE_PCREPOSIX, , Define wether pcreposix is available on this system) fi AC_SUBST(REGEX_CFLAGS) dnl ************************************************** dnl * Swig support * dnl ************************************************** AC_PATH_PROG(SWIG, swig, no) AM_CONDITIONAL(HAVE_SWIG, test x$SWIG != xno) dnl ************************************************** dnl * Perl support * dnl ************************************************** AC_ARG_ENABLE(perl, [ --enable-perl Enable Perl binding [default=auto]], enable_perl="$enableval", enable_perl="yes") if test x$enable_perl = xyes; then AC_PATH_PROG(PERL, perl, no) if test x$PERL = xno; then enable_perl=no else perl_includedir="`$PERL -e 'use Config; print $Config{archlib}'`/CORE" AC_CHECK_FILE($perl_includedir/perl.h, enable_perl=yes, enable_perl=no) fi fi AM_CONDITIONAL(HAVE_PERL, test x$enable_perl = xyes) dnl ************************************************** dnl * Python support * dnl ************************************************** AC_ARG_ENABLE(python, [ --enable-python Enable Python binding [default=auto]], enable_python="$enableval", enable_python="yes") if test x$enable_python = xyes; then AC_PATH_PROG(PYTHON, python, no) if test x$PYTHON = xno; then enable_python=no else python_includedir=`$PYTHON -c 'from distutils.sysconfig import get_python_inc print get_python_inc()'` AC_CHECK_FILE($python_includedir/Python.h, enable_python=yes, enable_python=no) fi fi AM_CONDITIONAL(HAVE_PYTHON, test x$enable_python = xyes) dnl ************************************************** dnl * Check for GTK-DOC * dnl ************************************************** GTK_DOC_CHECK(1.0) dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_VPRINTF dnl Needed for FIONREAD under solaris AC_CHECK_HEADERS(sys/filio.h) AC_CHECK_FUNCS(gettimeofday select socket strdup strerror strstr) prelude_config_dir=$sysconfdir/prelude prelude_spool_dir=$localstatedir/spool/prelude prelude_ident_file=$sysconfdir/prelude/sensors.ident AC_SUBST(prelude_spool_dir) AC_SUBST(prelude_config_dir) AC_SUBST(prelude_ident_file) AX_CFLAGS_GCC_OPTION(-Wall) AX_CFLAGS_GCC_OPTION(-Wstrict-prototypes) AX_CFLAGS_GCC_OPTION(-Wmissing-prototypes) AX_CFLAGS_GCC_OPTION(-Wmissing-declarations) AX_CFLAGS_GCC_OPTION(-Wbad-function-cast) AX_CFLAGS_GCC_OPTION(-Wcast-qual) AX_CFLAGS_GCC_OPTION(-Wcast-align) AX_CFLAGS_GCC_OPTION(-Wnested-externs) AX_CFLAGS_GCC_OPTION(-Wunused) AC_CONFIG_FILES([ Makefile client.conf global.conf idmef-client.conf libprelude-config libmissing/Makefile m4/Makefile src/Makefile src/libprelude-error/Makefile src/include/Makefile src/include/prelude.h src/include/prelude-inttypes.h prelude-adduser/Makefile docs/Makefile docs/api/Makefile bindings/Makefile bindings/perl/Makefile.PL bindings/python/setup.py ]) AC_CONFIG_COMMANDS([default],[[ chmod +x libprelude-config ]],[[]]) AC_OUTPUT echo echo "*** Dumping configuration ***" echo " - Generate documentation : $enable_gtk_doc" echo " - Perl binding : $enable_perl" echo " - Python binding : $enable_python" echo " - Criteria regex : $criteria_regex_backend"