blob: 9f538e00dc02044532ab395971080acd92711f88 [file] [log] [blame]
Marc Kleine-Budde584929c2010-02-03 20:24:13 +01001# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
Marc Kleine-Budde3a7d76d2010-02-04 18:54:58 +01003AC_PREREQ(2.59)
Marc Kleine-Budde584929c2010-02-03 20:24:13 +01004
5AC_INIT([ltrace],[0.5.3],[ltrace-devel <ltrace-devel@lists.alioth.debian.org>])
6AC_CONFIG_HEADERS([config.h])
7AC_CONFIG_SRCDIR(libltrace.c)
8#AC_CONFIG_MACRO_DIR([config/m4])
9AC_CONFIG_AUX_DIR([config/autoconf])
10AC_CANONICAL_BUILD
11AC_CANONICAL_HOST
12
13case "${host_os}" in
14 linux-gnu*) HOST_OS="linux-gnu" ;;
15 *) AC_MSG_ERROR([unkown host-os ${host_osx}]) ;;
16esac
17AC_SUBST(HOST_OS)
18
19case "${host_cpu}" in
20 arm*|sa110) HOST_CPU="arm" ;;
21 i?86) HOST_CPU="i386" ;;
22 powerpc|ppc64) HOST_CPU="ppc" ;;
23 sun4u|sparc64) HOST_CPU="sparc" ;;
24 s390x) HOST_CPU="s390" ;;
25 *) HOST_CPU="${host_cpu}" ;;
26esac
27AC_SUBST(HOST_CPU)
28
29# Checks for programs.
30AC_PROG_CC
31LT_INIT()
32AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2])
33
34# Checks for libraries.
35
36# libelf
37REQUIRES_LIBELF="libelf >= 0.8.10"
38AC_SUBST(REQUIRES_LIBELF)
39PKG_CHECK_MODULES([libelf],
40 [${REQUIRES_LIBELF}],
41 [],
42 [AC_MSG_ERROR([*** ${REQUIRES_LIBELF} not found by pkg-config on your system])]
43)
44AC_SUBST(libelf_CFLAGS)
45AC_SUBST(libelf_LIBS)
46
47
48# HAVE_LIBIBERTY
49AC_CHECK_LIB([iberty], [cplus_demangle], [
50 AC_DEFINE([HAVE_LIBIBERTY], [1], [we have libiberty])
51 liberty_LIBS="-liberty"], [
52 liberty_LIBS=""])
53AC_SUBST(liberty_LIBS)
54
55
56# HAVE_LIBSUPC__
57AC_CHECK_LIB([supc++], [__cxa_demangle], [
58 AC_DEFINE([HAVE_LIBSUPC__], [1], [we have libsupc++])
59 libsupcxx_LIBS="-lsupc++"], [
60 libsupcxx_LIBS=""])
61AC_SUBST(libsupcxx_LIBS)
62
63
64# HAVE_ELF_C_READ_MMAP
65AC_MSG_CHECKING([whether elf_begin accepts ELF_C_READ_MMAP])
66AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gelf.h>]], [[
67int main () {
68 Elf *elf = elf_begin(4, ELF_C_READ_MMAP, 0);
69 return 0;
70}
71 ]])],[
72 AC_DEFINE([HAVE_ELF_C_READ_MMAP], [1], [we have read mmap support])
73 AC_MSG_RESULT([yes])],[
74 AC_MSG_RESULT([no])])
75
76
77CPPFLAGS=" \
78 ${CPPFLAGS} \
79 -I\$(top_srcdir)/sysdeps/${HOST_OS}/${HOST_CPU} \
80 -I\$(top_srcdir)/sysdeps/${HOST_OS} \
81 -I\$(top_srcdir)/sysdeps \
82 -I\$(top_srcdir) \
83"
84
85CFLAGS="${CFLAGS} -Wall"
86
87# Checks for header files.
88AC_CHECK_HEADERS([ \
89 fcntl.h \
90 limits.h \
91 stddef.h \
92 stdint.h \
93 stdlib.h \
94 string.h \
95 sys/ioctl.h \
96 sys/param.h \
97 sys/time.h \
98 unistd.h \
99])
100
101# Checks for typedefs, structures, and compiler characteristics.
102AC_TYPE_UID_T
103AC_C_INLINE
104AC_TYPE_PID_T
105AC_TYPE_SIZE_T
106AC_CHECK_SIZEOF([long])
107
108
109# Checks for library functions.
110AC_FUNC_ERROR_AT_LINE
111AC_FUNC_FORK
112AC_CHECK_FUNCS([ \
113 alarm \
114 atexit \
115 getcwd \
116 gettimeofday \
117 memset \
118 mkdir \
119 rmdir \
120 strchr \
121 strdup \
122 strerror \
123 strtol \
124 strtoul \
125])
126
127
128#
129# Debugging
130#
131AC_MSG_CHECKING([whether to enable debugging])
132AC_ARG_ENABLE(debug,
133 AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=no@:>@]),
134 [case "$enableval" in
135 y | yes) CONFIG_DEBUG=yes ;;
136 *) CONFIG_DEBUG=no ;;
137 esac],
138 [CONFIG_DEBUG=no])
139AC_MSG_RESULT([${CONFIG_DEBUG}])
140if test "${CONFIG_DEBUG}" = "yes"; then
141 CFLAGS="${CFLAGS} -Werror -Wsign-compare -Wfloat-equal -Wformat-security -g -O1"
142 AC_DEFINE(DEBUG, 1, [debugging])
143else
144 CFLAGS="${CFLAGS} -O2"
145fi
146
147dnl testsuite/Makefile
148dnl testsuite/ltrace.main/Makefile
149dnl testsuite/ltrace.minor/Makefile
150dnl testsuite/ltrace.torture/Makefile
151
152AC_CONFIG_FILES([
153 Makefile
154 sysdeps/Makefile
155 sysdeps/linux-gnu/Makefile
156 sysdeps/linux-gnu/alpha/Makefile
157 sysdeps/linux-gnu/arm/Makefile
158 sysdeps/linux-gnu/i386/Makefile
159 sysdeps/linux-gnu/ia64/Makefile
160 sysdeps/linux-gnu/m68k/Makefile
161 sysdeps/linux-gnu/mipsel/Makefile
162 sysdeps/linux-gnu/ppc/Makefile
163 sysdeps/linux-gnu/s390/Makefile
164 sysdeps/linux-gnu/sparc/Makefile
165 sysdeps/linux-gnu/x86_64/Makefile
166])
167AC_OUTPUT