ModSecurity/apache2/configure.in
2008-01-08 17:25:43 +00:00

186 lines
4.0 KiB
Plaintext

dnl
dnl Autoconf configuration for ModSecurity
dnl
dnl Use ./buildconf to produce a configure script
dnl
AC_PREREQ(2.50)
AC_INIT(ModSecurity, 2.5, mod-security-users@lists.sourceforge.net, modsecurity-apache)
AC_CONFIG_SRCDIR([mod_security2.c])
AC_CONFIG_HEADER([mod_security2_config.h])
AC_CONFIG_AUX_DIR([build])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_C_RESTRICT
AC_TYPE_SIZE_T
AC_STRUCT_TM
AC_TYPE_UINT8_T
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_CHECK_FUNCS([atexit getcwd memset strcasecmp strchr strdup strerror strncasecmp strrchr strstr strtol])
# Include M4 macros
sinclude(build/find_pcre.m4)
sinclude(build/find_lua.m4)
sinclude(build/find_xml.m4)
sinclude(build/find_apr.m4)
sinclude(build/find_apu.m4)
AC_MSG_NOTICE(looking for Apache module support via DSO through APXS)
AC_ARG_WITH(apxs,
[AS_HELP_STRING([[--with-apxs=FILE]],
[FILE is the path to apxs; defaults to "apxs".])],
[
if test "$withval" = "yes"; then
APXS=apxs
else
APXS="$withval"
fi
])
if test -z "$APXS"; then
for i in /usr/sbin \
/usr/local/apache22/bin \
/usr/local/apache2/bin \
/usr/local/apache/bin \
/usr/local/sbin ; do
if test -f "$i/apxs2"; then
APXS="$i/apxs2"
break
elif test -f "$i/apxs"; then
APXS="$i/apxs"
break
fi
done
fi
# arbitrarily picking the same version subversion looks for, don't know how
# accurate this really is, but at least it'll force us to have apache2...
HTTPD_WANTED_MMN=20020903
if test -n "$APXS" -a "$APXS" != "no" -a -x "$APXS" ; then
APXS_INCLUDE="`$APXS -q INCLUDEDIR`"
if test -r $APXS_INCLUDE/httpd.h; then
AC_MSG_NOTICE(found apxs at $APXS)
AC_MSG_NOTICE(checking httpd version)
AC_EGREP_CPP(VERSION_OK,
[
#include "$APXS_INCLUDE/ap_mmn.h"
#if AP_MODULE_MAGIC_AT_LEAST($HTTPD_WANTED_MMN,0)
VERSION_OK
#endif],
[AC_MSG_NOTICE(httpd is recent enough)],
[AC_MSG_ERROR(apache is too old, mmn must be at least $HTTPD_WANTED_MMN)])
fi
APXS_INCLUDES="`$APXS -q EXTRA_INCLUDES`"
APXS_CFLAGS="`$APXS -q CFLAGS`"
APXS_LDFLAGS="`$APXS -q LDFLAGS`"
APXS_LIBS="`$APXS -q LIBS`"
else
AC_MSG_ERROR(couldn't find APXS)
fi
### Defaults
EXTRA_CFLAGS="-Wc,-O2 -Wc,-g -Wc,-Wall -Wc,-Werror"
### Configure Options
# DEBUG_CONF
AC_ARG_ENABLE(debug-conf,AS_HELP_STRING(--enable-debug-conf,Enable debug during configuration (testing only)),
[
if test "$enableval" != "no"; then
debug_conf="-Wc,-DDEBUG_CONF"
else
debug_conf=
fi
],
[
debug_conf=
])
# CACHE_DEBUG
AC_ARG_ENABLE(debug-cache,AS_HELP_STRING(--enable-debug-cache,Enable debug for transformation caching (testing only)),
[
if test "$enableval" != "no"; then
debug_cache="-Wc,-DCACHE_DEBUG"
else
debug_cache=
fi
],
[
debug_cache=
])
# PERFORMANCE_MEASUREMENT
AC_ARG_ENABLE(performance-measurement,AS_HELP_STRING(--enable-performance-measurement,Enable performance-measurement stats (testing only)),
[
if test "$enableval" != "no"; then
perf_meas="-Wc,-DPERFORMANCE_MEASUREMENT"
else
perf_meas=
fi
],
[
perf_meas=
])
# NO_MODSEC_API
AC_ARG_ENABLE(modsec-api,AS_HELP_STRING(--disable-modsec-api,Disable the API (compiling against some older Apache versions require this)),
[
if test "$enableval" != "yes"; then
modsec_api="-Wc,-DNO_MODSEC_API"
else
modsec_api=
fi
],
[
modsec_api=
])
EXTRA_CFLAGS="$EXTRA_CFLAGS $debug_conf $debug_cache $perf_meas $modsec_api"
### Substitute the vars
save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$APXS_INCLUDES $CPPFLAGS"
CPPFLAGS=$save_CPPFLAGS
AC_SUBST(APXS)
AC_SUBST(APXS_INCLUDES)
AC_SUBST(APXS_CFLAGS)
AC_SUBST(APXS_LDFLAGS)
AC_SUBST(APXS_LIBS)
AC_SUBST(EXTRA_CFLAGS)
CHECK_PCRE()
CHECK_APR()
CHECK_APU()
CHECK_LIBXML()
CHECK_LUA()
AC_CONFIG_FILES([Makefile])
AC_OUTPUT