blob: 5e82b9d8f7553e26960204a4522ac5f2e760cb98 [file] [log] [blame]
AC_PREREQ(2.61)
AC_INIT(stressapptest, 1.0.4_autoconf, opensource@google.com)
AC_ARG_WITH(static, [ --with-static enable static linking])
if test "$with_static" == "yes"
then
AC_MSG_NOTICE([Compiling with staticaly linked libraries.])
LIBS="$LIBS -static"
else
AC_MSG_NOTICE([Compiling with dynamically linked libraries.])
fi
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
# Checking for target cpu and setting custom configuration
# for the different platforms
AC_CANONICAL_TARGET
case x"$target_cpu" in
"xx86_64")
AC_DEFINE([STRESSAPPTEST_CPU_X86_64],[],
[Defined if the target CPU is x86_64])
;;
"xi686")
AC_DEFINE([STRESSAPPTEST_CPU_I686],[],
[Defined if the target CPU is i686])
;;
"xpowerpc")
AC_DEFINE([STRESSAPPTEST_CPU_PPC],[],
[Defined if the target CPU is PowerPC])
;;
"xarmv7a")
AC_DEFINE([STRESSAPPTEST_CPU_ARMV7A],[],
[Defined if the target CPU is armv7a])
;;
*)
AC_MSG_ERROR([$target_cpu is not supported! Try x86_64, i686, powerpc, or armv7a])
;;
esac
_os=`uname`
## The following allows like systems to share settings. This is not meant to
## imply that these OS are the same thing. From OpenOffice dmake configure.in
case "$_os" in
"Linux")
OS_VERSION=linux
AC_DEFINE([STRESSAPPTEST_OS_LINUX],[],
[Defined if the target OS is Linux])
;;
"Darwin")
OS_VERSION=macosx
AC_DEFINE([STRESSAPPTEST_OS_DARWIN],[],
[Defined if the target OS is OSX])
;;
"FreeBSD")
OS_VERSION=bsd
AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
[Defined if the target OS is BSD based])
;;
"NetBSD")
OS_VERSION=bsd
AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
[Defined if the target OS is BSD based])
;;
*)
AC_MSG_ERROR([$_os operating system is not suitable to build dmake!])
;;
esac
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_SRCDIR([src/])
AC_CONFIG_HEADER([src/stressapptest_config.h])
# Checks for programs.
# Don't generate CXXFLAGS defaults: if CXXFLAGS are unset
# AC_PROG_CXX will override them with unwanted defaults.
CXXFLAGS="$CXXFLAGS"
AC_PROG_CXX
AC_PROG_CC
#Getting user and host info
username=$(whoami)
AC_MSG_CHECKING([user ID])
AC_MSG_RESULT([$username])
hostname=$(uname -n)
AC_MSG_CHECKING([host name])
AC_MSG_RESULT([$hostname])
timestamp=$(date)
AC_MSG_CHECKING([current timestamp])
AC_MSG_RESULT([$timestamp])
AC_DEFINE_UNQUOTED([STRESSAPPTEST_TIMESTAMP],
"$username @ $hostname on $timestamp",
[Timestamp when ./configure was executed])
#Default cxxflags
CXXFLAGS="$CXXFLAGS -DCHECKOPTS"
CXXFLAGS="$CXXFLAGS -Wreturn-type -Wunused -Wuninitialized -Wall -Wno-psabi"
CXXFLAGS="$CXXFLAGS -O3 -funroll-all-loops -funroll-loops -DNDEBUG"
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h malloc.h netdb.h stdint.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h], [], [AC_MSG_FAILURE([Missing some header files.])])
AC_CHECK_HEADERS([pthread.h], [], [AC_MSG_FAILURE([Missing pthread.h.])])
AC_CHECK_HEADERS([libaio.h], [], [AC_MSG_FAILURE([Missing libaio.h.])])
AC_CHECK_HEADERS([sys/shm.h], [], [AC_MSG_FAILURE([Missing sys/shm.h from librt.])])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_PID_T
AC_C_RESTRICT
AC_TYPE_SSIZE_T
AC_HEADER_TIME
AC_TYPE_UINT16_T
AC_C_VOLATILE
# These are the libraries stressapptest requires to build.
# We'll check that they work, and fail otherwise.
# In the future we may provide for testing alternate
# arguments, but that's not necessary now.
LIBS="$LIBS -lrt -pthread -laio"
# Checking for pthreads
pthread_arg="not_available"
AC_MSG_CHECKING([if pthreads is supported])
pthread_header="#include<pthread.h>"
pthread_body="pthread_create(0,0,0,0)"
# Check if compile with no extra argument
AC_LINK_IFELSE([AC_LANG_PROGRAM($pthread_header, $pthread_body)],
pthread_arg="")
if test x"$pthread_arg" = x"not_available"; then
AC_MSG_FAILURE([Cannot find a proper pthread library])
else
AC_MSG_RESULT([yes])
fi
# Checking for libaio
libaio_arg="not_available"
AC_MSG_CHECKING([if libaio is supported])
libaio_header="#include<libaio.h>"
libaio_body="io_submit(0,0,0)"
# Check if compile with no extra argument
AC_LINK_IFELSE([AC_LANG_PROGRAM($libaio_header, $libaio_body)],
libaio_arg="")
if test x"$libaio_arg" = x"not_available"; then
AC_MSG_FAILURE([Cannot find libaio library, please install libaio-dev])
else
AC_MSG_RESULT([yes])
fi
# Checking for librt
librt_arg="not_available"
AC_MSG_CHECKING([if librt is supported])
librt_header="#include<sys/shm.h>"
librt_body="shm_open(0, 0, 0)"
# Check if compile with no extra argument
AC_LINK_IFELSE([AC_LANG_PROGRAM($librt_header, $librt_body)],
librt_arg="")
if test x"$librt_arg" = x"not_available"; then
AC_MSG_FAILURE([Cannot find librt library])
else
AC_MSG_RESULT([yes])
fi
# Checks for library functions.
AC_FUNC_CLOSEDIR_VOID
AC_PROG_GCC_TRADITIONAL
AC_FUNC_SELECT_ARGTYPES
AC_TYPE_SIGNAL
AC_FUNC_STRERROR_R
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([gettimeofday memset select socket strtol strtoull])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT