172 lines
5.1 KiB
Plaintext
172 lines
5.1 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
AC_PREREQ([2.69])
|
|
AC_INIT([mtcp], [3], [mtcp-user@list.ndsl.kaist.edu])
|
|
AC_CONFIG_SRCDIR([mtcp/src/eventpoll.c])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_RANLIB
|
|
AC_LANG(C)
|
|
AC_DISABLE_OPTION_CHECKING
|
|
AC_CHECK_PROG(BC_CHECK,bc,yes)
|
|
if test x"$BC_CHECK" != x"yes" ; then
|
|
AC_MSG_ERROR([Please install bc before compiling mTCP.])
|
|
fi
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADER([linux/sched.h],,AC_MSG_ERROR([Could not find linux/sched.h]))
|
|
AC_CHECK_HEADER([pthread.h],,AC_MSG_ERROR([Could not find pthread.h]))
|
|
AC_CHECK_HEADER([numa.h],,AC_MSG_ERROR([Could not find numa.h]))
|
|
AC_CHECK_HEADER([arpa/inet.h],,AC_MSG_ERROR([Could not find arpa/inet.h]))
|
|
AC_CHECK_HEADER([fcntl.h],,AC_MSG_ERROR([Could not find fcntl.h]))
|
|
AC_CHECK_HEADER([limits.h],,AC_MSG_ERROR([Could not find limits.h]))
|
|
AC_CHECK_HEADER([netdb.h],,AC_MSG_ERROR([netdb.h]))
|
|
AC_CHECK_HEADER([netinet/in.h],,AC_MSG_ERROR([Could not find netinet/in.h]))
|
|
AC_CHECK_HEADER([stdint.h],,AC_MSG_ERROR([Could not find stdint.h]))
|
|
AC_CHECK_HEADER([stdlib.h],,AC_MSG_ERROR([Could not find stdlib.h]))
|
|
AC_CHECK_HEADER([string.h],,AC_MSG_ERROR([Could not find string.h]))
|
|
AC_CHECK_HEADER([sys/ioctl.h],,AC_MSG_ERROR([Could not find sys/ioctl.h]))
|
|
AC_CHECK_HEADER([sys/socket.h],,AC_MSG_ERROR([Could not find sys/socket.h]))
|
|
AC_CHECK_HEADER([sys/time.h],,AC_MSG_ERROR([Could not find sys/time.h]))
|
|
AC_CHECK_HEADER([unistd.h],,AC_MSG_ERROR([Could not find unistd.h]))
|
|
AC_CHECK_HEADER([gmp.h],,AC_MSG_ERROR([Could not find gmp.h]))
|
|
|
|
# Check for AC_PTHREAD [FC is preventing this to be enabled..]
|
|
#AX_PTHREAD( [
|
|
# AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.])
|
|
# CLIBS="$PTHREAD_LIBS $LIBS"
|
|
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
# LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS"
|
|
# CC="$PTHREAD_CC"],[])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_INLINE
|
|
AC_TYPE_INT16_T
|
|
AC_TYPE_INT32_T
|
|
AC_TYPE_INT64_T
|
|
AC_TYPE_INT8_T
|
|
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_FUNC_MALLOC
|
|
AC_FUNC_MMAP
|
|
AC_CHECK_FUNC([clock_gettime],,AC_MSG_ERROR([librt library is missing]))
|
|
AC_CHECK_FUNCS([bzero getpagesize gettimeofday memmove memset munmap select socket strchr strerror strstr strtol],,AC_MSG_ERROR([glibc library is missing]))
|
|
|
|
# Reset DPDK to 0
|
|
AC_SUBST(DPDK, 0)
|
|
# Reset enforcement value
|
|
AC_SUBST(ENFORCE_RX_IDLE, 0)
|
|
AC_SUBST(RX_IDLE_THRESH, 0)
|
|
# Reset DPDK's LRO to 0
|
|
AC_SUBST(LRO, 0)
|
|
# Reset PSIO to 0
|
|
AC_SUBST(PSIO, 0)
|
|
# Reset ONVM to 0
|
|
AC_SUBST(ONVM, 0)
|
|
# Reset NETMAP to 0
|
|
AC_SUBST(NETMAP, 0)
|
|
# Reset HWCSUM to 1
|
|
AC_SUBST(HWCSUM, 1)
|
|
|
|
# Check dpdk-17.08 path (lib & inc)
|
|
AC_ARG_WITH(stuff, [ --with-dpdk-lib path to the dpdk-17.08 install root])
|
|
if test "$with_dpdk_lib" != ""
|
|
then
|
|
AC_SUBST(DPDKLIBPATH, $with_dpdk_lib)
|
|
AC_SUBST(DPDK, 1)
|
|
AC_ARG_WITH(stuff, [ --with-rx-idle[=ARG] how much idle cycles needed before enforcing timeout (dpdk-only)])
|
|
if test "$with_rx_idle" != ""
|
|
then
|
|
AC_SUBST(ENFORCE_RX_IDLE, 1)
|
|
AC_SUBST(RX_IDLE_THRESH, $with_rx_idle)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL([DPDK], [test x$DPDK = x1])
|
|
|
|
dnl Example of default-disabled feature
|
|
AC_ARG_ENABLE([lro],
|
|
AS_HELP_STRING([--enable-lro], [Enable dpdk lro (for relevant NICs)]))
|
|
|
|
if test "$with_dpdk_lib" != ""
|
|
then
|
|
if test "x$enable_lro" = "xyes"
|
|
then
|
|
AC_SUBST(LRO, 1)
|
|
fi
|
|
fi
|
|
|
|
dnl Example of default-disabled feature
|
|
AC_ARG_ENABLE([ccp],
|
|
AS_HELP_STRING([--enable-ccp], [Enable Congestion Control Plane (CCP)]))
|
|
|
|
if test "x$enable_ccp" = "xyes"
|
|
then
|
|
AC_SUBST(CCP, 1)
|
|
fi
|
|
|
|
dnl Example of default-enabled feature
|
|
AC_ARG_ENABLE([hwcsum],
|
|
AS_HELP_STRING([--disable-hwcsum], [Disable h/w-based checksum offloading (for relevant NICs)]))
|
|
|
|
if test "x$enable_hwcsum" = "xno"
|
|
then
|
|
AC_SUBST(HWCSUM, 0)
|
|
fi
|
|
|
|
# Check psio path (lib & inc)
|
|
AC_ARG_WITH(stuff, [ --with-psio-lib path to the ioengine install root])
|
|
if test "$with_psio_lib" != ""
|
|
then
|
|
AC_SUBST(PSLIBPATH, $with_psio_lib)
|
|
AC_SUBST(PSIO, 1)
|
|
fi
|
|
|
|
dnl Example of default-disabled feature
|
|
AC_ARG_ENABLE([netmap],
|
|
AS_HELP_STRING([--enable-netmap], [Enable netmap module]))
|
|
|
|
AS_IF([test "x$enable_netmap" = "xyes"], [
|
|
AC_SUBST(NETMAP, 1)
|
|
])
|
|
|
|
# Check onvm lib path
|
|
AC_ARG_WITH(stuff, [ --with-onvm-lib path to the onvm install root])
|
|
if test "$with_onvm_lib" != ""
|
|
then
|
|
AC_SUBST(ONVMLIBPATH, $with_onvm_lib)
|
|
AC_SUBST(ONVM, 1)
|
|
fi
|
|
|
|
if test "$with_psio_lib" == "" && test "$with_dpdk_lib" == "" && test "$enable_netmap" = ""
|
|
then
|
|
AC_MSG_ERROR([Packet I/O library is missing. Please set either dpdk or psio or netmap as your I/O lib.])
|
|
fi
|
|
|
|
if test "x$enable_ccp" = "xyes"
|
|
then
|
|
AC_CHECK_LIB(startccp, libstartccp_run_forever, [echo "Found CCP library"], [
|
|
AC_MSG_ERROR(CCP library is missing. Please see README.md for instructions.)
|
|
])
|
|
fi
|
|
|
|
AM_INIT_AUTOMAKE(mtcp, 3)
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT(mtcp/src/Makefile)
|
|
AC_OUTPUT(apps/example/Makefile)
|
|
AC_OUTPUT(apps/perf/Makefile)
|
|
AC_OUTPUT(util/Makefile)
|
|
AC_OUTPUT(io_engine/lib/Makefile)
|
|
|
|
bash ./.check_hyperthreading.sh
|