blob: e1e44fa14dcc0013aebe84a2d5a1c60f1f5e34df [file] [log] [blame]
Scott Andersonb0114cb2012-04-09 14:08:22 -07001AC_PREREQ(2.61)
Scott Anderson8f1c60d2012-02-17 14:25:17 -08002AC_INIT([stressapptest], [1.0.4_autoconf], [opensource@google.com])
Scott Andersonb0114cb2012-04-09 14:08:22 -07003
4AC_ARG_WITH(static, [ --with-static enable static linking])
5
6if test "$with_static" == "yes"
7then
8 AC_MSG_NOTICE([Compiling with staticaly linked libraries.])
9 LIBS="$LIBS -static"
10else
11 AC_MSG_NOTICE([Compiling with dynamically linked libraries.])
12fi
13
14AC_CANONICAL_HOST
15AC_CANONICAL_BUILD
16# Checking for target cpu and setting custom configuration
17# for the different platforms
18AC_CANONICAL_TARGET
19case x"$target_cpu" in
20 "xx86_64")
21 AC_DEFINE([STRESSAPPTEST_CPU_X86_64],[],
22 [Defined if the target CPU is x86_64])
23 ;;
24 "xi686")
25 AC_DEFINE([STRESSAPPTEST_CPU_I686],[],
26 [Defined if the target CPU is i686])
27 ;;
28 "xpowerpc")
29 AC_DEFINE([STRESSAPPTEST_CPU_PPC],[],
30 [Defined if the target CPU is PowerPC])
31 ;;
32 "xarmv7a")
33 AC_DEFINE([STRESSAPPTEST_CPU_ARMV7A],[],
34 [Defined if the target CPU is armv7a])
35 ;;
36 *)
37 AC_MSG_ERROR([$target_cpu is not supported! Try x86_64, i686, powerpc, or armv7a])
38 ;;
39esac
40
41_os=`uname`
42## The following allows like systems to share settings. This is not meant to
43## imply that these OS are the same thing. From OpenOffice dmake configure.in
44case "$_os" in
45 "Linux")
46 OS_VERSION=linux
47 AC_DEFINE([STRESSAPPTEST_OS_LINUX],[],
48 [Defined if the target OS is Linux])
49 ;;
50 "Darwin")
51 OS_VERSION=macosx
52 AC_DEFINE([STRESSAPPTEST_OS_DARWIN],[],
53 [Defined if the target OS is OSX])
54 ;;
55 "FreeBSD")
56 OS_VERSION=bsd
57 AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
58 [Defined if the target OS is BSD based])
59 ;;
60 "NetBSD")
61 OS_VERSION=bsd
62 AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
63 [Defined if the target OS is BSD based])
64 ;;
65 *)
66 AC_MSG_ERROR([$_os operating system is not suitable to build dmake!])
67 ;;
68esac
69
70AM_INIT_AUTOMAKE([-Wall -Werror foreign])
71AC_CONFIG_SRCDIR([src/])
72AC_CONFIG_HEADER([src/stressapptest_config.h])
73
74# Checks for programs.
75# Don't generate CXXFLAGS defaults: if CXXFLAGS are unset
76# AC_PROG_CXX will override them with unwanted defaults.
77CXXFLAGS="$CXXFLAGS"
78AC_PROG_CXX
79AC_PROG_CC
80
81#Getting user and host info
82username=$(whoami)
83AC_MSG_CHECKING([user ID])
84AC_MSG_RESULT([$username])
85
86hostname=$(uname -n)
87AC_MSG_CHECKING([host name])
88AC_MSG_RESULT([$hostname])
89
90timestamp=$(date)
91AC_MSG_CHECKING([current timestamp])
92AC_MSG_RESULT([$timestamp])
93
94AC_DEFINE_UNQUOTED([STRESSAPPTEST_TIMESTAMP],
95 "$username @ $hostname on $timestamp",
96 [Timestamp when ./configure was executed])
97
98#Default cxxflags
99CXXFLAGS="$CXXFLAGS -DCHECKOPTS"
100CXXFLAGS="$CXXFLAGS -Wreturn-type -Wunused -Wuninitialized -Wall -Wno-psabi"
101CXXFLAGS="$CXXFLAGS -O3 -funroll-all-loops -funroll-loops -DNDEBUG"
102
103# Checks for header files.
104AC_HEADER_DIRENT
105AC_HEADER_STDC
Scott Anderson8f1c60d2012-02-17 14:25:17 -0800106# Skip malloc.h to prevent redefinition of HAVE_MALLOC_H on some platforms
107AC_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.])])
108AC_CHECK_HEADERS([pthread.h])
109AC_SEARCH_LIBS([pthread_create], [pthread])
110AC_CHECK_HEADERS([libaio.h])
111AC_SEARCH_LIBS([io_setup], [aio])
112AC_CHECK_HEADERS([sys/shm.h])
113AC_SEARCH_LIBS([shm_open], [rt])
Scott Andersonb0114cb2012-04-09 14:08:22 -0700114
115# Checks for typedefs, structures, and compiler characteristics.
116AC_HEADER_STDBOOL
117AC_C_CONST
118AC_C_INLINE
119AC_TYPE_PID_T
120AC_C_RESTRICT
Scott Anderson8f1c60d2012-02-17 14:25:17 -0800121AC_TYPE_SIZE_T
Scott Andersonb0114cb2012-04-09 14:08:22 -0700122AC_TYPE_SSIZE_T
123AC_HEADER_TIME
124AC_TYPE_UINT16_T
125AC_C_VOLATILE
126
127
Scott Andersonb0114cb2012-04-09 14:08:22 -0700128# Checks for library functions.
129AC_FUNC_CLOSEDIR_VOID
130AC_PROG_GCC_TRADITIONAL
131AC_FUNC_SELECT_ARGTYPES
132AC_TYPE_SIGNAL
133AC_FUNC_STRERROR_R
134AC_FUNC_VPRINTF
Scott Anderson8f1c60d2012-02-17 14:25:17 -0800135AC_CHECK_FUNCS([ftruncate gettimeofday memset munmap select socket strtol strtoull])
136AC_CHECK_FUNCS([mmap64 posix_memalign rand_r sched_getaffinity])
Scott Andersonb0114cb2012-04-09 14:08:22 -0700137
138AC_CONFIG_FILES([Makefile src/Makefile])
139AC_OUTPUT