Mostly work by Pedro to port libstdc++
[cegcc.git] / cegcc / src / gcc-4.4.0 / configure.ac
blob7b1a342c5754de79fdc539bb6063e74f91af885f
1 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2 #   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
3 #   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)
26 AC_INIT(move-if-change)
27 AC_PREREQ(2.59)
29 progname=$0
30 # if PWD already has a value, it is probably wrong.
31 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
33 # Export original configure arguments for use by sub-configures.
34 # Quote arguments with shell meta charatcers.
35 TOPLEVEL_CONFIGURE_ARGUMENTS=
36 set -- "$progname" "$@"
37 for ac_arg
39   case "$ac_arg" in
40   *" "*|*"      "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
41     ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
42     # if the argument is of the form -foo=baz, quote the baz part only
43     ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
44   *) ;;
45   esac
46   # Add the quoted argument to the list.
47   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
48 done
49 if test "$silent" = yes; then
50   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
52 # Remove the initial space we just introduced and, as these will be
53 # expanded by make, quote '$'.
54 TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
55 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
57 # Find the build, host, and target systems.
58 ACX_NONCANONICAL_BUILD
59 ACX_NONCANONICAL_HOST
60 ACX_NONCANONICAL_TARGET
62 dnl Autoconf 2.5x and later will set a default program prefix if
63 dnl --target was used, even if it was the same as --host.  Disable
64 dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
65 dnl to take effect.
66 test "$host_noncanonical" = "$target_noncanonical" &&
67   test "$program_prefix$program_suffix$program_transform_name" = \
68     NONENONEs,x,x, &&
69   program_transform_name=s,y,y,
71 AC_CANONICAL_SYSTEM
72 AC_ARG_PROGRAM
74 m4_pattern_allow([^AS_FOR_TARGET$])dnl
75 m4_pattern_allow([^AS_FOR_BUILD$])dnl
77 # Get 'install' or 'install-sh' and its variants.
78 AC_PROG_INSTALL
79 ACX_PROG_LN
80 AC_PROG_LN_S
82 ### we might need to use some other shell than /bin/sh for running subshells
83 ### If we are on Windows, search for the shell.  This will permit people
84 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
85 ### without also having to set CONFIG_SHELL.  This code will work when
86 ### using bash, which sets OSTYPE.
87 case "${OSTYPE}" in
88 *win32*)
89   if test x${CONFIG_SHELL} = x ; then
90     if test ! -f /bin/sh ; then
91       if test x${SHELL} != x && test -f ${SHELL} ; then
92         CONFIG_SHELL=${SHELL}
93         export CONFIG_SHELL
94       else
95         for prog in sh sh.exe bash bash.exe; do
96           IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
97           for dir in $PATH; do
98             test -z "$dir" && dir=.
99             if test -f $dir/$prog; then
100               CONFIG_SHELL=$dir/$prog
101               export CONFIG_SHELL
102               break
103             fi
104           done
105           IFS="$save_ifs"
106           test -n "${CONFIG_SHELL}" && break
107         done
108       fi
109     fi
110   fi
111   ;;
112 esac
114 config_shell=${CONFIG_SHELL-/bin/sh}
116 moveifchange=${srcdir}/move-if-change
118 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
120 # We pass INSTALL explicitly to sub-makes.  Make sure that it is not
121 # a relative path.
122 if test "$INSTALL" = "${srcdir}/install-sh -c"; then
123   INSTALL="${srcpwd}/install-sh -c"
126 # Set srcdir to "." if that's what it is.
127 # This is important for multilib support.
128 pwd=`${PWDCMD-pwd}`
129 if test "${pwd}" = "${srcpwd}" ; then
130   srcdir=.
133 topsrcdir=$srcpwd
135 extra_host_args=
137 ### To add a new directory to the tree, first choose whether it is a target
138 ### or a host dependent tool.  Then put it into the appropriate list
139 ### (library or tools, host or target), doing a dependency sort.
141 # Subdirs will be configured in the order listed in build_configdirs, 
142 # configdirs, or target_configdirs; see the serialization section below.
144 # Dependency sorting is only needed when *configuration* must be done in 
145 # a particular order.  In all cases a dependency should be specified in 
146 # the Makefile, whether or not it's implicitly specified here.
148 # Double entries in build_configdirs, configdirs, or target_configdirs may
149 # cause circular dependencies and break everything horribly.
151 # these library is used by various programs built for the build
152 # environment
154 build_libs="build-libiberty"
156 # these tools are built for the build environment
157 build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
159 # these libraries are used by various programs built for the host environment
161 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr ppl cloog libiconv"
163 # these tools are built for the host environment
164 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
165 # know that we are building the simulator.
166 # binutils, gas and ld appear in that order because it makes sense to run
167 # "make check" in that particular order.
168 # If --enable-gold is used, "gold" will replace "ld".
169 host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc 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"
171 # libgcj represents the runtime libraries only used by gcj.
172 libgcj="target-libffi \
173         target-zlib \
174         target-qthreads \
175         target-libjava"
177 # these libraries are built for the target environment, and are built after
178 # the host libraries and the host tools (which may be a cross compiler)
180 target_libraries="target-libgcc \
181                 target-libiberty \
182                 target-libgloss \
183                 target-newlib \
184                 target-libgomp \
185                 target-libstdc++-v3 \
186                 target-libmudflap \
187                 target-libssp \
188                 target-libgfortran \
189                 target-boehm-gc \
190                 ${libgcj} \
191                 target-libobjc \
192                 target-libada"
194 # these tools are built using the target libraries, and are intended to
195 # run only in the target environment
197 # note: any program that *uses* libraries that are in the "target_libraries"
198 # list belongs in this list.  those programs are also very likely
199 # candidates for the "native_only" list which follows
201 target_tools="target-examples target-groff target-gperf target-rda"
203 ################################################################################
205 ## All tools belong in one of the four categories, and are assigned above
206 ## We assign ${configdirs} this way to remove all embedded newlines.  This
207 ## is important because configure will choke if they ever get through.
208 ## ${configdirs} is directories we build using the host tools.
209 ## ${target_configdirs} is directories we build using the target tools.
210 configdirs=`echo ${host_libs} ${host_tools}`
211 target_configdirs=`echo ${target_libraries} ${target_tools}`
212 build_configdirs=`echo ${build_libs} ${build_tools}`
214 m4_divert_text([PARSE_ARGS],
215 [ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
218 ################################################################################
220 srcname="gnu development package"
222 # This gets set non-empty for some net releases of packages.
223 appdirs=""
225 # Define is_cross_compiler to save on calls to 'test'.
226 is_cross_compiler=
227 if test x"${host}" = x"${target}" ; then
228   is_cross_compiler=no
229 else
230   is_cross_compiler=yes
231 fi      
233 # Find the build and target subdir names.
234 GCC_TOPLEV_SUBDIRS
236 # Skipdirs are removed silently.
237 skipdirs=
238 # Noconfigdirs are removed loudly.
239 noconfigdirs=""
241 use_gnu_ld=
242 # Make sure we don't let GNU ld be added if we didn't want it.
243 if test x$with_gnu_ld = xno ; then
244   use_gnu_ld=no
245   noconfigdirs="$noconfigdirs ld gold"
248 use_gnu_as=
249 # Make sure we don't let GNU as be added if we didn't want it.
250 if test x$with_gnu_as = xno ; then
251   use_gnu_as=no
252   noconfigdirs="$noconfigdirs gas"
255 # some tools are so dependent upon X11 that if we're not building with X, 
256 # it's not even worth trying to configure, much less build, that tool.
258 case ${with_x} in
259   yes | "") ;; # the default value for this tree is that X11 is available
260   no)
261     skipdirs="${skipdirs} tk itcl libgui"
262     # We won't be able to build gdbtk without X.
263     enable_gdbtk=no 
264     ;;
265   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
266 esac
268 # Some tools are only suitable for building in a "native" situation.
269 # Remove these if host!=target.  
270 native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
272 # Similarly, some are only suitable for cross toolchains.
273 # Remove these if host=target.
274 cross_only="target-libgloss target-newlib target-opcodes"
276 case $is_cross_compiler in
277   no) skipdirs="${skipdirs} ${cross_only}" ;;
278   yes) skipdirs="${skipdirs} ${native_only}" ;;
279 esac
281 # If both --with-headers and --with-libs are specified, default to
282 # --without-newlib.
283 if test x"${with_headers}" != x && test x"${with_headers}" != xno \
284    && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
285   if test x"${with_newlib}" = x ; then
286     with_newlib=no
287   fi
290 # Recognize --with-newlib/--without-newlib.
291 case ${with_newlib} in
292   no) skipdirs="${skipdirs} target-newlib" ;;
293   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
294 esac
296 # Handle --enable-gold.
298 AC_ARG_ENABLE(gold,
299 [  --enable-gold           use gold instead of ld],
300 ENABLE_GOLD=$enableval,
301 ENABLE_GOLD=no)
302 if test "${ENABLE_GOLD}" = "yes"; then
303   # Check for ELF target.
304   is_elf=no
305   case "${target}" in
306     *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
307     | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
308     | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2*)
309       case "${target}" in
310         *-*-linux*aout* | *-*-linux*oldld*)
311           ;;
312         *)
313           is_elf=yes
314           ;;
315       esac
316   esac
318   if test "$is_elf" = "yes"; then
319     # Check for target supported by gold.
320     case "${target}" in
321       i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-*)
322         configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`"
323         ;;
324     esac
325   fi
328 # Configure extra directories which are host specific
330 case "${host}" in
331   *-cygwin*)
332     configdirs="$configdirs libtermcap" ;;
333 esac
335 # A target can indicate whether a language isn't supported for some reason.
336 # Only spaces may be used in this macro; not newlines or tabs.
337 unsupported_languages=
339 # Remove more programs from consideration, based on the host or 
340 # target this usually means that a port of the program doesn't
341 # exist yet.
343 case "${host}" in
344   hppa*64*-*-*)
345     noconfigdirs="$noconfigdirs byacc"
346     ;;
347   i[[3456789]]86-*-vsta)
348     noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
349     ;;
350   i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
351     noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
352     ;;
353   x86_64-*-mingw*)
354     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
355     ;;
356   i[[3456789]]86-*-mingw32*)
357     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
358     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
359     ;;
360   i[[3456789]]86-*-beos*)
361     noconfigdirs="$noconfigdirs tk itcl libgui gdb"
362     ;;
363   *-*-cygwin*)
364     noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
365     ;;
366   *-*-netbsd*)
367     noconfigdirs="$noconfigdirs rcs"
368     ;;
369   ppc*-*-pe)
370     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
371     ;;
372   powerpc-*-beos*)
373     noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
374     ;;
375 esac
378 AC_ARG_ENABLE(libada,
379 [  --enable-libada         build libada directory],
380 ENABLE_LIBADA=$enableval,
381 ENABLE_LIBADA=yes)
382 if test "${ENABLE_LIBADA}" != "yes" ; then
383   noconfigdirs="$noconfigdirs gnattools"
386 AC_ARG_ENABLE(libssp,
387 [  --enable-libssp         build libssp directory],
388 ENABLE_LIBSSP=$enableval,
389 ENABLE_LIBSSP=yes)
391 # Save it here so that, even in case of --enable-libgcj, if the Java
392 # front-end isn't enabled, we still get libgcj disabled.
393 libgcj_saved=$libgcj
394 case $enable_libgcj in
395 yes)
396   # If we reset it here, it won't get added to noconfigdirs in the
397   # target-specific build rules, so it will be forcibly enabled
398   # (unless the Java language itself isn't enabled).
399   libgcj=
400   ;;
402   # Make sure we get it printed in the list of not supported target libs.
403   noconfigdirs="$noconfigdirs ${libgcj}"
404   ;;
405 esac
408 # Disable libmudflap on some systems.
409 if test x$enable_libmudflap = x ; then
410     case "${target}" in
411     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
412         # Enable libmudflap by default in GNU and friends.
413         ;;
414     *-*-freebsd*)
415         # Enable libmudflap by default in FreeBSD.
416         ;;
417     *)
418         # Disable it by default everywhere else.
419         noconfigdirs="$noconfigdirs target-libmudflap"
420         ;;
421     esac
424 # Disable libgomp on non POSIX hosted systems.
425 if test x$enable_libgomp = x ; then
426     # Enable libgomp by default on hosted POSIX systems.
427     case "${target}" in
428     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
429         ;;
430     *-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
431         ;;
432     *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
433         ;;
434     *-*-darwin* | *-*-aix*)
435         ;;
436     *)
437         noconfigdirs="$noconfigdirs target-libgomp"
438         ;;
439     esac
442 # Default libgloss CPU subdirectory.
443 libgloss_dir="$target_cpu"
445 case "${target}" in
446   *-*-chorusos)
447     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
448     ;;
449   powerpc-*-darwin*)
450     noconfigdirs="$noconfigdirs ld gas gdb gprof"
451     noconfigdirs="$noconfigdirs sim target-rda"
452     ;;
453   i[[3456789]]86-*-darwin* | x86_64-*-darwin[[912]]*)
454     noconfigdirs="$noconfigdirs ld gas gprof"
455     noconfigdirs="$noconfigdirs sim target-rda"
456     ;;
457   *-*-darwin*)
458     noconfigdirs="$noconfigdirs ld gas gdb gprof"
459     noconfigdirs="$noconfigdirs sim target-rda"
460     noconfigdirs="$noconfigdirs ${libgcj}"
461     ;;
462   *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
463     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
464     ;;
465   *-*-freebsd*)
466     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
467     if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
468         && test -f /usr/local/include/gmp.h; then
469       with_gmp=/usr/local
470     fi
472     # Skip some stuff that's unsupported on some FreeBSD configurations.
473     case "${target}" in
474       i*86-*-*) ;;
475       alpha*-*-*) ;;
476       *)
477         noconfigdirs="$noconfigdirs ${libgcj}"
478         ;;
479     esac
480     ;;
481   *-*-kaos*)
482     # Remove unsupported stuff on all kaOS configurations.
483     skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
484     skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
485     skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
486     noconfigdirs="$noconfigdirs target-libgloss"
487     ;;
488   *-*-netbsd*)
489     # Skip some stuff on all NetBSD configurations.
490     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
492     # Skip some stuff that's unsupported on some NetBSD configurations.
493     case "${target}" in
494       i*86-*-netbsdelf*) ;;
495       arm*-*-netbsdelf*) ;;
496       *)
497         noconfigdirs="$noconfigdirs ${libgcj}"
498         ;;
499     esac
500     ;;
501   *-*-netware*)
502     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
503     ;;
504   *-*-rtems*)
505     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
506     ;;
507     # The tpf target doesn't support gdb yet.
508   *-*-tpf*)
509     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
510     ;;
511   *-*-uclinux*)
512     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
513     ;;
514   *-*-vxworks*)
515     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
516     ;;
517   alpha*-dec-osf*)
518     # ld works, but does not support shared libraries.
519     # newlib is not 64 bit ready.  I'm not sure about fileutils.
520     # gas doesn't generate exception information.
521     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
522     ;;
523   alpha*-*-*vms*)
524     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
525     ;;
526   alpha*-*-linux*)
527     # newlib is not 64 bit ready
528     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
529     ;;
530   alpha*-*-*)
531     # newlib is not 64 bit ready
532     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
533     ;;
534   am33_2.0-*-linux*)
535     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
536     ;;
537   sh-*-linux*)
538     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
539     ;;    
540   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
541     noconfigdirs="$noconfigdirs ${libgcj}"
542     noconfigdirs="$noconfigdirs target-examples"
543     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
544     noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
545     noconfigdirs="$noconfigdirs expect dejagnu"
546     # the C++ libraries don't build on top of CE's C libraries
547     noconfigdirs="$noconfigdirs target-libstdc++-v3"
548     noconfigdirs="$noconfigdirs target-newlib"
549     case "${host}" in
550       *-*-cygwin*) ;; # keep gdb and readline
551       *) noconfigdirs="$noconfigdirs gdb readline"
552          ;;
553     esac
554     libgloss_dir=wince
555     ;;
556 #  arm*-*-mingw32ce* | arm*-*-cegcc*)
557 #    noconfigdirs="$noconfigdirs ${libgcj}"
558 #    noconfigdirs="$noconfigdirs target-examples"
559 #    noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
560 #    noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
561 #    noconfigdirs="$noconfigdirs expect dejagnu"
562 #    ;;
563   arc-*-*)
564     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
565     ;;
566   arm-semi-aof )
567     ;;
568   arm-*-coff | strongarm-*-coff | xscale-*-coff)
569     noconfigdirs="$noconfigdirs ${libgcj}"
570     libgloss_dir=arm
571     ;;
572   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
573     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
574     libgloss_dir=arm
575     ;;
576   arm*-*-linux-gnueabi)
577     noconfigdirs="$noconfigdirs target-qthreads"
578     case ${with_newlib} in
579       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
580     esac
581     libgloss_dir=arm
582     ;;
583   arm*-*-symbianelf*)
584     noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
585     libgloss_dir=arm
586     ;;
587   arm-*-pe*)
588     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
589     ;;
590   thumb-*-coff)
591     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
592     ;;
593   thumb-*-elf)
594     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
595     ;;
596   thumb-*-pe)
597     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
598     ;;
599   arm-*-riscix*)
600     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
601     ;;
602   avr-*-*)
603     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
604     ;;
605   bfin-*-*)
606     noconfigdirs="$noconfigdirs gdb"
607     if test x${is_cross_compiler} != xno ; then
608       target_configdirs="${target_configdirs} target-bsp target-cygmon"
609     fi
610     ;;
611   c4x-*-* | tic4x-*-*)
612     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
613     ;;
614   c54x*-*-* | tic54x-*-*)
615     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
616     ;;
617   cr16-*-*)
618     noconfigdirs="$noconfigdirs ${libgcj} gdb"
619     ;;
620   cris-*-* | crisv32-*-*)
621     unsupported_languages="$unsupported_languages java"
622     case "${target}" in
623       *-*-aout)
624         unsupported_languages="$unsupported_languages fortran"
625         noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
626       *-*-elf)
627         noconfigdirs="$noconfigdirs target-boehm-gc";;
628       *-*-linux*)
629         noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
630       *)
631         unsupported_languages="$unsupported_languages fortran"
632         noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
633     esac
634     libgloss_dir=cris
635     ;;
636   crx-*-*)
637     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
638     ;;
639   d10v-*-*)
640     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
641     ;;
642   d30v-*-*)
643     noconfigdirs="$noconfigdirs ${libgcj} gdb"
644     ;;
645   ep9312-*-elf | ep9312-*-coff)
646     libgloss_dir=arm
647     ;;
648   fr30-*-elf*)
649     noconfigdirs="$noconfigdirs ${libgcj} gdb"
650     ;;
651   frv-*-*)
652     noconfigdirs="$noconfigdirs ${libgcj}"
653     ;;
654   h8300*-*-*)
655     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
656     ;;
657   h8500-*-*)
658     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
659     ;;
660   hppa1.1-*-osf* | hppa1.1-*-bsd* )
661     ;;
662   hppa*64*-*-linux* | parisc*64*-*-linux*)
663     # In this case, it's because the hppa64-linux target is for
664     # the kernel only at this point and has no libc, and thus no
665     # headers, crt*.o, etc., all of which are needed by these.
666     noconfigdirs="$noconfigdirs target-zlib"
667     ;;
668   parisc*-*-linux* | hppa*-*-linux*)
669     ;;
670   hppa*-*-*elf* | \
671   hppa*-*-lites* | \
672   hppa*-*-openbsd* | \
673   hppa*64*-*-*)
674     noconfigdirs="$noconfigdirs ${libgcj}"
675     ;;
676   hppa*-hp-hpux11*)
677     noconfigdirs="$noconfigdirs ld shellutils"
678     ;;
679   hppa*-*-pro*)
680     libgloss_dir=pa
681     ;;
682   hppa*-*-*)
683     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
684     # build on HP-UX 10.20.
685     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
686     ;;
687   i960-*-*)
688     noconfigdirs="$noconfigdirs ${libgcj} gdb"
689     ;;
690   ia64*-*-elf*)
691     # No gdb support yet.
692     noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
693     ;;
694   ia64*-**-hpux*)
695     # No gdb or ld support yet.
696     noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
697     ;;
698   ia64*-*-*vms*)
699     # No gdb or ld support yet.
700     noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
701     ;;
702   i370-*-opened*)
703     ;;
704   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
705     noconfigdirs="$noconfigdirs ${libgcj}"
706     libgloss_dir=i386
707     ;;
708   i[[3456789]]86-*-linux*)
709     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
710     # not build java stuff by default.
711     case "${target}" in
712       *-*-*libc1*)
713         noconfigdirs="$noconfigdirs ${libgcj}";;
714     esac
716     # This section makes it possible to build newlib natively on linux.
717     # If we are using a cross compiler then don't configure newlib.
718     if test x${is_cross_compiler} != xno ; then
719       noconfigdirs="$noconfigdirs target-newlib"
720     fi
721     noconfigdirs="$noconfigdirs target-libgloss"
722     # If we are not using a cross compiler, do configure newlib.
723     # Note however, that newlib will only be configured in this situation
724     # if the --with-newlib option has been given, because otherwise
725     # 'target-newlib' will appear in skipdirs.
726     ;;
727   *-mingw32ce*)
728     target_configdirs="$target_configdirs target-winsup"
729     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
730     noconfigdirs="$noconfigdirs target-libiberty"
731     ;;
732   i[[3456789]]86-*-mingw32*)
733     target_configdirs="$target_configdirs target-winsup"
734     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
735     ;;    
736   x86_64-*-mingw*)
737     target_configdirs="$target_configdirs target-winsup"
738     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
739     ;;    
740   *-*-cygwin*)
741     target_configdirs="$target_configdirs target-libtermcap target-winsup"
742     noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
743     # always build newlib if winsup directory is present.
744     if test -d "$srcdir/winsup/cygwin"; then
745       skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
746     elif test -d "$srcdir/newlib"; then
747       echo "Warning: winsup/cygwin is missing so newlib can't be built."
748     fi
749     ;;    
750   i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
751   i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
752     ;;
753   i[[3456789]]86-*-pe)
754     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
755     ;;
756   i[[3456789]]86-*-sco3.2v5*)
757     # The linker does not yet know about weak symbols in COFF,
758     # and is not configured to handle mixed ELF and COFF.
759     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
760     ;;
761   i[[3456789]]86-*-sco*)
762     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
763     ;;
764   i[[3456789]]86-*-solaris2*)
765     noconfigdirs="$noconfigdirs target-libgloss"
766     ;;
767   i[[3456789]]86-*-sysv4*)
768     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
769     ;;
770   i[[3456789]]86-*-beos*)
771     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
772     ;;
773   i[[3456789]]86-*-rdos*)
774     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
775     ;;
776   m32r-*-*)
777     noconfigdirs="$noconfigdirs ${libgcj}"
778     ;;
779   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
780     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
781     libgloss_dir=m68hc11
782     ;;
783   m68k-*-elf*)
784     noconfigdirs="$noconfigdirs ${libgcj}"
785     ;;
786   m68k-*-coff*)
787     noconfigdirs="$noconfigdirs ${libgcj}"
788     ;;
789   m68*-*-* | fido-*-*)
790     libgloss_dir=m68k
791     ;;
792   mcore-*-pe*)
793   # The EPOC C++ environment does not support exceptions or rtti,
794   # and so building libstdc++-v3 tends not to always work.
795     noconfigdirs="$noconfigdirs target-libstdc++-v3"
796     ;;
797   mmix-*-*)
798     noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
799     unsupported_languages="$unsupported_languages fortran java"
800     ;;
801   mn10200-*-*)
802     noconfigdirs="$noconfigdirs ${libgcj}"
803     ;;
804   mn10300-*-*)
805     noconfigdirs="$noconfigdirs ${libgcj}"
806     ;;
807   mt-*-*)
808     noconfigdirs="$noconfigdirs sim"
809     ;;
810   powerpc-*-aix*)
811     # copied from rs6000-*-* entry
812     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
813     ;;
814   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
815     target_configdirs="$target_configdirs target-winsup"
816     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
817     # always build newlib.
818     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
819     ;;
820     # This is temporary until we can link against shared libraries
821   powerpcle-*-solaris*)
822     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
823     libgloss_dir=rs6000
824     ;;
825   powerpc-*-beos*)
826     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
827     ;;
828   powerpc-*-eabi)
829     noconfigdirs="$noconfigdirs ${libgcj}"
830     libgloss_dir=rs6000
831     ;;
832   powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
833     libgloss_dir=rs6000
834     ;;
835   rs6000-*-lynxos*)
836     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
837     ;;
838   rs6000-*-aix*)
839     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
840     ;;
841   rs6000-*-*)
842     noconfigdirs="$noconfigdirs gprof ${libgcj}"
843     ;;
844   m68k-apollo-*)
845     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
846     ;;
847   mips*-sde-elf*)
848     skipdirs="$skipdirs target-libiberty"
849     noconfigdirs="$noconfigdirs ${libgcj}"
850     if test x$with_newlib = xyes; then
851       noconfigdirs="$noconfigdirs gprof"
852     fi
853     libgloss_dir=mips
854     ;;
855   mips*-*-irix5*)
856     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
857     ;;
858   mips*-*-irix6*)
859     # Linking libjava exceeds command-line length limits on at least
860     # IRIX 6.2, but not on IRIX 6.5.
861     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
862     # <oldham@codesourcery.com>
863     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
864     ;;
865   mips*-*-bsd*)
866     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
867     ;;
868   mips*-*-linux*)
869     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
870     ;;
871   mips*-*-*)
872     noconfigdirs="$noconfigdirs gprof ${libgcj}"
873     libgloss_dir=mips
874     ;;
875   romp-*-*)
876     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
877     ;;
878   sh-*-* | sh64-*-*)
879     case "${host}" in
880       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
881       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
882       i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
883       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
884     esac
885     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
886     ;;
887   sparclet-*-aout* | sparc86x-*-*)
888     libgloss_dir=sparc
889     ;;
890   sparc-*-elf*)
891     noconfigdirs="$noconfigdirs ${libgcj}"
892     ;;
893   sparc64-*-elf*)
894     noconfigdirs="$noconfigdirs ${libgcj}"
895     libgloss_dir=sparc
896     ;;
897   sparclite-*-*)
898     noconfigdirs="$noconfigdirs ${libgcj}"
899     libgloss_dir=sparc
900     ;;
901   sparc-*-sunos4*)
902     noconfigdirs="$noconfigdirs ${libgcj}"
903     if test x${is_cross_compiler} != xno ; then
904            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
905     else
906            use_gnu_ld=no
907     fi
908     ;;
909   sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
910     noconfigdirs="$noconfigdirs ${libgcj}"
911     ;;
912   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
913     ;;
914   v810-*-*)
915     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
916     ;;
917   v850-*-*)
918     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
919     ;;
920   v850e-*-*)
921     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
922     ;;
923   v850ea-*-*)
924     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
925     ;;
926   vax-*-vms)
927     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
928     ;;
929   vax-*-*)
930     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
931     ;;
932   xtensa*-*-*)
933     noconfigdirs="$noconfigdirs ${libgcj}"
934     ;;
935   ip2k-*-*)
936     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
937     ;;
938   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
939     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
940     ;;
941   *-*-lynxos*)
942     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
943     ;; 
944   *-*-*)
945     noconfigdirs="$noconfigdirs ${libgcj}"
946     ;;
947 esac
949 # If we aren't building newlib, then don't build libgloss, since libgloss
950 # depends upon some newlib header files.
951 case "${noconfigdirs}" in
952   *target-libgloss*) ;;
953   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
954 esac
956 # Work in distributions that contain no compiler tools, like Autoconf.
957 tentative_cc=""
958 host_makefile_frag=/dev/null
959 if test -d ${srcdir}/config ; then
960 case "${host}" in
961   m68k-hp-hpux*)
962     # Avoid "too much defining" errors from HPUX compiler.
963     tentative_cc="cc -Wp,-H256000"
964     # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
965     # If it's HP/UX ar, this should be harmless.
966     RANLIB="ar ts"
967     ;;
968   m68k-apollo-sysv*)
969     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
970     ;;
971   m68k-apollo-bsd*)
972     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
973     # chokes on bfd, the compiler won't let you assign integers to enums, and
974     # other problems.  Defining CC to gcc is a questionable way to say "don't use
975     # the apollo compiler" (the preferred version of GCC could be called cc,
976     # or whatever), but I'm not sure leaving CC as cc is any better...
977     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
978     # Used to have BISON=yacc.
979     tentative_cc=gcc
980     ;;
981   m88k-dg-dgux*)
982     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
983     ;;
984   m88k-harris-cxux*)
985     # Under CX/UX, we want to tell the compiler to use ANSI mode.
986     tentative_cc="cc -Xa"
987     host_makefile_frag="config/mh-cxux"
988     ;;
989   m88k-motorola-sysv*)
990     ;;
991   mips*-dec-ultrix*)
992     tentative_cc="cc -Wf,-XNg1000"
993     host_makefile_frag="config/mh-decstation"
994     ;;
995   mips*-nec-sysv4*)
996     # The C compiler on NEC MIPS SVR4 needs bigger tables.
997     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
998     host_makefile_frag="config/mh-necv4"
999     ;;
1000   mips*-sgi-irix4*)
1001     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
1002     # environment.  Also bump switch table size so that cp-parse will
1003     # compile.  Bump string length limit so linker builds.
1004     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
1005     ;;
1006   mips*-*-sysv4*)
1007     host_makefile_frag="config/mh-sysv4"
1008     ;;
1009   mips*-*-sysv*)
1010     # This is for a MIPS running RISC/os 4.52C.
1012     # This is needed for GDB, but needs to be in the top-level make because
1013     # if a library is compiled with the bsd headers and gets linked with the
1014     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
1015     # a different size).
1016     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
1017     # known except to select the sysv environment.  Could we use /proc instead?
1018     # These "sysv environments" and "bsd environments" often end up being a pain.
1019     #
1020     # This is not part of CFLAGS because perhaps not all C compilers have this
1021     # option.
1022     tentative_cc="cc -systype sysv"
1023     ;;
1024   i370-ibm-opened*)
1025     tentative_cc="c89"
1026     ;;
1027   i[[3456789]]86-*-sysv5*)
1028     host_makefile_frag="config/mh-sysv5"
1029     ;;
1030   i[[3456789]]86-*-dgux*)
1031     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1032     host_makefile_frag="config/mh-dgux386"
1033     ;;
1034   i[[3456789]]86-ncr-sysv4.3*)
1035     # The MetaWare compiler will generate a copyright message unless you
1036     # turn it off by adding the -Hnocopyr flag.
1037     tentative_cc="cc -Hnocopyr"
1038     ;;
1039   i[[3456789]]86-ncr-sysv4*)
1040     # for an NCR 3000 (i486/SVR4) system.
1041     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1042     # This compiler not only emits obnoxious copyright messages every time
1043     # you run it, but it chokes and dies on a whole bunch of GNU source
1044     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1045     tentative_cc="/usr/ccs/ATT/cc"
1046     host_makefile_frag="config/mh-ncr3000"
1047     ;;
1048   i[[3456789]]86-*-sco3.2v5*)
1049     ;;
1050   i[[3456789]]86-*-sco*)
1051     # The native C compiler botches some simple uses of const.  Unfortunately,
1052     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1053     tentative_cc="cc -Dconst="
1054     host_makefile_frag="config/mh-sco"
1055     ;;
1056   i[[3456789]]86-*-udk*)
1057     host_makefile_frag="config/mh-sysv5"
1058     ;;
1059   i[[3456789]]86-*-solaris2*)
1060     host_makefile_frag="config/mh-sysv4"
1061     ;;
1062   i[[3456789]]86-*-msdosdjgpp*)
1063     host_makefile_frag="config/mh-djgpp"
1064     ;;
1065   *-cygwin*)
1066     ACX_CHECK_CYGWIN_CAT_WORKS
1067     host_makefile_frag="config/mh-cygwin"
1068     ;;
1069   *-mingw*)
1070     host_makefile_frag="config/mh-mingw"
1071     ;;
1072   *-interix*)
1073     host_makefile_frag="config/mh-interix"
1074     ;;
1075   vax-*-ultrix2*)
1076     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1077     tentative_cc=gcc
1078     ;;
1079   *-*-solaris2*)
1080     host_makefile_frag="config/mh-solaris"
1081     ;;
1082   m68k-sun-sunos*)
1083     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1084     # without overflowing the jump tables (-J says to use a 32 bit table)
1085     tentative_cc="cc -J"
1086     ;;
1087   hppa*-hp-hpux10*)
1088     tentative_cc="cc -Wp,-H256000"
1089     host_makefile_frag="config/mh-pa-hpux10"
1090     ;;
1091   hppa*-hp-hpux* | hppa*-*-hiux*)
1092     tentative_cc="cc -Wp,-H256000"
1093     host_makefile_frag="config/mh-pa"
1094     ;;
1095   hppa*-*)      
1096     host_makefile_frag="config/mh-pa"
1097     ;;
1098   *-hp-hpux* | *-*-hiux*)
1099     tentative_cc="cc -Wp,-H256000"
1100     ;;
1101   rs6000-*-lynxos*)
1102     # /bin/cc is less than useful for our purposes.  Always use GCC
1103     tentative_cc="/usr/cygnus/progressive/bin/gcc"
1104     host_makefile_frag="config/mh-lynxrs6k"
1105     ;;
1106   powerpc-*-darwin*)
1107     host_makefile_frag="config/mh-ppc-darwin"
1108     ;;
1109   powerpc-*-aix*)
1110     host_makefile_frag="config/mh-ppc-aix"
1111     ;;
1112   rs6000-*-aix*)
1113     host_makefile_frag="config/mh-ppc-aix"
1114     ;;
1115   *-*-lynxos*)
1116     # /bin/cc is less than useful for our purposes.  Always use GCC
1117     tentative_cc="/bin/gcc"
1118     ;;
1119   *-*-sysv4*)
1120     host_makefile_frag="config/mh-sysv4"
1121     ;;
1122   # This is placed last to prevent interfering with the cases above.
1123   i[[3456789]]86-*-*)
1124     # Build the stage2 and stage3 compilers with -fomit-frame-pointer.
1125     host_makefile_frag="config/mh-x86omitfp"
1126     ;;
1127 esac
1130 # If we aren't going to be using gcc, see if we can extract a definition
1131 # of CC from the fragment.
1132 # Actually, use the 'pre-extracted' version above.
1133 if test -z "${CC}" && test "${build}" = "${host}" ; then
1134   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1135   found=
1136   for dir in $PATH; do
1137     test -z "$dir" && dir=.
1138     if test -f $dir/gcc; then
1139       found=yes
1140       break
1141     fi
1142   done
1143   IFS="$save_ifs"
1144   if test -z "${found}" && test -n "${tentative_cc}" ; then
1145     CC=$tentative_cc
1146   fi
1149 if test "${build}" != "${host}" ; then
1150   AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1151   AS_FOR_BUILD=${AS_FOR_BUILD-as}
1152   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1153   CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1154   GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1155   GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1156   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1157   LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1158   NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1159   RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1160   WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1161   WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1162 else
1163   AR_FOR_BUILD="\$(AR)"
1164   AS_FOR_BUILD="\$(AS)"
1165   CC_FOR_BUILD="\$(CC)"
1166   CXX_FOR_BUILD="\$(CXX)"
1167   GCJ_FOR_BUILD="\$(GCJ)"
1168   GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1169   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1170   LD_FOR_BUILD="\$(LD)"
1171   NM_FOR_BUILD="\$(NM)"
1172   RANLIB_FOR_BUILD="\$(RANLIB)"
1173   WINDRES_FOR_BUILD="\$(WINDRES)"
1174   WINDMC_FOR_BUILD="\$(WINDMC)"
1177 AC_PROG_CC
1178 AC_PROG_CXX
1180 # We must set the default linker to the linker used by gcc for the correct
1181 # operation of libtool.  If LD is not defined and we are using gcc, try to
1182 # set the LD default to the ld used by gcc.
1183 if test -z "$LD"; then
1184   if test "$GCC" = yes; then
1185     case $build in
1186     *-*-mingw*)
1187       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1188     *)
1189       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1190     esac
1191     case $gcc_prog_ld in
1192     # Accept absolute paths.
1193     [[\\/]* | [A-Za-z]:[\\/]*)]
1194       LD="$gcc_prog_ld" ;;
1195     esac
1196   fi
1199 ACX_PROG_GNAT
1200 ACX_PROG_CMP_IGNORE_INITIAL
1202 # Check for GMP and MPFR
1203 gmplibs="-lmpfr -lgmp"
1204 gmpinc=
1205 have_gmp=no
1207 # Specify a location for mpfr
1208 # check for this first so it ends up on the link line before gmp.
1209 AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    this option has been REMOVED],
1210   AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1211 Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH]))
1213 AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        specify prefix directory for installed MPFR package.
1214                           Equivalent to --with-mpfr-include=PATH/include
1215                           plus --with-mpfr-lib=PATH/lib])
1216 AC_ARG_WITH(mpfr_include, [  --with-mpfr-include=PATH
1217                           specify directory for installed MPFR include files])
1218 AC_ARG_WITH(mpfr_lib, [  --with-mpfr-lib=PATH    specify directory for the installed MPFR library])
1220 if test "x$with_mpfr" != x; then
1221   gmplibs="-L$with_mpfr/lib $gmplibs"
1222   gmpinc="-I$with_mpfr/include"
1224 if test "x$with_mpfr_include" != x; then
1225   gmpinc="-I$with_mpfr_include"
1227 if test "x$with_mpfr_lib" != x; then
1228   gmplibs="-L$with_mpfr_lib $gmplibs"
1230 if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1231   gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/.libs -L$$r/$(HOST_SUBDIR)/mpfr/_libs '"$gmplibs"
1232   gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1233   # Do not test the mpfr version.  Assume that it is sufficient, since
1234   # it is in the source tree, and the library has not been built yet
1235   # but it would be included on the link line in the version check below
1236   # hence making the test fail.
1237   have_gmp=yes
1240 # Specify a location for gmp
1241 AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     this option has been REMOVED],
1242   AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1243 Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH]))
1245 AC_ARG_WITH(gmp, [  --with-gmp=PATH         specify prefix directory for the installed GMP package.
1246                           Equivalent to --with-gmp-include=PATH/include
1247                           plus --with-gmp-lib=PATH/lib])
1248 AC_ARG_WITH(gmp_include, [  --with-gmp-include=PATH specify directory for installed GMP include files])
1249 AC_ARG_WITH(gmp_lib, [  --with-gmp-lib=PATH     specify directory for the installed GMP library])
1252 if test "x$with_gmp" != x; then
1253   gmplibs="-L$with_gmp/lib $gmplibs"
1254   gmpinc="-I$with_gmp/include $gmpinc"
1256 if test "x$with_gmp_include" != x; then
1257   gmpinc="-I$with_gmp_include $gmpinc"
1259 if test "x$with_gmp_lib" != x; then
1260   gmplibs="-L$with_gmp_lib $gmplibs"
1262 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1263   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
1264   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1265   # Do not test the gmp version.  Assume that it is sufficient, since
1266   # it is in the source tree, and the library has not been built yet
1267   # but it would be included on the link line in the version check below
1268   # hence making the test fail.
1269   have_gmp=yes
1272 if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1273   have_gmp=yes
1274   saved_CFLAGS="$CFLAGS"
1275   CFLAGS="$CFLAGS $gmpinc"
1276   # Check GMP actually works
1277   AC_MSG_CHECKING([for correct version of gmp.h])
1278   AC_TRY_COMPILE([#include "gmp.h"],[
1279   #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 1)
1280   choke me
1281   #endif
1282   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1284   if test x"$have_gmp" = xyes; then
1285     saved_LIBS="$LIBS"
1286     LIBS="$LIBS $gmplibs"
1287     dnl MPFR 2.3.0 is acceptable, but MPFR 2.3.2 is better.
1288     AC_MSG_CHECKING([for correct version of mpfr.h])
1289     AC_TRY_LINK([#include <gmp.h>
1290     #include <mpfr.h>],[
1291     #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,0)
1292     choke me
1293     #endif
1294     mpfr_t n;
1295     mpfr_t x;
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     ], [AC_TRY_LINK([#include <gmp.h>
1303     #include <mpfr.h>],[
1304     #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
1305     choke me
1306     #endif
1307     mpfr_t n; mpfr_init(n);
1308     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1309      [AC_MSG_RESULT([no]); have_gmp=no])
1310       LIBS="$saved_LIBS"
1311   fi
1312   CFLAGS="$saved_CFLAGS"
1314   if test x$have_gmp != xyes; then
1315     AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.3.2+.
1316 Try the --with-gmp and/or --with-mpfr options to specify their locations.
1317 Copies of these libraries' source code can be found at their respective
1318 hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
1319 See also http://gcc.gnu.org/install/prerequisites.html for additional info.
1320 If you obtained GMP and/or MPFR from a vendor distribution package, make
1321 sure that you have installed both the libraries and the header files.
1322 They may be located in separate packages.])
1323   fi
1326 # Flags needed for both GMP and/or MPFR
1327 AC_SUBST(gmplibs)
1328 AC_SUBST(gmpinc)
1330 # Allow host libstdc++ to be specified for static linking with PPL.
1331 AC_ARG_WITH(host-libstdcxx, [  --with-host-libstdcxx=L Use linker arguments L to link with libstdc++
1332                           when linking with PPL])
1334 case $with_host_libstdcxx in
1335   no|yes)
1336     AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
1337     ;;
1338 esac
1340 # Check for PPL
1341 ppl_major_version=0
1342 ppl_minor_version=10
1343 ppllibs=" -lppl_c -lppl -lgmpxx $with_host_libstdcxx "
1344 pplinc=
1346 AC_ARG_WITH(ppl, [  --with-ppl=PATH         Specify prefix directory for the installed PPL package
1347                           Equivalent to --with-ppl-include=PATH/include
1348                           plus --with-ppl-lib=PATH/lib])
1349 AC_ARG_WITH(ppl_include, [  --with-ppl-include=PATH Specify directory for installed PPL include files])
1350 AC_ARG_WITH(ppl_lib, [  --with-ppl-lib=PATH     Specify the directory for the installed PPL library])
1352 case $with_ppl in 
1353   no)
1354     ppllibs=
1355     ;;
1356   *)
1357     ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx"
1358     pplinc="-I$with_ppl/include $pplinc"
1359     LIBS="$ppllibs $LIBS"
1360     ;;
1361 esac
1362 if test "x$with_ppl_include" != x; then
1363   pplinc="-I$with_ppl_include $pplinc"
1365 if test "x$with_ppl_lib" != x; then
1366   ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx $with_host_libstdcxx"
1367   LIBS="$ppllibs $LIBS"
1369 if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
1370   ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx '"$with_host_libstdcxx "
1371   pplinc='-I$$r/$(HOST_SUBDIR)/ppl/include -I$$s/ppl/include '
1372   LIBS="$ppllibs $LIBS"
1375 AC_ARG_ENABLE(ppl-version-check,
1376 [  --disable-ppl-version-check    disable check for PPL version],
1377 ENABLE_PPL_CHECK=$enableval,
1378 ENABLE_PPL_CHECK=yes)
1380 if test "${ENABLE_PPL_CHECK}" = "yes"; then
1381   saved_CFLAGS="$CFLAGS"
1382   CFLAGS="$CFLAGS $pplinc $gmpinc"
1383   AC_MSG_CHECKING([for version $ppl_major_version.$ppl_minor_version of PPL])
1384   AC_TRY_COMPILE([#include "ppl_c.h"],[
1385   #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version
1386   choke me
1387   #endif
1388   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ])
1389   CFLAGS="$saved_CFLAGS"
1392 # Flags needed for PPL
1393 AC_SUBST(ppllibs)
1394 AC_SUBST(pplinc)
1397 # Check for CLOOG
1398 clooglibs=" -lcloog "
1399 clooginc=" -DCLOOG_PPL_BACKEND "
1401 AC_ARG_WITH(cloog, [  --with-cloog=PATH       Specify prefix directory for the installed CLooG-PPL package
1402                           Equivalent to --with-cloog-include=PATH/include
1403                           plus --with-cloog-lib=PATH/lib])
1404 AC_ARG_WITH(cloog_include, [  --with-cloog-include=PATH Specify directory for installed CLooG include files])
1405 AC_ARG_WITH(cloog_lib, [  --with-cloog-lib=PATH   Specify the directory for the installed CLooG library])
1407 case $with_cloog in 
1408   no)
1409     clooglibs=
1410     clooginc=
1411     ;;
1412   *)
1413     clooglibs="-L$with_cloog/lib -lcloog"
1414     clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
1415     LIBS="$clooglibs $LIBS"
1416     ;;
1417 esac
1418 if test "x$with_cloog_include" != x; then
1419   clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
1421 if test "x$with_cloog_lib" != x; then
1422   clooglibs="-L$with_cloog_lib -lcloog"
1423   LIBS="$clooglibs $LIBS"
1425 if test "x$with_cloog$with_cloog_include$with_cloog_lib" = x && test -d ${srcdir}/cloog; then
1426   clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/.libs -L$$r/$(HOST_SUBDIR)/cloog/_libs -lcloog '
1427   clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -DCLOOG_PPL_BACKEND '
1428   LIBS="$clooglibs $LIBS"
1431 AC_ARG_ENABLE(cloog-version-check,
1432 [  --disable-cloog-version-check  disable check for CLooG version],
1433 ENABLE_CLOOG_CHECK=$enableval,
1434 ENABLE_CLOOG_CHECK=yes)
1436 if test "${ENABLE_CLOOG_CHECK}" = "yes"; then
1437   saved_CFLAGS="$CFLAGS"
1438   CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
1439   AC_MSG_CHECKING([for correct version of CLooG])
1440   AC_TRY_COMPILE([#include "cloog/cloog.h"],[
1441   #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15
1442   choke me
1443   #endif
1444   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); clooglibs= ; clooginc= ])
1445   CFLAGS="$saved_CFLAGS"
1448 # Flags needed for CLOOG
1449 AC_SUBST(clooglibs)
1450 AC_SUBST(clooginc)
1453 # By default, C is the only stage 1 language.
1454 stage1_languages=,c,
1456 # Figure out what language subdirectories are present.
1457 # Look if the user specified --enable-languages="..."; if not, use
1458 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1459 # go away some day.
1460 # NB:  embedded tabs in this IF block -- do not untabify
1461 if test -d ${srcdir}/gcc; then
1462   if test x"${enable_languages+set}" != xset; then
1463     if test x"${LANGUAGES+set}" = xset; then
1464       enable_languages="${LANGUAGES}"
1465         echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1466     else
1467       enable_languages=all
1468     fi
1469   else
1470     if test x"${enable_languages}" = x ||
1471        test x"${enable_languages}" = xyes;
1472        then
1473       echo configure.in: --enable-languages needs at least one language argument 1>&2
1474       exit 1
1475     fi
1476   fi
1477   enable_languages=`echo "${enable_languages}" | sed -e 's/[[   ,]][[   ,]]*/,/g' -e 's/,$//'`
1479   # 'f95' is the old name for the 'fortran' language. We issue a warning
1480   # and make the substitution.
1481   case ,${enable_languages}, in
1482     *,f95,*)
1483       echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1484       enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1485       ;;
1486   esac
1488   # First scan to see if an enabled language requires some other language.
1489   # We assume that a given config-lang.in will list all the language
1490   # front ends it requires, even if some are required indirectly.
1491   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1492     case ${lang_frag} in
1493       ..) ;;
1494       # The odd quoting in the next line works around
1495       # an apparent bug in bash 1.12 on linux.
1496       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1497       *)
1498         # From the config-lang.in, get $language, $lang_requires
1499         language=
1500         lang_requires=
1501         . ${lang_frag}
1502         for other in ${lang_requires} ; do
1503           case ,${enable_languages}, in
1504             *,$other,*) ;;
1505             *,all,*) ;;
1506             *,$language,*)
1507               echo " \`$other' language required by \`$language'; enabling" 1>&2
1508               enable_languages="${enable_languages},${other}"
1509               ;;
1510           esac
1511         done
1512         ;;
1513     esac
1514   done
1516   new_enable_languages=,c,
1517   missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1518   potential_languages=,c,
1520   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1521     case ${lang_frag} in
1522       ..) ;;
1523       # The odd quoting in the next line works around
1524       # an apparent bug in bash 1.12 on linux.
1525       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1526       *)
1527         # From the config-lang.in, get $language, $target_libs, 
1528         # $lang_dirs, $boot_language, and $build_by_default
1529         language=
1530         target_libs=
1531         lang_dirs=
1532         subdir_requires=
1533         boot_language=no
1534         build_by_default=yes
1535         . ${lang_frag}
1536         if test x${language} = x; then
1537           echo "${lang_frag} doesn't set \$language." 1>&2
1538           exit 1
1539         fi
1541         case ,${enable_languages}, in
1542           *,${language},*)
1543             # Language was explicitly selected; include it.
1544             add_this_lang=yes
1545             ;;
1546           *,all,*)
1547             # 'all' was selected, select it if it is a default language
1548             add_this_lang=${build_by_default}
1549             ;;
1550           *)
1551             add_this_lang=no
1552             ;;
1553         esac
1555         # Disable languages that need other directories if these aren't available.
1556         for i in $subdir_requires; do
1557           test -f "$srcdir/gcc/$i/config-lang.in" && continue
1558           case ,${enable_languages}, in
1559             *,${language},*)
1560               # Specifically requested language; tell them.
1561               AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1562               ;;
1563             *)
1564               # Silently disable.
1565               add_this_lang=unsupported
1566               ;;
1567           esac
1568         done
1570         # Disable Ada if no preexisting GNAT is available.
1571         case ,${enable_languages},:${language}:${have_gnat} in
1572           *,${language},*:ada:no)
1573             # Specifically requested language; tell them.
1574             AC_MSG_ERROR([GNAT is required to build $language])
1575             ;;
1576           *:ada:no)
1577             # Silently disable.
1578             add_this_lang=unsupported
1579             ;;
1580         esac
1582         # Disable a language that is unsupported by the target.
1583         case " $unsupported_languages " in
1584           *" $language "*)
1585             add_this_lang=unsupported
1586             ;;
1587         esac
1589         case $add_this_lang in
1590           unsupported)
1591             # Remove language-dependent dirs.
1592             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1593             ;;
1594           no)
1595             # Remove language-dependent dirs; still show language as supported.
1596             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1597             potential_languages="${potential_languages}${language},"
1598             ;;
1599           yes)
1600             new_enable_languages="${new_enable_languages}${language},"
1601             potential_languages="${potential_languages}${language},"
1602             missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1603             case ${boot_language} in
1604               yes)
1605                 # Add to (comma-separated) list of stage 1 languages.
1606                 stage1_languages="${stage1_languages}${language},"
1607                 ;;
1608             esac
1609             ;;
1610         esac
1611         ;;
1612     esac
1613   done
1615   AC_ARG_ENABLE(stage1-languages,
1616 [  --enable-stage1-languages@<:@=all@:>@   choose additional languages to build during
1617                           stage1.  Mostly useful for compiler development.],
1618   [case ,${enable_stage1_languages}, in
1619     ,no,|,,)
1620       # Set it to something that will have no effect in the loop below
1621       enable_stage1_languages=c ;;
1622     ,yes,)
1623       enable_stage1_languages=`echo $new_enable_languages | \
1624         sed -e "s/^,//" -e "s/,$//" ` ;;
1625     *,all,*)
1626       enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1627         sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1628   esac
1630   # Add "good" languages from enable_stage1_languages to stage1_languages,
1631   # while "bad" languages go in missing_languages.  Leave no duplicates.
1632   for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1633     case $potential_languages in
1634       *,$i,*)
1635         case $stage1_languages in
1636           *,$i,*) ;;
1637           *) stage1_languages="$stage1_languages$i," ;;
1638         esac ;;
1639       *)
1640         case $missing_languages in
1641           *,$i,*) ;;
1642           *) missing_languages="$missing_languages$i," ;;
1643         esac ;;
1644      esac
1645   done])
1647   # Remove leading/trailing commas that were added for simplicity
1648   potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
1649   missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1650   stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1651   new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1653   if test "x$missing_languages" != x; then
1654     AC_MSG_ERROR([
1655 The following requested languages could not be built: ${missing_languages}
1656 Supported languages are: ${potential_languages}])
1657   fi
1658   if test "x$new_enable_languages" != "x$enable_languages"; then
1659     echo The following languages will be built: ${new_enable_languages}
1660     enable_languages="$new_enable_languages"
1661   fi
1663   AC_SUBST(stage1_languages)
1664   ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
1667 # Handle --disable-<component> generically.
1668 for dir in $configdirs $build_configdirs $target_configdirs ; do
1669   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
1670   varname=`echo $dirname | sed -e s/+/_/g`
1671   if eval test x\${enable_${varname}} "=" xno ; then
1672     noconfigdirs="$noconfigdirs $dir"
1673   fi
1674 done
1676 # Check for Boehm's garbage collector
1677 AC_ARG_ENABLE(objc-gc,
1678 [  --enable-objc-gc        enable use of Boehm's garbage collector with the
1679                           GNU Objective-C runtime],
1680 [case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1681   *,objc,*:*:yes:*target-boehm-gc*)
1682     AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1683     ;;
1684 esac])
1686 # Make sure we only build Boehm's garbage collector if required.
1687 case ,${enable_languages},:${enable_objc_gc} in
1688   *,objc,*:yes)
1689     # Keep target-boehm-gc if requested for Objective-C.
1690     ;;
1691   *)
1692     # Otherwise remove target-boehm-gc depending on target-libjava.
1693     if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1694       noconfigdirs="$noconfigdirs target-boehm-gc"
1695     fi
1696     ;;
1697 esac
1699 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1700 # $build_configdirs and $target_configdirs.
1701 # If we have the source for $noconfigdirs entries, add them to $notsupp.
1703 notsupp=""
1704 for dir in . $skipdirs $noconfigdirs ; do
1705   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
1706   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1707     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1708     if test -r $srcdir/$dirname/configure ; then
1709       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1710         true
1711       else
1712         notsupp="$notsupp $dir"
1713       fi
1714     fi
1715   fi
1716   if test $dir != .  && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1717     build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1718     if test -r $srcdir/$dirname/configure ; then
1719       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1720         true
1721       else
1722         notsupp="$notsupp $dir"
1723       fi
1724     fi
1725   fi
1726   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1727     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1728     if test -r $srcdir/$dirname/configure ; then
1729       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1730         true
1731       else
1732         notsupp="$notsupp $dir"
1733       fi
1734     fi
1735   fi
1736 done
1738 # Sometimes the tools are distributed with libiberty but with no other
1739 # libraries.  In that case, we don't want to build target-libiberty.
1740 # Don't let libgcc imply libiberty either.
1741 if test -n "${target_configdirs}" ; then
1742   libgcc=
1743   others=
1744   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1745     if test "$i" = "libgcc"; then
1746       libgcc=target-libgcc
1747     elif test "$i" != "libiberty" ; then
1748       if test -r $srcdir/$i/configure ; then
1749         others=yes;
1750         break;
1751       fi
1752     fi
1753   done
1754   if test -z "${others}" ; then
1755     target_configdirs=$libgcc
1756   fi
1759 # Quietly strip out all directories which aren't configurable in this tree.
1760 # This relies on all configurable subdirectories being autoconfiscated, which
1761 # is now the case.
1762 build_configdirs_all="$build_configdirs"
1763 build_configdirs=
1764 for i in ${build_configdirs_all} ; do
1765   j=`echo $i | sed -e s/build-//g` 
1766   if test -f ${srcdir}/$j/configure ; then
1767     build_configdirs="${build_configdirs} $i"
1768   fi
1769 done
1771 configdirs_all="$configdirs"
1772 configdirs=
1773 for i in ${configdirs_all} ; do
1774   if test -f ${srcdir}/$i/configure ; then
1775     configdirs="${configdirs} $i"
1776   fi
1777 done
1779 target_configdirs_all="$target_configdirs"
1780 target_configdirs=
1781 for i in ${target_configdirs_all} ; do
1782   j=`echo $i | sed -e s/target-//g` 
1783   if test -f ${srcdir}/$j/configure ; then
1784     target_configdirs="${target_configdirs} $i"
1785   fi
1786 done
1788 # Produce a warning message for the subdirs we can't configure.
1789 # This isn't especially interesting in the Cygnus tree, but in the individual
1790 # FSF releases, it's important to let people know when their machine isn't
1791 # supported by the one or two programs in a package.
1793 if test -n "${notsupp}" && test -z "${norecursion}" ; then
1794   # If $appdirs is non-empty, at least one of those directories must still
1795   # be configured, or we error out.  (E.g., if the gas release supports a
1796   # specified target in some subdirs but not the gas subdir, we shouldn't
1797   # pretend that all is well.)
1798   if test -n "$appdirs" ; then
1799     for dir in $appdirs ; do
1800       if test -r $dir/Makefile.in ; then
1801         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1802           appdirs=""
1803           break
1804         fi
1805         if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1806           appdirs=""
1807           break
1808         fi
1809       fi
1810     done
1811     if test -n "$appdirs" ; then
1812       echo "*** This configuration is not supported by this package." 1>&2
1813       exit 1
1814     fi
1815   fi
1816   # Okay, some application will build, or we don't care to check.  Still
1817   # notify of subdirs not getting built.
1818   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1819   echo "    ${notsupp}" 1>&2
1820   echo "    (Any other directories should still work fine.)" 1>&2
1823 case "$host" in
1824   *msdosdjgpp*)
1825     enable_gdbtk=no ;;
1826 esac
1828 # To find our prefix, in gcc_cv_tool_prefix.
1829 ACX_TOOL_DIRS
1831 copy_dirs=
1833 AC_ARG_WITH([build-sysroot], 
1834   [  --with-build-sysroot=SYSROOT
1835                           use sysroot as the system root during the build],
1836   [if test x"$withval" != x ; then
1837      SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1838    fi],
1839   [SYSROOT_CFLAGS_FOR_TARGET=])
1840 AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1842 AC_ARG_WITH([debug-prefix-map],
1843   [  --with-debug-prefix-map='A=B C=D ...'
1844                              map A to B, C to D ... in debug information],
1845   [if test x"$withval" != x; then
1846      DEBUG_PREFIX_CFLAGS_FOR_TARGET=
1847      for debug_map in $withval; do
1848        DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
1849      done
1850    fi],
1851   [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
1852 AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
1854 # During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
1855 # might be empty or "-g".  We don't require a C++ compiler, so CXXFLAGS
1856 # might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
1857 # We want to ensure that TARGET libraries (which we know are built with
1858 # gcc) are built with "-O2 -g", so include those options when setting
1859 # CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
1860 if test "x$CFLAGS_FOR_TARGET" = x; then
1861   CFLAGS_FOR_TARGET=$CFLAGS
1862   case " $CFLAGS " in
1863     *" -O2 "*) ;;
1864     *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
1865   esac
1866   case " $CFLAGS " in
1867     *" -g "* | *" -g3 "*) ;;
1868     *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
1869   esac
1871 AC_SUBST(CFLAGS_FOR_TARGET)
1873 if test "x$CXXFLAGS_FOR_TARGET" = x; then
1874   CXXFLAGS_FOR_TARGET=$CXXFLAGS
1875   case " $CXXFLAGS " in
1876     *" -O2 "*) ;;
1877     *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
1878   esac
1879   case " $CXXFLAGS " in
1880     *" -g "* | *" -g3 "*) ;;
1881     *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
1882   esac
1884 AC_SUBST(CXXFLAGS_FOR_TARGET)
1886 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
1887 # the named directory are copied to $(tooldir)/sys-include.
1888 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1889   if test x${is_cross_compiler} = xno ; then
1890     echo 1>&2 '***' --with-headers is only supported when cross compiling
1891     exit 1
1892   fi
1893   if test x"${with_headers}" != xyes ; then
1894     x=${gcc_cv_tool_prefix}
1895     copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
1896   fi
1899 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
1900 # the name directories are copied to $(tooldir)/lib.  Multiple directories
1901 # are permitted.
1902 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1903   if test x${is_cross_compiler} = xno ; then
1904     echo 1>&2 '***' --with-libs is only supported when cross compiling
1905     exit 1
1906   fi
1907   if test x"${with_libs}" != xyes ; then
1908     # Copy the libraries in reverse order, so that files in the first named
1909     # library override files in subsequent libraries.
1910     x=${gcc_cv_tool_prefix}
1911     for l in ${with_libs}; do
1912       copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
1913     done
1914   fi
1917 # Set with_gnu_as and with_gnu_ld as appropriate.
1919 # This is done by determining whether or not the appropriate directory
1920 # is available, and by checking whether or not specific configurations
1921 # have requested that this magic not happen.
1923 # The command line options always override the explicit settings in 
1924 # configure.in, and the settings in configure.in override this magic.
1926 # If the default for a toolchain is to use GNU as and ld, and you don't 
1927 # want to do that, then you should use the --without-gnu-as and
1928 # --without-gnu-ld options for the configure script.
1930 if test x${use_gnu_as} = x &&
1931    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1932   with_gnu_as=yes
1933   extra_host_args="$extra_host_args --with-gnu-as"
1936 if test x${use_gnu_ld} = x &&
1937    echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
1938   with_gnu_ld=yes
1939   extra_host_args="$extra_host_args --with-gnu-ld"
1942 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1943 # can detect this case.
1945 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1946   with_newlib=yes
1947   extra_host_args="$extra_host_args --with-newlib"
1950 # Handle ${copy_dirs}
1951 set fnord ${copy_dirs}
1952 shift
1953 while test $# != 0 ; do
1954   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1955     :
1956   else
1957     echo Copying $1 to $2
1959     # Use the install script to create the directory and all required
1960     # parent directories.
1961     if test -d $2 ; then
1962       :
1963     else
1964       echo >config.temp
1965       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1966     fi
1968     # Copy the directory, assuming we have tar.
1969     # FIXME: Should we use B in the second tar?  Not all systems support it.
1970     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1972     # It is the responsibility of the user to correctly adjust all
1973     # symlinks.  If somebody can figure out how to handle them correctly
1974     # here, feel free to add the code.
1976     echo $1 > $2/COPIED
1977   fi
1978   shift; shift
1979 done
1981 # Determine a target-dependent exec_prefix that the installed
1982 # gcc will search in.  Keep this list sorted by triplet, with
1983 # the *-*-osname triplets last.
1984 md_exec_prefix=
1985 case "${target}" in
1986   alpha*-*-*vms*)
1987     md_exec_prefix=/gnu/lib/gcc-lib
1988     ;;
1989   i[[34567]]86-pc-msdosdjgpp*)
1990     md_exec_prefix=/dev/env/DJDIR/bin
1991     ;;
1992   i[[34567]]86-*-sco3.2v5*)
1993     if test $with_gnu_as = yes; then
1994       md_exec_prefix=/usr/gnu/bin
1995     else
1996       md_exec_prefix=/usr/ccs/bin/elf
1997     fi
1998     ;;
2000   mn10300-*-* | \
2001   powerpc-*-chorusos* | \
2002   powerpc*-*-eabi* | \
2003   powerpc*-*-sysv* | \
2004   powerpc*-*-kaos* | \
2005   s390x-ibm-tpf*)
2006     md_exec_prefix=/usr/ccs/bin
2007     ;;
2008   sparc64-*-elf*)
2009     ;;
2010   v850*-*-*)
2011     md_exec_prefix=/usr/ccs/bin
2012     ;;
2013   xtensa*-*-elf*)
2014     ;;
2016   *-*-beos* | \
2017   *-*-elf* | \
2018   *-*-hpux* | \
2019   *-*-netware* | \
2020   *-*-nto-qnx* | \
2021   *-*-rtems* | \
2022   *-*-solaris2* | \
2023   *-*-sysv[[45]]* | \
2024   *-*-vxworks* | \
2025   *-wrs-windiss)
2026     md_exec_prefix=/usr/ccs/bin
2027     ;;
2028 esac
2030 extra_arflags_for_target=
2031 extra_nmflags_for_target=
2032 extra_ranlibflags_for_target=
2033 target_makefile_frag=/dev/null
2034 case "${target}" in
2035   mep*-*-*)
2036     target_makefile_frag="config/mt-mep"
2037     ;;
2038   spu-*-*)
2039     target_makefile_frag="config/mt-spu"
2040     ;;
2041   mips*-sde-elf*)
2042     target_makefile_frag="config/mt-sde"
2043     ;;
2044   mipsisa*-*-elfoabi*)
2045     target_makefile_frag="config/mt-mips-elfoabi"
2046     ;;
2047   mips*-*-*linux* | mips*-*-gnu*)
2048     target_makefile_frag="config/mt-mips-gnu"
2049     ;;
2050   *-*-netware*)
2051     target_makefile_frag="config/mt-netware"
2052     ;;
2053   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2054     target_makefile_frag="config/mt-gnu"
2055     ;;
2056   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2057     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
2058     # commands to handle both 32-bit and 64-bit objects.  These flags are
2059     # harmless if we're using GNU nm or ar.
2060     extra_arflags_for_target=" -X32_64"
2061     extra_nmflags_for_target=" -B -X32_64"
2062     ;;
2063   *-*-darwin*)
2064     # ranlib from Darwin requires the -c flag to look at common symbols.
2065     extra_ranlibflags_for_target=" -c"
2066     ;;
2067   mips*-*-pe | sh*-*-pe | arm*-wince-pe | arm*-*-mingw32ce* | arm*-*-cegcc*)
2068     target_makefile_frag="config/mt-wince"
2069     ;;
2070 esac
2072 alphaieee_frag=/dev/null
2073 case $target in
2074   alpha*-*-*)
2075     # This just makes sure to use the -mieee option to build target libs.
2076     # This should probably be set individually by each library.
2077     alphaieee_frag="config/mt-alphaieee"
2078     ;;
2079 esac
2081 # If --enable-target-optspace always use -Os instead of -O2 to build
2082 # the target libraries, similarly if it is not specified, use -Os
2083 # on selected platforms.
2084 ospace_frag=/dev/null
2085 case "${enable_target_optspace}:${target}" in
2086   yes:*)
2087     ospace_frag="config/mt-ospace"
2088     ;;
2089   :d30v-*)
2090     ospace_frag="config/mt-d30v"
2091     ;;
2092   :m32r-* | :d10v-* | :fr30-*)
2093     ospace_frag="config/mt-ospace"
2094     ;;
2095   no:* | :*)
2096     ;;
2097   *)
2098     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2099     ;;
2100 esac
2102 # Default to using --with-stabs for certain targets.
2103 if test x${with_stabs} = x ; then
2104   case "${target}" in
2105   mips*-*-irix[[56]]*)
2106     ;;
2107   mips*-*-* | alpha*-*-osf*)
2108     with_stabs=yes;
2109     extra_host_args="${extra_host_args} --with-stabs"
2110     ;;
2111   esac
2114 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
2115 # them automatically.
2116 case "${host}" in
2117   hppa*64*-*-hpux11*)   
2118     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
2119     ;;
2120 esac
2122 # Some systems (e.g., one of the i386-aix systems the gas testers are
2123 # using) don't handle "\$" correctly, so don't use it here.
2124 tooldir='${exec_prefix}'/${target_noncanonical}
2125 build_tooldir=${tooldir}
2127 # Create a .gdbinit file which runs the one in srcdir
2128 # and tells GDB to look there for source files.
2130 if test -r ${srcdir}/.gdbinit ; then
2131   case ${srcdir} in
2132     .) ;;
2133     *) cat > ./.gdbinit <<EOF
2134 # ${NO_EDIT}
2135 dir ${srcdir}
2136 dir .
2137 source ${srcdir}/.gdbinit
2139     ;;
2140   esac
2143 # Make sure that the compiler is able to generate an executable.  If it
2144 # can't, we are probably in trouble.  We don't care whether we can run the
2145 # executable--we might be using a cross compiler--we only care whether it
2146 # can be created.  At this point the main configure script has set CC.
2147 we_are_ok=no
2148 echo "int main () { return 0; }" > conftest.c
2149 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2150 if test $? = 0 ; then
2151   if test -s conftest || test -s conftest.exe ; then
2152     we_are_ok=yes
2153   fi
2154 fi 
2155 case $we_are_ok in
2156   no)
2157     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2158     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2159     rm -f conftest*
2160     exit 1
2161     ;;
2162 esac
2163 rm -f conftest*
2165 # The Solaris /usr/ucb/cc compiler does not appear to work.
2166 case "${host}" in
2167   sparc-sun-solaris2*)
2168       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
2169       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
2170           could_use=
2171           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
2172           if test -d /opt/cygnus/bin ; then
2173               if test "$could_use" = "" ; then
2174                   could_use="/opt/cygnus/bin"
2175               else
2176                   could_use="$could_use or /opt/cygnus/bin"
2177               fi
2178           fi
2179         if test "$could_use" = "" ; then
2180             echo "Warning: compilation may fail because you're using"
2181             echo "/usr/ucb/cc.  You should change your PATH or CC "
2182             echo "variable and rerun configure."
2183         else
2184             echo "Warning: compilation may fail because you're using"
2185             echo "/usr/ucb/cc, when you should use the C compiler from"
2186             echo "$could_use.  You should change your"
2187             echo "PATH or CC variable and rerun configure."
2188         fi
2189       fi
2190   ;;
2191 esac
2193 # Decide which environment variable is used to find dynamic libraries.
2194 case "${host}" in
2195   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2196   *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2197   *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2198   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2199 esac
2201 # On systems where the dynamic library environment variable is PATH,
2202 # gcc/ will put dynamic libraries into a subdirectory to avoid adding
2203 # built executables to PATH.
2204 if test "$RPATH_ENVVAR" = PATH; then
2205   GCC_SHLIB_SUBDIR=/shlib
2206 else
2207   GCC_SHLIB_SUBDIR=
2210 # Record target_configdirs and the configure arguments for target and
2211 # build configuration in Makefile.
2212 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2213 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2215 # Determine whether gdb needs tk/tcl or not.
2216 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2217 # and in that case we want gdb to be built without tk.  Ugh!
2218 # In fact I believe gdb is the *only* package directly dependent on tk,
2219 # so we should be able to put the 'maybe's in unconditionally and
2220 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
2221 # 100% sure that that's safe though.
2223 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2224 case "$enable_gdbtk" in
2225   no)
2226     GDB_TK="" ;;
2227   yes)
2228     GDB_TK="${gdb_tk}" ;;
2229   *)
2230     # Only add the dependency on gdbtk when GDBtk is part of the gdb
2231     # distro.  Eventually someone will fix this and move Insight, nee
2232     # gdbtk to a separate directory.
2233     if test -d ${srcdir}/gdb/gdbtk ; then
2234       GDB_TK="${gdb_tk}"
2235     else
2236       GDB_TK=""
2237     fi
2238     ;;
2239 esac
2240 CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2241 INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2243 # Strip out unwanted targets.
2245 # While at that, we remove Makefiles if we were started for recursive
2246 # configuration, so that the top-level Makefile reconfigures them,
2247 # like we used to do when configure itself was recursive.
2249 # Loop over modules.  $extrasub must be used with care, limiting as
2250 # much as possible the usage of range addresses.  That's because autoconf
2251 # splits the sed script to overcome limits in the number of commands,
2252 # and relying on carefully-timed sed passes may turn out to be very hard
2253 # to maintain later.  In this particular case, you just have to be careful
2254 # not to nest @if/@endif pairs, because configure will not warn you at all.
2256 AC_ARG_ENABLE([bootstrap],
2257 [  --enable-bootstrap      enable bootstrapping @<:@yes if native build@:>@],,
2258 enable_bootstrap=default)
2260 # Issue errors and warnings for invalid/strange bootstrap combinations.
2261 case "$configdirs" in
2262   *gcc*) have_compiler=yes ;;
2263   *) have_compiler=no ;;
2264 esac
2266 case "$have_compiler:$host:$target:$enable_bootstrap" in
2267   *:*:*:no) ;;
2269   # Default behavior.  Enable bootstrap if we have a compiler
2270   # and we are in a native configuration.
2271   yes:$build:$build:default)
2272     enable_bootstrap=yes ;;
2274   *:*:*:default)
2275     enable_bootstrap=no ;;
2277   # We have a compiler and we are in a native configuration, bootstrap is ok
2278   yes:$build:$build:yes)
2279     ;;
2281   # Other configurations, but we have a compiler.  Assume the user knows
2282   # what he's doing.
2283   yes:*:*:yes)
2284     AC_MSG_WARN([trying to bootstrap a cross compiler])
2285     ;;
2287   # No compiler: if they passed --enable-bootstrap explicitly, fail
2288   no:*:*:yes)
2289     AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2291   # Fail if wrong command line
2292   *)
2293     AC_MSG_ERROR([invalid option for --enable-bootstrap])
2294     ;;
2295 esac
2297 # Adjust the toplevel makefile according to whether bootstrap was selected.
2298 case "$enable_bootstrap" in
2299   yes)
2300     bootstrap_suffix=bootstrap ;;
2301   no)
2302     bootstrap_suffix=no-bootstrap ;;
2303 esac
2305 for module in ${build_configdirs} ; do
2306   if test -z "${no_recursion}" \
2307      && test -f ${build_subdir}/${module}/Makefile; then
2308     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2309     rm -f ${build_subdir}/${module}/Makefile
2310   fi
2311   extrasub="$extrasub
2312 /^@if build-$module\$/d
2313 /^@endif build-$module\$/d
2314 /^@if build-$module-$bootstrap_suffix\$/d
2315 /^@endif build-$module-$bootstrap_suffix\$/d"
2316 done
2317 for module in ${configdirs} ; do
2318   if test -z "${no_recursion}"; then
2319     for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2320       if test -f ${file}; then
2321         echo 1>&2 "*** removing ${file} to force reconfigure"
2322         rm -f ${file}
2323       fi
2324     done
2325   fi
2326   extrasub="$extrasub
2327 /^@if $module\$/d
2328 /^@endif $module\$/d
2329 /^@if $module-$bootstrap_suffix\$/d
2330 /^@endif $module-$bootstrap_suffix\$/d"
2331 done
2332 for module in ${target_configdirs} ; do
2333   if test -z "${no_recursion}" \
2334      && test -f ${target_subdir}/${module}/Makefile; then
2335     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2336     rm -f ${target_subdir}/${module}/Makefile
2337   fi
2338   extrasub="$extrasub
2339 /^@if target-$module\$/d
2340 /^@endif target-$module\$/d
2341 /^@if target-$module-$bootstrap_suffix\$/d
2342 /^@endif target-$module-$bootstrap_suffix\$/d"
2343 done
2345 extrasub="$extrasub
2346 /^@if /,/^@endif /d"
2348 # Create the serialization dependencies.  This uses a temporary file.
2350 AC_ARG_ENABLE([serial-configure],
2351 [  --enable-serial-@<:@{host,target,build}-@:>@configure
2352                           force sequential configuration of
2353                           sub-packages for the host, target or build
2354                           machine, or all sub-packages])
2356 case ${enable_serial_configure} in
2357   yes)
2358     enable_serial_build_configure=yes
2359     enable_serial_host_configure=yes
2360     enable_serial_target_configure=yes
2361     ;;
2362 esac
2364 # These force 'configure's to be done one at a time, to avoid problems
2365 # with contention over a shared config.cache.
2366 rm -f serdep.tmp
2367 echo '# serdep.tmp' > serdep.tmp
2368 olditem=
2369 test "x${enable_serial_build_configure}" = xyes &&
2370 for item in ${build_configdirs} ; do
2371   case ${olditem} in
2372     "") ;;
2373     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2374   esac
2375   olditem=${item}
2376 done
2377 olditem=
2378 test "x${enable_serial_host_configure}" = xyes &&
2379 for item in ${configdirs} ; do
2380   case ${olditem} in
2381     "") ;;
2382     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2383   esac
2384   olditem=${item}
2385 done
2386 olditem=
2387 test "x${enable_serial_target_configure}" = xyes &&
2388 for item in ${target_configdirs} ; do
2389   case ${olditem} in
2390     "") ;;
2391     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2392   esac
2393   olditem=${item}
2394 done
2395 serialization_dependencies=serdep.tmp
2396 AC_SUBST_FILE(serialization_dependencies)
2398 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
2399 # target, nonopt, and variable assignments.  These are the ones we
2400 # might not want to pass down to subconfigures.  Also strip
2401 # program-prefix, program-suffix, and program-transform-name, so that
2402 # we can pass down a consistent program-transform-name.
2403 baseargs=
2404 keep_next=no
2405 skip_next=no
2406 eval "set -- $ac_configure_args"
2407 for ac_arg
2409   if test X"$skip_next" = X"yes"; then
2410     skip_next=no
2411     continue
2412   fi
2413   if test X"$keep_next" = X"yes"; then
2414     case $ac_arg in
2415       *\'*)
2416         ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2417     esac
2418     baseargs="$baseargs '$ac_arg'"
2419     keep_next=no
2420     continue
2421   fi
2423   # Handle separated arguments.  Based on the logic generated by
2424   # autoconf 2.59.
2425   case $ac_arg in
2426     *=* | --config-cache | -C | -disable-* | --disable-* \
2427       | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2428       | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2429       | -with-* | --with-* | -without-* | --without-* | --x)
2430       separate_arg=no
2431       ;;
2432     -*)
2433       separate_arg=yes
2434       ;;
2435     *)
2436       separate_arg=no
2437       ;;
2438   esac
2440   case "$ac_arg" in
2441     --no*)
2442       continue
2443       ;;
2444     --c* | \
2445     --sr* | \
2446     --ho* | \
2447     --bu* | \
2448     --t* | \
2449     --program-* | \
2450     -cache_file* | \
2451     -srcdir* | \
2452     -host* | \
2453     -build* | \
2454     -target* | \
2455     -program-prefix* | \
2456     -program-suffix* | \
2457     -program-transform-name* )
2458       skip_next=$separate_arg
2459       continue
2460       ;;
2461     -*)
2462       # An option.  Add it.
2463       case $ac_arg in
2464         *\'*)
2465           ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2466       esac
2467       baseargs="$baseargs '$ac_arg'"
2468       keep_next=$separate_arg
2469       ;;
2470     *)
2471       # Either a variable assignment, or a nonopt (triplet).  Don't
2472       # pass it down; let the Makefile handle this.
2473       continue
2474       ;;
2475   esac
2476 done
2477 # Remove the initial space we just introduced and, as these will be
2478 # expanded by make, quote '$'.
2479 baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2481 # Add in --program-transform-name, after --program-prefix and
2482 # --program-suffix have been applied to it.  Autoconf has already
2483 # doubled dollar signs and backslashes in program_transform_name; we want
2484 # the backslashes un-doubled, and then the entire thing wrapped in single
2485 # quotes, because this will be expanded first by make and then by the shell. 
2486 # Also, because we want to override the logic in subdir configure scripts to
2487 # choose program_transform_name, replace any s,x,x, with s,y,y,.
2488 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2489 ${program_transform_name}
2490 EOF_SED
2491 gcc_transform_name=`cat conftestsed.out`
2492 rm -f conftestsed.out
2493 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2494 if test "$silent" = yes; then
2495   baseargs="$baseargs --silent"
2498 # For the build-side libraries, we just need to pretend we're native,
2499 # and not use the same cache file.  Multilibs are neither needed nor
2500 # desired.
2501 build_configargs="--cache-file=../config.cache ${baseargs}"
2503 # For host modules, accept cache file option, or specification as blank.
2504 case "${cache_file}" in
2505 "") # empty
2506   cache_file_option="" ;;
2507 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2508   cache_file_option="--cache-file=${cache_file}" ;;
2509 *) # relative path
2510   cache_file_option="--cache-file=../${cache_file}" ;;
2511 esac
2513 # Host dirs don't like to share a cache file either, horribly enough.
2514 # This seems to be due to autoconf 2.5x stupidity.
2515 host_configargs="--cache-file=./config.cache ${extra_host_args} ${baseargs}"
2517 target_configargs=${baseargs}
2519 # Passing a --with-cross-host argument lets the target libraries know
2520 # whether they are being built with a cross-compiler or being built
2521 # native.  However, it would be better to use other mechanisms to make the
2522 # sorts of decisions they want to make on this basis.  Please consider
2523 # this option to be deprecated.  FIXME.
2524 if test x${is_cross_compiler} = xyes ; then
2525   target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
2528 # Default to --enable-multilib.
2529 if test x${enable_multilib} = x ; then
2530   target_configargs="--enable-multilib ${target_configargs}"
2533 # Pass --with-newlib if appropriate.  Note that target_configdirs has
2534 # changed from the earlier setting of with_newlib.
2535 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2536   target_configargs="--with-newlib ${target_configargs}"
2539 # Different target subdirs use different values of certain variables
2540 # (notably CXX).  Worse, multilibs use *lots* of different values.
2541 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2542 # it doesn't automatically accept command-line overrides of them.
2543 # This means it's not safe for target subdirs to share a cache file,
2544 # which is disgusting, but there you have it.  Hopefully this can be
2545 # fixed in future.  It's still worthwhile to use a cache file for each
2546 # directory.  I think.
2548 # Pass the appropriate --build, --host, --target and --cache-file arguments.
2549 # We need to pass --target, as newer autoconf's requires consistency
2550 # for target_alias and gcc doesn't manage it consistently.
2551 target_configargs="--cache-file=./config.cache ${target_configargs}"
2553 FLAGS_FOR_TARGET=
2554 case " $target_configdirs " in
2555  *" newlib "*)
2556   case " $target_configargs " in
2557   *" --with-newlib "*)
2558    case "$target" in
2559    *-cygwin*)
2560      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' ;;
2561    arm*-*-mingw32ce* | arm*-*-cegcc*)
2562      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -mwin32 -static -idirafter ${prefix}/${target_alias}/include/w32api' ;;
2563    esac
2565    # If we're not building GCC, don't discard standard headers.
2566    if test -d ${srcdir}/gcc; then
2567      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2569      if test "${build}" != "${host}"; then
2570        # On Canadian crosses, CC_FOR_TARGET will have already been set
2571        # by `configure', so we won't have an opportunity to add -Bgcc/
2572        # to it.  This is right: we don't want to search that directory
2573        # for binaries, but we want the header files in there, so add
2574        # them explicitly.
2575        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
2577        # Someone might think of using the pre-installed headers on
2578        # Canadian crosses, in case the installed compiler is not fully
2579        # compatible with the compiler being built.  In this case, it
2580        # would be better to flag an error than risking having
2581        # incompatible object files being constructed.  We can't
2582        # guarantee that an error will be flagged, but let's hope the
2583        # compiler will do it, when presented with incompatible header
2584        # files.
2585      fi
2586    fi
2588    case "${target}-${is_cross_compiler}" in
2589    i[[3456789]]86-*-linux*-no)
2590       # Here host == target, so we don't need to build gcc,
2591       # so we don't want to discard standard headers.
2592       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2593       ;;
2594    *)
2595       # If we're building newlib, use its generic headers last, but search
2596       # for any libc-related directories first (so make it the last -B
2597       # switch).
2598       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2600       # If we're building libgloss, find the startup file, simulator library
2601       # and linker script.
2602       case " $target_configdirs " in
2603         *" libgloss "*)
2604         # Look for startup file, simulator library and maybe linker script.
2605         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2606         # Look for libnosys.a in case the target needs it.
2607         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2608         # Most targets have the linker script in the source directory.
2609         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2610         ;;
2611       esac
2612       ;;
2613    esac
2614    ;;
2615   esac
2616   ;;
2617 esac
2618 case "$target" in
2619 *-mingw*)
2620   # Can't be handled as Cygwin above since Mingw does not use newlib.
2621   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' ;;
2622 esac
2624 # Allow the user to override the flags for
2625 # our build compiler if desired.
2626 if test x"${build}" = x"${host}" ; then
2627   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2628   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
2629   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
2632 # On Canadian crosses, we'll be searching the right directories for
2633 # the previously-installed cross compiler, so don't bother to add
2634 # flags for directories within the install tree of the compiler
2635 # being built; programs in there won't even run.
2636 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2637   # Search for pre-installed headers if nothing else fits.
2638   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2641 if test "x${use_gnu_ld}" = x &&
2642    echo " ${configdirs} " | grep " ld " > /dev/null ; then
2643   # Arrange for us to find uninstalled linker scripts.
2644   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
2647 # Search for other target-specific linker scripts and such.
2648 case "${target}" in
2649   mep*)
2650     FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
2651     ;;
2652 esac
2654 # Makefile fragments.
2655 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2657   eval fragval=\$$frag
2658   if test $fragval != /dev/null; then
2659     eval $frag=${srcdir}/$fragval
2660   fi
2661 done
2662 AC_SUBST_FILE(host_makefile_frag)
2663 AC_SUBST_FILE(target_makefile_frag)
2664 AC_SUBST_FILE(alphaieee_frag)
2665 AC_SUBST_FILE(ospace_frag)
2667 # Miscellanea: directories, flags, etc.
2668 AC_SUBST(RPATH_ENVVAR)
2669 AC_SUBST(GCC_SHLIB_SUBDIR)
2670 AC_SUBST(tooldir)
2671 AC_SUBST(build_tooldir)
2672 AC_SUBST(CONFIGURE_GDB_TK)
2673 AC_SUBST(GDB_TK)
2674 AC_SUBST(INSTALL_GDB_TK)
2676 # Build module lists & subconfigure args.
2677 AC_SUBST(build_configargs)
2678 AC_SUBST(build_configdirs)
2680 # Host module lists & subconfigure args.
2681 AC_SUBST(host_configargs)
2682 AC_SUBST(configdirs)
2684 # Target module lists & subconfigure args.
2685 AC_SUBST(target_configargs)
2688 # Build tools.
2689 AC_SUBST(AR_FOR_BUILD)
2690 AC_SUBST(AS_FOR_BUILD)
2691 AC_SUBST(CC_FOR_BUILD)
2692 AC_SUBST(CFLAGS_FOR_BUILD)
2693 AC_SUBST(CXXFLAGS_FOR_BUILD)
2694 AC_SUBST(CXX_FOR_BUILD)
2695 AC_SUBST(DLLTOOL_FOR_BUILD)
2696 AC_SUBST(GCJ_FOR_BUILD)
2697 AC_SUBST(GFORTRAN_FOR_BUILD)
2698 AC_SUBST(LDFLAGS_FOR_BUILD)
2699 AC_SUBST(LD_FOR_BUILD)
2700 AC_SUBST(NM_FOR_BUILD)
2701 AC_SUBST(RANLIB_FOR_BUILD)
2702 AC_SUBST(WINDMC_FOR_BUILD)
2703 AC_SUBST(WINDRES_FOR_BUILD)
2704 AC_SUBST(config_shell)
2706 # Generate default definitions for YACC, M4, LEX and other programs that run
2707 # on the build machine.  These are used if the Makefile can't locate these
2708 # programs in objdir.
2709 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2711 AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2712 case " $build_configdirs " in
2713   *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2714   *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2715 esac
2717 AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2718 case " $build_configdirs " in
2719   *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2720 esac
2722 AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2723 case " $build_configdirs " in
2724   *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2725 esac
2727 AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2728 case " $build_configdirs " in
2729   *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2730   *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2731 esac
2733 AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2734 case " $build_configdirs " in
2735   *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2736 esac
2738 AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2739 case " $build_configdirs " in
2740   *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2741   *)
2742 changequote(,)
2743     # For an installed makeinfo, we require it to be from texinfo 4.6 or
2744     # higher, else we use the "missing" dummy.
2745     if ${MAKEINFO} --version \
2746        | egrep 'texinfo[^0-9]*(4\.([6-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
2747       :
2748     else
2749       MAKEINFO="$MISSING makeinfo"
2750     fi
2751     ;;
2752 changequote([,])
2753 esac
2755 # FIXME: expect and dejagnu may become build tools?
2757 AC_CHECK_PROGS(EXPECT, expect, expect)
2758 case " $configdirs " in
2759   *" expect "*)
2760     test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
2761     ;;
2762 esac
2764 AC_CHECK_PROGS(RUNTEST, runtest, runtest)
2765 case " $configdirs " in
2766   *" dejagnu "*)
2767     test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
2768     ;;
2769 esac
2772 # Host tools.
2773 NCN_STRICT_CHECK_TOOLS(AR, ar)
2774 NCN_STRICT_CHECK_TOOLS(AS, as)
2775 NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
2776 NCN_STRICT_CHECK_TOOLS(LD, ld)
2777 NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
2778 NCN_STRICT_CHECK_TOOLS(NM, nm)
2779 NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
2780 NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
2781 NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
2782 NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
2783 NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
2784 NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
2785 AC_SUBST(CC)
2786 AC_SUBST(CXX)
2787 AC_SUBST(CFLAGS)
2788 AC_SUBST(CXXFLAGS)
2790 # Target tools.
2791 AC_ARG_WITH([build-time-tools], 
2792   [  --with-build-time-tools=PATH
2793                           use given path to find target tools during the build],
2794   [case x"$withval" in
2795      x/*) ;;
2796      *)
2797        with_build_time_tools=
2798        AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
2799        ;;
2800    esac],
2801   [with_build_time_tools=])
2803 NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
2804 NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
2805 NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
2806 NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
2807 NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
2809 ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
2810 ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
2811 ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2812 ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
2813 ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
2814 ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
2815 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
2816 ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2817 ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
2818 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
2819 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
2821 RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
2823 GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
2824 GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
2825 GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2826 GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
2827                 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
2828                 c++)
2829 GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
2830                 [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],
2831                 c++)
2832 GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
2833 GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2834 GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
2835                 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
2836 GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
2837                 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
2838 GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
2839 GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
2840 GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
2841 GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
2842 GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
2843 GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
2844 GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
2845 GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
2847 AC_SUBST(FLAGS_FOR_TARGET)
2848 AC_SUBST(RAW_CXX_FOR_TARGET)
2850 # Certain tools may need extra flags.
2851 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2852 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2853 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2855 # When building target libraries, except in a Canadian cross, we use
2856 # the same toolchain as the compiler we just built.
2857 COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
2858 COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
2859 COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
2860 if test $host = $build; then
2861   case " $configdirs " in
2862     *" gcc "*)
2863       COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
2864       COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
2865       COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
2866       ;;
2867   esac
2870 AC_SUBST(COMPILER_AS_FOR_TARGET)
2871 AC_SUBST(COMPILER_LD_FOR_TARGET)
2872 AC_SUBST(COMPILER_NM_FOR_TARGET)
2874 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2875 AC_ARG_ENABLE(maintainer-mode,
2876 [  --enable-maintainer-mode enable make rules and dependencies not useful
2877                           (and sometimes confusing) to the casual installer],
2878       USE_MAINTAINER_MODE=$enableval,
2879       USE_MAINTAINER_MODE=no)
2880 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2881 AC_SUBST(MAINTAINER_MODE_TRUE)
2882 AC_SUBST(MAINTAINER_MODE_FALSE)
2883 if test "$USE_MAINTAINER_MODE" = yes; then
2884   MAINTAINER_MODE_TRUE=
2885   MAINTAINER_MODE_FALSE='#'
2886 else
2887   MAINTAINER_MODE_TRUE='#'
2888   MAINTAINER_MODE_FALSE=
2889 fi      
2890 MAINT=$MAINTAINER_MODE_TRUE
2891 AC_SUBST(MAINT)dnl
2893 # ---------------------
2894 # GCC bootstrap support
2895 # ---------------------
2897 # Stage specific cflags for build.
2898 stage1_cflags="-g"
2899 case $build in
2900   vax-*-*)
2901     case ${GCC} in
2902       yes) stage1_cflags="-g -Wa,-J" ;;
2903       *) stage1_cflags="-g -J" ;;
2904     esac ;;
2905 esac
2907 # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
2908 if test "$GCC" = yes; then
2909   saved_CFLAGS="$CFLAGS"
2911   # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
2912   CFLAGS="$CFLAGS -fkeep-inline-functions"
2913   AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
2914   AC_TRY_COMPILE([
2915 #if (__GNUC__ < 3) \
2916     || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
2917                           || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
2918 #error http://gcc.gnu.org/PR29382
2919 #endif
2920     ],,
2921     [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
2922     [AC_MSG_RESULT([no])])
2924   CFLAGS="$saved_CFLAGS"
2927 AC_SUBST(stage1_cflags)
2929 # Enable --enable-checking in stage1 of the compiler.
2930 AC_ARG_ENABLE(stage1-checking,
2931 [  --enable-stage1-checking@<:@=all@:>@   choose additional checking for stage1
2932                           of the compiler],
2933 [stage1_checking=--enable-checking=${enable_stage1_checking}],
2934 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
2935   stage1_checking=--enable-checking=yes,types
2936 else
2937   stage1_checking=--enable-checking=$enable_checking,types
2938 fi])
2939 AC_SUBST(stage1_checking)
2941 # Enable -Werror in bootstrap stage2 and later.
2942 AC_ARG_ENABLE(werror,
2943 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
2944 [if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
2945   enable_werror=yes
2946 else
2947   enable_werror=no
2948 fi])
2949 case ${enable_werror} in
2950   yes) stage2_werror_flag="--enable-werror-always" ;;
2951   *) stage2_werror_flag="" ;;
2952 esac
2953 AC_SUBST(stage2_werror_flag)
2955 # Flags needed to enable html installing and building
2956 AC_ARG_WITH(datarootdir,
2957 [  --with-datarootdir      use datarootdir as the data root directory.],
2958 [datarootdir="\${prefix}/${withval}"],
2959 [datarootdir="\${prefix}/share"])
2961 AC_ARG_WITH(docdir,
2962 [  --with-docdir           install documentation in this directory.],
2963 [docdir="\${prefix}/${withval}"],
2964 [docdir="\${datarootdir}/doc"])
2966 AC_ARG_WITH(pdfdir,
2967 [  --with-pdfdir           install pdf in this directory.],
2968 [pdfdir="\${prefix}/${withval}"],
2969 [pdfdir="\${docdir}"])
2971 AC_ARG_WITH(htmldir,
2972 [  --with-htmldir          install html in this directory.],
2973 [htmldir="\${prefix}/${withval}"],
2974 [htmldir="\${docdir}"])
2976 AC_SUBST(datarootdir)
2977 AC_SUBST(docdir)
2978 AC_SUBST(pdfdir)
2979 AC_SUBST(htmldir)
2981 AC_OUTPUT(Makefile)