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