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