blob: ede7d269ab4dd4198ff695de961465a7b5bf50fd [file] [log] [blame]
menderico4861bb82009-09-29 00:31:36 +00001AC_PREREQ(2.61)
Nick Sandersfb72e5e2018-08-09 17:01:01 -07002AC_INIT([stressapptest], [1.0.9_autoconf], [opensource@google.com])
nick.j.sanders3f2289d2011-11-11 00:34:37 +00003
4AC_ARG_WITH(static, [ --with-static enable static linking])
5
nick.j.sanders00fa12e2014-08-04 21:04:06 +00006if test "$with_static" = "yes"
nick.j.sanders3f2289d2011-11-11 00:34:37 +00007then
ewout2ea87b72013-09-10 21:27:49 +00008 AC_MSG_NOTICE([Compiling with staticaly linked libraries.])
9 LIBS="$LIBS -static"
nick.j.sanders3f2289d2011-11-11 00:34:37 +000010else
ewout2ea87b72013-09-10 21:27:49 +000011 AC_MSG_NOTICE([Compiling with dynamically linked libraries.])
nick.j.sanders3f2289d2011-11-11 00:34:37 +000012fi
menderico4861bb82009-09-29 00:31:36 +000013
nick.j.sandersb4c2ce32009-10-27 05:56:42 +000014AC_CANONICAL_HOST
menderico4861bb82009-09-29 00:31:36 +000015# Checking for target cpu and setting custom configuration
16# for the different platforms
nick.j.sanders7a6b2522014-02-11 08:53:31 +000017AS_CASE(["$host_cpu"],
18 [*x86_64*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000019 AC_DEFINE([STRESSAPPTEST_CPU_X86_64],[],
20 [Defined if the target CPU is x86_64])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000021 ],
22 [*i686*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000023 AC_DEFINE([STRESSAPPTEST_CPU_I686],[],
24 [Defined if the target CPU is i686])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000025 ],
26 [*powerpc*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000027 AC_DEFINE([STRESSAPPTEST_CPU_PPC],[],
28 [Defined if the target CPU is PowerPC])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000029 ],
30 [*armv7a*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000031 AC_DEFINE([STRESSAPPTEST_CPU_ARMV7A],[],
32 [Defined if the target CPU is armv7a])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000033 ],
Wei Huang83451452017-11-20 23:40:54 -050034 [*aarch64*], [
35 AC_DEFINE([STRESSAPPTEST_CPU_AARCH64],[],
36 [Defined if the target CPU is aarch64])
37 ],
38[AC_MSG_WARN([Unsupported CPU: $host_cpu! Try x86_64, i686, powerpc, armv7a, or aarch64])]
nick.j.sanders7a6b2522014-02-11 08:53:31 +000039)
menderico4861bb82009-09-29 00:31:36 +000040
nick.j.sandersb4c2ce32009-10-27 05:56:42 +000041## The following allows like systems to share settings. This is not meant to
42## imply that these OS are the same thing. From OpenOffice dmake configure.in
nick.j.sanders7a6b2522014-02-11 08:53:31 +000043AS_CASE(["$host_os"],
44 [*linux*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000045 OS_VERSION=linux
46 AC_DEFINE([STRESSAPPTEST_OS_LINUX],[],
47 [Defined if the target OS is Linux])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000048 ],
49 [*darwin*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000050 OS_VERSION=macosx
51 AC_DEFINE([STRESSAPPTEST_OS_DARWIN],[],
52 [Defined if the target OS is OSX])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000053 ],
54 [*freebsd*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000055 OS_VERSION=bsd
56 AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
57 [Defined if the target OS is BSD based])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000058 ],
59 [*netbsd*], [
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000060 OS_VERSION=bsd
61 AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
62 [Defined if the target OS is BSD based])
nick.j.sanders7a6b2522014-02-11 08:53:31 +000063 ],
64 [AC_MSG_WARN([unsupported system: $host_os])]
65)
nick.j.sandersb4c2ce32009-10-27 05:56:42 +000066
menderico4861bb82009-09-29 00:31:36 +000067AM_INIT_AUTOMAKE([-Wall -Werror foreign])
68AC_CONFIG_SRCDIR([src/])
69AC_CONFIG_HEADER([src/stressapptest_config.h])
70
71# Checks for programs.
nick.j.sandersb4c2ce32009-10-27 05:56:42 +000072# Don't generate CXXFLAGS defaults: if CXXFLAGS are unset
73# AC_PROG_CXX will override them with unwanted defaults.
74CXXFLAGS="$CXXFLAGS"
menderico4861bb82009-09-29 00:31:36 +000075AC_PROG_CXX
76AC_PROG_CC
77
78#Getting user and host info
79username=$(whoami)
80AC_MSG_CHECKING([user ID])
81AC_MSG_RESULT([$username])
82
83hostname=$(uname -n)
84AC_MSG_CHECKING([host name])
85AC_MSG_RESULT([$hostname])
86
87timestamp=$(date)
88AC_MSG_CHECKING([current timestamp])
89AC_MSG_RESULT([$timestamp])
90
91AC_DEFINE_UNQUOTED([STRESSAPPTEST_TIMESTAMP],
nick.j.sanders6d1e64d2010-05-14 03:47:11 +000092 "$username @ $hostname on $timestamp",
93 [Timestamp when ./configure was executed])
menderico4861bb82009-09-29 00:31:36 +000094
nick.j.sanders7a6b2522014-02-11 08:53:31 +000095AC_ARG_ENABLE([default-optimizations],
96 [AS_HELP_STRING([--disable-default-optimizations], [Disable default optimization flag overrides])])
97AS_IF([test x"$enable_default_optimizations" != xno], [
98 #Default cxxflags
99 CXXFLAGS="$CXXFLAGS -DCHECKOPTS"
nick.j.sanders72851352014-04-11 23:28:56 +0000100 CXXFLAGS="$CXXFLAGS -Wreturn-type -Wunused -Wuninitialized -Wall"
nick.j.sanders7a6b2522014-02-11 08:53:31 +0000101 CXXFLAGS="$CXXFLAGS -O3 -funroll-all-loops -funroll-loops -DNDEBUG"
102])
menderico4861bb82009-09-29 00:31:36 +0000103
104# Checks for header files.
105AC_HEADER_DIRENT
106AC_HEADER_STDC
nick.j.sandersaeef0912013-01-07 20:07:28 +0000107# Skip malloc.h to prevent redefinition of HAVE_MALLOC_H on some platforms
108AC_CHECK_HEADERS([arpa/inet.h fcntl.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.])])
109AC_CHECK_HEADERS([pthread.h])
110AC_SEARCH_LIBS([pthread_create], [pthread])
nick.j.sanders34f025d2013-01-09 21:13:13 +0000111AC_CHECK_TYPE([pthread_barrier_t], AC_DEFINE(HAVE_PTHREAD_BARRIERS, [1], [Define to 1 if the system has `pthread_barrier'.]))
nick.j.sandersaeef0912013-01-07 20:07:28 +0000112AC_CHECK_HEADERS([libaio.h])
113AC_SEARCH_LIBS([io_setup], [aio])
114AC_CHECK_HEADERS([sys/shm.h])
115AC_SEARCH_LIBS([shm_open], [rt])
menderico4861bb82009-09-29 00:31:36 +0000116
nick.j.sandersef1c9352013-01-09 09:10:08 +0000117
menderico4861bb82009-09-29 00:31:36 +0000118# Checks for typedefs, structures, and compiler characteristics.
119AC_HEADER_STDBOOL
120AC_C_CONST
121AC_C_INLINE
122AC_TYPE_PID_T
123AC_C_RESTRICT
nick.j.sandersaeef0912013-01-07 20:07:28 +0000124AC_TYPE_SIZE_T
menderico4861bb82009-09-29 00:31:36 +0000125AC_TYPE_SSIZE_T
126AC_HEADER_TIME
127AC_TYPE_UINT16_T
128AC_C_VOLATILE
129
nick.j.sanders6d1e64d2010-05-14 03:47:11 +0000130
menderico4861bb82009-09-29 00:31:36 +0000131# Checks for library functions.
132AC_FUNC_CLOSEDIR_VOID
133AC_PROG_GCC_TRADITIONAL
134AC_FUNC_SELECT_ARGTYPES
135AC_TYPE_SIGNAL
136AC_FUNC_STRERROR_R
137AC_FUNC_VPRINTF
nick.j.sandersaeef0912013-01-07 20:07:28 +0000138AC_CHECK_FUNCS([ftruncate gettimeofday memset munmap select socket strtol strtoull])
139AC_CHECK_FUNCS([mmap64 posix_memalign rand_r sched_getaffinity])
menderico4861bb82009-09-29 00:31:36 +0000140
141AC_CONFIG_FILES([Makefile src/Makefile])
142AC_OUTPUT