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