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