132 lines
4.6 KiB
Plaintext
132 lines
4.6 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
AC_PREREQ([2.68])
|
|
AC_INIT([mahimahi], [0.98], [mahimahi@mit.edu])
|
|
AM_INIT_AUTOMAKE([foreign])
|
|
AC_CONFIG_SRCDIR([src/frontend/delayshell.cc])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
LT_INIT
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
# Add picky CXXFLAGS
|
|
CXX11_FLAGS="-std=c++11 -pthread"
|
|
PICKY_CXXFLAGS="-pedantic -Wall -Wextra -Weffc++ -Werror"
|
|
AC_SUBST([CXX11_FLAGS])
|
|
AC_SUBST([PICKY_CXXFLAGS])
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CXX
|
|
|
|
AC_ARG_VAR([IPTABLES], [path to iptables])
|
|
AC_PATH_PROG([IPTABLES], [iptables], [no], [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin])
|
|
if test "$IPTABLES" = "no"; then
|
|
AC_MSG_ERROR([iptables is required])
|
|
fi
|
|
AC_DEFINE_UNQUOTED([IPTABLES], ["$IPTABLES"], [path to iptables])
|
|
|
|
AC_ARG_VAR([IP], [path to ip])
|
|
AC_PATH_PROG([IP], [ip], [no], [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin])
|
|
if test "$IP" = "no"; then
|
|
AC_MSG_ERROR([ip is required])
|
|
fi
|
|
AC_DEFINE_UNQUOTED([IP], ["$IP"], [path to ip])
|
|
|
|
AC_ARG_VAR([APACHE2], [path to apache2])
|
|
AC_PATH_PROGS([APACHE2], [apache2 httpd], [no], [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin])
|
|
if test "$APACHE2" = "no"; then
|
|
AC_MSG_ERROR([apache2 is required])
|
|
fi
|
|
AC_DEFINE_UNQUOTED([APACHE2], ["$APACHE2"], [path to apache2])
|
|
|
|
AC_ARG_VAR([DNSMASQ], [path to dnsmasq])
|
|
AC_PATH_PROG([DNSMASQ], [dnsmasq], [no], [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin])
|
|
if test "$DNSMASQ" = "no"; then
|
|
AC_MSG_ERROR([dnsmasq is required])
|
|
fi
|
|
AC_DEFINE_UNQUOTED([DNSMASQ], ["$DNSMASQ"], [path to dnsmasq])
|
|
|
|
AC_PATH_PROG([PROTOC], [protoc], [])
|
|
AS_IF([test x"$PROTOC" = x],
|
|
[AC_MSG_ERROR([cannot find protoc, the Protocol Buffers compiler])])
|
|
|
|
AC_PATH_PROG([APXS], [apxs], [])
|
|
AS_IF([test x"$APXS" = x],
|
|
[AC_MSG_ERROR([cannot find apxs, the Apache extension tool])])
|
|
|
|
AC_SUBST([APACHE2_MODULE_DIR], [$(apxs -q exp_libexecdir)])
|
|
AC_SUBST([APACHE2_INCLUDE], [$(apxs -q exp_includedir)])
|
|
|
|
# Checks for apache configuration modules
|
|
|
|
AC_CHECK_FILE([$APACHE2_MODULE_DIR/mod_mpm_prefork.so],
|
|
[AC_DEFINE_UNQUOTED([MOD_MPM_PREFORK], ["$APACHE2_MODULE_DIR/mod_mpm_prefork.so"], [mod_prefork.so])],
|
|
[AC_MSG_ERROR([apache2 mod_mpm_prefork.so is required])])
|
|
|
|
AC_CHECK_FILE([$APACHE2_MODULE_DIR/mod_authz_core.so],
|
|
[AC_DEFINE_UNQUOTED([MOD_AUTHZ_CORE], ["$APACHE2_MODULE_DIR/mod_authz_core.so"], [mod_authz_core.so])],
|
|
[AC_MSG_ERROR([apache2 mod_authz_core.so is required])])
|
|
|
|
AC_CHECK_FILE([$APACHE2_MODULE_DIR/mod_ssl.so],
|
|
[AC_DEFINE_UNQUOTED([MOD_SSL], ["$APACHE2_MODULE_DIR/mod_ssl.so"], [mod_ssl.so])],
|
|
[AC_MSG_ERROR([apache2 mod_ssl.so is required])])
|
|
|
|
# Checks for SSL certificate file
|
|
AC_CHECK_FILE([/etc/ssl/certs/ssl-cert-snakeoil.pem], [],
|
|
[AC_MSG_ERROR([ssl certificate file is required])])
|
|
|
|
AC_DEFINE_UNQUOTED([MOD_SSL_CERTIFICATE_FILE], ["/etc/ssl/certs/ssl-cert-snakeoil.pem"], [path to ssl certificate file])
|
|
|
|
AC_DEFINE_UNQUOTED([MOD_SSL_KEY], ["/etc/ssl/private/ssl-cert-snakeoil.key"], [path to ssl key])
|
|
|
|
# Set path to mm-replayserver script
|
|
if test "${prefix}" = "NONE"; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
AC_DEFINE_UNQUOTED([REPLAYSERVER], ["${prefix}/bin/mm-replayserver"], [path to mm-replayserver])
|
|
|
|
AC_DEFINE_UNQUOTED([MOD_DEEPCGI], ["${prefix}/lib/${DEB_HOST_MULTIARCH}/libmod_deepcgi.so"], [path to apache2 mod_deepcgi])
|
|
|
|
# Checks for libraries.
|
|
PKG_CHECK_MODULES([protobuf], [protobuf])
|
|
PKG_CHECK_MODULES([libssl], [libcrypto libssl])
|
|
PKG_CHECK_MODULES([libapr1], [apr-1])
|
|
PKG_CHECK_MODULES([XCB], [xcb])
|
|
PKG_CHECK_MODULES([XCBPRESENT], [xcb-present])
|
|
PKG_CHECK_MODULES([PANGOCAIRO], [pangocairo])
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_RESOLV
|
|
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h paths.h sys/ioctl.h sys/socket.h unistd.h], [], [AC_MSG_ERROR([Missing required header file.])])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_CHECK_HEADER_STDBOOL
|
|
AC_TYPE_UID_T
|
|
AC_C_INLINE
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_SSIZE_T
|
|
AC_TYPE_UINT16_T
|
|
AC_TYPE_UINT32_T
|
|
AC_TYPE_UINT64_T
|
|
AC_TYPE_UINT8_T
|
|
|
|
# Checks for library functions.
|
|
AC_CHECK_FUNCS([clock_gettime inet_ntoa memset mkdir setenv socket strerror strtol])
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
src/Makefile
|
|
src/util/Makefile
|
|
src/packet/Makefile
|
|
src/graphing/Makefile
|
|
src/http/Makefile
|
|
src/httpserver/Makefile
|
|
src/frontend/Makefile
|
|
src/protobufs/Makefile
|
|
src/tests/Makefile
|
|
man/Makefile
|
|
traces/Makefile
|
|
scripts/Makefile])
|
|
AC_OUTPUT
|