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