Fix exit status.
[deliverable/binutils-gdb.git] / gold / configure.ac
CommitLineData
bae7f79e
ILT
1dnl Process this file with autoconf to produce a configure script.
2
3AC_PREREQ(2.59)
8486ee48
ILT
4
5AC_INIT(gold, 0.1)
6AC_CONFIG_SRCDIR(gold.cc)
bae7f79e
ILT
7
8AC_CANONICAL_TARGET
9
8486ee48 10AM_INIT_AUTOMAKE
bae7f79e
ILT
11
12AM_CONFIG_HEADER(config.h:config.in)
13
ad2d6943
ILT
14AC_ARG_WITH(sysroot,
15[ --with-sysroot[=DIR] search for usr/lib et al within DIR],
16[sysroot=$withval], [sysroot=no])
17
18if test "$sysroot" = "yes"; then
19 sysroot='${exec_prefix}/${target_alias}/sys-root'
20elif test "$sysroot" = "no"; then
21 sysroot=
22fi
23
24sysroot_relocatable=0
25if test -n "$sysroot"; then
26 case "sysroot" in
27 "${prefix}" | "${prefix}/"* | \
28 "${exec_prefix}" | "${exec_prefix}/"* | \
29 '${prefix}' | '${prefix}/'*| \
30 '${exec_prefix}' | '${exec_prefix}/'*)
31 sysroot_relocatable=1
32 ;;
33 esac
34fi
35
36AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT, "$sysroot",
37 [System root for target files])
38AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT_RELOCATABLE, $sysroot_relocatable,
39 [Whether the system root can be relocated])
40
193a53d9
ILT
41AC_ARG_ENABLE([targets],
42[ --enable-targets alternative target configurations],
43[case "${enableval}" in
44 yes | "")
45 AC_MSG_ERROR([--enable-targets option must specify target names or 'all'])
46 ;;
47 no)
48 enable_targets=
49 ;;
50 *)
51 enable_targets=$enableval
52 ;;
53esac],
54[# For now, enable all targets by default
55 enable_targets=all
56])
57
58# Canonicalize the enabled targets.
59if test -n "$enable_targets"; then
60 for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
61 result=`$ac_config_sub $targ 2>/dev/null`
62 if test -n "$result"; then
63 canon_targets="$canon_targets $result"
64 else
65 # Permit unrecognized target names, like "all".
66 canon_targets="$canon_targets $targ"
67 fi
68 done
69fi
70
71# See which specific instantiations we need.
6df6da4a
ILT
72targetobjs=
73all_targets=
193a53d9
ILT
74for targ in $target $canon_targets; do
75 targ_32_little=
76 targ_32_big=
77 targ_64_little=
78 targ_64_big=
79 if test "$targ" = "all"; then
80 targ_32_little=yes
81 targ_32_big=yes
82 targ_64_little=yes
83 targ_64_big=yes
6df6da4a 84 all_targets=yes
193a53d9
ILT
85 else
86 case "$targ" in
6df6da4a
ILT
87 i?86-*)
88 targ_32_little=yes
89 targetobjs="$targetobjs i386.\$(OBJEXT)"
90 ;;
91 x86_64-*)
92 targ_64_little=yes
93 targetobjs="$targetobjs x86_64.\$(OBJEXT)"
94 ;;
193a53d9 95 *)
6df6da4a 96 AC_MSG_ERROR("unsupported target $targ")
193a53d9
ILT
97 ;;
98 esac
99 fi
100done
101
102if test -n "$targ_32_little"; then
103 AC_DEFINE(HAVE_TARGET_32_LITTLE, 1,
104 [Define to support 32-bit little-endian targets])
105fi
106if test -n "$targ_32_big"; then
107 AC_DEFINE(HAVE_TARGET_32_BIG, 1,
108 [Define to support 32-bit big-endian targets])
109fi
110if test -n "$targ_64_little"; then
111 AC_DEFINE(HAVE_TARGET_64_LITTLE, 1,
112 [Define to support 64-bit little-endian targets])
113fi
114if test -n "$targ_64_big"; then
115 AC_DEFINE(HAVE_TARGET_64_BIG, 1,
116 [Define to support 64-bit big-endian targets])
117fi
118
6df6da4a
ILT
119if test -n "$all_targets"; then
120 TARGETOBJS='$(ALL_TARGETOBJS)'
121else
122 TARGETOBJS="$targetobjs"
123fi
124AC_SUBST(TARGETOBJS)
125
bae7f79e
ILT
126AC_PROG_CC
127AC_PROG_CXX
dbe717ef 128AC_PROG_YACC
5a6f7e2d 129AC_PROG_RANLIB
bae7f79e 130AC_PROG_INSTALL
537b5f51 131AC_PROG_LN_S
bae7f79e
ILT
132ZW_GNU_GETTEXT_SISTER_DIR
133AM_PO_SUBDIRS
134
92e059d8
ILT
135AC_C_BIGENDIAN
136
bae7f79e
ILT
137AC_EXEEXT
138
537b5f51
ILT
139AM_CONDITIONAL(NATIVE_LINKER,
140 test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
141AM_CONDITIONAL(GCC, test "$GCC" = yes)
142
63402fe4
ILT
143dnl Some architectures do not support taking pointers of functions
144dnl defined in shared libraries except in -fPIC mode. We need to
145dnl tell the unittest framework if we're compiling for one of those
146dnl targets, so it doesn't try to run the tests that do that.
147AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
148 case $target_cpu in
149 i?86) true;;
150 x86_64) false;;
151 *) true;;
152 esac])
153
6eee141f 154dnl Test for __thread support.
097ec620
ILT
155AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],
156[AC_COMPILE_IFELSE([__thread int i = 1;],
157[gold_cv_c_thread=yes], [gold_cv_c_thread=no])])
158
159AM_CONDITIONAL(TLS, test "$gold_cv_c_thread" = "yes")
160
161dnl On GNU/Linux TLS in static programs only works when using glibc
162dnl 2.4 or later.
163AC_CACHE_CHECK([for glibc >= 2.4], [gold_cv_lib_glibc24],
164[AC_COMPILE_IFELSE([
165#include <features.h>
166#if !defined __GLIBC__
167error
168#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4)
169error
170#endif
171], [gold_cv_lib_glibc24=yes], [gold_cv_lib_glibc24=no])])
172
173AM_CONDITIONAL(STATIC_TLS, test "$gold_cv_lib_glibc24" = "yes")
6eee141f 174
bae7f79e
ILT
175AM_BINUTILS_WARNINGS
176
177WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
178AC_SUBST(WARN_CXXFLAGS)
179
180dnl Force support for large files by default. This may need to be
181dnl host dependent. If build == host, we can check getconf LFS_CFLAGS.
182LFS_CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
183AC_SUBST(LFS_CXXFLAGS)
184
82dcae9d
ILT
185AC_REPLACE_FUNCS(pread)
186
54dc6425 187AC_LANG_PUSH(C++)
d288e464 188
54dc6425
ILT
189AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
190AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
e44fcf3b 191AC_CHECK_FUNCS(mallinfo)
d288e464
ILT
192
193dnl Test whether the compiler can specify a member templates to call.
097ec620
ILT
194AC_CACHE_CHECK([template member calls], [gold_cv_c_membertemplates],
195[AC_COMPILE_IFELSE([
d288e464
ILT
196class c { public: template<int i> void fn(); };
197template<int i> void foo(c cv) { cv.fn<i>(); }
198template void foo<1>(c cv);],
097ec620
ILT
199[gold_cv_c_membertemplates=yes], [gold_cv_c_membertemplates=no])])
200
201if test "$gold_cv_c_membertemplates" = "yes"; then
202 AC_DEFINE(HAVE_MEMBER_TEMPLATE_SPECIFICATIONS, [],
203 [Whether the C++ compiler can call a template member with no arguments])
204fi
d288e464 205
54dc6425
ILT
206AC_LANG_POP(C++)
207
bae7f79e
ILT
208AM_MAINTAINER_MODE
209
5a6f7e2d 210AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)
This page took 0.106124 seconds and 4 git commands to generate.