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