* elf.c (elfcore_grok_prxfpreg): Fix comment typo.
[binutils.git] / gold / configure.ac
blob0e0bc7ef0d79af22029b9e36a60d6d6dc99accc0
1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ(2.59)
5 AC_INIT(gold, 0.1)
6 AC_CONFIG_SRCDIR(gold.cc)
8 AC_CANONICAL_TARGET
10 AM_INIT_AUTOMAKE
12 AM_CONFIG_HEADER(config.h:config.in)
14 AC_ARG_WITH(sysroot,
15 [  --with-sysroot[=DIR]    search for usr/lib et al within DIR],
16 [sysroot=$withval], [sysroot=no])
18 if test "$sysroot" = "yes"; then
19   sysroot='${exec_prefix}/${target_alias}/sys-root'
20 elif test "$sysroot" = "no"; then
21   sysroot=
24 sysroot_relocatable=0
25 if 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
36 AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT, "$sysroot",
37   [System root for target files])
38 AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT_RELOCATABLE, $sysroot_relocatable,
39   [Whether the system root can be relocated])
41 AC_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     ;;
53 esac],
54 [# For now, enable all targets by default
55  enable_targets=all
58 # Canonicalize the enabled targets.
59 if 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
71 # See which specific instantiations we need.
72 targetobjs=
73 all_targets=
74 for 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
84     all_targets=yes
85   else
86     case "$targ" in
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       ;;
95     *)
96       AC_MSG_ERROR("unsupported target $targ")
97       ;;
98     esac
99   fi
100 done
102 if test -n "$targ_32_little"; then
103   AC_DEFINE(HAVE_TARGET_32_LITTLE, 1,
104               [Define to support 32-bit little-endian targets])
106 if test -n "$targ_32_big"; then
107   AC_DEFINE(HAVE_TARGET_32_BIG, 1,
108               [Define to support 32-bit big-endian targets])
110 if test -n "$targ_64_little"; then
111   AC_DEFINE(HAVE_TARGET_64_LITTLE, 1,
112               [Define to support 64-bit little-endian targets])
114 if test -n "$targ_64_big"; then
115   AC_DEFINE(HAVE_TARGET_64_BIG, 1,
116               [Define to support 64-bit big-endian targets])
119 if test -n "$all_targets"; then
120   TARGETOBJS='$(ALL_TARGETOBJS)'
121 else
122   TARGETOBJS="$targetobjs"
124 AC_SUBST(TARGETOBJS)
126 AC_PROG_CC
127 AC_PROG_CXX
128 AC_PROG_YACC
129 AC_PROG_RANLIB
130 AC_PROG_INSTALL
131 AC_PROG_LN_S
132 ZW_GNU_GETTEXT_SISTER_DIR
133 AM_PO_SUBDIRS
135 AC_C_BIGENDIAN
137 AC_EXEEXT
139 AM_CONDITIONAL(NATIVE_LINKER,
140   test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
141 AM_CONDITIONAL(GCC, test "$GCC" = yes)
143 dnl Some architectures do not support taking pointers of functions
144 dnl defined in shared libraries except in -fPIC mode.  We need to
145 dnl tell the unittest framework if we're compiling for one of those
146 dnl targets, so it doesn't try to run the tests that do that.
147 AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
148   case $target_cpu in
149     i?86) true;;
150     x86_64) false;;
151     *) true;;
152   esac])
154 dnl Test for __thread support.
155 AC_COMPILE_IFELSE([__thread int i = 1;], [tls=yes], [tls=no])
156 AM_CONDITIONAL(TLS, test "$tls" = "yes")
158 AM_BINUTILS_WARNINGS
160 WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
161 AC_SUBST(WARN_CXXFLAGS)
163 dnl Force support for large files by default.  This may need to be
164 dnl host dependent.  If build == host, we can check getconf LFS_CFLAGS.
165 LFS_CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
166 AC_SUBST(LFS_CXXFLAGS)
168 AC_REPLACE_FUNCS(pread)
170 AC_LANG_PUSH(C++)
172 AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
173 AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
175 dnl Test whether the compiler can specify a member templates to call.
176 AC_COMPILE_IFELSE([
177 class c { public: template<int i> void fn(); };
178 template<int i> void foo(c cv) { cv.fn<i>(); }
179 template void foo<1>(c cv);],
180 [AC_DEFINE(HAVE_MEMBER_TEMPLATE_SPECIFICATIONS, [],
181   [Whether the C++ compiler can call a template member with no arguments])])
183 AC_LANG_POP(C++)
185 AM_MAINTAINER_MODE
187 AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)