Commit | Line | Data |
---|---|---|
bae7f79e ILT |
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 | ||
ad2d6943 ILT |
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 | ||
193a53d9 ILT |
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. | |
6df6da4a ILT |
71 | targetobjs= |
72 | all_targets= | |
193a53d9 ILT |
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 | |
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 | |
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 | ||
6df6da4a ILT |
118 | if test -n "$all_targets"; then |
119 | TARGETOBJS='$(ALL_TARGETOBJS)' | |
120 | else | |
121 | TARGETOBJS="$targetobjs" | |
122 | fi | |
123 | AC_SUBST(TARGETOBJS) | |
124 | ||
bae7f79e ILT |
125 | AC_PROG_CC |
126 | AC_PROG_CXX | |
dbe717ef | 127 | AC_PROG_YACC |
5a6f7e2d | 128 | AC_PROG_RANLIB |
bae7f79e | 129 | AC_PROG_INSTALL |
537b5f51 | 130 | AC_PROG_LN_S |
bae7f79e ILT |
131 | ZW_GNU_GETTEXT_SISTER_DIR |
132 | AM_PO_SUBDIRS | |
133 | ||
92e059d8 ILT |
134 | AC_C_BIGENDIAN |
135 | ||
bae7f79e ILT |
136 | AC_EXEEXT |
137 | ||
537b5f51 ILT |
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 | ||
63402fe4 ILT |
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 | ||
bae7f79e ILT |
153 | AM_BINUTILS_WARNINGS |
154 | ||
155 | WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'` | |
156 | AC_SUBST(WARN_CXXFLAGS) | |
157 | ||
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) | |
162 | ||
82dcae9d ILT |
163 | AC_REPLACE_FUNCS(pread) |
164 | ||
54dc6425 | 165 | AC_LANG_PUSH(C++) |
d288e464 | 166 | |
54dc6425 ILT |
167 | AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map) |
168 | AC_CHECK_HEADERS(ext/hash_map ext/hash_set) | |
d288e464 ILT |
169 | |
170 | dnl Test whether the compiler can specify a member templates to call. | |
171 | AC_COMPILE_IFELSE([ | |
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])]) | |
177 | ||
54dc6425 ILT |
178 | AC_LANG_POP(C++) |
179 | ||
bae7f79e ILT |
180 | AM_MAINTAINER_MODE |
181 | ||
5a6f7e2d | 182 | AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in) |