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, [
155 WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
156 AC_SUBST(WARN_CXXFLAGS)
158 dnl Force support for large files by default. This may need to be
159 dnl host dependent. If build == host, we can check getconf LFS_CFLAGS.
160 LFS_CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
161 AC_SUBST(LFS_CXXFLAGS)
163 AC_REPLACE_FUNCS(pread)
167 AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
168 AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
170 dnl Test whether the compiler can specify a member templates to call.
172 class c { public: template<int i> void fn(); };
173 template<int i> void foo(c cv) { cv.fn<i>(); }
174 template 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])])
182 AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)