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