chiark / gitweb /
Update stressapptest to 1.0.3.
[stressapptest] / configure.ac
1 AC_PREREQ(2.61)
2 AC_INIT(stressapptest, 1.0.3_autoconf, opensource@google.com)
3
4 AC_CANONICAL_HOST
5 AC_CANONICAL_BUILD
6 # Checking for target cpu and setting custom configuration
7 # for the different platforms
8 AC_CANONICAL_TARGET
9 case x"$target_cpu" in
10   "xx86_64")
11     AC_DEFINE([STRESSAPPTEST_CPU_X86_64],[],
12               [Defined if the target CPU is x86_64])
13     ;;
14   "xi686")
15     AC_DEFINE([STRESSAPPTEST_CPU_I686],[],
16               [Defined if the target CPU is i686])
17     ;;
18   "xpowerpc")
19     AC_DEFINE([STRESSAPPTEST_CPU_PPC],[],
20               [Defined if the target CPU is PowerPC])
21     ;;
22   "xarmv7a")
23     AC_DEFINE([STRESSAPPTEST_CPU_ARMV7A],[],
24               [Defined if the target CPU is armv7a])
25     ;;
26   *)
27     AC_MSG_ERROR([$target_cpu is not supported! Try x86_64, i686, powerpc, or armv7a])
28     ;;
29 esac
30
31 _os=`uname`
32 ## The following allows like systems to share settings. This is not meant to
33 ## imply that these OS are the same thing. From OpenOffice dmake configure.in
34 case "$_os" in
35   "Linux")
36     OS_VERSION=linux
37     AC_DEFINE([STRESSAPPTEST_OS_LINUX],[],
38               [Defined if the target OS is Linux])
39     ;;
40   "Darwin")
41     OS_VERSION=macosx
42     AC_DEFINE([STRESSAPPTEST_OS_DARWIN],[],
43               [Defined if the target OS is OSX])
44     ;;
45   "FreeBSD")
46     OS_VERSION=bsd
47     AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
48               [Defined if the target OS is BSD based])
49     ;;
50   "NetBSD")
51     OS_VERSION=bsd
52     AC_DEFINE([STRESSAPPTEST_OS_BSD],[],
53               [Defined if the target OS is BSD based])
54     ;;
55   *)
56     AC_MSG_ERROR([$_os operating system is not suitable to build dmake!])
57     ;;
58 esac
59
60 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
61 AC_CONFIG_SRCDIR([src/])
62 AC_CONFIG_HEADER([src/stressapptest_config.h])
63
64 # Checks for programs.
65 #  Don't generate CXXFLAGS defaults: if CXXFLAGS are unset
66 #  AC_PROG_CXX will override them with unwanted defaults.
67 CXXFLAGS="$CXXFLAGS"
68 AC_PROG_CXX
69 AC_PROG_CC
70
71 #Getting user and host info
72 username=$(whoami)
73 AC_MSG_CHECKING([user ID])
74 AC_MSG_RESULT([$username])
75
76 hostname=$(uname -n)
77 AC_MSG_CHECKING([host name])
78 AC_MSG_RESULT([$hostname])
79
80 timestamp=$(date)
81 AC_MSG_CHECKING([current timestamp])
82 AC_MSG_RESULT([$timestamp])
83
84 AC_DEFINE_UNQUOTED([STRESSAPPTEST_TIMESTAMP],
85                    "$username @ $hostname on $timestamp",
86                    [Timestamp when ./configure was executed])
87
88 #Default cxxflags
89 CXXFLAGS="$CXXFLAGS -DCHECKOPTS"
90 CXXFLAGS="$CXXFLAGS -Wreturn-type -Wunused -Wuninitialized -Wall -Wno-psabi"
91 CXXFLAGS="$CXXFLAGS -O3 -funroll-all-loops  -funroll-loops -DNDEBUG"
92
93 # Checks for header files.
94 AC_HEADER_DIRENT
95 AC_HEADER_STDC
96 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])
97 AC_CHECK_HEADERS([pthread.h libaio.h])
98
99 # Checks for typedefs, structures, and compiler characteristics.
100 AC_HEADER_STDBOOL
101 AC_C_CONST
102 AC_C_INLINE
103 AC_TYPE_PID_T
104 AC_C_RESTRICT
105 AC_TYPE_SSIZE_T
106 AC_HEADER_TIME
107 AC_TYPE_UINT16_T
108 AC_C_VOLATILE
109
110
111 # These are the libraries stressapptest requires to build.
112 # We'll check that they work, and fail otherwise.
113 # In the future we may provide for testing alternate
114 # arguments, but that's not necessary now.
115 LIBS="$LIBS -static -lrt -pthread -laio"
116
117 # Checking for pthreads
118 pthread_arg="not_available"
119 AC_MSG_CHECKING([if pthreads is supported])
120
121 pthread_header="#include<pthread.h>"
122 pthread_body="pthread_create(0,0,0,0)"
123 # Check if compile with no extra argument
124 AC_LINK_IFELSE([AC_LANG_PROGRAM($pthread_header, $pthread_body)],
125 pthread_arg="")
126
127 if test x"$pthread_arg" = x"not_available"; then
128   AC_MSG_FAILURE([Cannot find a proper pthread library])
129 else
130   AC_MSG_RESULT([yes])
131 fi
132
133 # Checking for libaio
134 libaio_arg="not_available"
135 AC_MSG_CHECKING([if libaio is supported])
136
137 libaio_header="#include<libaio.h>"
138 libaio_body="io_submit(0,0,0)"
139 # Check if compile with no extra argument
140 AC_LINK_IFELSE([AC_LANG_PROGRAM($libaio_header, $libaio_body)],
141 libaio_arg="")
142
143 if test x"$libaio_arg" = x"not_available"; then
144   AC_MSG_FAILURE([Cannot find libaio library, please install libaio-dev])
145 else
146   AC_MSG_RESULT([yes])
147 fi
148
149 # Checking for librt
150 librt_arg="not_available"
151 AC_MSG_CHECKING([if librt is supported])
152
153 librt_header="#include<sys/shm.h>"
154 librt_body="shm_open(0, 0, 0)"
155 # Check if compile with no extra argument
156 AC_LINK_IFELSE([AC_LANG_PROGRAM($librt_header, $librt_body)],
157 librt_arg="")
158
159 if test x"$librt_arg" = x"not_available"; then
160   AC_MSG_FAILURE([Cannot find librt library])
161 else
162   AC_MSG_RESULT([yes])
163 fi
164
165
166 # Checks for library functions.
167 AC_FUNC_CLOSEDIR_VOID
168 AC_PROG_GCC_TRADITIONAL
169 AC_FUNC_SELECT_ARGTYPES
170 AC_TYPE_SIGNAL
171 AC_FUNC_STRERROR_R
172 AC_FUNC_VPRINTF
173 AC_CHECK_FUNCS([gettimeofday memset select socket strtol strtoull])
174
175 AC_CONFIG_FILES([Makefile src/Makefile])
176 AC_OUTPUT