[PATCH] Add micromips support to the MIPS simulator
[deliverable/binutils-gdb.git] / ld / configure.ac
CommitLineData
252b5132
RH
1dnl Process this file with autoconf to produce a configure script
2dnl
b90efa5b 3dnl Copyright (C) 2012-2015 Free Software Foundation, Inc.
5bf135a7
NC
4dnl
5dnl This file is free software; you can redistribute it and/or modify
6dnl it under the terms of the GNU General Public License as published by
7dnl the Free Software Foundation; either version 3 of the License, or
8dnl (at your option) any later version.
995da1ff 9dnl
5bf135a7
NC
10dnl This program is distributed in the hope that it will be useful,
11dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13dnl GNU General Public License for more details.
995da1ff 14dnl
5bf135a7
NC
15dnl You should have received a copy of the GNU General Public License
16dnl along with this program; see the file COPYING3. If not see
17dnl <http://www.gnu.org/licenses/>.
18dnl
19
da594c4a 20AC_PREREQ(2.59)
2e98a7bd
AM
21m4_include([../bfd/version.m4])
22AC_INIT([ld], BFD_VERSION)
da594c4a 23AC_CONFIG_SRCDIR(ldmain.c)
252b5132 24
da594c4a 25AC_CANONICAL_TARGET
02ecc8e9 26AC_CANONICAL_BUILD
5d64ca4e 27AC_ISC_POSIX
252b5132 28
2e98a7bd 29AM_INIT_AUTOMAKE
64ac50ac 30AM_MAINTAINER_MODE
252b5132 31
b879806f
AM
32AC_PROG_CC
33AC_PROG_CXX
68880f31 34AC_PROG_GREP
b879806f
AM
35AC_GNU_SOURCE
36AC_USE_SYSTEM_EXTENSIONS
37AC_PROG_INSTALL
38
39LT_INIT
40ACX_LARGEFILE
41
8e523c23 42AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval)
252b5132
RH
43AC_ARG_ENABLE(targets,
44[ --enable-targets alternative target configurations],
45[case "${enableval}" in
da594c4a 46 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
47 ;;
48 no) enable_targets= ;;
49 *) enable_targets=$enableval ;;
50esac])dnl
51AC_ARG_ENABLE(64-bit-bfd,
52[ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)],
53[case "${enableval}" in
54 yes) want64=true ;;
55 no) want64=false ;;
56 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
57esac],[want64=false])dnl
58
9c8ebd6a
DJ
59AC_ARG_WITH(sysroot,
60[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
61[
62 case ${with_sysroot} in
715d1656 63 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
9c8ebd6a
DJ
64 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
65 esac
66
67 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
68 use_sysroot=yes
69
fa1e8d8e
RS
70 if test "x$prefix" = xNONE; then
71 test_prefix=/usr/local
72 else
73 test_prefix=$prefix
74 fi
9c8ebd6a 75 if test "x$exec_prefix" = xNONE; then
fa1e8d8e 76 test_exec_prefix=$test_prefix
9c8ebd6a 77 else
fa1e8d8e 78 test_exec_prefix=$exec_prefix
9c8ebd6a
DJ
79 fi
80 case ${TARGET_SYSTEM_ROOT} in
715d1656 81 "${test_prefix}"|"${test_prefix}/"*|\
fa1e8d8e
RS
82 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
83 '${prefix}'|'${prefix}/'*|\
715d1656 84 '${exec_prefix}'|'${exec_prefix}/'*)
9c8ebd6a
DJ
85 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
86 TARGET_SYSTEM_ROOT_DEFINE="$t"
87 ;;
88 esac
89], [
90 use_sysroot=no
91 TARGET_SYSTEM_ROOT=
92 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
93])
94AC_SUBST(use_sysroot)
95AC_SUBST(TARGET_SYSTEM_ROOT)
96AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
97
4fda8867
NC
98dnl Use --enable-gold to decide if this linker should be the default.
99dnl "install_as_default" is set to false if gold is the default linker.
100dnl "installed_linker" is the installed BFD linker name.
101AC_ARG_ENABLE(gold,
c7791212 102[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
bf9ef603 103[case "${enableval}" in
c7791212 104 default)
4fda8867
NC
105 install_as_default=no
106 installed_linker=ld.bfd
107 ;;
c7791212 108 yes|no)
4fda8867
NC
109 install_as_default=yes
110 installed_linker=ld.bfd
111 ;;
112 *)
113 AC_MSG_ERROR([invalid --enable-gold argument])
114 ;;
115 esac],
c7791212
NC
116[install_as_default=yes
117 installed_linker=ld.bfd])
4fda8867
NC
118AC_SUBST(install_as_default)
119AC_SUBST(installed_linker)
120
7fb9f789
NC
121AC_ARG_ENABLE([got],
122AS_HELP_STRING([--enable-got=<type>],
123 [GOT handling scheme (target, single, negative, multigot)]),
124[case "${enableval}" in
125 target | single | negative | multigot) got_handling=$enableval ;;
da594c4a 126 *) AC_MSG_ERROR(bad value ${enableval} for --enable-got option) ;;
7fb9f789
NC
127esac],
128[got_handling=target])
129
130case "${got_handling}" in
131 target)
132 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_TARGET_DEFAULT],
133 [Define to choose default GOT handling scheme]) ;;
134 single)
135 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_SINGLE],
136 [Define to choose default GOT handling scheme]) ;;
137 negative)
138 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_NEGATIVE],
139 [Define to choose default GOT handling scheme]) ;;
140 multigot)
141 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_MULTIGOT],
142 [Define to choose default GOT handling scheme]) ;;
da594c4a 143 *) AC_MSG_ERROR(bad value ${got_handling} for --enable-got option) ;;
7fb9f789
NC
144esac
145
502bdb00 146AM_BINUTILS_WARNINGS
a2d91340 147
44350750
NC
148AM_LC_MESSAGES
149
da594c4a 150AC_CONFIG_HEADERS([config.h:config.in])
252b5132 151
df7b86aa
NC
152# PR 14072
153AH_VERBATIM([00_CONFIG_H_CHECK],
154[/* Check that config.h is #included before system headers
155 (this works only for glibc, but that should be enough). */
d17dce55 156#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
157# error config.h must be #included before system headers
158#endif
159#define __CONFIG_H__ 1])
160
252b5132
RH
161if test -z "$target" ; then
162 AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
163fi
164if test -z "$host" ; then
165 AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
166fi
167
168# host-specific stuff:
169
63a79b61 170ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg it uk"
20e95c23
DJ
171ZW_GNU_GETTEXT_SISTER_DIR
172AM_PO_SUBDIRS
252b5132
RH
173
174AC_EXEEXT
175
176AC_PROG_YACC
177AM_PROG_LEX
178
179AM_MAINTAINER_MODE
d5fbea21 180AM_CONDITIONAL(GENINSRC_NEVER, false)
eccbf555 181ACX_PROG_CMP_IGNORE_INITIAL
252b5132
RH
182
183. ${srcdir}/configure.host
184
185AC_SUBST(HDEFINES)
186AC_SUBST(HOSTING_CRT0)
6738cadc 187AC_SUBST(HOSTING_SCRT0)
252b5132 188AC_SUBST(HOSTING_LIBS)
b27caf75 189AC_SUBST(HOSTING_SLIBS)
252b5132
RH
190AC_SUBST(NATIVE_LIB_DIRS)
191
58797674 192AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h locale.h sys/param.h)
5d3236ee 193AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h)
208a4923 194ACX_HEADER_STRING
44350750 195AC_CHECK_FUNCS(glob mkstemp realpath sbrk setlocale waitpid)
5d3236ee 196AC_CHECK_FUNCS(open lseek close)
252b5132
RH
197AC_HEADER_DIRENT
198
2aec968d
L
199dnl AC_CHECK_HEADERS(sys/mman.h)
200AC_FUNC_MMAP
201
b879806f
AM
202AC_SEARCH_LIBS([dlopen], [dl])
203AM_CONDITIONAL([ENABLE_PLUGINS], [test x$plugins = xyes])
5d3236ee 204
02ecc8e9
L
205AC_ARG_ENABLE(initfini-array,
206 [ --enable-initfini-array use .init_array/.fini_array sections],
207 [], [
208AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
209 gcc_cv_initfini_array, [dnl
210 if test "x${build}" = "x${target}" ; then
211 AC_RUN_IFELSE([AC_LANG_SOURCE([
212static int x = -1;
213int main (void) { return x; }
214int foo (void) { x = 0; }
215int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;])],
216 [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no],
217 [gcc_cv_initfini_array=no])
218 else
219 gcc_cv_initfini_array=no
220 fi])
221 enable_initfini_array=$gcc_cv_initfini_array
222])
223AC_SUBST(enable_initfini_array)
224if test $enable_initfini_array = yes; then
225 AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
226 [Define .init_array/.fini_array sections are available and working.])
227fi
228
34875e64
NC
229AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
230AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
da594c4a 231[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
34875e64
NC
232ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)])
233AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h)
234if test $ld_cv_decl_getopt_unistd_h = yes; then
235 AC_DEFINE([HAVE_DECL_GETOPT], 1,
236 [Is the prototype for getopt in <unistd.h> in the expected format?])
237fi
bf9ef603 238
252b5132
RH
239BFD_BINARY_FOPEN
240
502bdb00 241AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ])
252b5132 242
597e2591
ILT
243# When converting linker scripts into strings for use in emulation
244# files, use astring.sed if the compiler supports ANSI string
245# concatenation, or ostring.sed otherwise. This is to support the
246# broken Microsoft MSVC compiler, which limits the length of string
247# constants, while still supporting pre-ANSI compilers which do not
248# support string concatenation.
e4dabd0e 249AC_MSG_CHECKING([whether ANSI C string concatenation works])
597e2591 250AC_CACHE_VAL(ld_cv_string_concatenation,
da594c4a
AM
251[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [char *a = "a" "a";])],
252 ld_cv_string_concatenation=yes,
253 ld_cv_string_concatenation=no)])
e4dabd0e
AS
254AC_MSG_RESULT($ld_cv_string_concatenation)
255if test "$ld_cv_string_concatenation" = "yes"; then
597e2591
ILT
256 STRINGIFY=astring.sed
257else
258 STRINGIFY=ostring.sed
259fi
260AC_SUBST(STRINGIFY)
261
252b5132
RH
262# target-specific stuff:
263
264all_targets=
265EMUL=
266all_emuls=
267all_emul_extras=
ba2be581 268all_libpath=
252b5132
RH
269
270dnl We need to get an arbitrary number of tdir definitions into
271dnl Makefile. We can't do it using AC_SUBST, because autoconf does
272dnl not permit literal newlines in an AC_SUBST variables. So we use a
273dnl file.
274rm -f tdirs
275
bf9ef603 276# If the host is 64-bit, then we enable 64-bit targets by default.
1110793a 277# This is consistent with what ../bfd/configure.ac does.
bf9ef603
RM
278if test x${want64} = xfalse; then
279 AC_CHECK_SIZEOF(void *)
280 if test "x${ac_cv_sizeof_void_p}" = "x8"; then
281 want64=true
282 fi
283fi
284
c58212ea
L
285elf_list_options=FALSE
286elf_shlib_list_options=FALSE
287elf_plt_unwind_list_options=FALSE
252b5132
RH
288for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
289do
290 if test "$targ_alias" = "all"; then
291 all_targets=true
82d8e420
L
292 elf_list_options=TRUE
293 elf_shlib_list_options=TRUE
294 elf_plt_unwind_list_options=TRUE
252b5132
RH
295 else
296 # Canonicalize the secondary target names.
42ecbf5e 297 result=`$ac_config_sub $targ_alias 2>/dev/null`
252b5132
RH
298 if test -n "$result"; then
299 targ=$result
300 else
301 targ=$targ_alias
302 fi
303
304 . ${srcdir}/configure.tgt
305
306 if test "$targ" = "$target"; then
307 EMUL=$targ_emul
308 fi
309
314e9a4e
L
310 if test x${want64} = xfalse; then
311 . ${srcdir}/../bfd/config.bfd
312 fi
313
534d3119
L
314 if test x${want64} = xtrue; then
315 targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
316 targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
317 fi
318
3336653a 319 for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
252b5132 320 case " $all_emuls " in
8c3fff59
AM
321 *" e${i}.o "*) ;;
322 *)
323 all_emuls="$all_emuls e${i}.o"
324 eval result=\$tdir_$i
325 test -z "$result" && result=$targ_alias
326 echo tdir_$i=$result >> tdirs
c58212ea
L
327 case "${i}" in
328 *elf*)
329 elf_list_options=TRUE
68880f31
CLT
330 ;;
331 *)
332 if $GREP "TEMPLATE_NAME=elf32" ${srcdir}/emulparams/${i}.sh >/dev/null 2>/dev/null; then
333 elf_list_options=TRUE
334 fi
335 ;;
336 esac
337 if test "$elf_list_options" = "TRUE"; then
c58212ea
L
338 . ${srcdir}/emulparams/${i}.sh
339 if test x${GENERATE_SHLIB_SCRIPT} = xyes; then
340 elf_shlib_list_options=TRUE
341 fi
342 if test x${PLT_UNWIND} = xyes; then
343 elf_plt_unwind_list_options=TRUE
344 fi
68880f31 345 fi
c58212ea 346 ;;
252b5132
RH
347 esac
348 done
349
ba2be581 350 for i in $targ_emul $targ_extra_libpath; do
3336653a
RH
351 case " $all_libpath " in
352 *" ${i} "*) ;;
353 *)
ba2be581
RH
354 if test -z "$all_libpath"; then
355 all_libpath=${i}
356 else
357 all_libpath="$all_libpath ${i}"
358 fi
3336653a
RH
359 ;;
360 esac
361 done
362
252b5132
RH
363 for i in $targ_extra_ofiles; do
364 case " $all_emul_extras " in
365 *" ${i} "*) ;;
366 *)
367 all_emul_extras="$all_emul_extras ${i}"
368 ;;
369 esac
370 done
5063daf7 371
252b5132
RH
372 fi
373done
374
c58212ea
L
375AC_SUBST(elf_list_options)
376AC_SUBST(elf_shlib_list_options)
377AC_SUBST(elf_plt_unwind_list_options)
252b5132
RH
378AC_SUBST(EMUL)
379
380TDIRS=tdirs
381AC_SUBST_FILE(TDIRS)
382
252b5132
RH
383if test x${all_targets} = xtrue; then
384 if test x${want64} = xtrue; then
385 EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
9d069ac3 386 EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
252b5132
RH
387 else
388 EMULATION_OFILES='$(ALL_EMULATIONS)'
9d069ac3 389 EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)'
252b5132 390 fi
252b5132
RH
391else
392 EMULATION_OFILES=$all_emuls
393 EMUL_EXTRA_OFILES=$all_emul_extras
394fi
395AC_SUBST(EMULATION_OFILES)
396AC_SUBST(EMUL_EXTRA_OFILES)
8e523c23 397AC_SUBST(LIB_PATH)
252b5132 398
3336653a
RH
399EMULATION_LIBPATH=$all_libpath
400AC_SUBST(EMULATION_LIBPATH)
401
252b5132
RH
402if test x${enable_static} = xno; then
403 TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
404else
405 TESTBFDLIB="../bfd/.libs/libbfd.a"
406fi
407AC_SUBST(TESTBFDLIB)
408
93a6d436
JL
409target_vendor=${target_vendor=$host_vendor}
410case "$target_vendor" in
411 hp) EXTRA_SHLIB_EXTENSION=".sl" ;;
412 *) EXTRA_SHLIB_EXTENSION= ;;
413esac
f234d5fe
NC
414
415case "$target_os" in
416 lynxos) EXTRA_SHLIB_EXTENSION=".a" ;;
417esac
418
93a6d436
JL
419if test x${EXTRA_SHLIB_EXTENSION} != x ; then
420 AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION",
421 [Additional extension a shared object might have.])
422fi
423
31dd3154 424dnl Required by html, pdf, install-pdf and install-html
108a6f8e
CD
425AC_SUBST(datarootdir)
426AC_SUBST(docdir)
427AC_SUBST(htmldir)
31dd3154 428AC_SUBST(pdfdir)
108a6f8e 429
da594c4a
AM
430AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
431AC_OUTPUT
This page took 0.661092 seconds and 4 git commands to generate.