Add support for local dynamic relocations.
[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)
4AC_INIT
5AC_CONFIG_SRCDIR([gold.cc])
6
7AC_CANONICAL_TARGET
8
9AM_INIT_AUTOMAKE(gold, 0.1)
10
11AM_CONFIG_HEADER(config.h:config.in)
12
ad2d6943
ILT
13AC_ARG_WITH(sysroot,
14[ --with-sysroot[=DIR] search for usr/lib et al within DIR],
15[sysroot=$withval], [sysroot=no])
16
17if test "$sysroot" = "yes"; then
18 sysroot='${exec_prefix}/${target_alias}/sys-root'
19elif test "$sysroot" = "no"; then
20 sysroot=
21fi
22
23sysroot_relocatable=0
24if 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
33fi
34
35AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT, "$sysroot",
36 [System root for target files])
37AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT_RELOCATABLE, $sysroot_relocatable,
38 [Whether the system root can be relocated])
39
193a53d9
ILT
40AC_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 ;;
52esac],
53[# For now, enable all targets by default
54 enable_targets=all
55])
56
57# Canonicalize the enabled targets.
58if 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
68fi
69
70# See which specific instantiations we need.
6df6da4a
ILT
71targetobjs=
72all_targets=
193a53d9
ILT
73for 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
6df6da4a 83 all_targets=yes
193a53d9
ILT
84 else
85 case "$targ" in
6df6da4a
ILT
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 ;;
193a53d9 94 *)
6df6da4a 95 AC_MSG_ERROR("unsupported target $targ")
193a53d9
ILT
96 ;;
97 esac
98 fi
99done
100
101if test -n "$targ_32_little"; then
102 AC_DEFINE(HAVE_TARGET_32_LITTLE, 1,
103 [Define to support 32-bit little-endian targets])
104fi
105if test -n "$targ_32_big"; then
106 AC_DEFINE(HAVE_TARGET_32_BIG, 1,
107 [Define to support 32-bit big-endian targets])
108fi
109if test -n "$targ_64_little"; then
110 AC_DEFINE(HAVE_TARGET_64_LITTLE, 1,
111 [Define to support 64-bit little-endian targets])
112fi
113if test -n "$targ_64_big"; then
114 AC_DEFINE(HAVE_TARGET_64_BIG, 1,
115 [Define to support 64-bit big-endian targets])
116fi
117
6df6da4a
ILT
118if test -n "$all_targets"; then
119 TARGETOBJS='$(ALL_TARGETOBJS)'
120else
121 TARGETOBJS="$targetobjs"
122fi
123AC_SUBST(TARGETOBJS)
124
bae7f79e
ILT
125AC_PROG_CC
126AC_PROG_CXX
dbe717ef 127AC_PROG_YACC
5a6f7e2d 128AC_PROG_RANLIB
bae7f79e 129AC_PROG_INSTALL
537b5f51 130AC_PROG_LN_S
bae7f79e
ILT
131ZW_GNU_GETTEXT_SISTER_DIR
132AM_PO_SUBDIRS
133
92e059d8
ILT
134AC_C_BIGENDIAN
135
bae7f79e
ILT
136AC_EXEEXT
137
537b5f51
ILT
138AM_CONDITIONAL(NATIVE_LINKER,
139 test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
140AM_CONDITIONAL(GCC, test "$GCC" = yes)
141
63402fe4
ILT
142dnl Some architectures do not support taking pointers of functions
143dnl defined in shared libraries except in -fPIC mode. We need to
144dnl tell the unittest framework if we're compiling for one of those
145dnl targets, so it doesn't try to run the tests that do that.
146AM_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
bae7f79e
ILT
153AM_BINUTILS_WARNINGS
154
155WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
156AC_SUBST(WARN_CXXFLAGS)
157
158dnl Force support for large files by default. This may need to be
159dnl host dependent. If build == host, we can check getconf LFS_CFLAGS.
160LFS_CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
161AC_SUBST(LFS_CXXFLAGS)
162
82dcae9d
ILT
163AC_REPLACE_FUNCS(pread)
164
54dc6425 165AC_LANG_PUSH(C++)
d288e464 166
54dc6425
ILT
167AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
168AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
d288e464
ILT
169
170dnl Test whether the compiler can specify a member templates to call.
171AC_COMPILE_IFELSE([
172class c { public: template<int i> void fn(); };
173template<int i> void foo(c cv) { cv.fn<i>(); }
174template void foo<1>(c cv);],
175[AC_DEFINE(HAVE_MEMBER_TEMPLATE_SPECIFICATIONS, [],
176 [Whether the C++ compiler can call a template member with no arguments])])
177
54dc6425
ILT
178AC_LANG_POP(C++)
179
bae7f79e
ILT
180AM_MAINTAINER_MODE
181
5a6f7e2d 182AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)
This page took 0.081903 seconds and 4 git commands to generate.