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