25804a8baaa02446b05e3fa52a8dd6a4b44b721e
[platform/upstream/elfutils.git] / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 dnl Configure input file for elfutils.                     -*-autoconf-*-
3 dnl
4 dnl Copyright (C) 1996-2002, 2003, 2004, 2005, 2006, 2007, 2008 Red Hat, Inc.
5 dnl
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation, version 2.
9 dnl
10 dnl This program is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 dnl GNU General Public License for more details.
14 dnl
15 dnl You should have received a copy of the GNU General Public License
16 dnl along with this program; if not, write to the Free Software Foundation,
17 dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
18 dnl
19 AC_INIT([Red Hat elfutils],[0.138],[http://bugzilla.redhat.com/bugzilla/],
20         [elfutils])
21
22 AC_CONFIG_AUX_DIR([config])
23 AC_CONFIG_FILES([config/Makefile])
24
25 AC_COPYRIGHT([Copyright (C) 1996-2007, 2008 Red Hat, Inc.])
26 AC_PREREQ(2.59)                 dnl Minimum Autoconf version required.
27
28 dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
29 AM_INIT_AUTOMAKE([gnits 1.8 -Wno-portability dist-bzip2 no-dist-gzip])
30 AM_MAINTAINER_MODE
31
32 dnl Unique ID for this build.
33 MODVERSION="Build on $(hostname) $(date +%FT%R:%S%z)"
34 AC_SUBST([MODVERSION])
35 AC_DEFINE_UNQUOTED(MODVERSION, "$MODVERSION")
36 AH_TEMPLATE([MODVERSION], [Identifier for modules in the build.])
37
38 AC_CONFIG_SRCDIR([libelf/libelf.h])
39 AC_CONFIG_FILES([Makefile])
40 AC_CONFIG_HEADERS([config.h])
41
42 AC_CONFIG_MACRO_DIR([m4])
43 AC_CONFIG_FILES([m4/Makefile])
44
45 dnl The RPM spec file.  We substitute a few values in the file.
46 AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in])
47
48
49 AC_CANONICAL_HOST
50
51 AC_ARG_ENABLE([tls],
52 AS_HELP_STRING([--enable-tls], [enable use of thread local storage]),
53 use_tls=yes, use_tls=no)
54 AM_CONDITIONAL(USE_TLS, test "$use_tls" = yes)
55 AS_IF([test "$use_tls" = yes], [AC_DEFINE(USE_TLS)])
56
57 AH_TEMPLATE([USE_TLS], [Defined if thread local storage should be used.])
58
59 dnl Add all the languages for which translations are available.
60 ALL_LINGUAS=
61
62 AC_PROG_CC
63 AC_PROG_RANLIB
64 AC_PROG_YACC
65 AM_PROG_LEX
66
67 AC_CACHE_CHECK([for gcc with C99 support], ac_cv_c99, [dnl
68 old_CFLAGS="$CFLAGS"
69 CFLAGS="$CFLAGS -std=gnu99"
70 AC_COMPILE_IFELSE([dnl
71 int foo (int a) { for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; }],
72                   ac_cv_c99=yes, ac_cv_c99=no)
73 CFLAGS="$old_CFLAGS"])
74 AS_IF([test "x$ac_cv_c99" != xyes],
75       AC_MSG_ERROR([gcc with C99 support required]))
76
77 LOCALEDIR=$datadir
78 AC_SUBST(LOCALEDIR)
79 AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR")
80 AH_TEMPLATE([LOCALEDIR], [Directory to place translation files in.])
81
82 DATADIRNAME=$datadir
83 AC_SUBST(DATADIRNAME)
84
85 dnl This test must come as early as possible after the compiler configuration
86 dnl tests, because the choice of the file model can (in principle) affect
87 dnl whether functions and headers are available, whether they work, etc.
88 AC_SYS_LARGEFILE
89
90 dnl Enable the linker to be build as a native-only linker.  By default it
91 dnl can handle all architectures but this comes at a cost.  A native
92 dnl will be slightly faster, small, and has fewer dependencies.
93 native_ld=no
94 AC_ARG_ENABLE([generic],
95 AS_HELP_STRING([--disable-generic], [do not build generic linker]), [dnl
96 if test "$enable_generic" = no; then
97   case "$host_cpu" in
98    i?86)
99     AC_DEFINE(NATIVE_ELF, 32)
100     native_ld=yes
101     base_cpu=i386
102     ;;
103    *)
104     AC_MSG_ERROR([no machine-specific linker for this configuration available])
105     ;;
106   esac
107 fi])
108 AH_TEMPLATE([NATIVE_ELF],
109 [Define to 32 or 64 if a specific implementation is wanted.])
110 AM_CONDITIONAL(NATIVE_LD, test "$native_ld" = yes)
111 dnl The automake generated Makefile cannot deal with macros in the name
112 dnl of files if at any time there is no such file, even if the filename
113 dnl would not be used.
114 AS_IF([test -z "$base_cpu"], [base_cpu=none])
115 AC_SUBST(base_cpu)
116 dnl Support to work around automake's inflexible dependency generation.
117 dnl See src/Makefile.am for more information.
118 AM_CONDITIONAL(NEVER, false)
119
120 dnl Enable debugging via mudflap.  This option will cause most libraries
121 dnl to be built as archives which are statically linked into the applications.
122 dnl All code, as far as possible, is compiled instrumented to catch all
123 dnl the bugs valgrind is able to catch.
124 use_mudflap=no
125 AC_ARG_ENABLE([mudflap],
126 AS_HELP_STRING([--enable-mudflap],
127 [build binaries with mudflap instrumentation]), [dnl
128 if test "x$enable_mudflap" = xyes; then
129   # Check whether the compiler support -fmudflap.
130   old_CFLAGS="$CFLAGS"
131   CFLAGS="$CFLAGS -fmudflap"
132   AC_TRY_COMPILE([], [], use_mudflap=yes, use_mudflap=fail)
133   CFLAGS="$old_CFLAGS"
134 fi])
135 if test "$use_mudflap" = fail; then
136   AC_MSG_FAILURE([--enable-mudflap requires a compiler which understands this option])
137 fi
138 AM_CONDITIONAL(MUDFLAP, test "$use_mudflap" = yes)
139
140 dnl enable debugging of branch prediction.
141 use_debugpred=0
142 AC_ARG_ENABLE([debugpred],
143 AC_HELP_STRING([--enable-debugpred],
144 [build binaries with support to debug branch prediction]),
145 [use_debugpred=1], [use_debugpred=0])
146 AC_SUBST([DEBUGPRED], $use_debugpred)
147
148 dnl Enable gprof suport.
149 AC_ARG_ENABLE([gprof],
150 AC_HELP_STRING([--enable-gprof],
151 [build binaries with gprof support]), [use_gprof=yes], [use_gprof=no])
152 if test "$use_gprof" = yes; then
153   CFLAGS="$CFLAGS -pg"
154   LDFLAGS="$LDFLAGS -pg"
155 fi
156 AM_CONDITIONAL(GPROF, test "$use_gprof" = yes)
157
158 # Enable gcov suport.
159 AC_ARG_ENABLE([gcov],
160 AC_HELP_STRING([--enable-gcov],
161 [build binaries with gcov support]), [use_gcov=yes], [use_gcov=no])
162 if test "$use_gcov" = yes; then
163   CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
164   LDFLAGS="$LDFLAGS -fprofile-arcs"
165 fi
166 AM_CONDITIONAL(GCOV, test "$use_gcov" = yes)
167
168 AM_CONDITIONAL(BUILD_STATIC, [dnl
169 test "$use_mudflap" = yes -o "$use_gprof" = yes -o "$use_gcov" = yes])
170
171 AC_ARG_ENABLE([tests-rpath],
172 AC_HELP_STRING([--enable-tests-rpath], [build $ORIGIN-using rpath into tests]),
173                [tests_use_rpath=yes], [tests_use_rpath=no])
174 AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes)
175
176 LIBEBL_SUBDIR="$PACKAGE"
177 AC_ARG_ENABLE([libebl-subdir],
178 AS_HELP_STRING([--enable-libebl-subdir=DIR],
179 [install libebl_CPU modules in $(libdir)/DIR]), [dnl
180 LIBEBL_SUBDIR="$enable_libebl_subdir"])
181 AC_SUBST([LIBEBL_SUBDIR])
182 AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR")
183 AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.])
184
185 dnl The directories with content.
186
187 dnl Documentation.
188 dnl Commented out for now.
189 dnl AC_CONFIG_FILES([doc/Makefile])
190
191 dnl Support library.
192 AC_CONFIG_FILES([lib/Makefile])
193
194 dnl ELF library.
195 AC_CONFIG_FILES([libelf/Makefile])
196
197 dnl Higher-level ELF support library.
198 AC_CONFIG_FILES([libebl/Makefile])
199
200 dnl DWARF library.
201 AC_CONFIG_FILES([libdw/Makefile])
202
203 dnl Higher-level DWARF support library.
204 AC_CONFIG_FILES([libdwfl/Makefile])
205
206 dnl CPU handling library.
207 AC_CONFIG_FILES([libcpu/Makefile])
208
209 dnl Assembler library.
210 AM_CONDITIONAL(HAVE_LIBASM, true)dnl Used in tests/Makefile.am, which see.
211 AC_CONFIG_FILES([libasm/Makefile])
212
213 dnl CPU-specific backend libraries.
214 AC_CONFIG_FILES([backends/Makefile])
215
216 dnl Tools.
217 AC_CONFIG_FILES([src/Makefile po/Makefile.in])
218
219 dnl Test suite.
220 AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see.
221 AC_CONFIG_FILES([tests/Makefile])
222
223 # Get the definitions necessary to create the Makefiles in the po
224 # subdirectories.  This is a small subset of the gettext rules.
225 AC_SUBST(USE_NLS, yes)
226 AM_PO_SUBDIRS
227
228 dnl Appended to the config.h file.
229 dnl We hide all kinds of configuration magic in lib/eu-config.h.
230 AH_BOTTOM([#include <eu-config.h>])
231
232 dnl Version compatibility header.
233 AC_CONFIG_FILES([version.h:config/version.h.in])
234 AC_SUBST([eu_version])
235 case $PACKAGE_VERSION in
236 0.???) eu_version=${PACKAGE_VERSION#0.} ;;
237 ?.???) eu_version=${PACKAGE_VERSION/./} ;;
238 ?.??)  eu_version=${PACKAGE_VERSION/./}0 ;;
239 ?.?)   eu_version=${PACKAGE_VERSION/./}00 ;;
240 *)     AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
241 esac
242
243 AC_OUTPUT