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