* configure.ac (*-*-chorusos): Don't disable libgcj.
[deliverable/binutils-gdb.git] / configure.ac
CommitLineData
92f01d61 1# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
7837304f 2# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
ba98da75 3# Free Software Foundation, Inc.
252b5132
RH
4#
5# This file is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License as published by
e8a5fa9c 7# the Free Software Foundation; either version 3 of the License, or
252b5132
RH
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
e8a5fa9c
RW
16# along with this program; see the file COPYING3. If not see
17# <http://www.gnu.org/licenses/>.
252b5132
RH
18
19##############################################################################
a0da8069
NN
20### WARNING: this file contains embedded tabs. Do not run untabify on this file.
21
266df637
PB
22m4_include(config/acx.m4)
23m4_include(config/override.m4)
58c85be7 24m4_include(config/proginstall.m4)
143754cd 25m4_include(config/elf.m4)
d5f2ee2e
KG
26m4_include([libtool.m4])
27m4_include([ltoptions.m4])
28m4_include([ltsugar.m4])
29m4_include([ltversion.m4])
30m4_include([lt~obsolete.m4])
e552509b 31m4_include([config/cloog.m4])
656fdd47 32
a0da8069 33AC_INIT(move-if-change)
d444d2ba 34AC_PREREQ(2.64)
34a0f3cf 35AC_DISABLE_OPTION_CHECKING
c6b750e1 36
5b553f7e
RW
37progname=$0
38# if PWD already has a value, it is probably wrong.
39if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
40
41# Export original configure arguments for use by sub-configures.
42# Quote arguments with shell meta charatcers.
43TOPLEVEL_CONFIGURE_ARGUMENTS=
44set -- "$progname" "$@"
45for ac_arg
46do
47 case "$ac_arg" in
48 *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
49 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
50 # if the argument is of the form -foo=baz, quote the baz part only
51 ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
52 *) ;;
53 esac
54 # Add the quoted argument to the list.
55 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
56done
57if test "$silent" = yes; then
58 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
59fi
60# Remove the initial space we just introduced and, as these will be
61# expanded by make, quote '$'.
62TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
63AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
64
c6b750e1
DJ
65# Find the build, host, and target systems.
66ACX_NONCANONICAL_BUILD
67ACX_NONCANONICAL_HOST
68ACX_NONCANONICAL_TARGET
69
70dnl Autoconf 2.5x and later will set a default program prefix if
71dnl --target was used, even if it was the same as --host. Disable
72dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
73dnl to take effect.
74test "$host_noncanonical" = "$target_noncanonical" &&
75 test "$program_prefix$program_suffix$program_transform_name" = \
76 NONENONEs,x,x, &&
77 program_transform_name=s,y,y,
78
a0da8069
NN
79AC_CANONICAL_SYSTEM
80AC_ARG_PROGRAM
81
c6b750e1 82m4_pattern_allow([^AS_FOR_TARGET$])dnl
b5714970 83m4_pattern_allow([^AS_FOR_BUILD$])dnl
c6b750e1 84
e5c3f801
NN
85# Get 'install' or 'install-sh' and its variants.
86AC_PROG_INSTALL
656fdd47 87ACX_PROG_LN
dfdffa2c 88AC_PROG_LN_S
8e957354
PB
89AC_PROG_SED
90AC_PROG_AWK
e5c3f801 91
a0da8069
NN
92### we might need to use some other shell than /bin/sh for running subshells
93### If we are on Windows, search for the shell. This will permit people
94### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
95### without also having to set CONFIG_SHELL. This code will work when
96### using bash, which sets OSTYPE.
97case "${OSTYPE}" in
98*win32*)
99 if test x${CONFIG_SHELL} = x ; then
100 if test ! -f /bin/sh ; then
101 if test x${SHELL} != x && test -f ${SHELL} ; then
102 CONFIG_SHELL=${SHELL}
103 export CONFIG_SHELL
104 else
105 for prog in sh sh.exe bash bash.exe; do
106 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
107 for dir in $PATH; do
108 test -z "$dir" && dir=.
109 if test -f $dir/$prog; then
110 CONFIG_SHELL=$dir/$prog
111 export CONFIG_SHELL
112 break
113 fi
114 done
115 IFS="$save_ifs"
116 test -n "${CONFIG_SHELL}" && break
117 done
118 fi
119 fi
120 fi
121 ;;
122esac
123
124config_shell=${CONFIG_SHELL-/bin/sh}
125
a0da8069
NN
126moveifchange=${srcdir}/move-if-change
127
0fdbe983
DJ
128srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
129
130# We pass INSTALL explicitly to sub-makes. Make sure that it is not
131# a relative path.
132if test "$INSTALL" = "${srcdir}/install-sh -c"; then
133 INSTALL="${srcpwd}/install-sh -c"
134fi
135
a0da8069
NN
136# Set srcdir to "." if that's what it is.
137# This is important for multilib support.
138pwd=`${PWDCMD-pwd}`
a0da8069
NN
139if test "${pwd}" = "${srcpwd}" ; then
140 srcdir=.
141fi
142
143topsrcdir=$srcpwd
252b5132 144
ae831be5 145extra_host_args=
afefada0 146
252b5132
RH
147### To add a new directory to the tree, first choose whether it is a target
148### or a host dependent tool. Then put it into the appropriate list
a2cc058a 149### (library or tools, host or target), doing a dependency sort.
252b5132 150
a2cc058a
NN
151# Subdirs will be configured in the order listed in build_configdirs,
152# configdirs, or target_configdirs; see the serialization section below.
153
154# Dependency sorting is only needed when *configuration* must be done in
155# a particular order. In all cases a dependency should be specified in
156# the Makefile, whether or not it's implicitly specified here.
157
158# Double entries in build_configdirs, configdirs, or target_configdirs may
159# cause circular dependencies and break everything horribly.
252b5132 160
6a9cf61e
PB
161# these library is used by various programs built for the build
162# environment
163#
164build_libs="build-libiberty"
165
166# these tools are built for the build environment
ee025550 167build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
6a9cf61e 168
252b5132
RH
169# these libraries are used by various programs built for the host environment
170#
1f53ca9a 171host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv"
252b5132 172
252b5132
RH
173# these tools are built for the host environment
174# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
175# know that we are building the simulator.
2af579c4
NN
176# binutils, gas and ld appear in that order because it makes sense to run
177# "make check" in that particular order.
e6de499b 178# If --enable-gold is used, "gold" may replace "ld".
f9806fa5 179host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc cgen sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
75205f78
DD
180
181# libgcj represents the runtime libraries only used by gcj.
182libgcj="target-libffi \
75205f78
DD
183 target-zlib \
184 target-qthreads \
185 target-libjava"
252b5132
RH
186
187# these libraries are built for the target environment, and are built after
188# the host libraries and the host tools (which may be a cross compiler)
189#
b1299c4e
DJ
190target_libraries="target-libgcc \
191 target-libiberty \
252b5132
RH
192 target-libgloss \
193 target-newlib \
cff87f51 194 target-libgomp \
b9459e83 195 target-libstdc++-v3 \
4b1cb4fe 196 target-libmudflap \
bb780410 197 target-libssp \
e552509b 198 target-libquadmath \
4b1cb4fe 199 target-libgfortran \
4f0ef2d8 200 target-boehm-gc \
83326456 201 ${libgcj} \
a2592b1b 202 target-libobjc \
e552509b
ILT
203 target-libada \
204 target-libgo"
252b5132 205
9c14acb8
NN
206# these tools are built using the target libraries, and are intended to
207# run only in the target environment
252b5132 208#
9c14acb8 209# note: any program that *uses* libraries that are in the "target_libraries"
0377a422 210# list belongs in this list.
252b5132 211#
2354b38b 212target_tools="target-examples target-gperf target-rda"
252b5132
RH
213
214################################################################################
215
252b5132
RH
216## All tools belong in one of the four categories, and are assigned above
217## We assign ${configdirs} this way to remove all embedded newlines. This
218## is important because configure will choke if they ever get through.
219## ${configdirs} is directories we build using the host tools.
220## ${target_configdirs} is directories we build using the target tools.
252b5132 221configdirs=`echo ${host_libs} ${host_tools}`
9c14acb8 222target_configdirs=`echo ${target_libraries} ${target_tools}`
ee025550 223build_configdirs=`echo ${build_libs} ${build_tools}`
dd12c3a8 224
9cc8ae67 225m4_divert_text([PARSE_ARGS],
6d0cd39e
AM
226[case $srcdir in
227 *" "*)
228m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
229 AC_MSG_ERROR([path to source, $srcdir, contains spaces])
230m4_popdef([AS_MESSAGE_LOG_FD])dnl
231 ;;
232esac
233ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
9cc8ae67
PB
234])
235
252b5132
RH
236################################################################################
237
252b5132
RH
238srcname="gnu development package"
239
240# This gets set non-empty for some net releases of packages.
241appdirs=""
242
c712250a
DD
243# Define is_cross_compiler to save on calls to 'test'.
244is_cross_compiler=
245if test x"${host}" = x"${target}" ; then
246 is_cross_compiler=no
247else
248 is_cross_compiler=yes
249fi
250
9175bfc0 251# Find the build and target subdir names.
dd12c3a8 252GCC_TOPLEV_SUBDIRS
2fd0b40b
RW
253# Be sure to cover against remnants of an in-tree build.
254if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
255 AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
256Use a pristine source tree when building in a separate tree])
257fi
252b5132 258
f48556b1
DD
259# Skipdirs are removed silently.
260skipdirs=
261# Noconfigdirs are removed loudly.
262noconfigdirs=""
252b5132 263
f48556b1
DD
264use_gnu_ld=
265# Make sure we don't let GNU ld be added if we didn't want it.
266if test x$with_gnu_ld = xno ; then
267 use_gnu_ld=no
93f9b408 268 noconfigdirs="$noconfigdirs ld gold"
252b5132
RH
269fi
270
f48556b1
DD
271use_gnu_as=
272# Make sure we don't let GNU as be added if we didn't want it.
273if test x$with_gnu_as = xno ; then
274 use_gnu_as=no
275 noconfigdirs="$noconfigdirs gas"
252b5132
RH
276fi
277
700d40ca
ILT
278use_included_zlib=
279# Make sure we don't let ZLIB be added if we didn't want it.
280if test x$with_system_zlib = xyes ; then
281 use_included_zlib=no
282 noconfigdirs="$noconfigdirs zlib"
283fi
284
f48556b1
DD
285# some tools are so dependent upon X11 that if we're not building with X,
286# it's not even worth trying to configure, much less build, that tool.
252b5132 287
f48556b1
DD
288case ${with_x} in
289 yes | "") ;; # the default value for this tree is that X11 is available
ff0a3bf8 290 no)
675c6968 291 skipdirs="${skipdirs} tk itcl libgui"
ff0a3bf8
DD
292 # We won't be able to build gdbtk without X.
293 enable_gdbtk=no
294 ;;
f48556b1
DD
295 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
296esac
252b5132 297
0377a422 298# Some are only suitable for cross toolchains.
405ea7a0
NN
299# Remove these if host=target.
300cross_only="target-libgloss target-newlib target-opcodes"
252b5132 301
f48556b1
DD
302case $is_cross_compiler in
303 no) skipdirs="${skipdirs} ${cross_only}" ;;
f48556b1 304esac
252b5132 305
a32d391c
DD
306# If both --with-headers and --with-libs are specified, default to
307# --without-newlib.
32be62b5
RS
308if test x"${with_headers}" != x && test x"${with_headers}" != xno \
309 && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
a32d391c
DD
310 if test x"${with_newlib}" = x ; then
311 with_newlib=no
312 fi
313fi
314
315# Recognize --with-newlib/--without-newlib.
316case ${with_newlib} in
317 no) skipdirs="${skipdirs} target-newlib" ;;
318 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
319esac
320
c7791212
NC
321# Handle --enable-gold, --enable-ld.
322# --disable-gold [--enable-ld]
323# Build only ld. Default option.
d3b50760
L
324# --enable-gold [--enable-ld]
325# Build both gold and ld. Install gold as "ld.gold", install ld
326# as "ld.bfd" and "ld".
327# --enable-gold=default [--enable-ld]
c7791212
NC
328# Build both gold and ld. Install gold as "ld.gold" and "ld",
329# install ld as "ld.bfd".
330# --enable-gold[=default] --disable-ld
331# Build only gold, which is then installed as both "ld.gold" and "ld".
332# --enable-gold --enable-ld=default
d3b50760
L
333# Build both gold (installed as "ld.gold") and ld (installed as "ld"
334# and ld.bfd).
c7791212
NC
335# In other words, ld is default
336# --enable-gold=default --enable-ld=default
337# Error.
338
339default_ld=
93f9b408 340AC_ARG_ENABLE(gold,
7837304f
AS
341[AS_HELP_STRING([[--enable-gold[=ARG]]],
342 [build gold @<:@ARG={default,yes,no}@:>@])],
93f9b408
ILT
343ENABLE_GOLD=$enableval,
344ENABLE_GOLD=no)
c7791212
NC
345case "${ENABLE_GOLD}" in
346 yes|default)
e6de499b
NC
347 # Check for ELF target.
348 is_elf=no
349 case "${target}" in
350 *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
351 | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
5b806d27
NC
352 | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
353 | *-*-solaris2* | *-*-nto*)
e6de499b
NC
354 case "${target}" in
355 *-*-linux*aout* | *-*-linux*oldld*)
356 ;;
357 *)
358 is_elf=yes
359 ;;
360 esac
361 esac
362
363 if test "$is_elf" = "yes"; then
364 # Check for target supported by gold.
93f9b408 365 case "${target}" in
e6de499b 366 i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
c7791212
NC
367 configdirs="$configdirs gold"
368 if test x${ENABLE_GOLD} = xdefault; then
369 default_ld=gold
370 fi
e6de499b 371 ENABLE_GOLD=yes
93f9b408
ILT
372 ;;
373 esac
e6de499b
NC
374 fi
375 ;;
376 no)
377 ;;
378 *)
379 AC_MSG_ERROR([invalid --enable-gold argument])
380 ;;
c7791212
NC
381esac
382
383AC_ARG_ENABLE(ld,
7837304f
AS
384[AS_HELP_STRING([[--enable-ld[=ARG]]],
385 [build ld @<:@ARG={default,yes,no}@:>@])],
c7791212
NC
386ENABLE_LD=$enableval,
387ENABLE_LD=yes)
388
389case "${ENABLE_LD}" in
390 default)
d3b50760 391 if test x${default_ld} != x; then
c7791212
NC
392 AC_MSG_ERROR([either gold or ld can be the default ld])
393 fi
394 ;;
395 yes)
396 ;;
397 no)
398 if test x${ENABLE_GOLD} != xyes; then
399 AC_MSG_WARN([neither ld nor gold are enabled])
400 fi
401 configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
402 ;;
403 *)
404 AC_MSG_ERROR([invalid --enable-ld argument])
405 ;;
406esac
93f9b408 407
252b5132
RH
408# Configure extra directories which are host specific
409
410case "${host}" in
f48556b1 411 *-cygwin*)
3866be5d 412 configdirs="$configdirs libtermcap" ;;
252b5132
RH
413esac
414
59f7ec45
HPN
415# A target can indicate whether a language isn't supported for some reason.
416# Only spaces may be used in this macro; not newlines or tabs.
417unsupported_languages=
418
252b5132
RH
419# Remove more programs from consideration, based on the host or
420# target this usually means that a port of the program doesn't
421# exist yet.
422
252b5132 423case "${host}" in
3516a403 424 i[[3456789]]86-*-msdosdjgpp*)
6a608608 425 noconfigdirs="$noconfigdirs tcl tk itcl"
252b5132 426 ;;
252b5132
RH
427esac
428
4b1cb4fe 429
89a1e9c3
PB
430AC_ARG_ENABLE(libquadmath,
431AS_HELP_STRING([--disable-libquadmath],
432 [do not build libquadmath directory]),
433ENABLE_LIBQUADMATH=$enableval,
434ENABLE_LIBQUADMATH=yes)
435if test "${ENABLE_LIBQUADMATH}" = "no" ; then
436 noconfigdirs="$noconfigdirs target-libquadmath"
437fi
438
439
440AC_ARG_ENABLE(libquadmath-support,
441AS_HELP_STRING([--disable-libquadmath-support],
442 [disable libquadmath support for Fortran]),
443ENABLE_LIBQUADMATH_SUPPORT=$enableval,
444ENABLE_LIBQUADMATH_SUPPORT=yes)
445enable_libquadmath_support=
446if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
447 enable_libquadmath_support=no
448fi
449
450
a2592b1b 451AC_ARG_ENABLE(libada,
7837304f 452[AS_HELP_STRING([--enable-libada], [build libada directory])],
a2592b1b
DD
453ENABLE_LIBADA=$enableval,
454ENABLE_LIBADA=yes)
455if test "${ENABLE_LIBADA}" != "yes" ; then
b00612cc 456 noconfigdirs="$noconfigdirs gnattools"
a2592b1b
DD
457fi
458
5f128533 459AC_ARG_ENABLE(libssp,
7837304f 460[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
5f128533
KH
461ENABLE_LIBSSP=$enableval,
462ENABLE_LIBSSP=yes)
5f128533 463
96111c10
AO
464# Save it here so that, even in case of --enable-libgcj, if the Java
465# front-end isn't enabled, we still get libgcj disabled.
466libgcj_saved=$libgcj
467case $enable_libgcj in
468yes)
469 # If we reset it here, it won't get added to noconfigdirs in the
470 # target-specific build rules, so it will be forcibly enabled
471 # (unless the Java language itself isn't enabled).
472 libgcj=
473 ;;
474no)
475 # Make sure we get it printed in the list of not supported target libs.
9e1a94f4
ILT
476 # Don't disable libffi, though, other languages use it.
477 noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
33d23ee8
ILT
478 # Clear libgcj_saved so that even if java is enabled libffi won't be
479 # built.
480 libgcj_saved=
96111c10
AO
481 ;;
482esac
483
4b1cb4fe 484
a6df5a19
PB
485# Disable libmudflap on some systems.
486if test x$enable_libmudflap = x ; then
3e707e94 487 case "${target}" in
29383458 488 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
3d6dfe0f 489 # Enable libmudflap by default in GNU and friends.
3e707e94
PB
490 ;;
491 *-*-freebsd*)
492 # Enable libmudflap by default in FreeBSD.
493 ;;
494 *)
495 # Disable it by default everywhere else.
496 noconfigdirs="$noconfigdirs target-libmudflap"
497 ;;
498 esac
a6df5a19 499fi
4b1cb4fe 500
a6df5a19
PB
501# Disable libgomp on non POSIX hosted systems.
502if test x$enable_libgomp = x ; then
b3ded179
PB
503 # Enable libgomp by default on hosted POSIX systems.
504 case "${target}" in
29383458 505 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
b3ded179 506 ;;
5b806d27 507 *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
b3ded179 508 ;;
64ce424c 509 *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
b3ded179
PB
510 ;;
511 *-*-darwin* | *-*-aix*)
512 ;;
513 *)
514 noconfigdirs="$noconfigdirs target-libgomp"
515 ;;
516 esac
a6df5a19 517fi
b3ded179 518
691bb5a1
DD
519# Default libgloss CPU subdirectory.
520libgloss_dir="$target_cpu"
4b1cb4fe 521
252b5132 522case "${target}" in
75205f78 523 *-*-chorusos)
b2f14e4a 524 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
75205f78 525 ;;
24741ab2 526 powerpc-*-darwin*)
9d39db92 527 noconfigdirs="$noconfigdirs ld gas gdb gprof"
4e3fc8e5 528 noconfigdirs="$noconfigdirs sim target-rda"
b3f16a9b 529 ;;
85bd1942
TG
530 i[[3456789]]86-*-darwin*)
531 noconfigdirs="$noconfigdirs ld gprof"
532 noconfigdirs="$noconfigdirs sim target-rda"
533 ;;
e8a5fa9c 534 x86_64-*-darwin[[912]]*)
652dec25
TG
535 noconfigdirs="$noconfigdirs ld gas gprof"
536 noconfigdirs="$noconfigdirs sim target-rda"
537 ;;
04d1ab34 538 *-*-darwin*)
d320aacb 539 noconfigdirs="$noconfigdirs ld gas gdb gprof"
4e3fc8e5 540 noconfigdirs="$noconfigdirs sim target-rda"
54d1c879 541 noconfigdirs="$noconfigdirs ${libgcj}"
04d1ab34 542 ;;
5b806d27
NC
543 *-*-dragonfly*)
544 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
545 ;;
de0b4a87 546 *-*-freebsd*)
4b1cb4fe
DD
547 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
548 if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
549 && test -f /usr/local/include/gmp.h; then
550 with_gmp=/usr/local
551 fi
552
553 # Skip some stuff that's unsupported on some FreeBSD configurations.
554 case "${target}" in
555 i*86-*-*) ;;
556 alpha*-*-*) ;;
143754cd 557 x86_64-*-*) ;;
4b1cb4fe 558 *)
54d1c879 559 noconfigdirs="$noconfigdirs ${libgcj}"
4b1cb4fe
DD
560 ;;
561 esac
562 ;;
f8a495c8
NC
563 *-*-kaos*)
564 # Remove unsupported stuff on all kaOS configurations.
b2f14e4a 565 skipdirs="target-libiberty"
f8a495c8
NC
566 noconfigdirs="$noconfigdirs target-libgloss"
567 ;;
e82380cc
JT
568 *-*-netbsd*)
569 # Skip some stuff on all NetBSD configurations.
ae03d6e2 570 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
e82380cc
JT
571
572 # Skip some stuff that's unsupported on some NetBSD configurations.
573 case "${target}" in
75205f78 574 i*86-*-netbsdelf*) ;;
5b474aa8 575 arm*-*-netbsdelf*) ;;
e82380cc 576 *)
54d1c879 577 noconfigdirs="$noconfigdirs ${libgcj}"
e82380cc
JT
578 ;;
579 esac
580 ;;
2a3124ca 581 *-*-netware*)
2354b38b 582 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj}"
252b5132
RH
583 ;;
584 *-*-rtems*)
a009f2e7 585 skipdirs="${skipdirs} target-libiberty"
54d1c879 586 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 587 ;;
1587117a
EC
588 # The tpf target doesn't support gdb yet.
589 *-*-tpf*)
2354b38b 590 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} gdb tcl tk libgui itcl"
1587117a 591 ;;
c1968181 592 *-*-uclinux*)
54d1c879 593 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
c1968181 594 ;;
252b5132 595 *-*-vxworks*)
54d1c879 596 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
252b5132
RH
597 ;;
598 alpha*-dec-osf*)
e99daf2b 599 # ld works, but does not support shared libraries.
0377a422 600 # newlib is not 64 bit ready.
252b5132 601 # gas doesn't generate exception information.
0377a422 602 noconfigdirs="$noconfigdirs gas ld target-newlib target-libgloss"
252b5132
RH
603 ;;
604 alpha*-*-*vms*)
d594eacc 605 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
75205f78
DD
606 ;;
607 alpha*-*-linux*)
608 # newlib is not 64 bit ready
609 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
252b5132
RH
610 ;;
611 alpha*-*-*)
612 # newlib is not 64 bit ready
54d1c879 613 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
252b5132 614 ;;
4a18bd6b 615 am33_2.0-*-linux*)
54d1c879 616 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
4a18bd6b 617 ;;
75205f78 618 sh-*-linux*)
54d1c879 619 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
75205f78 620 ;;
2fb651f6 621 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
54d1c879 622 noconfigdirs="$noconfigdirs ${libgcj}"
0377a422 623 noconfigdirs="$noconfigdirs target-libiberty"
675c6968 624 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
2fb651f6 625 # the C++ libraries don't build on top of CE's C libraries
b9459e83 626 noconfigdirs="$noconfigdirs target-libstdc++-v3"
ae03d6e2 627 noconfigdirs="$noconfigdirs target-newlib"
691bb5a1 628 libgloss_dir=wince
2fb651f6 629 ;;
252b5132 630 arc-*-*)
782cb41f 631 noconfigdirs="$noconfigdirs target-libgloss"
252b5132 632 ;;
93cc359e 633 arm-*-coff)
691bb5a1 634 libgloss_dir=arm
f03b4789 635 ;;
93cc359e 636 arm-*-elf* | arm*-*-eabi* )
0377a422 637 noconfigdirs="$noconfigdirs target-libffi"
691bb5a1 638 libgloss_dir=arm
f03b4789 639 ;;
bd70a46f 640 arm*-*-linux-gnueabi)
a5b3b4dd
DD
641 case ${with_newlib} in
642 no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
643 esac
691bb5a1 644 libgloss_dir=arm
bd70a46f 645 ;;
df4a6958 646 arm*-*-symbianelf*)
54d1c879 647 noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
691bb5a1 648 libgloss_dir=arm
df4a6958 649 ;;
252b5132 650 arm-*-pe*)
54d1c879 651 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
252b5132 652 ;;
252b5132 653 arm-*-riscix*)
b2f14e4a 654 noconfigdirs="$noconfigdirs ld target-libgloss"
252b5132 655 ;;
c95f53ae 656 avr-*-*)
266df637 657 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
c95f53ae 658 ;;
376a0e54 659 bfin-*-*)
df51e4e1 660 unsupported_languages="$unsupported_languages java"
7837304f 661 noconfigdirs="$noconfigdirs target-boehm-gc"
376a0e54 662 ;;
ff72e302 663 c4x-*-* | tic4x-*-*)
b2f14e4a 664 noconfigdirs="$noconfigdirs target-libgloss"
077b8428 665 ;;
b2f14e4a
JM
666 tic54x-*-*)
667 noconfigdirs="$noconfigdirs target-libgloss gdb"
75205f78 668 ;;
52310858
NC
669 cr16-*-*)
670 noconfigdirs="$noconfigdirs ${libgcj} gdb"
671 ;;
c7e66c6d 672 cris-*-* | crisv32-*-*)
59f7ec45 673 unsupported_languages="$unsupported_languages java"
c7e66c6d 674 case "${target}" in
2faa2958 675 *-*-linux*)
5e818318 676 noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
b2f14e4a
JM
677 *) # See PR46792 regarding target-libffi.
678 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
c7e66c6d 679 esac
691bb5a1 680 libgloss_dir=cris
077b8428 681 ;;
252b5132 682 d10v-*-*)
b2f14e4a 683 noconfigdirs="$noconfigdirs target-libgloss"
252b5132 684 ;;
252b5132 685 d30v-*-*)
b2f14e4a 686 noconfigdirs="$noconfigdirs gdb"
252b5132 687 ;;
252b5132 688 fr30-*-elf*)
54d1c879 689 noconfigdirs="$noconfigdirs ${libgcj} gdb"
252b5132 690 ;;
d2a86414 691 frv-*-*)
54d1c879 692 noconfigdirs="$noconfigdirs ${libgcj}"
d2a86414 693 ;;
20135e4c
NC
694 moxie-*-*)
695 noconfigdirs="$noconfigdirs ${libgcj}"
696 noconfigdirs="$noconfigdirs gprof"
697 ;;
dd1e52a4 698 h8300*-*-*)
54d1c879 699 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
dd1e52a4 700 ;;
252b5132 701 h8500-*-*)
b2f14e4a 702 noconfigdirs="$noconfigdirs target-libgloss"
75205f78 703 ;;
caeba88f 704 hppa1.1-*-osf* | hppa1.1-*-bsd* )
caeba88f 705 ;;
93cc359e 706 hppa*64*-*-linux*)
75205f78
DD
707 # In this case, it's because the hppa64-linux target is for
708 # the kernel only at this point and has no libc, and thus no
709 # headers, crt*.o, etc., all of which are needed by these.
710 noconfigdirs="$noconfigdirs target-zlib"
252b5132 711 ;;
f0ff0f90 712 hppa*-*-linux*)
5dcac624 713 ;;
252b5132 714 hppa*-*-*elf* | \
09e90eb4 715 hppa*-*-lites* | \
17240c1f 716 hppa*-*-openbsd* | \
09e90eb4 717 hppa*64*-*-*)
54d1c879 718 noconfigdirs="$noconfigdirs ${libgcj}"
4f0ef2d8
CD
719 ;;
720 hppa*-hp-hpux11*)
0377a422 721 noconfigdirs="$noconfigdirs ld"
252b5132 722 ;;
691bb5a1
DD
723 hppa*-*-pro*)
724 libgloss_dir=pa
725 ;;
252b5132 726 hppa*-*-*)
b3ed1d6b
AO
727 # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
728 # build on HP-UX 10.20.
0377a422 729 noconfigdirs="$noconfigdirs ld ${libgcj}"
252b5132 730 ;;
b07c2aad 731 i960-*-*)
b2f14e4a 732 noconfigdirs="$noconfigdirs gdb"
b07c2aad 733 ;;
2315914d
JW
734 ia64*-*-elf*)
735 # No gdb support yet.
0377a422 736 noconfigdirs="$noconfigdirs readline libgui itcl gdb"
2315914d 737 ;;
a0c1c920 738 ia64*-**-hpux*)
92c9a463
JB
739 # No ld support yet.
740 noconfigdirs="$noconfigdirs ${libgcj} libgui itcl ld"
a0c1c920 741 ;;
19e99079
NC
742 ia64*-*-*vms*)
743 # No gdb or ld support yet.
0377a422 744 noconfigdirs="$noconfigdirs ${libgcj} readline libgui itcl gdb ld"
19e99079 745 ;;
ec11bdc6 746 i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
54d1c879 747 noconfigdirs="$noconfigdirs ${libgcj}"
691bb5a1 748 libgloss_dir=i386
252b5132 749 ;;
ec11bdc6 750 i[[3456789]]86-*-linux*)
c72f388d
TF
751 # This section makes it possible to build newlib natively on linux.
752 # If we are using a cross compiler then don't configure newlib.
a018e15b 753 if test x${is_cross_compiler} != xno ; then
bba45b8b 754 noconfigdirs="$noconfigdirs target-newlib"
c72f388d
TF
755 fi
756 noconfigdirs="$noconfigdirs target-libgloss"
757 # If we are not using a cross compiler, do configure newlib.
758 # Note however, that newlib will only be configured in this situation
759 # if the --with-newlib option has been given, because otherwise
760 # 'target-newlib' will appear in skipdirs.
c72f388d 761 ;;
1f53ca9a 762 i[[3456789]]86-w64-mingw*)
0377a422 763 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
1f53ca9a
AO
764 ;;
765 i[[3456789]]86-*-mingw*)
45055374 766 target_configdirs="$target_configdirs target-winsup"
0377a422 767 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
1f53ca9a 768 ;;
80f6dcbc 769 x86_64-*-mingw*)
0377a422 770 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
1f53ca9a 771 ;;
252b5132
RH
772 *-*-cygwin*)
773 target_configdirs="$target_configdirs target-libtermcap target-winsup"
0377a422 774 noconfigdirs="$noconfigdirs target-libgloss"
b76d7de0 775 # always build newlib if winsup directory is present.
45055374 776 if test -d "$srcdir/winsup/cygwin"; then
b76d7de0 777 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
ac0fa625 778 elif test -d "$srcdir/newlib"; then
45055374 779 echo "Warning: winsup/cygwin is missing so newlib can't be built."
b76d7de0 780 fi
1f53ca9a 781 ;;
f0ff0f90 782 i[[3456789]]86-*-interix* )
caeba88f 783 ;;
ec11bdc6 784 i[[3456789]]86-*-pe)
782cb41f 785 noconfigdirs="$noconfigdirs target-libgloss"
252b5132 786 ;;
ec11bdc6 787 i[[3456789]]86-*-sco3.2v5*)
252b5132
RH
788 # The linker does not yet know about weak symbols in COFF,
789 # and is not configured to handle mixed ELF and COFF.
b2f14e4a 790 noconfigdirs="$noconfigdirs ld target-libgloss"
252b5132 791 ;;
ec11bdc6 792 i[[3456789]]86-*-sco*)
b2f14e4a 793 noconfigdirs="$noconfigdirs gprof target-libgloss"
252b5132 794 ;;
ec11bdc6 795 i[[3456789]]86-*-solaris2*)
252b5132
RH
796 noconfigdirs="$noconfigdirs target-libgloss"
797 ;;
ec11bdc6 798 i[[3456789]]86-*-sysv4*)
b2f14e4a 799 noconfigdirs="$noconfigdirs target-libgloss"
252b5132 800 ;;
ec11bdc6 801 i[[3456789]]86-*-beos*)
b2f14e4a 802 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
bba45b8b 803 ;;
b59bea8a 804 i[[3456789]]86-*-rdos*)
80911fe1
PB
805 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
806 ;;
b07c2aad 807 m32r-*-*)
54d1c879 808 noconfigdirs="$noconfigdirs ${libgcj}"
b07c2aad 809 ;;
75205f78 810 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
782cb41f 811 noconfigdirs="$noconfigdirs target-libiberty"
691bb5a1 812 libgloss_dir=m68hc11
f9e0997d 813 ;;
75205f78 814 m68k-*-elf*)
54d1c879 815 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132 816 ;;
691bb5a1
DD
817 m68*-*-* | fido-*-*)
818 libgloss_dir=m68k
819 ;;
75205f78 820 mmix-*-*)
b2f14e4a 821 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb"
096f7d00 822 unsupported_languages="$unsupported_languages fortran java"
75205f78 823 ;;
4970f871 824 mt-*-*)
cdb9b172
AH
825 noconfigdirs="$noconfigdirs sim"
826 ;;
887ebfb4
RW
827 picochip-*-*)
828 noconfigdirs="$noconfigdirs target-libiberty"
829 ;;
252b5132
RH
830 powerpc-*-aix*)
831 # copied from rs6000-*-* entry
e8a5fa9c 832 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
252b5132 833 ;;
93cc359e 834 powerpc*-*-winnt* | powerpc*-*-pe*)
252b5132 835 target_configdirs="$target_configdirs target-winsup"
b2f14e4a 836 noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
252b5132
RH
837 # always build newlib.
838 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
839 ;;
840 # This is temporary until we can link against shared libraries
841 powerpcle-*-solaris*)
b2f14e4a 842 noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
691bb5a1 843 libgloss_dir=rs6000
ba73c63f
JM
844 ;;
845 powerpc-*-beos*)
b2f14e4a 846 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
252b5132
RH
847 ;;
848 powerpc-*-eabi)
54d1c879 849 noconfigdirs="$noconfigdirs ${libgcj}"
691bb5a1 850 libgloss_dir=rs6000
caeba88f
AL
851 ;;
852 powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
691bb5a1 853 libgloss_dir=rs6000
252b5132
RH
854 ;;
855 rs6000-*-lynxos*)
54d1c879 856 noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
252b5132
RH
857 ;;
858 rs6000-*-aix*)
e8a5fa9c 859 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
252b5132
RH
860 ;;
861 rs6000-*-*)
54d1c879 862 noconfigdirs="$noconfigdirs gprof ${libgcj}"
252b5132
RH
863 ;;
864 m68k-apollo-*)
b2f14e4a 865 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
252b5132 866 ;;
25a07265 867 microblaze*)
29821356 868 noconfigdirs="$noconfigdirs gprof target-libssp ${libgcj}"
25a07265 869 ;;
5bd8be13
RS
870 mips*-sde-elf*)
871 skipdirs="$skipdirs target-libiberty"
872 noconfigdirs="$noconfigdirs ${libgcj}"
873 if test x$with_newlib = xyes; then
874 noconfigdirs="$noconfigdirs gprof"
875 fi
876 libgloss_dir=mips
877 ;;
252b5132 878 mips*-*-irix5*)
b2f14e4a 879 noconfigdirs="$noconfigdirs gprof target-libgloss"
252b5132
RH
880 ;;
881 mips*-*-irix6*)
b3ed1d6b
AO
882 # Linking libjava exceeds command-line length limits on at least
883 # IRIX 6.2, but not on IRIX 6.5.
884 # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
885 # <oldham@codesourcery.com>
54d1c879 886 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
252b5132 887 ;;
252b5132 888 mips*-*-bsd*)
b2f14e4a 889 noconfigdirs="$noconfigdirs gprof target-libgloss"
252b5132 890 ;;
fad93c55 891 mips*-*-linux*)
574e6d11 892 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
fad93c55 893 ;;
252b5132 894 mips*-*-*)
54d1c879 895 noconfigdirs="$noconfigdirs gprof ${libgcj}"
691bb5a1 896 libgloss_dir=mips
252b5132 897 ;;
dbf85af7 898 sh-*-* | sh64-*-*)
e8a5fa9c
RW
899 case "${target}" in
900 sh*-*-elf)
901 noconfigdirs="$noconfigdirs ${libgcj}" ;;
902 *)
903 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;;
904 esac
252b5132 905 ;;
691bb5a1
DD
906 sparclet-*-aout* | sparc86x-*-*)
907 libgloss_dir=sparc
908 ;;
252b5132 909 sparc-*-elf*)
54d1c879 910 noconfigdirs="$noconfigdirs ${libgcj}"
252b5132
RH
911 ;;
912 sparc64-*-elf*)
54d1c879 913 noconfigdirs="$noconfigdirs ${libgcj}"
691bb5a1 914 libgloss_dir=sparc
252b5132
RH
915 ;;
916 sparclite-*-*)
691bb5a1 917 libgloss_dir=sparc
252b5132
RH
918 ;;
919 sparc-*-sunos4*)
a0c4f3a0 920 if test x${is_cross_compiler} != xno ; then
c74222f7 921 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
252b5132
RH
922 else
923 use_gnu_ld=no
924 fi
925 ;;
3a036cdc 926 sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
b3ed1d6b 927 ;;
619a3713
JM
928 tic6x-*-*)
929 noconfigdirs="$noconfigdirs gdb sim ${libgcj}"
930 ;;
252b5132 931 v810-*-*)
b2f14e4a 932 noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
252b5132
RH
933 ;;
934 vax-*-*)
54d1c879 935 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
96ce09a7 936 ;;
f48556b1 937 ip2k-*-*)
b2f14e4a 938 noconfigdirs="$noconfigdirs target-libiberty"
f48556b1 939 ;;
29383458 940 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
574e6d11
DD
941 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
942 ;;
252b5132 943 *-*-lynxos*)
54d1c879 944 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
252b5132 945 ;;
75205f78 946 *-*-*)
54d1c879 947 noconfigdirs="$noconfigdirs ${libgcj}"
75205f78 948 ;;
252b5132
RH
949esac
950
951# If we aren't building newlib, then don't build libgloss, since libgloss
952# depends upon some newlib header files.
953case "${noconfigdirs}" in
954 *target-libgloss*) ;;
955 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
f48556b1 956esac
252b5132 957
f48556b1 958# Work in distributions that contain no compiler tools, like Autoconf.
a0da8069 959host_makefile_frag=/dev/null
f48556b1
DD
960if test -d ${srcdir}/config ; then
961case "${host}" in
ec11bdc6 962 i[[3456789]]86-*-msdosdjgpp*)
f48556b1
DD
963 host_makefile_frag="config/mh-djgpp"
964 ;;
965 *-cygwin*)
e33b51a6 966 ACX_CHECK_CYGWIN_CAT_WORKS
f48556b1
DD
967 host_makefile_frag="config/mh-cygwin"
968 ;;
8a1599ab 969 *-mingw*)
84e7906e 970 host_makefile_frag="config/mh-mingw"
80f6dcbc 971 ;;
f48556b1
DD
972 *-interix*)
973 host_makefile_frag="config/mh-interix"
974 ;;
da888c87 975 hppa*-hp-hpux10*)
da888c87 976 host_makefile_frag="config/mh-pa-hpux10"
f48556b1 977 ;;
3516a403 978 hppa*-hp-hpux*)
da888c87
PB
979 host_makefile_frag="config/mh-pa"
980 ;;
981 hppa*-*)
982 host_makefile_frag="config/mh-pa"
983 ;;
e552509b
ILT
984 *-*-darwin*)
985 host_makefile_frag="config/mh-darwin"
0df3d27f 986 ;;
f6d183c0
PB
987 powerpc-*-aix*)
988 host_makefile_frag="config/mh-ppc-aix"
989 ;;
990 rs6000-*-aix*)
991 host_makefile_frag="config/mh-ppc-aix"
992 ;;
f48556b1
DD
993esac
994fi
995
9e07f89d 996if test "${build}" != "${host}" ; then
b5714970
PB
997 AR_FOR_BUILD=${AR_FOR_BUILD-ar}
998 AS_FOR_BUILD=${AS_FOR_BUILD-as}
9e07f89d 999 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
b5714970
PB
1000 CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1001 GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1002 GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
e552509b 1003 GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
b5714970
PB
1004 DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1005 LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1006 NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1007 RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1008 WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1009 WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
9e07f89d 1010else
b5714970
PB
1011 AR_FOR_BUILD="\$(AR)"
1012 AS_FOR_BUILD="\$(AS)"
9e07f89d 1013 CC_FOR_BUILD="\$(CC)"
b5714970
PB
1014 CXX_FOR_BUILD="\$(CXX)"
1015 GCJ_FOR_BUILD="\$(GCJ)"
1016 GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
e552509b 1017 GOC_FOR_BUILD="\$(GOC)"
b5714970
PB
1018 DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1019 LD_FOR_BUILD="\$(LD)"
1020 NM_FOR_BUILD="\$(NM)"
1021 RANLIB_FOR_BUILD="\$(RANLIB)"
1022 WINDRES_FOR_BUILD="\$(WINDRES)"
1023 WINDMC_FOR_BUILD="\$(WINDMC)"
24ff9987 1024fi
9e07f89d 1025
24ff9987
DJ
1026AC_PROG_CC
1027AC_PROG_CXX
1028
1029# We must set the default linker to the linker used by gcc for the correct
1030# operation of libtool. If LD is not defined and we are using gcc, try to
1031# set the LD default to the ld used by gcc.
1032if test -z "$LD"; then
1033 if test "$GCC" = yes; then
1034 case $build in
1035 *-*-mingw*)
1036 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1037 *)
1038 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1039 esac
1040 case $gcc_prog_ld in
1041 # Accept absolute paths.
1042 [[\\/]* | [A-Za-z]:[\\/]*)]
1043 LD="$gcc_prog_ld" ;;
1044 esac
1045 fi
9e07f89d
NN
1046fi
1047
1048ACX_PROG_GNAT
b8908782 1049ACX_PROG_CMP_IGNORE_INITIAL
9e07f89d 1050
e8a5fa9c
RW
1051# See if we are building gcc with C++.
1052AC_ARG_ENABLE(build-with-cxx,
7837304f
AS
1053[AS_HELP_STRING([--enable-build-with-cxx],
1054 [build with C++ compiler instead of C compiler])],
e8a5fa9c
RW
1055ENABLE_BUILD_WITH_CXX=$enableval,
1056ENABLE_BUILD_WITH_CXX=no)
1057
d5f2ee2e
KG
1058# Used for setting $lt_cv_objdir
1059_LT_CHECK_OBJDIR
1060
e8a5fa9c 1061# Check for GMP, MPFR and MPC
d9b76ff9 1062gmplibs="-lmpc -lmpfr -lgmp"
4b1cb4fe 1063gmpinc=
4b900473 1064have_gmp=no
e8a5fa9c
RW
1065
1066# Specify a location for mpc
1067# check for this first so it ends up on the link line before mpfr.
7837304f
AS
1068AC_ARG_WITH(mpc,
1069[AS_HELP_STRING([--with-mpc=PATH],
1070 [specify prefix directory for installed MPC package.
1071 Equivalent to --with-mpc-include=PATH/include
1072 plus --with-mpc-lib=PATH/lib])])
1073AC_ARG_WITH(mpc-include,
1074[AS_HELP_STRING([--with-mpc-include=PATH],
1075 [specify directory for installed MPC include files])])
1076AC_ARG_WITH(mpc-lib,
1077[AS_HELP_STRING([--with-mpc-lib=PATH],
1078 [specify directory for the installed MPC library])])
e8a5fa9c
RW
1079
1080if test "x$with_mpc" != x; then
d9b76ff9
KG
1081 gmplibs="-L$with_mpc/lib $gmplibs"
1082 gmpinc="-I$with_mpc/include $gmpinc"
e8a5fa9c
RW
1083fi
1084if test "x$with_mpc_include" != x; then
d9b76ff9 1085 gmpinc="-I$with_mpc_include $gmpinc"
e8a5fa9c
RW
1086fi
1087if test "x$with_mpc_lib" != x; then
d9b76ff9 1088 gmplibs="-L$with_mpc_lib $gmplibs"
e8a5fa9c
RW
1089fi
1090if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
d5f2ee2e 1091 gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
d9b76ff9 1092 gmpinc='-I$$s/mpc/src '"$gmpinc"
e8a5fa9c
RW
1093 # Do not test the mpc version. Assume that it is sufficient, since
1094 # it is in the source tree, and the library has not been built yet
1095 # but it would be included on the link line in the version check below
1096 # hence making the test fail.
d9b76ff9 1097 have_gmp=yes
e8a5fa9c 1098fi
4b900473 1099
11b04d1f
DD
1100# Specify a location for mpfr
1101# check for this first so it ends up on the link line before gmp.
7837304f
AS
1102AC_ARG_WITH(mpfr-dir,
1103[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
1104[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1105Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])
1106
1107AC_ARG_WITH(mpfr,
1108[AS_HELP_STRING([--with-mpfr=PATH],
1109 [specify prefix directory for installed MPFR package.
1110 Equivalent to --with-mpfr-include=PATH/include
1111 plus --with-mpfr-lib=PATH/lib])])
1112AC_ARG_WITH(mpfr-include,
1113[AS_HELP_STRING([--with-mpfr-include=PATH],
1114 [specify directory for installed MPFR include files])])
1115AC_ARG_WITH(mpfr-lib,
1116[AS_HELP_STRING([--with-mpfr-lib=PATH],
1117 [specify directory for the installed MPFR library])])
11b04d1f
DD
1118
1119if test "x$with_mpfr" != x; then
1120 gmplibs="-L$with_mpfr/lib $gmplibs"
d9b76ff9 1121 gmpinc="-I$with_mpfr/include $gmpinc"
11b04d1f 1122fi
8a0d8a5c 1123if test "x$with_mpfr_include" != x; then
d9b76ff9 1124 gmpinc="-I$with_mpfr_include $gmpinc"
8a0d8a5c
PB
1125fi
1126if test "x$with_mpfr_lib" != x; then
1127 gmplibs="-L$with_mpfr_lib $gmplibs"
1128fi
4b900473 1129if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
d5f2ee2e 1130 gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
4b900473 1131 gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
d5f2ee2e 1132 extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
4b900473
PB
1133 # Do not test the mpfr version. Assume that it is sufficient, since
1134 # it is in the source tree, and the library has not been built yet
1135 # but it would be included on the link line in the version check below
1136 # hence making the test fail.
1137 have_gmp=yes
1138fi
11b04d1f 1139
4b1cb4fe 1140# Specify a location for gmp
7837304f
AS
1141AC_ARG_WITH(gmp-dir,
1142[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
1143[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1144Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])
1145
1146AC_ARG_WITH(gmp,
1147[AS_HELP_STRING([--with-gmp=PATH],
1148 [specify prefix directory for the installed GMP package.
1149 Equivalent to --with-gmp-include=PATH/include
1150 plus --with-gmp-lib=PATH/lib])])
1151AC_ARG_WITH(gmp-include,
1152[AS_HELP_STRING([--with-gmp-include=PATH],
1153 [specify directory for installed GMP include files])])
1154AC_ARG_WITH(gmp-lib,
1155[AS_HELP_STRING([--with-gmp-lib=PATH],
1156 [specify directory for the installed GMP library])])
4b1cb4fe 1157
4b1cb4fe 1158
11b04d1f
DD
1159if test "x$with_gmp" != x; then
1160 gmplibs="-L$with_gmp/lib $gmplibs"
1161 gmpinc="-I$with_gmp/include $gmpinc"
4b1cb4fe 1162fi
8a0d8a5c
PB
1163if test "x$with_gmp_include" != x; then
1164 gmpinc="-I$with_gmp_include $gmpinc"
1165fi
1166if test "x$with_gmp_lib" != x; then
1167 gmplibs="-L$with_gmp_lib $gmplibs"
1168fi
4b900473 1169if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
d5f2ee2e 1170 gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
4b900473 1171 gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
29821356 1172 extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
d5f2ee2e 1173 extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
4b900473
PB
1174 # Do not test the gmp version. Assume that it is sufficient, since
1175 # it is in the source tree, and the library has not been built yet
1176 # but it would be included on the link line in the version check below
1177 # hence making the test fail.
1178 have_gmp=yes
1179fi
4b1cb4fe 1180
ceb92e78 1181if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
4b900473
PB
1182 have_gmp=yes
1183 saved_CFLAGS="$CFLAGS"
1184 CFLAGS="$CFLAGS $gmpinc"
a6b5846e
KG
1185 # Check for the recommended and required versions of GMP.
1186 AC_MSG_CHECKING([for the correct version of gmp.h])
4b900473 1187 AC_TRY_COMPILE([#include "gmp.h"],[
a6b5846e
KG
1188 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1189 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1190 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
9dbaa842 1191 choke me
4b900473 1192 #endif
a009f2e7 1193 ], [AC_TRY_COMPILE([#include <gmp.h>],[
a6b5846e
KG
1194 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1195 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1196 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
1197 choke me
1198 #endif
a009f2e7 1199 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
a6b5846e 1200 [AC_MSG_RESULT([no]); have_gmp=no])
4b900473 1201
e8a5fa9c 1202 # If we have GMP, check the MPFR version.
4b900473 1203 if test x"$have_gmp" = xyes; then
a6b5846e
KG
1204 # Check for the recommended and required versions of MPFR.
1205 AC_MSG_CHECKING([for the correct version of mpfr.h])
e8a5fa9c 1206 AC_TRY_COMPILE([#include <gmp.h>
4b900473 1207 #include <mpfr.h>],[
ef699244 1208 #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
4b900473
PB
1209 choke me
1210 #endif
a009f2e7 1211 ], [AC_TRY_COMPILE([#include <gmp.h>
e8a5fa9c 1212 #include <mpfr.h>],[
a6b5846e 1213 #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
e8a5fa9c
RW
1214 choke me
1215 #endif
a009f2e7 1216 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
e8a5fa9c
RW
1217 [AC_MSG_RESULT([no]); have_gmp=no])
1218 fi
1219
1220 # Check for the MPC header version.
d9b76ff9 1221 if test x"$have_gmp" = xyes ; then
a6b5846e 1222 # Check for the recommended and required versions of MPC.
e8a5fa9c
RW
1223 AC_MSG_CHECKING([for the correct version of mpc.h])
1224 AC_TRY_COMPILE([#include <mpc.h>],[
a6b5846e 1225 #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
e8a5fa9c
RW
1226 choke me
1227 #endif
a009f2e7 1228 ], [AC_TRY_COMPILE([#include <mpc.h>],[
a6b5846e
KG
1229 #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
1230 choke me
1231 #endif
a009f2e7 1232 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
a6b5846e 1233 [AC_MSG_RESULT([no]); have_gmp=no])
e8a5fa9c
RW
1234 fi
1235
1236 # Now check the MPFR library.
1237 if test x"$have_gmp" = xyes; then
1238 saved_LIBS="$LIBS"
1239 LIBS="$LIBS $gmplibs"
d9b76ff9
KG
1240 AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1241 AC_TRY_LINK([#include <mpc.h>],[
a3ca38d2
DD
1242 mpfr_t n;
1243 mpfr_t x;
d9b76ff9 1244 mpc_t c;
4b900473 1245 int t;
a3ca38d2
DD
1246 mpfr_init (n);
1247 mpfr_init (x);
4b900473
PB
1248 mpfr_atan2 (n, n, x, GMP_RNDN);
1249 mpfr_erfc (n, x, GMP_RNDN);
1250 mpfr_subnormalize (x, t, GMP_RNDN);
d9b76ff9
KG
1251 mpfr_clear(n);
1252 mpfr_clear(x);
1253 mpc_init2 (c, 53);
1254 mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1255 mpc_cosh (c, c, MPC_RNDNN);
1256 mpc_pow (c, c, c, MPC_RNDNN);
1257 mpc_acosh (c, c, MPC_RNDNN);
1258 mpc_clear (c);
e8a5fa9c
RW
1259 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1260 LIBS="$saved_LIBS"
4b900473 1261 fi
e8a5fa9c 1262
4b900473 1263 CFLAGS="$saved_CFLAGS"
4b1cb4fe 1264
a6b5846e
KG
1265# The library versions listed in the error message below should match
1266# the HARD-minimums enforced above.
4b900473 1267 if test x$have_gmp != xyes; then
a6b5846e 1268 AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
d9b76ff9
KG
1269Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1270their locations. Source code for these libraries can be found at
1271their respective hosting sites as well as at
1272ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
1273http://gcc.gnu.org/install/prerequisites.html for additional info. If
1274you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1275make sure that you have installed both the libraries and the header
1276files. They may be located in separate packages.])
4b900473 1277 fi
9dbaa842
DD
1278fi
1279
e8a5fa9c 1280# Flags needed for both GMP, MPFR and/or MPC.
4b1cb4fe
DD
1281AC_SUBST(gmplibs)
1282AC_SUBST(gmpinc)
e8a5fa9c
RW
1283AC_SUBST(extra_mpfr_configure_flags)
1284AC_SUBST(extra_mpc_gmp_configure_flags)
1285AC_SUBST(extra_mpc_mpfr_configure_flags)
4b1cb4fe 1286
29383458 1287# Allow host libstdc++ to be specified for static linking with PPL.
7837304f
AS
1288AC_ARG_WITH(host-libstdcxx,
1289[AS_HELP_STRING([--with-host-libstdcxx=L],
1290 [use linker arguments L to link with libstdc++
1291 when linking with PPL])])
29383458
JM
1292
1293case $with_host_libstdcxx in
1294 no|yes)
1295 AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
1296 ;;
1297esac
e28c595f 1298
e8a5fa9c
RW
1299# Linker flags to use for stage1 or when not boostrapping.
1300AC_ARG_WITH(stage1-ldflags,
7837304f 1301[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
e8a5fa9c
RW
1302[if test "$withval" = "no" -o "$withval" = "yes"; then
1303 stage1_ldflags=
1304 else
1305 stage1_ldflags=$withval
1306 fi],
1307[stage1_ldflags=])
1308AC_SUBST(stage1_ldflags)
1309
1310# Libraries to use for stage1 or when not bootstrapping.
1311AC_ARG_WITH(stage1-libs,
7837304f 1312[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
e8a5fa9c
RW
1313[if test "$withval" = "no" -o "$withval" = "yes"; then
1314 stage1_libs=
1315 else
1316 stage1_libs=$withval
1317 fi],
1318[stage1_libs=$with_host_libstdcxx])
1319AC_SUBST(stage1_libs)
1320
e8a5fa9c
RW
1321# Libraries to use for stage2 and later builds. This defaults to the
1322# argument passed to --with-host-libstdcxx.
1323AC_ARG_WITH(boot-libs,
7837304f 1324[AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
e8a5fa9c
RW
1325[if test "$withval" = "no" -o "$withval" = "yes"; then
1326 poststage1_libs=
1327 else
1328 poststage1_libs=$withval
1329 fi],
1330[poststage1_libs=$with_host_libstdcxx])
1331AC_SUBST(poststage1_libs)
1332
143754cd
NC
1333# Linker flags to use for stage2 and later builds.
1334AC_ARG_WITH(boot-ldflags,
7837304f
AS
1335[AS_HELP_STRING([--with-boot-ldflags=FLAGS],
1336 [linker flags for stage2 and later])],
143754cd
NC
1337[if test "$withval" = "no" -o "$withval" = "yes"; then
1338 poststage1_ldflags=
1339 else
1340 poststage1_ldflags=$withval
1341 fi],
1342[poststage1_ldflags=
4f11b223
ILT
1343 # In stages 2 and 3, default to linking libstdc++ and libgcc
1344 # statically. But if the user explicitly specified the libraries to
1345 # use, trust that they are doing what they want.
1346 if test "$poststage1_libs" = ""; then
143754cd
NC
1347 poststage1_ldflags="-static-libstdc++ -static-libgcc"
1348 fi])
1349AC_SUBST(poststage1_ldflags)
1350
e28c595f 1351# Check for PPL
b123da99 1352ppllibs=
e28c595f 1353pplinc=
b123da99 1354pwllib=
e28c595f 1355
7837304f
AS
1356AC_ARG_WITH(ppl,
1357[AS_HELP_STRING([--with-ppl=PATH],
1358 [specify prefix directory for the installed PPL package.
1359 Equivalent to --with-ppl-include=PATH/include
1360 plus --with-ppl-lib=PATH/lib])])
1361AC_ARG_WITH(ppl-include,
1362[AS_HELP_STRING([--with-ppl-include=PATH],
1363 [specify directory for installed PPL include files])])
1364AC_ARG_WITH(ppl-lib,
1365[AS_HELP_STRING([--with-ppl-lib=PATH],
1366 [specify directory for the installed PPL library])])
e28c595f 1367
b123da99
SP
1368AC_ARG_ENABLE(ppl-version-check,
1369[AS_HELP_STRING([--disable-ppl-version-check],
1370 [disable check for PPL version])])
1371
1372case $with_ppl in
1373 yes | no | "")
1f53ca9a 1374 ;;
29383458 1375 *)
b123da99 1376 ppllibs="-L$with_ppl/lib"
29383458 1377 pplinc="-I$with_ppl/include $pplinc"
b123da99
SP
1378 if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
1379 with_ppl=yes
1380 else
1381 AC_MSG_ERROR([cannot find directories "$with_ppl/lib" or "$with_ppl/include"])
1382 fi
29383458
JM
1383 ;;
1384esac
b123da99
SP
1385
1386if test x"$with_ppl_include" != x; then
e28c595f 1387 pplinc="-I$with_ppl_include $pplinc"
b123da99 1388 with_ppl=yes
e28c595f 1389fi
b123da99 1390
e28c595f 1391if test "x$with_ppl_lib" != x; then
b123da99
SP
1392 ppllibs="-L$with_ppl_lib"
1393 with_ppl=yes
e28c595f 1394fi
b123da99
SP
1395
1396if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
1397 if test x"$enable_watchdog" = xyes; then
1398 pwllib="-lpwl"
1399 fi
1400 ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
1f53ca9a
AO
1401 pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
1402 enable_ppl_version_check=no
b123da99 1403 with_ppl=yes
e28c595f
JM
1404fi
1405
86ed8cf6 1406if test "x$with_ppl" != xno; then
b123da99 1407 if test "x$pwllib" = x; then
0e8ad34f
RO
1408 saved_LIBS="$LIBS"
1409 LIBS="$LIBS $ppllibs -lstdc++ -lm"
1410 AC_CHECK_LIB(pwl, PWL_handle_timeout, [pwllib="-lpwl"])
1411 LIBS="$saved_LIBS"
b123da99 1412 fi
e28c595f 1413
b123da99
SP
1414 ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
1415
1416 if test "$enable_ppl_version_check" != no; then
1417 saved_CFLAGS="$CFLAGS"
1418 CFLAGS="$CFLAGS $pplinc $gmpinc"
1419 AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
1420 AC_TRY_COMPILE([#include "ppl_c.h"],[
1421 #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
1422 choke me
1423 #endif
1424 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
1425 CFLAGS="$saved_CFLAGS"
1426 fi
e28c595f
JM
1427fi
1428
1429# Flags needed for PPL
1430AC_SUBST(ppllibs)
1431AC_SUBST(pplinc)
1432
1433
1434# Check for CLOOG
e28c595f 1435
e552509b
ILT
1436dnl Provide configure switches and initialize clooginc & clooglibs
1437dnl with user input.
1438CLOOG_INIT_FLAGS
1f53ca9a 1439if test "x$with_ppl" = "xno"; then
8d8eef9a
RW
1440 dnl Only execute fail-action, if CLooG has been requested.
1441 CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
1442 if test "${graphite_requested}" = yes; then
1443 AC_MSG_ERROR([Unable to find a usable PPL. See config.log for details.])
1444 fi
1f53ca9a
AO
1445 with_cloog=no
1446fi
e552509b
ILT
1447if test "x${with_cloog}" = x && test "x${with_cloog_include}" = x \
1448 && test "x${with_cloog_lib}" = x && test -d ${srcdir}/cloog; then
1449 clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
1450 clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
e28c595f 1451fi
e552509b 1452if test "x$with_cloog" != "xno"; then
8d8eef9a 1453 dnl The minimal version of CLooG required for Graphite.
e552509b 1454 dnl
8d8eef9a
RW
1455 dnl If we use CLooG-Legacy, the provided version information is
1456 dnl ignored.
1457 CLOOG_CHECK_VERSION(0,16,1)
e552509b 1458
8d8eef9a 1459 dnl Only execute fail-action, if CLooG has been requested.
e552509b 1460 CLOOG_IF_FAILED([
8d8eef9a 1461 AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])])
e28c595f
JM
1462fi
1463
700d40ca
ILT
1464# Check for LTO support.
1465AC_ARG_ENABLE(lto,
7837304f 1466[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
700d40ca
ILT
1467enable_lto=$enableval,
1468enable_lto=yes; default_enable_lto=yes)
1469
74cea91b
DK
1470ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
1471 build_lto_plugin=yes
1472],[if test x"$default_enable_lto" = x"yes" ; then
29821356 1473 case $target in
dbbe5f95 1474 *-apple-darwin9 | *-cygwin* | *-mingw*) ;;
74cea91b 1475 # On other non-ELF platforms, LTO has yet to be validated.
29821356
RW
1476 *) enable_lto=no ;;
1477 esac
e49e5c92 1478 else
29821356
RW
1479 # Apart from ELF platforms, only Windows and Darwin support LTO so far.
1480 # It would also be nice to check the binutils support, but we don't
e49e5c92
DK
1481 # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just
1482 # warn during gcc/ subconfigure; unless you're bootstrapping with
1483 # -flto it won't be needed until after installation anyway.
1484 case $target in
a8eb3f0a 1485 *-cygwin* | *-mingw* | *-apple-darwin*) ;;
e49e5c92
DK
1486 *) if test x"$enable_lto" = x"yes"; then
1487 AC_MSG_ERROR([LTO support is not enabled for this target.])
1488 fi
1489 ;;
1490 esac
1491 fi
a8eb3f0a 1492 # Among non-ELF, only Windows platforms support the lto-plugin so far.
74cea91b 1493 # Build it unless LTO was explicitly disabled.
a8eb3f0a 1494 case $target in
74cea91b 1495 *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
a8eb3f0a
DK
1496 *) ;;
1497 esac
74cea91b 1498])
700d40ca 1499
e28c595f 1500
947f426e 1501# By default, C is the only stage 1 language.
9b134994 1502stage1_languages=,c,
1d39f329 1503
e8a5fa9c 1504# Target libraries that we bootstrap.
2aa2364a 1505bootstrap_target_libs=,target-libgcc,
e8a5fa9c 1506
9e07f89d
NN
1507# Figure out what language subdirectories are present.
1508# Look if the user specified --enable-languages="..."; if not, use
1509# the environment variable $LANGUAGES if defined. $LANGUAGES might
1510# go away some day.
1511# NB: embedded tabs in this IF block -- do not untabify
1512if test -d ${srcdir}/gcc; then
1513 if test x"${enable_languages+set}" != xset; then
1514 if test x"${LANGUAGES+set}" = xset; then
1515 enable_languages="${LANGUAGES}"
1516 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1517 else
1518 enable_languages=all
1519 fi
1520 else
1521 if test x"${enable_languages}" = x ||
1522 test x"${enable_languages}" = xyes;
1523 then
1524 echo configure.in: --enable-languages needs at least one language argument 1>&2
1525 exit 1
1526 fi
1527 fi
1528 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1529
096f7d00
DE
1530 # 'f95' is the old name for the 'fortran' language. We issue a warning
1531 # and make the substitution.
1532 case ,${enable_languages}, in
1533 *,f95,*)
1534 echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1535 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1536 ;;
1537 esac
1538
9e07f89d
NN
1539 # First scan to see if an enabled language requires some other language.
1540 # We assume that a given config-lang.in will list all the language
1541 # front ends it requires, even if some are required indirectly.
1542 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1543 case ${lang_frag} in
1544 ..) ;;
1545 # The odd quoting in the next line works around
1546 # an apparent bug in bash 1.12 on linux.
1547 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1548 *)
e552509b
ILT
1549 # From the config-lang.in, get $language, $lang_requires, and
1550 # $lang_requires_boot_languages.
9e07f89d
NN
1551 language=
1552 lang_requires=
e552509b 1553 lang_requires_boot_languages=
9e07f89d 1554 . ${lang_frag}
e552509b 1555 for other in ${lang_requires} ${lang_requires_boot_languages}; do
9e07f89d
NN
1556 case ,${enable_languages}, in
1557 *,$other,*) ;;
1558 *,all,*) ;;
1559 *,$language,*)
1560 echo " \`$other' language required by \`$language'; enabling" 1>&2
1561 enable_languages="${enable_languages},${other}"
1562 ;;
1563 esac
1564 done
e552509b
ILT
1565 for other in ${lang_requires_boot_languages} ; do
1566 if test "$other" != "c"; then
1567 case ,${enable_stage1_languages}, in
1568 *,$other,*) ;;
1569 *,all,*) ;;
1570 *)
1571 case ,${enable_languages}, in
1572 *,$language,*)
1573 echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
1574 enable_stage1_languages="$enable_stage1_languages,${other}"
1575 ;;
1576 esac
1577 ;;
1578 esac
1579 fi
1580 done
9e07f89d
NN
1581 ;;
1582 esac
1583 done
1584
9b134994 1585 new_enable_languages=,c,
700d40ca
ILT
1586
1587 # If LTO is enabled, add the LTO front end.
1588 extra_host_libiberty_configure_flags=
1589 if test "$enable_lto" = "yes" ; then
6811fb56
RW
1590 case ,${enable_languages}, in
1591 *,lto,*) ;;
1592 *) enable_languages="${enable_languages},lto" ;;
1593 esac
a8eb3f0a 1594 if test "${build_lto_plugin}" = "yes" ; then
700d40ca
ILT
1595 configdirs="$configdirs lto-plugin"
1596 extra_host_libiberty_configure_flags=--enable-shared
1597 fi
1598 fi
1599 AC_SUBST(extra_host_libiberty_configure_flags)
1600
9e07f89d 1601 missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
9b134994 1602 potential_languages=,c,
9e07f89d 1603
9e1a94f4
ILT
1604 enabled_target_libs=
1605 disabled_target_libs=
1606
9e07f89d
NN
1607 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1608 case ${lang_frag} in
1609 ..) ;;
1610 # The odd quoting in the next line works around
1611 # an apparent bug in bash 1.12 on linux.
1612 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1613 *)
1614 # From the config-lang.in, get $language, $target_libs,
1d39f329 1615 # $lang_dirs, $boot_language, and $build_by_default
9e07f89d
NN
1616 language=
1617 target_libs=
1618 lang_dirs=
64ce424c 1619 subdir_requires=
9b134994
PB
1620 boot_language=no
1621 build_by_default=yes
9e07f89d 1622 . ${lang_frag}
9b134994
PB
1623 if test x${language} = x; then
1624 echo "${lang_frag} doesn't set \$language." 1>&2
1625 exit 1
1626 fi
1627
1f53ca9a
AO
1628 if test "$language" = "c++" \
1629 && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
e8a5fa9c
RW
1630 boot_language=yes
1631 fi
1632
9b134994
PB
1633 case ,${enable_languages}, in
1634 *,${language},*)
9e07f89d
NN
1635 # Language was explicitly selected; include it.
1636 add_this_lang=yes
1637 ;;
9b134994
PB
1638 *,all,*)
1639 # 'all' was selected, select it if it is a default language
1640 add_this_lang=${build_by_default}
9e07f89d
NN
1641 ;;
1642 *)
1643 add_this_lang=no
1644 ;;
1645 esac
4b1cb4fe 1646
64ce424c 1647 # Disable languages that need other directories if these aren't available.
1f3f1bbf 1648 for i in $subdir_requires; do
3d3adb43 1649 test -f "$srcdir/gcc/$i/config-lang.in" && continue
64ce424c
PB
1650 case ,${enable_languages}, in
1651 *,${language},*)
1652 # Specifically requested language; tell them.
1653 AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1654 ;;
1655 *)
1656 # Silently disable.
9b134994 1657 add_this_lang=unsupported
64ce424c
PB
1658 ;;
1659 esac
1660 done
1661
9b134994
PB
1662 # Disable Ada if no preexisting GNAT is available.
1663 case ,${enable_languages},:${language}:${have_gnat} in
1664 *,${language},*:ada:no)
1665 # Specifically requested language; tell them.
1666 AC_MSG_ERROR([GNAT is required to build $language])
1667 ;;
1668 *:ada:no)
1669 # Silently disable.
1670 add_this_lang=unsupported
1671 ;;
1672 esac
1673
59f7ec45
HPN
1674 # Disable a language that is unsupported by the target.
1675 case " $unsupported_languages " in
1676 *" $language "*)
9b134994 1677 add_this_lang=unsupported
59f7ec45
HPN
1678 ;;
1679 esac
1680
4b1cb4fe 1681 case $add_this_lang in
9b134994 1682 unsupported)
9e07f89d 1683 # Remove language-dependent dirs.
9e1a94f4
ILT
1684 disabled_target_libs="$disabled_target_libs $target_libs"
1685 noconfigdirs="$noconfigdirs $lang_dirs"
1d39f329 1686 ;;
9b134994
PB
1687 no)
1688 # Remove language-dependent dirs; still show language as supported.
9e1a94f4
ILT
1689 disabled_target_libs="$disabled_target_libs $target_libs"
1690 noconfigdirs="$noconfigdirs $lang_dirs"
9b134994
PB
1691 potential_languages="${potential_languages}${language},"
1692 ;;
1693 yes)
1694 new_enable_languages="${new_enable_languages}${language},"
1695 potential_languages="${potential_languages}${language},"
1d39f329 1696 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
9e1a94f4 1697 enabled_target_libs="$enabled_target_libs $target_libs"
f8dc745f
RW
1698 case "${boot_language}:,$enable_stage1_languages," in
1699 yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
4fa63067 1700 # Add to (comma-separated) list of stage 1 languages.
f8dc745f
RW
1701 case ",$stage1_languages," in
1702 *,$language,* | ,yes, | ,all,) ;;
1703 *) stage1_languages="${stage1_languages}${language}," ;;
1704 esac
e8a5fa9c
RW
1705 # We need to bootstrap any supporting libraries.
1706 bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
1d39f329
NN
1707 ;;
1708 esac
1709 ;;
9e07f89d
NN
1710 esac
1711 ;;
1712 esac
1713 done
1714
9e1a94f4
ILT
1715 # Add target libraries which are only needed for disabled languages
1716 # to noconfigdirs.
1717 if test -n "$disabled_target_libs"; then
1718 for dir in $disabled_target_libs; do
1719 case " $enabled_target_libs " in
1720 *" ${dir} "*) ;;
1721 *) noconfigdirs="$noconfigdirs $dir" ;;
1722 esac
1723 done
1724 fi
1725
9b134994 1726 AC_ARG_ENABLE(stage1-languages,
7837304f
AS
1727 [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
1728 [choose additional languages to build during
1729 stage1. Mostly useful for compiler development])],
9b134994
PB
1730 [case ,${enable_stage1_languages}, in
1731 ,no,|,,)
1732 # Set it to something that will have no effect in the loop below
1733 enable_stage1_languages=c ;;
1734 ,yes,)
1735 enable_stage1_languages=`echo $new_enable_languages | \
1736 sed -e "s/^,//" -e "s/,$//" ` ;;
1737 *,all,*)
1738 enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1739 sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1740 esac
1741
1742 # Add "good" languages from enable_stage1_languages to stage1_languages,
1743 # while "bad" languages go in missing_languages. Leave no duplicates.
1744 for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1745 case $potential_languages in
1746 *,$i,*)
1747 case $stage1_languages in
1748 *,$i,*) ;;
1749 *) stage1_languages="$stage1_languages$i," ;;
1750 esac ;;
1751 *)
1752 case $missing_languages in
1753 *,$i,*) ;;
1754 *) missing_languages="$missing_languages$i," ;;
1755 esac ;;
1756 esac
1757 done])
1758
1759 # Remove leading/trailing commas that were added for simplicity
1760 potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
4b0ac75d 1761 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
9b134994
PB
1762 stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1763 new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1764
9e07f89d
NN
1765 if test "x$missing_languages" != x; then
1766 AC_MSG_ERROR([
27258dd4 1767The following requested languages could not be built: ${missing_languages}
9b134994 1768Supported languages are: ${potential_languages}])
9e07f89d 1769 fi
9e07f89d
NN
1770 if test "x$new_enable_languages" != "x$enable_languages"; then
1771 echo The following languages will be built: ${new_enable_languages}
9b134994 1772 enable_languages="$new_enable_languages"
9e07f89d 1773 fi
9b134994
PB
1774
1775 AC_SUBST(stage1_languages)
81ec575a 1776 ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
9e07f89d
NN
1777fi
1778
a6df5a19
PB
1779# Handle --disable-<component> generically.
1780for dir in $configdirs $build_configdirs $target_configdirs ; do
1781 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
9cc8ae67
PB
1782 varname=`echo $dirname | sed -e s/+/_/g`
1783 if eval test x\${enable_${varname}} "=" xno ; then
a6df5a19
PB
1784 noconfigdirs="$noconfigdirs $dir"
1785 fi
1786done
1787
4f0ef2d8
CD
1788# Check for Boehm's garbage collector
1789AC_ARG_ENABLE(objc-gc,
7837304f
AS
1790[AS_HELP_STRING([--enable-objc-gc],
1791 [enable use of Boehm's garbage collector with the
1792 GNU Objective-C runtime])],
4f0ef2d8
CD
1793[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1794 *,objc,*:*:yes:*target-boehm-gc*)
1795 AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1796 ;;
1797esac])
1798
1799# Make sure we only build Boehm's garbage collector if required.
d42c4017
DA
1800case ,${enable_languages},:${enable_objc_gc} in
1801 *,objc,*:yes)
4f0ef2d8
CD
1802 # Keep target-boehm-gc if requested for Objective-C.
1803 ;;
4f0ef2d8 1804 *)
d42c4017
DA
1805 # Otherwise remove target-boehm-gc depending on target-libjava.
1806 if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1807 noconfigdirs="$noconfigdirs target-boehm-gc"
1808 fi
4f0ef2d8
CD
1809 ;;
1810esac
1811
caeba88f
AL
1812# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1813# $build_configdirs and $target_configdirs.
9e07f89d
NN
1814# If we have the source for $noconfigdirs entries, add them to $notsupp.
1815
1816notsupp=""
1817for dir in . $skipdirs $noconfigdirs ; do
caeba88f 1818 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
9e07f89d
NN
1819 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1820 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1821 if test -r $srcdir/$dirname/configure ; then
1822 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1823 true
1824 else
1825 notsupp="$notsupp $dir"
1826 fi
1827 fi
1828 fi
caeba88f
AL
1829 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1830 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1831 if test -r $srcdir/$dirname/configure ; then
1832 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1833 true
1834 else
1835 notsupp="$notsupp $dir"
1836 fi
1837 fi
1838 fi
9e07f89d
NN
1839 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1840 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1841 if test -r $srcdir/$dirname/configure ; then
1842 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1843 true
1844 else
1845 notsupp="$notsupp $dir"
1846 fi
1847 fi
1848 fi
1849done
1850
1851# Sometimes the tools are distributed with libiberty but with no other
1852# libraries. In that case, we don't want to build target-libiberty.
f86e35b8 1853# Don't let libgcc imply libiberty either.
9e07f89d 1854if test -n "${target_configdirs}" ; then
f86e35b8 1855 libgcc=
9e07f89d
NN
1856 others=
1857 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
f86e35b8
NC
1858 if test "$i" = "libgcc"; then
1859 libgcc=target-libgcc
1860 elif test "$i" != "libiberty" ; then
9e07f89d
NN
1861 if test -r $srcdir/$i/configure ; then
1862 others=yes;
1863 break;
1864 fi
1865 fi
1866 done
1867 if test -z "${others}" ; then
f86e35b8 1868 target_configdirs=$libgcc
9e07f89d
NN
1869 fi
1870fi
1871
1872# Quietly strip out all directories which aren't configurable in this tree.
1873# This relies on all configurable subdirectories being autoconfiscated, which
1874# is now the case.
6a9cf61e
PB
1875build_configdirs_all="$build_configdirs"
1876build_configdirs=
1877for i in ${build_configdirs_all} ; do
1878 j=`echo $i | sed -e s/build-//g`
1879 if test -f ${srcdir}/$j/configure ; then
1880 build_configdirs="${build_configdirs} $i"
1881 fi
1882done
1883
9e07f89d
NN
1884configdirs_all="$configdirs"
1885configdirs=
1886for i in ${configdirs_all} ; do
1887 if test -f ${srcdir}/$i/configure ; then
1888 configdirs="${configdirs} $i"
1889 fi
1890done
6a9cf61e 1891
9e07f89d
NN
1892target_configdirs_all="$target_configdirs"
1893target_configdirs=
1894for i in ${target_configdirs_all} ; do
1895 j=`echo $i | sed -e s/target-//g`
1896 if test -f ${srcdir}/$j/configure ; then
1897 target_configdirs="${target_configdirs} $i"
1898 fi
1899done
1900
1901# Produce a warning message for the subdirs we can't configure.
1902# This isn't especially interesting in the Cygnus tree, but in the individual
1903# FSF releases, it's important to let people know when their machine isn't
1904# supported by the one or two programs in a package.
1905
1906if test -n "${notsupp}" && test -z "${norecursion}" ; then
1907 # If $appdirs is non-empty, at least one of those directories must still
1908 # be configured, or we error out. (E.g., if the gas release supports a
1909 # specified target in some subdirs but not the gas subdir, we shouldn't
1910 # pretend that all is well.)
1911 if test -n "$appdirs" ; then
1912 for dir in $appdirs ; do
1913 if test -r $dir/Makefile.in ; then
1914 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1915 appdirs=""
1916 break
1917 fi
6a9cf61e 1918 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
9e07f89d
NN
1919 appdirs=""
1920 break
1921 fi
1922 fi
1923 done
1924 if test -n "$appdirs" ; then
1925 echo "*** This configuration is not supported by this package." 1>&2
1926 exit 1
1927 fi
1928 fi
1929 # Okay, some application will build, or we don't care to check. Still
1930 # notify of subdirs not getting built.
1931 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1932 echo " ${notsupp}" 1>&2
1933 echo " (Any other directories should still work fine.)" 1>&2
1934fi
1935
1936case "$host" in
1937 *msdosdjgpp*)
1938 enable_gdbtk=no ;;
1939esac
1940
24ff9987
DJ
1941# To find our prefix, in gcc_cv_tool_prefix.
1942ACX_TOOL_DIRS
1943
9e07f89d
NN
1944copy_dirs=
1945
a19b6204 1946AC_ARG_WITH([build-sysroot],
7837304f
AS
1947 [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
1948 [use sysroot as the system root during the build])],
a19b6204
MM
1949 [if test x"$withval" != x ; then
1950 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1951 fi],
1952 [SYSROOT_CFLAGS_FOR_TARGET=])
1953AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1954
8a6ee3ab 1955AC_ARG_WITH([debug-prefix-map],
7837304f
AS
1956 [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
1957 [map A to B, C to D ... in debug information])],
8a6ee3ab
JM
1958 [if test x"$withval" != x; then
1959 DEBUG_PREFIX_CFLAGS_FOR_TARGET=
1960 for debug_map in $withval; do
1961 DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
1962 done
1963 fi],
1964 [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
1965AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
1966
7f6ef0c0
PB
1967# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
1968# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
1969# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
1970# We want to ensure that TARGET libraries (which we know are built with
1971# gcc) are built with "-O2 -g", so include those options when setting
1972# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
1973if test "x$CFLAGS_FOR_TARGET" = x; then
1974 CFLAGS_FOR_TARGET=$CFLAGS
1975 case " $CFLAGS " in
1976 *" -O2 "*) ;;
1977 *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
1978 esac
1979 case " $CFLAGS " in
1980 *" -g "* | *" -g3 "*) ;;
1981 *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
1982 esac
1983fi
1984AC_SUBST(CFLAGS_FOR_TARGET)
1985
1986if test "x$CXXFLAGS_FOR_TARGET" = x; then
1987 CXXFLAGS_FOR_TARGET=$CXXFLAGS
1988 case " $CXXFLAGS " in
1989 *" -O2 "*) ;;
1990 *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
1991 esac
1992 case " $CXXFLAGS " in
1993 *" -g "* | *" -g3 "*) ;;
1994 *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
1995 esac
1996fi
1997AC_SUBST(CXXFLAGS_FOR_TARGET)
1998
9e07f89d
NN
1999# Handle --with-headers=XXX. If the value is not "yes", the contents of
2000# the named directory are copied to $(tooldir)/sys-include.
2001if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2002 if test x${is_cross_compiler} = xno ; then
2003 echo 1>&2 '***' --with-headers is only supported when cross compiling
2004 exit 1
2005 fi
2006 if test x"${with_headers}" != xyes ; then
24ff9987 2007 x=${gcc_cv_tool_prefix}
c6b750e1 2008 copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
9e07f89d
NN
2009 fi
2010fi
2011
2012# Handle --with-libs=XXX. If the value is not "yes", the contents of
2013# the name directories are copied to $(tooldir)/lib. Multiple directories
2014# are permitted.
2015if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2016 if test x${is_cross_compiler} = xno ; then
2017 echo 1>&2 '***' --with-libs is only supported when cross compiling
2018 exit 1
2019 fi
2020 if test x"${with_libs}" != xyes ; then
2021 # Copy the libraries in reverse order, so that files in the first named
2022 # library override files in subsequent libraries.
24ff9987 2023 x=${gcc_cv_tool_prefix}
9e07f89d 2024 for l in ${with_libs}; do
c6b750e1 2025 copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
9e07f89d
NN
2026 done
2027 fi
2028fi
2029
700d40ca 2030# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2429c060
PB
2031#
2032# This is done by determining whether or not the appropriate directory
2033# is available, and by checking whether or not specific configurations
2034# have requested that this magic not happen.
2035#
2036# The command line options always override the explicit settings in
2037# configure.in, and the settings in configure.in override this magic.
2038#
2039# If the default for a toolchain is to use GNU as and ld, and you don't
2040# want to do that, then you should use the --without-gnu-as and
700d40ca
ILT
2041# --without-gnu-ld options for the configure script. Similarly, if
2042# the default is to use the included zlib and you don't want to do that,
2043# you should use the --with-system-zlib option for the configure script.
2429c060
PB
2044
2045if test x${use_gnu_as} = x &&
2046 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2047 with_gnu_as=yes
2048 extra_host_args="$extra_host_args --with-gnu-as"
2049fi
2050
2051if test x${use_gnu_ld} = x &&
93f9b408 2052 echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2429c060
PB
2053 with_gnu_ld=yes
2054 extra_host_args="$extra_host_args --with-gnu-ld"
2055fi
2056
700d40ca
ILT
2057if test x${use_included_zlib} = x &&
2058 echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2059 :
2060else
2061 with_system_zlib=yes
2062 extra_host_args="$extra_host_args --with-system-zlib"
2063fi
2064
2429c060
PB
2065# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2066# can detect this case.
2067
2068if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2069 with_newlib=yes
2070 extra_host_args="$extra_host_args --with-newlib"
2071fi
2072
9e07f89d
NN
2073# Handle ${copy_dirs}
2074set fnord ${copy_dirs}
2075shift
2076while test $# != 0 ; do
2077 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2078 :
2079 else
2080 echo Copying $1 to $2
2081
2082 # Use the install script to create the directory and all required
2083 # parent directories.
2084 if test -d $2 ; then
2085 :
2086 else
2087 echo >config.temp
2088 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2089 fi
2090
2091 # Copy the directory, assuming we have tar.
2092 # FIXME: Should we use B in the second tar? Not all systems support it.
2093 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2094
2095 # It is the responsibility of the user to correctly adjust all
2096 # symlinks. If somebody can figure out how to handle them correctly
2097 # here, feel free to add the code.
2098
2099 echo $1 > $2/COPIED
2100 fi
2101 shift; shift
2102done
2103
2429c060
PB
2104# Determine a target-dependent exec_prefix that the installed
2105# gcc will search in. Keep this list sorted by triplet, with
2106# the *-*-osname triplets last.
2107md_exec_prefix=
2108case "${target}" in
2109 alpha*-*-*vms*)
2110 md_exec_prefix=/gnu/lib/gcc-lib
2111 ;;
521ec477 2112 i[[34567]]86-pc-msdosdjgpp*)
2429c060
PB
2113 md_exec_prefix=/dev/env/DJDIR/bin
2114 ;;
521ec477 2115 i[[34567]]86-*-sco3.2v5*)
2429c060
PB
2116 if test $with_gnu_as = yes; then
2117 md_exec_prefix=/usr/gnu/bin
2118 else
2119 md_exec_prefix=/usr/ccs/bin/elf
2120 fi
2121 ;;
2122
2123 mn10300-*-* | \
2124 powerpc-*-chorusos* | \
2125 powerpc*-*-eabi* | \
2126 powerpc*-*-sysv* | \
2127 powerpc*-*-kaos* | \
2128 s390x-ibm-tpf*)
2129 md_exec_prefix=/usr/ccs/bin
2130 ;;
2131 sparc64-*-elf*)
2132 ;;
2133 v850*-*-*)
2134 md_exec_prefix=/usr/ccs/bin
2135 ;;
8b66833e 2136 xtensa*-*-elf*)
2429c060
PB
2137 ;;
2138
2139 *-*-beos* | \
2140 *-*-elf* | \
2141 *-*-hpux* | \
2142 *-*-netware* | \
2143 *-*-nto-qnx* | \
2144 *-*-rtems* | \
2145 *-*-solaris2* | \
521ec477 2146 *-*-sysv[[45]]* | \
2429c060
PB
2147 *-*-vxworks* | \
2148 *-wrs-windiss)
2149 md_exec_prefix=/usr/ccs/bin
2150 ;;
2151esac
2152
874e38b4
NN
2153extra_arflags_for_target=
2154extra_nmflags_for_target=
1086bc09 2155extra_ranlibflags_for_target=
a0da8069 2156target_makefile_frag=/dev/null
f48556b1 2157case "${target}" in
77d7106f
AM
2158 spu-*-*)
2159 target_makefile_frag="config/mt-spu"
2160 ;;
429acdec
RS
2161 mips*-sde-elf*)
2162 target_makefile_frag="config/mt-sde"
2163 ;;
f3b1e08e
RS
2164 mipsisa*-*-elfoabi*)
2165 target_makefile_frag="config/mt-mips-elfoabi"
2166 ;;
e7c8859c
RS
2167 mips*-*-*linux* | mips*-*-gnu*)
2168 target_makefile_frag="config/mt-mips-gnu"
2169 ;;
29383458 2170 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
3d6dfe0f 2171 target_makefile_frag="config/mt-gnu"
f48556b1 2172 ;;
a0da8069 2173 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
874e38b4
NN
2174 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
2175 # commands to handle both 32-bit and 64-bit objects. These flags are
2176 # harmless if we're using GNU nm or ar.
2177 extra_arflags_for_target=" -X32_64"
2178 extra_nmflags_for_target=" -B -X32_64"
f48556b1 2179 ;;
92f4e989
JM
2180 *-*-darwin[[3-9]]*)
2181 # ranlib before Darwin10 requires the -c flag to look at common symbols.
1086bc09
NN
2182 extra_ranlibflags_for_target=" -c"
2183 ;;
b6f83f2a
DD
2184esac
2185
a0da8069 2186alphaieee_frag=/dev/null
b6f83f2a
DD
2187case $target in
2188 alpha*-*-*)
2189 # This just makes sure to use the -mieee option to build target libs.
2190 # This should probably be set individually by each library.
2191 alphaieee_frag="config/mt-alphaieee"
f48556b1
DD
2192 ;;
2193esac
a0a2c6c6 2194
f48556b1
DD
2195# If --enable-target-optspace always use -Os instead of -O2 to build
2196# the target libraries, similarly if it is not specified, use -Os
2197# on selected platforms.
a0da8069 2198ospace_frag=/dev/null
f48556b1
DD
2199case "${enable_target_optspace}:${target}" in
2200 yes:*)
b6f83f2a 2201 ospace_frag="config/mt-ospace"
f48556b1
DD
2202 ;;
2203 :d30v-*)
b6f83f2a 2204 ospace_frag="config/mt-d30v"
f48556b1
DD
2205 ;;
2206 :m32r-* | :d10v-* | :fr30-*)
b6f83f2a 2207 ospace_frag="config/mt-ospace"
f48556b1
DD
2208 ;;
2209 no:* | :*)
2210 ;;
2211 *)
2212 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2213 ;;
2214esac
252b5132 2215
f48556b1
DD
2216# Default to using --with-stabs for certain targets.
2217if test x${with_stabs} = x ; then
2218 case "${target}" in
e31d1ea3 2219 mips*-*-irix[[56]]*)
f48556b1
DD
2220 ;;
2221 mips*-*-* | alpha*-*-osf*)
2222 with_stabs=yes;
ae831be5 2223 extra_host_args="${extra_host_args} --with-stabs"
f48556b1
DD
2224 ;;
2225 esac
2226fi
2227
2228# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
2229# them automatically.
2230case "${host}" in
2231 hppa*64*-*-hpux11*)
ae831be5 2232 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
f48556b1 2233 ;;
c92a0210
DD
2234esac
2235
a0da8069
NN
2236# Some systems (e.g., one of the i386-aix systems the gas testers are
2237# using) don't handle "\$" correctly, so don't use it here.
c6b750e1 2238tooldir='${exec_prefix}'/${target_noncanonical}
a0da8069
NN
2239build_tooldir=${tooldir}
2240
a0da8069
NN
2241# Create a .gdbinit file which runs the one in srcdir
2242# and tells GDB to look there for source files.
2243
2244if test -r ${srcdir}/.gdbinit ; then
2245 case ${srcdir} in
2246 .) ;;
2247 *) cat > ./.gdbinit <<EOF
2248# ${NO_EDIT}
2249dir ${srcdir}
2250dir .
2251source ${srcdir}/.gdbinit
2252EOF
2253 ;;
2254 esac
2255fi
2256
252b5132
RH
2257# Make sure that the compiler is able to generate an executable. If it
2258# can't, we are probably in trouble. We don't care whether we can run the
2259# executable--we might be using a cross compiler--we only care whether it
2260# can be created. At this point the main configure script has set CC.
a0c4f3a0 2261we_are_ok=no
252b5132
RH
2262echo "int main () { return 0; }" > conftest.c
2263${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
a0c4f3a0
DD
2264if test $? = 0 ; then
2265 if test -s conftest || test -s conftest.exe ; then
2266 we_are_ok=yes
2267 fi
2268fi
2269case $we_are_ok in
2270 no)
2271 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2272 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2273 rm -f conftest*
2274 exit 1
2275 ;;
2276esac
252b5132
RH
2277rm -f conftest*
2278
2279# The Solaris /usr/ucb/cc compiler does not appear to work.
2280case "${host}" in
2281 sparc-sun-solaris2*)
2282 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
a0da8069 2283 if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
252b5132 2284 could_use=
a0c4f3a0
DD
2285 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
2286 if test -d /opt/cygnus/bin ; then
2287 if test "$could_use" = "" ; then
252b5132
RH
2288 could_use="/opt/cygnus/bin"
2289 else
2290 could_use="$could_use or /opt/cygnus/bin"
2291 fi
2292 fi
a0c4f3a0 2293 if test "$could_use" = "" ; then
252b5132
RH
2294 echo "Warning: compilation may fail because you're using"
2295 echo "/usr/ucb/cc. You should change your PATH or CC "
2296 echo "variable and rerun configure."
2297 else
2298 echo "Warning: compilation may fail because you're using"
2299 echo "/usr/ucb/cc, when you should use the C compiler from"
2300 echo "$could_use. You should change your"
2301 echo "PATH or CC variable and rerun configure."
2302 fi
2303 fi
2304 ;;
2305esac
2306
3bbd2f8f 2307# Decide which environment variable is used to find dynamic libraries.
8607b6c9
NN
2308case "${host}" in
2309 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
3516a403 2310 *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
3bbd2f8f 2311 *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
8607b6c9
NN
2312 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2313esac
8607b6c9 2314
3bbd2f8f 2315# On systems where the dynamic library environment variable is PATH,
e28c595f
JM
2316# gcc/ will put dynamic libraries into a subdirectory to avoid adding
2317# built executables to PATH.
3bbd2f8f
AL
2318if test "$RPATH_ENVVAR" = PATH; then
2319 GCC_SHLIB_SUBDIR=/shlib
2320else
2321 GCC_SHLIB_SUBDIR=
2322fi
2323
3866be5d
NN
2324# Record target_configdirs and the configure arguments for target and
2325# build configuration in Makefile.
2326target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
6a9cf61e 2327build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
930314a4 2328
2aa2364a
JR
2329# If we are building libgomp, bootstrap it.
2330if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
2331 bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
2332fi
2333
930314a4
NN
2334# Determine whether gdb needs tk/tcl or not.
2335# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2336# and in that case we want gdb to be built without tk. Ugh!
2337# In fact I believe gdb is the *only* package directly dependent on tk,
2338# so we should be able to put the 'maybe's in unconditionally and
2339# leave out the maybe dependencies when enable_gdbtk is false. I'm not
2340# 100% sure that that's safe though.
c180f501 2341
675c6968 2342gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
930314a4
NN
2343case "$enable_gdbtk" in
2344 no)
2345 GDB_TK="" ;;
c180f501
AC
2346 yes)
2347 GDB_TK="${gdb_tk}" ;;
930314a4 2348 *)
c180f501
AC
2349 # Only add the dependency on gdbtk when GDBtk is part of the gdb
2350 # distro. Eventually someone will fix this and move Insight, nee
2351 # gdbtk to a separate directory.
2352 if test -d ${srcdir}/gdb/gdbtk ; then
2353 GDB_TK="${gdb_tk}"
2354 else
2355 GDB_TK=""
2356 fi
2357 ;;
930314a4 2358esac
907be67c
DJ
2359CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2360INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
930314a4 2361
6bd3dfaa 2362# Strip out unwanted targets.
dd12c3a8
NN
2363
2364# While at that, we remove Makefiles if we were started for recursive
2365# configuration, so that the top-level Makefile reconfigures them,
2366# like we used to do when configure itself was recursive.
dd12c3a8 2367
06a51eac
RW
2368# Loop over modules. We used to use the "$extrasub" feature from Autoconf
2369# but now we're fixing up the Makefile ourselves with the additional
2370# commands passed to AC_CONFIG_FILES. Use separate variables
2371# extrasub-{build,host,target} not because there is any reason to split
2372# the substitutions up that way, but only to remain below the limit of
2373# 99 commands in a script, for HP-UX sed.
2374# Do not nest @if/@endif pairs, because configure will not warn you at all.
dd12c3a8 2375
498d4a71 2376AC_ARG_ENABLE([bootstrap],
7837304f
AS
2377[AS_HELP_STRING([--enable-bootstrap],
2378 [enable bootstrapping @<:@yes if native build@:>@])],,
9cb3fa6f
PB
2379enable_bootstrap=default)
2380
2381# Issue errors and warnings for invalid/strange bootstrap combinations.
2382case "$configdirs" in
2383 *gcc*) have_compiler=yes ;;
2384 *) have_compiler=no ;;
2385esac
2386
2387case "$have_compiler:$host:$target:$enable_bootstrap" in
2388 *:*:*:no) ;;
2389
0aed8855 2390 # Default behavior. Enable bootstrap if we have a compiler
9cb3fa6f
PB
2391 # and we are in a native configuration.
2392 yes:$build:$build:default)
0aed8855 2393 enable_bootstrap=yes ;;
9cb3fa6f
PB
2394
2395 *:*:*:default)
2396 enable_bootstrap=no ;;
2397
2398 # We have a compiler and we are in a native configuration, bootstrap is ok
80911fe1 2399 yes:$build:$build:yes)
9cb3fa6f
PB
2400 ;;
2401
2402 # Other configurations, but we have a compiler. Assume the user knows
2403 # what he's doing.
80911fe1 2404 yes:*:*:yes)
9cb3fa6f
PB
2405 AC_MSG_WARN([trying to bootstrap a cross compiler])
2406 ;;
498d4a71 2407
9cb3fa6f 2408 # No compiler: if they passed --enable-bootstrap explicitly, fail
80911fe1 2409 no:*:*:yes)
9cb3fa6f
PB
2410 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2411
2412 # Fail if wrong command line
2413 *)
2414 AC_MSG_ERROR([invalid option for --enable-bootstrap])
2415 ;;
2416esac
2417
4385ad3c
RW
2418case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
2419 *,c++,*:yes:yes) ;;
2420 *:yes:yes)
2421 AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
2422 ;;
2423esac
2424
16b1ad29
RW
2425case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2426 yes:yes:*\ gold\ *:*,c++,*) ;;
2427 yes:yes:*\ gold\ *:*)
2428 AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2429 ;;
2430esac
2431
9cb3fa6f 2432# Adjust the toplevel makefile according to whether bootstrap was selected.
96655cc4 2433case $enable_bootstrap in
498d4a71 2434 yes)
96655cc4
AO
2435 bootstrap_suffix=bootstrap
2436 BUILD_CONFIG=bootstrap-debug
2437 ;;
498d4a71 2438 no)
96655cc4
AO
2439 bootstrap_suffix=no-bootstrap
2440 BUILD_CONFIG=
2441 ;;
498d4a71 2442esac
498d4a71 2443
96655cc4
AO
2444AC_MSG_CHECKING(for default BUILD_CONFIG)
2445
2446AC_ARG_WITH([build-config],
7837304f
AS
2447 [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
2448 [use config/NAME.mk build configuration])],
96655cc4
AO
2449 [case $with_build_config in
2450 yes) with_build_config= ;;
2451 no) with_build_config= BUILD_CONFIG= ;;
2452 esac])
2453
2454if test "x${with_build_config}" != x; then
2455 BUILD_CONFIG=$with_build_config
2456else
2457 case $BUILD_CONFIG in
2458 bootstrap-debug)
2459 if echo "int f (void) { return 0; }" > conftest.c &&
2460 ${CC} -c conftest.c &&
2461 mv conftest.o conftest.o.g0 &&
2462 ${CC} -c -g conftest.c &&
2463 mv conftest.o conftest.o.g &&
a009f2e7 2464 ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
96655cc4
AO
2465 :
2466 else
2467 BUILD_CONFIG=
2468 fi
2469 rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2470 ;;
2471 esac
2472fi
2473AC_MSG_RESULT($BUILD_CONFIG)
2474AC_SUBST(BUILD_CONFIG)
2475
06a51eac 2476extrasub_build=
6a9cf61e 2477for module in ${build_configdirs} ; do
dd12c3a8
NN
2478 if test -z "${no_recursion}" \
2479 && test -f ${build_subdir}/${module}/Makefile; then
2480 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2481 rm -f ${build_subdir}/${module}/Makefile
2482 fi
06a51eac 2483 extrasub_build="$extrasub_build
6bd3dfaa 2484/^@if build-$module\$/d
498d4a71
CF
2485/^@endif build-$module\$/d
2486/^@if build-$module-$bootstrap_suffix\$/d
2487/^@endif build-$module-$bootstrap_suffix\$/d"
dd12c3a8 2488done
06a51eac 2489extrasub_host=
dd12c3a8 2490for module in ${configdirs} ; do
80911fe1 2491 if test -z "${no_recursion}"; then
8cf39b1b 2492 for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
80911fe1
PB
2493 if test -f ${file}; then
2494 echo 1>&2 "*** removing ${file} to force reconfigure"
2495 rm -f ${file}
2496 fi
2497 done
dd12c3a8 2498 fi
06a51eac 2499 extrasub_host="$extrasub_host
6bd3dfaa 2500/^@if $module\$/d
498d4a71
CF
2501/^@endif $module\$/d
2502/^@if $module-$bootstrap_suffix\$/d
2503/^@endif $module-$bootstrap_suffix\$/d"
dd12c3a8 2504done
06a51eac 2505extrasub_target=
dd12c3a8
NN
2506for module in ${target_configdirs} ; do
2507 if test -z "${no_recursion}" \
2508 && test -f ${target_subdir}/${module}/Makefile; then
2509 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2510 rm -f ${target_subdir}/${module}/Makefile
2511 fi
e8a5fa9c
RW
2512
2513 # We only bootstrap target libraries listed in bootstrap_target_libs.
2514 case $bootstrap_target_libs in
2515 *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
2516 *) target_bootstrap_suffix=no-bootstrap ;;
2517 esac
2518
06a51eac 2519 extrasub_target="$extrasub_target
6bd3dfaa 2520/^@if target-$module\$/d
498d4a71 2521/^@endif target-$module\$/d
e8a5fa9c
RW
2522/^@if target-$module-$target_bootstrap_suffix\$/d
2523/^@endif target-$module-$target_bootstrap_suffix\$/d"
930314a4 2524done
319cab08 2525
06a51eac
RW
2526# Do the final fixup along with target modules.
2527extrasub_target="$extrasub_target
6bd3dfaa 2528/^@if /,/^@endif /d"
930314a4 2529
a2cc058a
NN
2530# Create the serialization dependencies. This uses a temporary file.
2531
e6bfb94a 2532AC_ARG_ENABLE([serial-configure],
7837304f
AS
2533[AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
2534 [force sequential configuration of
2535 sub-packages for the host, target or build
2536 machine, or all sub-packages])])
1047cb91
DD
2537
2538case ${enable_serial_configure} in
2539 yes)
2540 enable_serial_build_configure=yes
2541 enable_serial_host_configure=yes
2542 enable_serial_target_configure=yes
2543 ;;
2544esac
e6bfb94a 2545
a2cc058a
NN
2546# These force 'configure's to be done one at a time, to avoid problems
2547# with contention over a shared config.cache.
2548rm -f serdep.tmp
e6bfb94a 2549echo '# serdep.tmp' > serdep.tmp
a2cc058a 2550olditem=
1047cb91 2551test "x${enable_serial_build_configure}" = xyes &&
a2cc058a
NN
2552for item in ${build_configdirs} ; do
2553 case ${olditem} in
2554 "") ;;
e6bfb94a 2555 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
2556 esac
2557 olditem=${item}
2558done
2559olditem=
1047cb91 2560test "x${enable_serial_host_configure}" = xyes &&
a2cc058a
NN
2561for item in ${configdirs} ; do
2562 case ${olditem} in
2563 "") ;;
e6bfb94a 2564 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
2565 esac
2566 olditem=${item}
2567done
2568olditem=
1047cb91 2569test "x${enable_serial_target_configure}" = xyes &&
a2cc058a
NN
2570for item in ${target_configdirs} ; do
2571 case ${olditem} in
2572 "") ;;
e6bfb94a 2573 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
2574 esac
2575 olditem=${item}
2576done
a0da8069
NN
2577serialization_dependencies=serdep.tmp
2578AC_SUBST_FILE(serialization_dependencies)
a2cc058a 2579
e6bfb94a 2580# Base args. Strip norecursion, cache-file, srcdir, host, build,
c6b750e1 2581# target, nonopt, and variable assignments. These are the ones we
30167e0a
NC
2582# might not want to pass down to subconfigures. The exception being
2583# --cache-file=/dev/null, which is used to turn off the use of cache
2584# files altogether, and which should be passed on to subconfigures.
2585# Also strip program-prefix, program-suffix, and program-transform-name,
2586# so that we can pass down a consistent program-transform-name.
c6b750e1 2587baseargs=
65b4571a 2588tbaseargs=
c6b750e1
DJ
2589keep_next=no
2590skip_next=no
2591eval "set -- $ac_configure_args"
b0aaa663
DJ
2592for ac_arg
2593do
c6b750e1
DJ
2594 if test X"$skip_next" = X"yes"; then
2595 skip_next=no
2596 continue
2597 fi
2598 if test X"$keep_next" = X"yes"; then
2599 case $ac_arg in
2600 *\'*)
2601 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2602 esac
2603 baseargs="$baseargs '$ac_arg'"
65b4571a 2604 tbaseargs="$tbaseargs '$ac_arg'"
c6b750e1
DJ
2605 keep_next=no
2606 continue
2607 fi
2608
2609 # Handle separated arguments. Based on the logic generated by
2610 # autoconf 2.59.
2611 case $ac_arg in
2612 *=* | --config-cache | -C | -disable-* | --disable-* \
2613 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2614 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2615 | -with-* | --with-* | -without-* | --without-* | --x)
2616 separate_arg=no
2617 ;;
2618 -*)
2619 separate_arg=yes
2620 ;;
2621 *)
2622 separate_arg=no
2623 ;;
2624 esac
2625
65b4571a
AO
2626 skip_targ=no
2627 case $ac_arg in
2628changequote(,)
2629 --with-* | --without-*)
2630 libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
2631
2632 case $libopt in
2633 *[-_]include)
2634 lib=`echo "$libopt" | sed 's,[-_]include$,,'`
2635 ;;
2636 *[-_]lib)
2637 lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
2638 ;;
2639 *)
2640 lib=$libopt
2641 ;;
2642 esac
2643changequote([,])
2644
2645 case $lib in
2646 mpc | mpfr | gmp | ppl | cloog)
2647 # If we're processing --with-$lib, --with-$lib-include or
2648 # --with-$lib-lib, for one of the libs above, and target is
2649 # different from host, don't pass the current argument to any
2650 # target library's configure.
2651 if test x$is_cross_compiler = xyes; then
2652 skip_targ=yes
2653 fi
2654 ;;
2655 esac
2656 ;;
2657 esac
2658
c6b750e1 2659 case "$ac_arg" in
30167e0a
NC
2660 --cache-file=/dev/null | \
2661 -cache-file=/dev/null )
2662 # Handled here to avoid the test to skip args below.
2663 baseargs="$baseargs '$ac_arg'"
65b4571a 2664 tbaseargs="$tbaseargs '$ac_arg'"
30167e0a
NC
2665 # Assert: $separate_arg should always be no.
2666 keep_next=$separate_arg
2667 ;;
c6b750e1
DJ
2668 --no*)
2669 continue
2670 ;;
2671 --c* | \
2672 --sr* | \
2673 --ho* | \
2674 --bu* | \
2675 --t* | \
2676 --program-* | \
2677 -cache_file* | \
2678 -srcdir* | \
2679 -host* | \
2680 -build* | \
2681 -target* | \
2682 -program-prefix* | \
2683 -program-suffix* | \
2684 -program-transform-name* )
2685 skip_next=$separate_arg
2686 continue
2687 ;;
2688 -*)
2689 # An option. Add it.
2690 case $ac_arg in
2691 *\'*)
2692 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2693 esac
2694 baseargs="$baseargs '$ac_arg'"
65b4571a
AO
2695 if test X"$skip_targ" = Xno; then
2696 tbaseargs="$tbaseargs '$ac_arg'"
2697 fi
c6b750e1
DJ
2698 keep_next=$separate_arg
2699 ;;
2700 *)
2701 # Either a variable assignment, or a nonopt (triplet). Don't
2702 # pass it down; let the Makefile handle this.
2703 continue
2704 ;;
2705 esac
2706done
2707# Remove the initial space we just introduced and, as these will be
2708# expanded by make, quote '$'.
2709baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
252b5132 2710
f27d4f92
DJ
2711# Add in --program-transform-name, after --program-prefix and
2712# --program-suffix have been applied to it. Autoconf has already
2713# doubled dollar signs and backslashes in program_transform_name; we want
2714# the backslashes un-doubled, and then the entire thing wrapped in single
2715# quotes, because this will be expanded first by make and then by the shell.
2716# Also, because we want to override the logic in subdir configure scripts to
2717# choose program_transform_name, replace any s,x,x, with s,y,y,.
2718sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2719${program_transform_name}
2720EOF_SED
2721gcc_transform_name=`cat conftestsed.out`
2722rm -f conftestsed.out
2723baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
65b4571a 2724tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
2444379b
BE
2725if test "$silent" = yes; then
2726 baseargs="$baseargs --silent"
65b4571a 2727 tbaseargs="$tbaseargs --silent"
2444379b 2728fi
34a0f3cf 2729baseargs="$baseargs --disable-option-checking"
65b4571a 2730tbaseargs="$tbaseargs --disable-option-checking"
f27d4f92 2731
4074d5f2
RW
2732# Record and document user additions to sub configure arguments.
2733AC_ARG_VAR([build_configargs],
2734 [additional configure arguments for build directories])
2735AC_ARG_VAR([host_configargs],
2736 [additional configure arguments for host directories])
2737AC_ARG_VAR([target_configargs],
2738 [additional configure arguments for target directories])
2739
49b7683b
DD
2740# For the build-side libraries, we just need to pretend we're native,
2741# and not use the same cache file. Multilibs are neither needed nor
2742# desired.
4074d5f2 2743build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}"
91e060aa 2744
ae831be5
NN
2745# For host modules, accept cache file option, or specification as blank.
2746case "${cache_file}" in
2747"") # empty
2748 cache_file_option="" ;;
a0da8069 2749/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
ae831be5
NN
2750 cache_file_option="--cache-file=${cache_file}" ;;
2751*) # relative path
2752 cache_file_option="--cache-file=../${cache_file}" ;;
2753esac
2754
82252c06
NN
2755# Host dirs don't like to share a cache file either, horribly enough.
2756# This seems to be due to autoconf 2.5x stupidity.
4074d5f2 2757host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
ae831be5 2758
65b4571a 2759target_configargs="$target_configargs ${tbaseargs}"
49b7683b 2760
252b5132
RH
2761# Passing a --with-cross-host argument lets the target libraries know
2762# whether they are being built with a cross-compiler or being built
2763# native. However, it would be better to use other mechanisms to make the
2764# sorts of decisions they want to make on this basis. Please consider
2765# this option to be deprecated. FIXME.
a0c4f3a0 2766if test x${is_cross_compiler} = xyes ; then
c6b750e1 2767 target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
252b5132
RH
2768fi
2769
938d2b74
RW
2770# Default to --enable-multilib.
2771if test x${enable_multilib} = x ; then
a0da8069 2772 target_configargs="--enable-multilib ${target_configargs}"
938d2b74 2773fi
252b5132
RH
2774
2775# Pass --with-newlib if appropriate. Note that target_configdirs has
2776# changed from the earlier setting of with_newlib.
a0c4f3a0 2777if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
a0da8069 2778 target_configargs="--with-newlib ${target_configargs}"
252b5132
RH
2779fi
2780
95036d20
NN
2781# Different target subdirs use different values of certain variables
2782# (notably CXX). Worse, multilibs use *lots* of different values.
2783# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2784# it doesn't automatically accept command-line overrides of them.
2785# This means it's not safe for target subdirs to share a cache file,
2786# which is disgusting, but there you have it. Hopefully this can be
2787# fixed in future. It's still worthwhile to use a cache file for each
2788# directory. I think.
2789
ae380b45
MS
2790# Pass the appropriate --build, --host, --target and --cache-file arguments.
2791# We need to pass --target, as newer autoconf's requires consistency
2792# for target_alias and gcc doesn't manage it consistently.
4b900473 2793target_configargs="--cache-file=./config.cache ${target_configargs}"
49b7683b 2794
9e449d3e 2795FLAGS_FOR_TARGET=
7c1f909c 2796case " $target_configdirs " in
75205f78 2797 *" newlib "*)
a0da8069 2798 case " $target_configargs " in
75205f78 2799 *" --with-newlib "*)
9e449d3e 2800 case "$target" in
1f53ca9a
AO
2801 *-cygwin*)
2802 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include'
2803 ;;
9e449d3e
AO
2804 esac
2805
7450026c 2806 # If we're not building GCC, don't discard standard headers.
4d5fd396 2807 if test -d ${srcdir}/gcc; then
63266560 2808 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
7450026c
AO
2809
2810 if test "${build}" != "${host}"; then
2811 # On Canadian crosses, CC_FOR_TARGET will have already been set
2812 # by `configure', so we won't have an opportunity to add -Bgcc/
2813 # to it. This is right: we don't want to search that directory
2814 # for binaries, but we want the header files in there, so add
2815 # them explicitly.
e552509b 2816 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
7450026c
AO
2817
2818 # Someone might think of using the pre-installed headers on
2819 # Canadian crosses, in case the installed compiler is not fully
2820 # compatible with the compiler being built. In this case, it
2821 # would be better to flag an error than risking having
2822 # incompatible object files being constructed. We can't
2823 # guarantee that an error will be flagged, but let's hope the
2824 # compiler will do it, when presented with incompatible header
2825 # files.
2826 fi
63266560
DD
2827 fi
2828
0a0d0041 2829 case "${target}-${is_cross_compiler}" in
ec11bdc6 2830 i[[3456789]]86-*-linux*-no)
0a0d0041
TF
2831 # Here host == target, so we don't need to build gcc,
2832 # so we don't want to discard standard headers.
2833 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
0a0d0041
TF
2834 ;;
2835 *)
2836 # If we're building newlib, use its generic headers last, but search
2837 # for any libc-related directories first (so make it the last -B
2838 # switch).
2839 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
691bb5a1
DD
2840
2841 # If we're building libgloss, find the startup file, simulator library
2842 # and linker script.
2843 case " $target_configdirs " in
2844 *" libgloss "*)
2845 # Look for startup file, simulator library and maybe linker script.
2846 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2847 # Look for libnosys.a in case the target needs it.
2848 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2849 # Most targets have the linker script in the source directory.
2850 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2851 ;;
2852 esac
0a0d0041
TF
2853 ;;
2854 esac
9e449d3e 2855 ;;
75205f78
DD
2856 esac
2857 ;;
9e449d3e 2858esac
1f53ca9a 2859
45055374 2860case "$target" in
1f53ca9a
AO
2861 x86_64-*mingw* | *-w64-mingw*)
2862 # MinGW-w64 does not use newlib, nor does it use winsup. It may,
2863 # however, use a symlink named 'mingw' in ${prefix} .
2864 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
2865 ;;
2866 *-mingw*)
2867 # MinGW can't be handled as Cygwin above since it does not use newlib.
2868 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include'
2869 ;;
45055374 2870esac
63266560 2871
5fbad20a
DD
2872# Allow the user to override the flags for
2873# our build compiler if desired.
c66487f8
NC
2874if test x"${build}" = x"${host}" ; then
2875 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2876 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
2877 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
2878fi
5fbad20a 2879
63266560
DD
2880# On Canadian crosses, we'll be searching the right directories for
2881# the previously-installed cross compiler, so don't bother to add
2882# flags for directories within the install tree of the compiler
2883# being built; programs in there won't even run.
4d5fd396 2884if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
9e449d3e 2885 # Search for pre-installed headers if nothing else fits.
bba45b8b 2886 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
9e449d3e 2887fi
63266560 2888
7c1f909c 2889if test "x${use_gnu_ld}" = x &&
f48556b1 2890 echo " ${configdirs} " | grep " ld " > /dev/null ; then
9e449d3e 2891 # Arrange for us to find uninstalled linker scripts.
b00612cc 2892 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
9e449d3e
AO
2893fi
2894
a481dbb7
DD
2895# Search for other target-specific linker scripts and such.
2896case "${target}" in
4e206d7e
DB
2897 mep*)
2898 FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
2899 ;;
2900esac
2901
a0da8069 2902# Makefile fragments.
3e707e94
PB
2903for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2904do
2905 eval fragval=\$$frag
2906 if test $fragval != /dev/null; then
2907 eval $frag=${srcdir}/$fragval
2908 fi
2909done
a0da8069
NN
2910AC_SUBST_FILE(host_makefile_frag)
2911AC_SUBST_FILE(target_makefile_frag)
2912AC_SUBST_FILE(alphaieee_frag)
2913AC_SUBST_FILE(ospace_frag)
2914
2915# Miscellanea: directories, flags, etc.
a0da8069 2916AC_SUBST(RPATH_ENVVAR)
3bbd2f8f 2917AC_SUBST(GCC_SHLIB_SUBDIR)
a0da8069
NN
2918AC_SUBST(tooldir)
2919AC_SUBST(build_tooldir)
907be67c 2920AC_SUBST(CONFIGURE_GDB_TK)
a0da8069 2921AC_SUBST(GDB_TK)
907be67c 2922AC_SUBST(INSTALL_GDB_TK)
a0da8069
NN
2923
2924# Build module lists & subconfigure args.
a0da8069 2925AC_SUBST(build_configargs)
6a9cf61e 2926AC_SUBST(build_configdirs)
a0da8069
NN
2927
2928# Host module lists & subconfigure args.
2929AC_SUBST(host_configargs)
2930AC_SUBST(configdirs)
911e63d0 2931AC_SUBST(target_configdirs)
a0da8069
NN
2932
2933# Target module lists & subconfigure args.
a0da8069 2934AC_SUBST(target_configargs)
a6df5a19 2935
a0da8069
NN
2936
2937# Build tools.
b5714970
PB
2938AC_SUBST(AR_FOR_BUILD)
2939AC_SUBST(AS_FOR_BUILD)
a0da8069 2940AC_SUBST(CC_FOR_BUILD)
b5714970
PB
2941AC_SUBST(CFLAGS_FOR_BUILD)
2942AC_SUBST(CXXFLAGS_FOR_BUILD)
2943AC_SUBST(CXX_FOR_BUILD)
2944AC_SUBST(DLLTOOL_FOR_BUILD)
2945AC_SUBST(GCJ_FOR_BUILD)
2946AC_SUBST(GFORTRAN_FOR_BUILD)
e552509b 2947AC_SUBST(GOC_FOR_BUILD)
b5714970
PB
2948AC_SUBST(LDFLAGS_FOR_BUILD)
2949AC_SUBST(LD_FOR_BUILD)
2950AC_SUBST(NM_FOR_BUILD)
2951AC_SUBST(RANLIB_FOR_BUILD)
2952AC_SUBST(WINDMC_FOR_BUILD)
2953AC_SUBST(WINDRES_FOR_BUILD)
a0da8069
NN
2954AC_SUBST(config_shell)
2955
be01d343
PB
2956# Generate default definitions for YACC, M4, LEX and other programs that run
2957# on the build machine. These are used if the Makefile can't locate these
2958# programs in objdir.
2959MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2960
2961AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2962case " $build_configdirs " in
2963 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2964 *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2965esac
2966
2967AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2968case " $build_configdirs " in
2969 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2970esac
2971
2972AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2973case " $build_configdirs " in
2974 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2975esac
2976
2977AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2978case " $build_configdirs " in
2979 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2980 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2981esac
2982
2983AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2984case " $build_configdirs " in
2985 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2986esac
2987
2988AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2989case " $build_configdirs " in
2990 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2991 *)
2992changequote(,)
10ad8ef3 2993 # For an installed makeinfo, we require it to be from texinfo 4.7 or
be01d343
PB
2994 # higher, else we use the "missing" dummy.
2995 if ${MAKEINFO} --version \
10ad8ef3 2996 | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
be01d343
PB
2997 :
2998 else
2999 MAKEINFO="$MISSING makeinfo"
3000 fi
3001 ;;
3002changequote([,])
3003esac
3004
3005# FIXME: expect and dejagnu may become build tools?
3006
3007AC_CHECK_PROGS(EXPECT, expect, expect)
3008case " $configdirs " in
3009 *" expect "*)
3010 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3011 ;;
3012esac
3013
3014AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3015case " $configdirs " in
3016 *" dejagnu "*)
6b89cc21 3017 test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
be01d343
PB
3018 ;;
3019esac
3020
3021
a0da8069 3022# Host tools.
05cbd757
PB
3023NCN_STRICT_CHECK_TOOLS(AR, ar)
3024NCN_STRICT_CHECK_TOOLS(AS, as)
3025NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3026NCN_STRICT_CHECK_TOOLS(LD, ld)
be01d343 3027NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
05cbd757 3028NCN_STRICT_CHECK_TOOLS(NM, nm)
ba98da75
RO
3029NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
3030NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
05cbd757 3031NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
0c24b341 3032NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
05cbd757
PB
3033NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3034NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
a0da8069
NN
3035AC_SUBST(CC)
3036AC_SUBST(CXX)
3037AC_SUBST(CFLAGS)
3038AC_SUBST(CXXFLAGS)
a0da8069 3039
be01d343 3040# Target tools.
2429c060 3041AC_ARG_WITH([build-time-tools],
7837304f
AS
3042 [AS_HELP_STRING([--with-build-time-tools=PATH],
3043 [use given path to find target tools during the build])],
2429c060
PB
3044 [case x"$withval" in
3045 x/*) ;;
3046 *)
3047 with_build_time_tools=
3048 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3049 ;;
3050 esac],
3051 [with_build_time_tools=])
3052
05cbd757
PB
3053NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3054NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
05cbd757
PB
3055NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3056NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
3057NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
e552509b 3058NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
2429c060
PB
3059
3060ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3061ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3062ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3063ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3064ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3065ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3066ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
ba98da75 3067ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
2429c060
PB
3068ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3069ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
0c24b341 3070ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
55db4b87 3071
be01d343
PB
3072RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3073
3074GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3075GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3076GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
950386c6 3077dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
be01d343 3078GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
950386c6 3079 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
be01d343
PB
3080 c++)
3081GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3082 [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
3083 c++)
3084GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3085GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3086GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
3087 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
3088GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3089 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
e552509b
ILT
3090GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
3091 [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
be01d343
PB
3092GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3093GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3094GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3095GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3096GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
9b980aa1 3097GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
be01d343 3098GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
0c24b341 3099GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
55db4b87 3100
be01d343 3101AC_SUBST(FLAGS_FOR_TARGET)
55db4b87 3102AC_SUBST(RAW_CXX_FOR_TARGET)
54752a6b 3103
a0da8069
NN
3104# Certain tools may need extra flags.
3105AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3106RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3107NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
252b5132 3108
be01d343
PB
3109# When building target libraries, except in a Canadian cross, we use
3110# the same toolchain as the compiler we just built.
3111COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3112COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3113COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3114if test $host = $build; then
3115 case " $configdirs " in
3116 *" gcc "*)
3117 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3118 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3119 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3120 ;;
3121 esac
3122fi
3123
3124AC_SUBST(COMPILER_AS_FOR_TARGET)
3125AC_SUBST(COMPILER_LD_FOR_TARGET)
3126AC_SUBST(COMPILER_NM_FOR_TARGET)
3127
6b784d9f
AO
3128AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3129AC_ARG_ENABLE(maintainer-mode,
7837304f
AS
3130[AS_HELP_STRING([--enable-maintainer-mode],
3131 [enable make rules and dependencies not useful
3132 (and sometimes confusing) to the casual installer])],
6b784d9f
AO
3133 USE_MAINTAINER_MODE=$enableval,
3134 USE_MAINTAINER_MODE=no)
3135AC_MSG_RESULT($USE_MAINTAINER_MODE)
3136AC_SUBST(MAINTAINER_MODE_TRUE)
3137AC_SUBST(MAINTAINER_MODE_FALSE)
3138if test "$USE_MAINTAINER_MODE" = yes; then
3139 MAINTAINER_MODE_TRUE=
3140 MAINTAINER_MODE_FALSE='#'
3141else
3142 MAINTAINER_MODE_TRUE='#'
3143 MAINTAINER_MODE_FALSE=
3144fi
3145MAINT=$MAINTAINER_MODE_TRUE
3146AC_SUBST(MAINT)dnl
3147
1d39f329
NN
3148# ---------------------
3149# GCC bootstrap support
3150# ---------------------
3151
3152# Stage specific cflags for build.
3153stage1_cflags="-g"
3154case $build in
3155 vax-*-*)
3156 case ${GCC} in
3157 yes) stage1_cflags="-g -Wa,-J" ;;
3158 *) stage1_cflags="-g -J" ;;
3159 esac ;;
1d39f329 3160esac
1d89b610
PB
3161
3162# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
e8a5fa9c 3163if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
1d89b610
PB
3164 saved_CFLAGS="$CFLAGS"
3165
3166 # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
3167 CFLAGS="$CFLAGS -fkeep-inline-functions"
3168 AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
2038f525
PB
3169 AC_TRY_COMPILE([
3170#if (__GNUC__ < 3) \
3171 || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
3172 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
3173#error http://gcc.gnu.org/PR29382
3174#endif
3175 ],,
1d89b610
PB
3176 [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
3177 [AC_MSG_RESULT([no])])
3178
3179 CFLAGS="$saved_CFLAGS"
3180fi
3181
1d39f329
NN
3182AC_SUBST(stage1_cflags)
3183
8a0d8a5c
PB
3184# Enable --enable-checking in stage1 of the compiler.
3185AC_ARG_ENABLE(stage1-checking,
7837304f
AS
3186[AS_HELP_STRING([[--enable-stage1-checking[=all]]],
3187 [choose additional checking for stage1 of the compiler])],
8a0d8a5c 3188[stage1_checking=--enable-checking=${enable_stage1_checking}],
5566c1fa 3189[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
2abc4e65 3190 stage1_checking=--enable-checking=yes,types
8a0d8a5c 3191else
5566c1fa 3192 stage1_checking=--enable-checking=$enable_checking,types
8a0d8a5c
PB
3193fi])
3194AC_SUBST(stage1_checking)
3195
1d39f329 3196# Enable -Werror in bootstrap stage2 and later.
1d39f329 3197AC_ARG_ENABLE(werror,
7837304f
AS
3198[AS_HELP_STRING([--enable-werror],
3199 [enable -Werror in bootstrap stage2 and later])], [],
a0323144 3200[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
79fcd0ec
PB
3201 enable_werror=yes
3202else
3203 enable_werror=no
3204fi])
1a6f2dc7
NN
3205case ${enable_werror} in
3206 yes) stage2_werror_flag="--enable-werror-always" ;;
3207 *) stage2_werror_flag="" ;;
1d39f329 3208esac
1a6f2dc7 3209AC_SUBST(stage2_werror_flag)
1d39f329 3210
e8a5fa9c
RW
3211# Specify what files to not compare during bootstrap.
3212
3213compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3214case "$target" in
3215 hppa*64*-*-hpux*) ;;
3216 hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
3217esac
1f53ca9a
AO
3218case " $configdirs " in
3219*" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;;
3220esac
e8a5fa9c
RW
3221AC_SUBST(compare_exclusions)
3222
06a51eac
RW
3223AC_CONFIG_FILES([Makefile],
3224 [sed "$extrasub_build" Makefile |
3225 sed "$extrasub_host" |
3226 sed "$extrasub_target" > mf$$
3227 mv -f mf$$ Makefile],
3228 [extrasub_build="$extrasub_build"
3229 extrasub_host="$extrasub_host"
3230 extrasub_target="$extrasub_target"])
3231AC_OUTPUT
This page took 0.698903 seconds and 4 git commands to generate.