1 dnl Process this file with autoconf to produce a configure script.
5 AC_CONFIG_SRCDIR([gold.cc])
9 AM_INIT_AUTOMAKE(gold, 0.1)
11 AM_CONFIG_HEADER(config.h:config.in)
14 [ --with-sysroot[=DIR] search for usr/lib et al within DIR],
15 [sysroot=$withval], [sysroot=no])
17 if test "$sysroot" = "yes"; then
18 sysroot='${exec_prefix}/${target_alias}/sys-root'
19 elif test "$sysroot" = "no"; then
24 if test -n "$sysroot"; then
26 "${prefix}" | "${prefix}/"* | \
27 "${exec_prefix}" | "${exec_prefix}/"* | \
28 '${prefix}' | '${prefix}/'*| \
29 '${exec_prefix}' | '${exec_prefix}/'*)
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])
40 AC_ARG_ENABLE([targets],
41 [ --enable-targets alternative target configurations],
42 [case "${enableval}" in
44 AC_MSG_ERROR([--enable-targets option must specify target names or 'all'])
50 enable_targets=$enableval
53 [# For now, enable all targets by default
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"
64 # Permit unrecognized target names, like "all".
65 canon_targets="$canon_targets $targ"
70 # See which specific instantiations we need.
73 for targ in $target $canon_targets; do
78 if test "$targ" = "all"; then
88 targetobjs="$targetobjs i386.\$(OBJEXT)"
92 targetobjs="$targetobjs x86_64.\$(OBJEXT)"
95 AC_MSG_ERROR("unsupported target $targ")
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])
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])
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])
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])
118 if test -n "$all_targets"; then
119 TARGETOBJS='$(ALL_TARGETOBJS)'
121 TARGETOBJS="$targetobjs"
131 ZW_GNU_GETTEXT_SISTER_DIR
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)
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, [
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")
159 WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
160 AC_SUBST(WARN_CXXFLAGS)
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)
167 AC_REPLACE_FUNCS(pread)
171 AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
172 AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
174 dnl Test whether the compiler can specify a member templates to call.
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])])
186 AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)