blob: 68025957895262d03c6415f3cd1b0897ee92f8a9 [file] [log] [blame]
sewardjde4a1d02002-03-22 01:27:54 +00001# Process this file with autoconf to produce a configure script.
njn0181c772005-11-28 16:45:45 +00002AC_INIT(Valgrind, 3.2.0.SVN, valgrind-users@lists.sourceforge.net)
njn04e16982005-05-31 00:23:43 +00003AC_CONFIG_SRCDIR(coregrind/m_main.c)
sewardjde4a1d02002-03-22 01:27:54 +00004AM_CONFIG_HEADER(config.h)
thughes6dbad732004-08-29 09:46:38 +00005AM_INIT_AUTOMAKE
sewardjde4a1d02002-03-22 01:27:54 +00006
gobryb0ed4672002-03-27 20:58:58 +00007AM_MAINTAINER_MODE
8
njn8738c282004-11-23 16:31:56 +00009# Where is VEX ?
njnfe408942004-11-23 17:52:24 +000010# Nb: For the 2nd arg, the help string, AS_HELP_STRING is the proper way, but
11# older autoconfs don't support it... here's what it would say:
12#
sewardj85a9dca2005-07-26 10:42:57 +000013# AS_HELP_STRING([--with-vex], [Vex directory]),
njnfe408942004-11-23 17:52:24 +000014#
njn8738c282004-11-23 16:31:56 +000015AC_ARG_WITH(vex,
sewardj85a9dca2005-07-26 10:42:57 +000016 [ --with-vex=/path/to/vex/dir Vex directory],
njn8738c282004-11-23 16:31:56 +000017[
18 AC_CHECK_FILE($withval/pub/libvex.h,
19 [VEX_DIR=$withval],
20 [AC_MSG_ERROR([Directory '$withval' does not exist, or does not contain Vex])])
21],
22[
njn17adf1e2005-09-16 03:59:37 +000023 VEX_DIR='$(top_srcdir)/VEX'
njn8738c282004-11-23 16:31:56 +000024])
sewardj50629ec2004-11-22 13:44:11 +000025AC_SUBST(VEX_DIR)
26
njn657d9512005-06-24 15:20:52 +000027# "make distcheck" first builds a tarball, then extracts it.
28# Then it creates a build directory different from the extracted sources
29# (called _build), and issues
30#
31# ../configure $(DISTCHECK_CONFIGURE_FLAGS)
32#
33# and then builds, runs "make check", installs using DESTDIR, runs make
34# installcheck, uninstalls, checks whether the installed base is empty
35# again, then does yet another "make dist" and compares the resulting
36# tarball with the one it started off with for identical content. Then it
37# tests "make distclean" for no leftover files.
38#
39# So this line means: when doing "make dist", use the same --with-vex value
40# that you used when running configure to configure this tree in the first
41# place.
42AC_SUBST([DISTCHECK_CONFIGURE_FLAGS], [--with-vex=$VEX_DIR])
43
sewardjde4a1d02002-03-22 01:27:54 +000044# Checks for programs.
sewardjb5f6f512005-03-10 23:59:00 +000045CFLAGS="-Wno-long-long"
gobrye721a522002-03-22 13:38:30 +000046
sewardjde4a1d02002-03-22 01:27:54 +000047AC_PROG_LN_S
48AC_PROG_CC
njnca0518d2004-11-26 19:34:36 +000049##AM_PROG_CC_C_O
sewardjde4a1d02002-03-22 01:27:54 +000050AC_PROG_CPP
njn25e49d8e72002-09-23 09:36:25 +000051AC_PROG_CXX
sewardjde4a1d02002-03-22 01:27:54 +000052AC_PROG_RANLIB
53
gobrye721a522002-03-22 13:38:30 +000054# Check for the compiler support
55if test "${GCC}" != "yes" ; then
56 AC_MSG_ERROR([Valgrind relies on GCC to be compiled])
57fi
58
sewardj2f685952002-12-22 19:32:23 +000059# figure out where perl lives
60AC_PATH_PROG(PERL, perl)
61
njn9315df32003-04-16 20:50:50 +000062# figure out where gdb lives
63AC_PATH_PROG(GDB, gdb)
njnfe408942004-11-23 17:52:24 +000064AC_DEFINE_UNQUOTED(GDB_PATH, "$GDB", [path to GDB])
njn9315df32003-04-16 20:50:50 +000065
daywalker48ccca52002-04-15 00:31:58 +000066# some older automake's don't have it so try something on our own
67ifdef([AM_PROG_AS],[AM_PROG_AS],
68[
gobry1be19852002-03-26 20:44:55 +000069AS="${CC}"
70AC_SUBST(AS)
gobry3b777892002-04-04 09:18:39 +000071
gobry1be19852002-03-26 20:44:55 +000072ASFLAGS=""
73AC_SUBST(ASFLAGS)
daywalker48ccca52002-04-15 00:31:58 +000074])
gobry3b777892002-04-04 09:18:39 +000075
76# This variable will collect the individual suppression files
77# depending on the results of autoconf
78
79DEFAULT_SUPP=""
80
81
sewardj535c50f2005-06-04 23:14:53 +000082# We don't want gcc < 3.0
gobrye721a522002-03-22 13:38:30 +000083AC_MSG_CHECKING([for a supported version of gcc])
84
daywalker870ac4c2002-05-21 00:09:48 +000085gcc_version=`${CC} --version | head -n 1`
gobrye721a522002-03-22 13:38:30 +000086
87case "${gcc_version}" in
88 gcc-2.7.*)
89 AC_MSG_RESULT([no (${gcc_version})])
sewardj535c50f2005-06-04 23:14:53 +000090 AC_MSG_ERROR([please use a recent (>= gcc-3.0) version of gcc])
91 ;;
92 gcc-2.8.*)
93 AC_MSG_RESULT([no (${gcc_version})])
94 AC_MSG_ERROR([please use a recent (>= gcc-3.0) version of gcc])
95 ;;
96 gcc-2.9*)
97 AC_MSG_RESULT([no (${gcc_version})])
98 AC_MSG_ERROR([please use a recent (>= gcc-3.0) version of gcc])
gobrye721a522002-03-22 13:38:30 +000099 ;;
100
101 *)
102 AC_MSG_RESULT([ok (${gcc_version})])
103 ;;
104esac
105
gobrye721a522002-03-22 13:38:30 +0000106
sewardjde4a1d02002-03-22 01:27:54 +0000107# Checks for the platform
108AC_CANONICAL_HOST
109
110AC_MSG_CHECKING([for a supported CPU])
nethercote888ecb72004-08-23 14:54:40 +0000111AC_SUBST(VG_ARCH)
njna5f1bcd2004-11-27 16:47:42 +0000112AC_SUBST(VG_ARCH_ALL)
sewardj2c48c7b2005-11-29 13:05:56 +0000113VG_ARCH_ALL="amd64 ppc32 ppc64 x86"
sewardj45f4e7c2005-09-27 19:20:21 +0000114AC_SUBST(VALT_LOAD_ADDRESS)
sewardjde4a1d02002-03-22 01:27:54 +0000115
gobrye721a522002-03-22 13:38:30 +0000116case "${host_cpu}" in
sewardjde4a1d02002-03-22 01:27:54 +0000117 i?86)
118 AC_MSG_RESULT([ok (${host_cpu})])
nethercote888ecb72004-08-23 14:54:40 +0000119 VG_ARCH="x86"
sewardj45f4e7c2005-09-27 19:20:21 +0000120 valt_load_address_normal="0xb0000000"
121 valt_load_address_inner="0xa0000000"
sewardjde4a1d02002-03-22 01:27:54 +0000122 ;;
123
njnfe408942004-11-23 17:52:24 +0000124 x86_64)
125 AC_MSG_RESULT([ok (${host_cpu})])
126 VG_ARCH="amd64"
njnc6168192004-11-29 13:54:10 +0000127 # XXX: relocations under amd64's "small model" are 32-bit signed
njnfe408942004-11-23 17:52:24 +0000128 # quantities; therefore going above 0x7fffffff doesn't work... this is
129 # a problem.
sewardj45f4e7c2005-09-27 19:20:21 +0000130 valt_load_address_normal="0x70000000"
131 valt_load_address_inner="0x60000000"
njnfe408942004-11-23 17:52:24 +0000132 ;;
133
sewardj2c48c7b2005-11-29 13:05:56 +0000134 powerpc64)
135 AC_MSG_RESULT([ok (${host_cpu})])
136 VG_ARCH="ppc64"
137 valt_load_address_normal="0x70000000"
138 valt_load_address_inner="0x60000000"
139 ;;
140
141 powerpc)
cerion85665ca2005-06-20 15:51:07 +0000142 AC_MSG_RESULT([ok (${host_cpu})])
143 VG_ARCH="ppc32"
sewardj45f4e7c2005-09-27 19:20:21 +0000144 valt_load_address_normal="0x70000000"
145 valt_load_address_inner="0x60000000"
nethercote9bcc9062004-10-13 13:50:01 +0000146 ;;
147
sewardjde4a1d02002-03-22 01:27:54 +0000148 *)
149 AC_MSG_RESULT([no (${host_cpu})])
nethercote81d5c662004-10-13 13:18:51 +0000150 AC_MSG_ERROR([Unsupported host architecture. Sorry])
sewardjde4a1d02002-03-22 01:27:54 +0000151 ;;
152esac
153
sewardj45f4e7c2005-09-27 19:20:21 +0000154# Check if this should be built as an inner Valgrind, to be run within
155# another Valgrind. Choose the load address accordingly.
156AC_CACHE_CHECK([enable use as an inner Valgrind], vg_cv_inner,
157 [AC_ARG_ENABLE(inner, [ --enable-inner enables self-hosting],
158 [vg_cv_inner=$enableval],
159 [vg_cv_inner=no])])
160if test "$vg_cv_inner" = yes; then
161 AC_DEFINE([ENABLE_INNER], 1, [configured to run as an inner Valgrind])
162 VALT_LOAD_ADDRESS=$valt_load_address_inner
163else
164 VALT_LOAD_ADDRESS=$valt_load_address_normal
165fi
166
sewardjde4a1d02002-03-22 01:27:54 +0000167AC_MSG_CHECKING([for a supported OS])
nethercote888ecb72004-08-23 14:54:40 +0000168AC_SUBST(VG_OS)
njna5f1bcd2004-11-27 16:47:42 +0000169AC_SUBST(VG_OS_ALL)
170VG_OS_ALL="linux"
sewardjde4a1d02002-03-22 01:27:54 +0000171
gobrye721a522002-03-22 13:38:30 +0000172case "${host_os}" in
mueller8c68e042004-01-03 15:21:14 +0000173 *linux*)
sewardjde4a1d02002-03-22 01:27:54 +0000174 AC_MSG_RESULT([ok (${host_os})])
nethercote888ecb72004-08-23 14:54:40 +0000175 VG_OS="linux"
mueller8c68e042004-01-03 15:21:14 +0000176
177 # Ok, this is linux. Check the kernel version
178 AC_MSG_CHECKING([for the kernel version])
179
180 kernel=`uname -r`
181
182 case "${kernel}" in
183 2.6.*)
184 AC_MSG_RESULT([2.6 family (${kernel})])
185 AC_DEFINE([KERNEL_2_6], 1, [Define to 1 if you're using Linux 2.6.x])
186 ;;
187
188 2.4.*)
189 AC_MSG_RESULT([2.4 family (${kernel})])
190 AC_DEFINE([KERNEL_2_4], 1, [Define to 1 if you're using Linux 2.4.x])
191 ;;
192
mueller8c68e042004-01-03 15:21:14 +0000193 *)
194 AC_MSG_RESULT([unsupported (${kernel})])
nethercote4fa681f2004-11-08 17:51:39 +0000195 AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6])
mueller8c68e042004-01-03 15:21:14 +0000196 ;;
197 esac
198
199 ;;
200
201 *freebsd*)
202 AC_MSG_RESULT([ok (${host_os})])
nethercote888ecb72004-08-23 14:54:40 +0000203 VG_OS="freebsd"
sewardjde4a1d02002-03-22 01:27:54 +0000204 ;;
205
206 *)
207 AC_MSG_RESULT([no (${host_os})])
mueller8c68e042004-01-03 15:21:14 +0000208 AC_MSG_ERROR([Valgrind is operating system specific. Sorry. Please consider doing a port.])
sewardjde4a1d02002-03-22 01:27:54 +0000209 ;;
210esac
211
nethercote888ecb72004-08-23 14:54:40 +0000212AC_MSG_CHECKING([for a supported CPU/OS combination])
213AC_SUBST(VG_PLATFORM)
njna5f1bcd2004-11-27 16:47:42 +0000214AC_SUBST(VG_PLATFORM_ALL)
sewardj2c48c7b2005-11-29 13:05:56 +0000215VG_PLATFORM_ALL="amd64-linux ppc32-linux ppc64-linux x86-linux"
nethercote888ecb72004-08-23 14:54:40 +0000216
217VG_PLATFORM="$VG_ARCH-$VG_OS"
218
219case $VG_PLATFORM in
sewardj2c48c7b2005-11-29 13:05:56 +0000220 x86-linux|amd64-linux|ppc32-linux|ppc64-linux)
sewardj3e38ce02004-11-23 01:17:29 +0000221 AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
222 ;;
223
nethercote888ecb72004-08-23 14:54:40 +0000224 *)
225 AC_MSG_RESULT([no (${host_cpu}-${host_os})])
sewardj3e38ce02004-11-23 01:17:29 +0000226 AC_MSG_ERROR([Valgrind is platform specific. Sorry. Please consider doing a port.])
nethercote888ecb72004-08-23 14:54:40 +0000227 ;;
228esac
sewardjde4a1d02002-03-22 01:27:54 +0000229
sewardj2c48c7b2005-11-29 13:05:56 +0000230AM_CONDITIONAL(VG_X86_LINUX, test x$VG_PLATFORM = xx86-linux -o x$VG_PLATFORM = xamd64-linux)
tomfb7bcde2005-11-07 15:24:38 +0000231AM_CONDITIONAL(VG_AMD64_LINUX, test x$VG_PLATFORM = xamd64-linux)
sewardj2c48c7b2005-11-29 13:05:56 +0000232AM_CONDITIONAL(VG_PPC32_LINUX, test x$VG_PLATFORM = xppc32-linux -o x$VG_PLATFORM = xppc64-linux)
233AM_CONDITIONAL(VG_PPC64_LINUX, test x$VG_PLATFORM = xppc64-linux)
tomfb7bcde2005-11-07 15:24:38 +0000234
tomb637bad2005-11-08 12:28:35 +0000235AC_SUBST(VG_MAKE_PLATFORM)
sewardj2c48c7b2005-11-29 13:05:56 +0000236case $VG_PLATFORM in
237 x86-linux)
238 VG_MAKE_PLATFORM=X86_LINUX
239 ;;
240 amd64-linux)
241 VG_MAKE_PLATFORM=AMD64_LINUX
242 ;;
243 ppc32-linux|ppc64-linux)
244 VG_MAKE_PLATFORM=PPC32_LINUX
245 ;;
246 *)
247 AC_MSG_ERROR([VG_PLATFORM is not known -- configure script bug])
248 ;;
249esac
250##VG_MAKE_PLATFORM=`echo $VG_PLATFORM | tr [a-z-] [A-Z_]`
tomb637bad2005-11-08 12:28:35 +0000251
sewardjde4a1d02002-03-22 01:27:54 +0000252AC_SUBST(DEFAULT_SUPP)
253
sewardjde4a1d02002-03-22 01:27:54 +0000254glibc=""
255
sewardjde4a1d02002-03-22 01:27:54 +0000256AC_EGREP_CPP([GLIBC_22], [
257#include <features.h>
258#ifdef __GNU_LIBRARY__
259 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2)
260 GLIBC_22
261 #endif
262#endif
263],
264glibc="2.2")
265
sewardj08c7f012002-10-07 23:56:55 +0000266AC_EGREP_CPP([GLIBC_23], [
267#include <features.h>
268#ifdef __GNU_LIBRARY__
269 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 3)
270 GLIBC_23
271 #endif
272#endif
273],
274glibc="2.3")
275
njn781dba52005-06-30 04:06:38 +0000276AC_EGREP_CPP([GLIBC_24], [
277#include <features.h>
278#ifdef __GNU_LIBRARY__
279 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 4)
280 GLIBC_24
281 #endif
282#endif
283],
284glibc="2.4")
285
daywalkere9212b32003-06-15 22:39:15 +0000286AC_MSG_CHECKING([the glibc version])
287
gobrye721a522002-03-22 13:38:30 +0000288case "${glibc}" in
sewardjde4a1d02002-03-22 01:27:54 +0000289 2.2)
290 AC_MSG_RESULT(2.2 family)
daywalker418c7482002-10-16 13:09:26 +0000291 AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
gobry3b777892002-04-04 09:18:39 +0000292 DEFAULT_SUPP="${DEFAULT_SUPP} glibc-2.2.supp"
sewardjde4a1d02002-03-22 01:27:54 +0000293 ;;
294
sewardj08c7f012002-10-07 23:56:55 +0000295 2.3)
296 AC_MSG_RESULT(2.3 family)
daywalker418c7482002-10-16 13:09:26 +0000297 AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
daywalker63f6f782003-05-27 00:19:52 +0000298 DEFAULT_SUPP="${DEFAULT_SUPP} glibc-2.3.supp"
sewardj08c7f012002-10-07 23:56:55 +0000299 ;;
300
njn781dba52005-06-30 04:06:38 +0000301 2.4)
302 AC_MSG_RESULT(2.4 family)
303 AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
304 DEFAULT_SUPP="${DEFAULT_SUPP} glibc-2.4.supp"
305 ;;
306
sewardjde4a1d02002-03-22 01:27:54 +0000307 *)
308 AC_MSG_RESULT(unsupported version)
sewardj3080a862005-07-03 10:18:33 +0000309 AC_MSG_ERROR([Valgrind requires glibc version 2.2, 2.3 or 2.4])
sewardjde4a1d02002-03-22 01:27:54 +0000310 ;;
311esac
312
sewardj535c50f2005-06-04 23:14:53 +0000313
nethercote3d260f62004-10-31 19:39:18 +0000314# We don't know how to detect the X client library version
315# (detecting the server version is easy, bu no help). So we
316# just use a hack: always include the suppressions for both
317# versions 3 and 4.
gobrye721a522002-03-22 13:38:30 +0000318AC_PATH_X
gobrye721a522002-03-22 13:38:30 +0000319if test "${no_x}" != 'yes' ; then
nethercote3d260f62004-10-31 19:39:18 +0000320 DEFAULT_SUPP="${DEFAULT_SUPP} xfree-4.supp"
321 DEFAULT_SUPP="${DEFAULT_SUPP} xfree-3.supp"
gobrye721a522002-03-22 13:38:30 +0000322fi
323
sewardj2e10a682003-04-07 19:36:41 +0000324
sewardj535c50f2005-06-04 23:14:53 +0000325# does this compiler support -m32 ?
326AC_MSG_CHECKING([if gcc accepts -m32])
327
328safe_CFLAGS=$CFLAGS
329CFLAGS="-m32"
330
331AC_TRY_COMPILE(, [
332int main () { return 0 ; }
333],
334[
335FLAG_M32="-m32"
336AC_MSG_RESULT([yes])
337], [
338FLAG_M32=""
339AC_MSG_RESULT([no])
340])
341CFLAGS=$safe_CFLAGS
342
343AC_SUBST(FLAG_M32)
344
345
sewardj67f1fcc2005-07-03 10:41:02 +0000346# does this compiler support -mmmx ?
347AC_MSG_CHECKING([if gcc accepts -mmmx])
348
349safe_CFLAGS=$CFLAGS
350CFLAGS="-mmmx"
351
352AC_TRY_COMPILE(, [
353int main () { return 0 ; }
354],
355[
356FLAG_MMMX="-mmmx"
357AC_MSG_RESULT([yes])
358], [
359FLAG_MMMX=""
360AC_MSG_RESULT([no])
361])
362CFLAGS=$safe_CFLAGS
363
364AC_SUBST(FLAG_MMMX)
365
366
367# does this compiler support -msse ?
368AC_MSG_CHECKING([if gcc accepts -msse])
369
370safe_CFLAGS=$CFLAGS
371CFLAGS="-msse"
372
373AC_TRY_COMPILE(, [
374int main () { return 0 ; }
375],
376[
377FLAG_MSSE="-msse"
378AC_MSG_RESULT([yes])
379], [
380FLAG_MSSE=""
381AC_MSG_RESULT([no])
382])
383CFLAGS=$safe_CFLAGS
384
385AC_SUBST(FLAG_MSSE)
386
387
sewardj5b754b42002-06-03 22:53:35 +0000388# does this compiler support -mpreferred-stack-boundary=2 ?
389AC_MSG_CHECKING([if gcc accepts -mpreferred-stack-boundary])
390
daywalker3664f562003-10-17 13:43:46 +0000391safe_CFLAGS=$CFLAGS
sewardj5b754b42002-06-03 22:53:35 +0000392CFLAGS="-mpreferred-stack-boundary=2"
393
394AC_TRY_COMPILE(, [
sewardj5b754b42002-06-03 22:53:35 +0000395int main () { return 0 ; }
sewardj5b754b42002-06-03 22:53:35 +0000396],
397[
398PREFERRED_STACK_BOUNDARY="-mpreferred-stack-boundary=2"
daywalker3664f562003-10-17 13:43:46 +0000399AC_MSG_RESULT([yes])
sewardj5b754b42002-06-03 22:53:35 +0000400], [
401PREFERRED_STACK_BOUNDARY=""
402AC_MSG_RESULT([no])
403])
daywalker3664f562003-10-17 13:43:46 +0000404CFLAGS=$safe_CFLAGS
sewardj5b754b42002-06-03 22:53:35 +0000405
406AC_SUBST(PREFERRED_STACK_BOUNDARY)
407
sewardj535c50f2005-06-04 23:14:53 +0000408
sewardjb5f6f512005-03-10 23:59:00 +0000409# does this compiler support -Wno-pointer-sign ?
410AC_MSG_CHECKING([if gcc accepts -Wno-pointer-sign ])
411
412safe_CFLAGS=$CFLAGS
413CFLAGS="-Wno-pointer-sign"
414
415AC_TRY_COMPILE(, [
416int main () { return 0 ; }
417],
418[
419no_pointer_sign=yes
420AC_MSG_RESULT([yes])
421], [
422no_pointer_sign=no
423AC_MSG_RESULT([no])
424])
425CFLAGS=$safe_CFLAGS
426
427if test x$no_pointer_sign = xyes; then
428 CFLAGS="$CFLAGS -Wno-pointer-sign"
429fi
430
sewardj535c50f2005-06-04 23:14:53 +0000431
tom1e946682005-10-12 11:27:33 +0000432# does this compiler support -Wdeclaration-after-statement ?
433AC_MSG_CHECKING([if gcc accepts -Wdeclaration-after-statement ])
434
435safe_CFLAGS=$CFLAGS
436CFLAGS="-Wdeclaration-after-statement"
437
438AC_TRY_COMPILE(, [
439int main () { return 0 ; }
440],
441[
tome9814c32005-10-12 11:30:43 +0000442declaration_after_statement=yes
tom1e946682005-10-12 11:27:33 +0000443AC_MSG_RESULT([yes])
444], [
tome9814c32005-10-12 11:30:43 +0000445declaration_after_statement=no
tom1e946682005-10-12 11:27:33 +0000446AC_MSG_RESULT([no])
447])
448CFLAGS=$safe_CFLAGS
449
tome9814c32005-10-12 11:30:43 +0000450if test x$declaration_after_statement = xyes; then
tom1e946682005-10-12 11:27:33 +0000451 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
452fi
453
tomd55121e2005-12-19 12:40:13 +0000454# does this compiler support __builtin_expect?
455AC_MSG_CHECKING([if gcc supports __builtin_expect])
456
457AC_TRY_LINK(, [
458return __builtin_expect(1, 1) ? 1 : 0
459],
460[
461ac_have_builtin_expect=yes
462AC_MSG_RESULT([yes])
463], [
464ac_have_builtin_expect=no
465AC_MSG_RESULT([no])
466])
467if test x$ac_have_builtin_expect = xyes ; then
468 AC_DEFINE(HAVE_BUILTIN_EXPECT, 1, [Define to 1 if gcc supports __builtin_expect.])
469fi
470
tom1e946682005-10-12 11:27:33 +0000471
sewardjb5f6f512005-03-10 23:59:00 +0000472# Check for TLS support in the compiler and linker
473AC_CACHE_CHECK([for TLS support], vg_cv_tls,
474 [AC_ARG_ENABLE(tls, [ --enable-tls platform supports TLS],
475 [vg_cv_tls=$enableval],
476 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[static __thread int foo;]],
477 [[return foo;]])],
478 [vg_cv_tls=yes],
479 [vg_cv_tls=no])])])
480
481if test "$vg_cv_tls" = yes; then
482AC_DEFINE([HAVE_TLS], 1, [can use __thread to define thread-local variables])
483fi
sewardj5b754b42002-06-03 22:53:35 +0000484
sewardj535c50f2005-06-04 23:14:53 +0000485
sewardjde4a1d02002-03-22 01:27:54 +0000486# Checks for header files.
487AC_HEADER_STDC
nethercote3d260f62004-10-31 19:39:18 +0000488AC_CHECK_HEADERS([sys/endian.h endian.h mqueue.h])
sewardjde4a1d02002-03-22 01:27:54 +0000489
sewardj535c50f2005-06-04 23:14:53 +0000490
sewardjde4a1d02002-03-22 01:27:54 +0000491# Checks for typedefs, structures, and compiler characteristics.
sewardjde4a1d02002-03-22 01:27:54 +0000492AC_TYPE_UID_T
493AC_TYPE_OFF_T
494AC_TYPE_SIZE_T
495AC_HEADER_TIME
496
sewardj535c50f2005-06-04 23:14:53 +0000497
sewardjde4a1d02002-03-22 01:27:54 +0000498# Checks for library functions.
499AC_FUNC_MEMCMP
500AC_FUNC_MMAP
501AC_TYPE_SIGNAL
502
thughesbeb6eb92004-06-14 12:33:43 +0000503AC_CHECK_FUNCS([floor memchr memset mkdir strchr strdup strpbrk strrchr strstr semtimedop])
sewardjde4a1d02002-03-22 01:27:54 +0000504
gobrye721a522002-03-22 13:38:30 +0000505AC_OUTPUT(
sewardjde4a1d02002-03-22 01:27:54 +0000506 Makefile
njn25cac76cb2002-09-23 11:21:57 +0000507 valgrind.spec
muellerbddd6072003-11-19 21:50:07 +0000508 valgrind.pc
njn254d542432002-09-23 16:09:39 +0000509 docs/Makefile
njn3e986b22004-11-30 10:43:45 +0000510 docs/lib/Makefile
511 docs/images/Makefile
njnf7c00b12005-07-19 21:46:19 +0000512 docs/internals/Makefile
njn3e986b22004-11-30 10:43:45 +0000513 docs/xml/Makefile
njn254d542432002-09-23 16:09:39 +0000514 tests/Makefile
njnc2e7f482002-09-27 08:44:17 +0000515 tests/vg_regtest
njnec0c27a2005-12-10 23:11:28 +0000516 perf/Makefile
517 perf/vg_perf
njn254d542432002-09-23 16:09:39 +0000518 include/Makefile
njn7a6e7462002-11-09 17:53:30 +0000519 auxprogs/Makefile
njn25ab726032002-09-23 16:24:41 +0000520 coregrind/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000521 addrcheck/Makefile
njnf2df9b52002-10-04 11:35:47 +0000522 addrcheck/tests/Makefile
njn7da8fa72002-10-03 10:38:40 +0000523 addrcheck/docs/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000524 memcheck/Makefile
525 memcheck/tests/Makefile
njnc6168192004-11-29 13:54:10 +0000526 memcheck/tests/amd64/Makefile
cerion85665ca2005-06-20 15:51:07 +0000527 memcheck/tests/ppc32/Makefile
sewardj2c48c7b2005-11-29 13:05:56 +0000528 memcheck/tests/ppc64/Makefile
njnc6168192004-11-29 13:54:10 +0000529 memcheck/tests/x86/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000530 memcheck/docs/Makefile
531 cachegrind/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000532 cachegrind/tests/Makefile
njnc6168192004-11-29 13:54:10 +0000533 cachegrind/tests/amd64/Makefile
cerion85665ca2005-06-20 15:51:07 +0000534 cachegrind/tests/ppc32/Makefile
sewardj2c48c7b2005-11-29 13:05:56 +0000535 cachegrind/tests/ppc64/Makefile
njnc6168192004-11-29 13:54:10 +0000536 cachegrind/tests/x86/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000537 cachegrind/docs/Makefile
njnf2df9b52002-10-04 11:35:47 +0000538 cachegrind/cg_annotate
njn25cac76cb2002-09-23 11:21:57 +0000539 helgrind/Makefile
njnf2df9b52002-10-04 11:35:47 +0000540 helgrind/tests/Makefile
njn83157fc2002-10-03 10:07:34 +0000541 helgrind/docs/Makefile
nethercotec9f36922004-02-14 16:40:02 +0000542 massif/Makefile
543 massif/hp2ps/Makefile
544 massif/tests/Makefile
545 massif/docs/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000546 lackey/Makefile
njnf2df9b52002-10-04 11:35:47 +0000547 lackey/tests/Makefile
njn83157fc2002-10-03 10:07:34 +0000548 lackey/docs/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000549 none/Makefile
550 none/tests/Makefile
njnc6168192004-11-29 13:54:10 +0000551 none/tests/amd64/Makefile
cerion85665ca2005-06-20 15:51:07 +0000552 none/tests/ppc32/Makefile
sewardj2c48c7b2005-11-29 13:05:56 +0000553 none/tests/ppc64/Makefile
njnc6168192004-11-29 13:54:10 +0000554 none/tests/x86/Makefile
njn9bc8c002002-10-02 13:49:13 +0000555 none/docs/Makefile
njn25cac76cb2002-09-23 11:21:57 +0000556)
gobry3b777892002-04-04 09:18:39 +0000557
558cat<<EOF
559
560Using the following suppressions by default:
561
562 ${DEFAULT_SUPP}
563EOF
564
565cat<<EOF > default.supp
566# This is a generated file, composed of the following suppression rules:
567#
568# ${DEFAULT_SUPP}
569#
570
571EOF
572
573for file in ${DEFAULT_SUPP} ; do
574 cat ${srcdir}/$file >> default.supp
575done