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